diff options
author | Jørgen Lind <jorgen.lind@nokia.com> | 2009-11-02 10:01:08 (GMT) |
---|---|---|
committer | Jørgen Lind <jorgen.lind@nokia.com> | 2009-11-02 10:01:08 (GMT) |
commit | 5e0bdffd92cbff2a9eb551f77850a24bf2a2116a (patch) | |
tree | fcf764b8326d8282e7f194a4fe1b2a88a7082319 | |
parent | b68cd1df21935fc032a93c7d7bc33fcb77c7b8cd (diff) | |
parent | 5d7e254583551659df42e59fab4756994d4211ed (diff) | |
download | Qt-5e0bdffd92cbff2a9eb551f77850a24bf2a2116a.zip Qt-5e0bdffd92cbff2a9eb551f77850a24bf2a2116a.tar.gz Qt-5e0bdffd92cbff2a9eb551f77850a24bf2a2116a.tar.bz2 |
Merge commit 'origin/4.6' into feature
274 files changed, 8458 insertions, 31523 deletions
diff --git a/configure.exe b/configure.exe Binary files differindex dabf10c..f433888 100755 --- a/configure.exe +++ b/configure.exe diff --git a/demos/embedded/anomaly/src/images/edit-find.png b/demos/embedded/anomaly/src/images/edit-find.png Binary files differindex 5594785..b84b1e2 100644 --- a/demos/embedded/anomaly/src/images/edit-find.png +++ b/demos/embedded/anomaly/src/images/edit-find.png diff --git a/demos/embedded/anomaly/src/images/go-next.png b/demos/embedded/anomaly/src/images/go-next.png Binary files differindex a68e2db..ed89a36 100644 --- a/demos/embedded/anomaly/src/images/go-next.png +++ b/demos/embedded/anomaly/src/images/go-next.png diff --git a/demos/embedded/anomaly/src/images/go-previous.png b/demos/embedded/anomaly/src/images/go-previous.png Binary files differindex c37bc04..44e803d 100644 --- a/demos/embedded/anomaly/src/images/go-previous.png +++ b/demos/embedded/anomaly/src/images/go-previous.png diff --git a/demos/embedded/desktopservices/data/designer.png b/demos/embedded/desktopservices/data/designer.png Binary files differindex 0988fce..1485efa 100644 --- a/demos/embedded/desktopservices/data/designer.png +++ b/demos/embedded/desktopservices/data/designer.png diff --git a/demos/embedded/desktopservices/data/sax.mp3 b/demos/embedded/desktopservices/data/sax.mp3 Binary files differindex 0a078b1..d77c817 100644 --- a/demos/embedded/desktopservices/data/sax.mp3 +++ b/demos/embedded/desktopservices/data/sax.mp3 diff --git a/demos/embedded/desktopservices/resources/browser.png b/demos/embedded/desktopservices/resources/browser.png Binary files differindex 28561e1..9ecda6b 100644 --- a/demos/embedded/desktopservices/resources/browser.png +++ b/demos/embedded/desktopservices/resources/browser.png diff --git a/demos/embedded/desktopservices/resources/message.png b/demos/embedded/desktopservices/resources/message.png Binary files differindex e30052b..78917c7 100644 --- a/demos/embedded/desktopservices/resources/message.png +++ b/demos/embedded/desktopservices/resources/message.png diff --git a/demos/embedded/desktopservices/resources/music.png b/demos/embedded/desktopservices/resources/music.png Binary files differindex 11a57bb..cc569cb 100644 --- a/demos/embedded/desktopservices/resources/music.png +++ b/demos/embedded/desktopservices/resources/music.png diff --git a/demos/embedded/desktopservices/resources/photo.png b/demos/embedded/desktopservices/resources/photo.png Binary files differindex 5ba15c1..ac81cf3 100644 --- a/demos/embedded/desktopservices/resources/photo.png +++ b/demos/embedded/desktopservices/resources/photo.png diff --git a/demos/embedded/flightinfo/aircraft.png b/demos/embedded/flightinfo/aircraft.png Binary files differindex 0845cb4..2312bcc 100644 --- a/demos/embedded/flightinfo/aircraft.png +++ b/demos/embedded/flightinfo/aircraft.png diff --git a/demos/embedded/fluidlauncher/screenshots/context2d_s60.png b/demos/embedded/fluidlauncher/screenshots/context2d_s60.png Binary files differindex c7225c7..9c288c9 100644 --- a/demos/embedded/fluidlauncher/screenshots/context2d_s60.png +++ b/demos/embedded/fluidlauncher/screenshots/context2d_s60.png diff --git a/demos/embedded/fluidlauncher/screenshots/desktopservices_s60.png b/demos/embedded/fluidlauncher/screenshots/desktopservices_s60.png Binary files differindex a429be3..64018f4 100644 --- a/demos/embedded/fluidlauncher/screenshots/desktopservices_s60.png +++ b/demos/embedded/fluidlauncher/screenshots/desktopservices_s60.png diff --git a/demos/embedded/fluidlauncher/screenshots/digiflip.png b/demos/embedded/fluidlauncher/screenshots/digiflip.png Binary files differindex 117b61b..c31a6f8 100644 --- a/demos/embedded/fluidlauncher/screenshots/digiflip.png +++ b/demos/embedded/fluidlauncher/screenshots/digiflip.png diff --git a/demos/embedded/fluidlauncher/screenshots/flickable.png b/demos/embedded/fluidlauncher/screenshots/flickable.png Binary files differindex 7080fc1..bad14bf 100644 --- a/demos/embedded/fluidlauncher/screenshots/flickable.png +++ b/demos/embedded/fluidlauncher/screenshots/flickable.png diff --git a/demos/embedded/fluidlauncher/screenshots/flightinfo_s60.png b/demos/embedded/fluidlauncher/screenshots/flightinfo_s60.png Binary files differindex 8a304eb..8e74d77 100644 --- a/demos/embedded/fluidlauncher/screenshots/flightinfo_s60.png +++ b/demos/embedded/fluidlauncher/screenshots/flightinfo_s60.png diff --git a/demos/embedded/fluidlauncher/screenshots/lightmaps.png b/demos/embedded/fluidlauncher/screenshots/lightmaps.png Binary files differindex 7cbe2e4..18aa74d 100644 --- a/demos/embedded/fluidlauncher/screenshots/lightmaps.png +++ b/demos/embedded/fluidlauncher/screenshots/lightmaps.png diff --git a/demos/embedded/fluidlauncher/screenshots/mediaplayer.png b/demos/embedded/fluidlauncher/screenshots/mediaplayer.png Binary files differindex 2d8a637..c9fd43c 100644 --- a/demos/embedded/fluidlauncher/screenshots/mediaplayer.png +++ b/demos/embedded/fluidlauncher/screenshots/mediaplayer.png diff --git a/demos/embedded/fluidlauncher/screenshots/raycasting.png b/demos/embedded/fluidlauncher/screenshots/raycasting.png Binary files differindex d3c86e9..b6b738a 100644 --- a/demos/embedded/fluidlauncher/screenshots/raycasting.png +++ b/demos/embedded/fluidlauncher/screenshots/raycasting.png diff --git a/demos/embedded/fluidlauncher/screenshots/weatherinfo.png b/demos/embedded/fluidlauncher/screenshots/weatherinfo.png Binary files differindex b18608d..7e23891 100644 --- a/demos/embedded/fluidlauncher/screenshots/weatherinfo.png +++ b/demos/embedded/fluidlauncher/screenshots/weatherinfo.png diff --git a/demos/embedded/fluidlauncher/slides/demo_1.png b/demos/embedded/fluidlauncher/slides/demo_1.png Binary files differindex d2952e5..d53d19d 100644 --- a/demos/embedded/fluidlauncher/slides/demo_1.png +++ b/demos/embedded/fluidlauncher/slides/demo_1.png diff --git a/demos/embedded/fluidlauncher/slides/demo_2.png b/demos/embedded/fluidlauncher/slides/demo_2.png Binary files differindex 1899825..f137de0 100644 --- a/demos/embedded/fluidlauncher/slides/demo_2.png +++ b/demos/embedded/fluidlauncher/slides/demo_2.png diff --git a/demos/embedded/fluidlauncher/slides/demo_5.png b/demos/embedded/fluidlauncher/slides/demo_5.png Binary files differindex 239f08a..0bb1781 100644 --- a/demos/embedded/fluidlauncher/slides/demo_5.png +++ b/demos/embedded/fluidlauncher/slides/demo_5.png diff --git a/demos/embedded/fluidlauncher/slides/demo_6.png b/demos/embedded/fluidlauncher/slides/demo_6.png Binary files differindex 0addf37..9daba67 100644 --- a/demos/embedded/fluidlauncher/slides/demo_6.png +++ b/demos/embedded/fluidlauncher/slides/demo_6.png diff --git a/demos/embedded/raycasting/textures.png b/demos/embedded/raycasting/textures.png Binary files differindex 839488b..2eb1ba7 100644 --- a/demos/embedded/raycasting/textures.png +++ b/demos/embedded/raycasting/textures.png diff --git a/demos/embedded/weatherinfo/icons/weather-few-clouds.svg b/demos/embedded/weatherinfo/icons/weather-few-clouds.svg index 57d45e9..a53e3d6 100644 --- a/demos/embedded/weatherinfo/icons/weather-few-clouds.svg +++ b/demos/embedded/weatherinfo/icons/weather-few-clouds.svg @@ -1,337 +1,70 @@ <?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="48px" - height="48px" - id="svg1306" - sodipodi:version="0.32" - inkscape:version="0.46" - sodipodi:docbase="/home/garrett/Source/tango-icon-theme/scalable/status" - sodipodi:docname="weather-few-clouds.svg" - inkscape:output_extension="org.inkscape.output.svg.inkscape"> - <defs - id="defs1308"> - <inkscape:perspective - sodipodi:type="inkscape:persp3d" - inkscape:vp_x="0 : 24 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_z="48 : 24 : 1" - inkscape:persp3d-origin="24 : 16 : 1" - id="perspective108" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient6724" - gradientUnits="userSpaceOnUse" - x1="284.80219" - y1="-441.23294" - x2="288.89954" - y2="-436.83109" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6549" - id="linearGradient6722" - gradientUnits="userSpaceOnUse" - x1="286.66589" - y1="-439.48358" - x2="289.76562" - y2="-436.70703" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6527" - id="linearGradient6720" - gradientUnits="userSpaceOnUse" - x1="275.94193" - y1="-437.10501" - x2="279.97546" - y2="-431.91833" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient6718" - gradientUnits="userSpaceOnUse" - x1="285.94086" - y1="-439.93900" - x2="289.39124" - y2="-436.44290" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6513" - id="linearGradient6716" - gradientUnits="userSpaceOnUse" - x1="286.51172" - y1="-441.29074" - x2="289.85379" - y2="-436.14453" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6497" - id="linearGradient6714" - gradientUnits="userSpaceOnUse" - x1="287.51730" - y1="-439.75281" - x2="289.67633" - y2="-436.32199" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6470" - id="linearGradient6712" - gradientUnits="userSpaceOnUse" - x1="271.02170" - y1="-441.05182" - x2="285.02859" - y2="-431.96991" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient6839" - gradientUnits="userSpaceOnUse" - x1="284.80219" - y1="-441.23294" - x2="288.89954" - y2="-436.83109" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6549"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6551" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6553" /> +<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="48px" height="48px" id="svg1306"> + <defs id="defs1308"> + <linearGradient xlink:href="#linearGradient6538" id="linearGradient6724" gradientUnits="userSpaceOnUse" x1="284.80219" y1="-441.23294" x2="288.89954" y2="-436.83109"/> + <linearGradient xlink:href="#linearGradient6549" id="linearGradient6722" gradientUnits="userSpaceOnUse" x1="286.66589" y1="-439.48358" x2="289.76562" y2="-436.70703"/> + <linearGradient xlink:href="#linearGradient6527" id="linearGradient6720" gradientUnits="userSpaceOnUse" x1="275.94193" y1="-437.10501" x2="279.97546" y2="-431.91833"/> + <linearGradient xlink:href="#linearGradient6538" id="linearGradient6718" gradientUnits="userSpaceOnUse" x1="285.94086" y1="-439.93900" x2="289.39124" y2="-436.44290"/> + <linearGradient xlink:href="#linearGradient6513" id="linearGradient6716" gradientUnits="userSpaceOnUse" x1="286.51172" y1="-441.29074" x2="289.85379" y2="-436.14453"/> + <linearGradient xlink:href="#linearGradient6497" id="linearGradient6714" gradientUnits="userSpaceOnUse" x1="287.51730" y1="-439.75281" x2="289.67633" y2="-436.32199"/> + <linearGradient xlink:href="#linearGradient6470" id="linearGradient6712" gradientUnits="userSpaceOnUse" x1="271.02170" y1="-441.05182" x2="285.02859" y2="-431.96991"/> + <linearGradient xlink:href="#linearGradient6538" id="linearGradient6839" gradientUnits="userSpaceOnUse" x1="284.80219" y1="-441.23294" x2="288.89954" y2="-436.83109"/> + <linearGradient id="linearGradient6549"> + <stop offset="0" id="stop6551" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6553" stop-color="#ffffff" stop-opacity="0"/> </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6549" - id="linearGradient6837" - gradientUnits="userSpaceOnUse" - x1="286.66589" - y1="-439.48358" - x2="289.76562" - y2="-436.70703" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6527"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6530" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6532" /> + <linearGradient xlink:href="#linearGradient6549" id="linearGradient6837" gradientUnits="userSpaceOnUse" x1="286.66589" y1="-439.48358" x2="289.76562" y2="-436.70703"/> + <linearGradient id="linearGradient6527"> + <stop offset="0" id="stop6530" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6532" stop-color="#ffffff" stop-opacity="0"/> </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6527" - id="linearGradient6835" - gradientUnits="userSpaceOnUse" - x1="275.94193" - y1="-437.10501" - x2="279.97546" - y2="-431.91833" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6538"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6540" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6542" /> + <linearGradient xlink:href="#linearGradient6527" id="linearGradient6835" gradientUnits="userSpaceOnUse" x1="275.94193" y1="-437.10501" x2="279.97546" y2="-431.91833"/> + <linearGradient id="linearGradient6538"> + <stop offset="0" id="stop6540" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6542" stop-color="#ffffff" stop-opacity="0"/> </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient6833" - gradientUnits="userSpaceOnUse" - x1="285.94086" - y1="-439.93900" - x2="289.39124" - y2="-436.44290" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6513"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6515" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6517" /> + <linearGradient xlink:href="#linearGradient6538" id="linearGradient6833" gradientUnits="userSpaceOnUse" x1="285.94086" y1="-439.93900" x2="289.39124" y2="-436.44290"/> + <linearGradient id="linearGradient6513"> + <stop offset="0" id="stop6515" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6517" stop-color="#ffffff" stop-opacity="0"/> </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6513" - id="linearGradient6831" - gradientUnits="userSpaceOnUse" - x1="286.51172" - y1="-441.29074" - x2="289.85379" - y2="-436.14453" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6497"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6499" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6501" /> + <linearGradient xlink:href="#linearGradient6513" id="linearGradient6831" gradientUnits="userSpaceOnUse" x1="286.51172" y1="-441.29074" x2="289.85379" y2="-436.14453"/> + <linearGradient id="linearGradient6497"> + <stop offset="0" id="stop6499" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6501" stop-color="#ffffff" stop-opacity="0"/> </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6497" - id="linearGradient6829" - gradientUnits="userSpaceOnUse" - x1="287.51730" - y1="-439.75281" - x2="289.67633" - y2="-436.32199" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6470"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6472" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6474" /> + <linearGradient xlink:href="#linearGradient6497" id="linearGradient6829" gradientUnits="userSpaceOnUse" x1="287.51730" y1="-439.75281" x2="289.67633" y2="-436.32199"/> + <linearGradient id="linearGradient6470"> + <stop offset="0" id="stop6472" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6474" stop-color="#ffffff" stop-opacity="0"/> </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6470" - id="linearGradient6827" - gradientUnits="userSpaceOnUse" - x1="271.02170" - y1="-441.05182" - x2="285.02859" - y2="-431.96991" /> - <linearGradient - id="linearGradient4083"> - <stop - id="stop4085" - offset="0" - style="stop-color:#ffffff;stop-opacity:0;" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="0.75" - id="stop4089" /> - <stop - id="stop4087" - offset="1" - style="stop-color:#ffffff;stop-opacity:1;" /> + <linearGradient xlink:href="#linearGradient6470" id="linearGradient6827" gradientUnits="userSpaceOnUse" x1="271.02170" y1="-441.05182" x2="285.02859" y2="-431.96991"/> + <linearGradient id="linearGradient4083"> + <stop id="stop4085" offset="0" stop-color="#ffffff" stop-opacity="0"/> + <stop offset="0.75" id="stop4089" stop-color="#ffffff" stop-opacity="0"/> + <stop id="stop4087" offset="1" stop-color="#ffffff" stop-opacity="1"/> </linearGradient> - <linearGradient - id="linearGradient4032"> - <stop - id="stop4034" - offset="0" - style="stop-color:#fff7c2;stop-opacity:0.63829786" /> - <stop - style="stop-color:#fcaf3e;stop-opacity:0.18348624;" - offset="0.59394139" - id="stop4036" /> - <stop - id="stop4038" - offset="0.83850551" - style="stop-color:#fcaf3e;stop-opacity:0.50458717;" /> - <stop - id="stop4040" - offset="1" - style="stop-color:#fcaf3e;stop-opacity:1;" /> + <linearGradient id="linearGradient4032"> + <stop id="stop4034" offset="0" stop-color="#fff7c2" stop-opacity="0.63829786"/> + <stop offset="0.59394139" id="stop4036" stop-color="#fcaf3e" stop-opacity="0.18348624"/> + <stop id="stop4038" offset="0.83850551" stop-color="#fcaf3e" stop-opacity="0.50458717"/> + <stop id="stop4040" offset="1" stop-color="#fcaf3e" stop-opacity="1"/> </linearGradient> - <linearGradient - id="linearGradient4026"> - <stop - id="stop4028" - offset="0" - style="stop-color:#fff9c6;stop-opacity:1" /> - <stop - style="stop-color:#fff28c;stop-opacity:1;" - offset="0.54166669" - id="stop4042" /> - <stop - id="stop4030" - offset="1" - style="stop-color:#ffea85;stop-opacity:1;" /> + <linearGradient id="linearGradient4026"> + <stop id="stop4028" offset="0" stop-color="#fff9c6" stop-opacity="1"/> + <stop offset="0.54166669" id="stop4042" stop-color="#fff28c" stop-opacity="1"/> + <stop id="stop4030" offset="1" stop-color="#ffea85" stop-opacity="1"/> </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient4026" - id="linearGradient3168" - gradientUnits="userSpaceOnUse" - x1="-28.968945" - y1="-25.326815" - x2="-37.19698" - y2="-9.5590506" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient4032" - id="radialGradient4020" - cx="-33.519073" - cy="-22.113297" - fx="-33.519073" - fy="-22.113297" - r="9.5" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.487739,1.292402,-1.10267,0.497242,-41.77393,32.41492)" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient4083" - id="radialGradient4081" - cx="23.99999" - cy="23.381506" - fx="23.99999" - fy="23.381506" - r="19.141981" - gradientTransform="matrix(1.006701,2.235326e-16,-2.23715e-16,1.007522,-0.160816,0.426981)" - gradientUnits="userSpaceOnUse" /> + <linearGradient xlink:href="#linearGradient4026" id="linearGradient3168" gradientUnits="userSpaceOnUse" x1="-28.968945" y1="-25.326815" x2="-37.19698" y2="-9.5590506"/> + <radialGradient xlink:href="#linearGradient4032" id="radialGradient4020" cx="-33.519073" cy="-22.113297" fx="-33.519073" fy="-22.113297" r="9.5" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.487739,1.292402,-1.10267,0.497242,-41.77393,32.41492)"/> + <radialGradient xlink:href="#linearGradient4083" id="radialGradient4081" cx="23.99999" cy="23.381506" fx="23.99999" fy="23.381506" r="19.141981" gradientTransform="matrix(1.006701,2.235326e-16,-2.23715e-16,1.007522,-0.160816,0.426981)" gradientUnits="userSpaceOnUse"/> </defs> - <sodipodi:namedview - id="base" - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1.0" - inkscape:pageopacity="0.0" - inkscape:pageshadow="2" - inkscape:zoom="10.54135" - inkscape:cx="8.0181254" - inkscape:cy="24.950603" - inkscape:current-layer="layer1" - showgrid="true" - inkscape:grid-bbox="true" - inkscape:document-units="px" - inkscape:window-width="859" - inkscape:window-height="818" - inkscape:window-x="0" - inkscape:window-y="30" - inkscape:showpageshadow="false" /> - <metadata - id="metadata1311"> + + <metadata id="metadata1311"> <rdf:RDF> - <cc:Work - rdf:about=""> + <cc:Work rdf:about=""> <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> <dc:title>weather-clear</dc:title> <dc:date>January 2006</dc:date> <dc:creator> @@ -352,386 +85,88 @@ <rdf:li>notification</rdf:li> </rdf:Bag> </dc:subject> - <cc:license - rdf:resource="http://creativecommons.org/licenses/publicdomain/" /> + <cc:license rdf:resource="http://creativecommons.org/licenses/publicdomain/"/> <dc:contributor> <cc:Agent> <dc:title>Garrett LeSage</dc:title> </cc:Agent> </dc:contributor> </cc:Work> - <cc:License - rdf:about="http://creativecommons.org/licenses/publicdomain/"> - <cc:permits - rdf:resource="http://creativecommons.org/ns#Reproduction" /> - <cc:permits - rdf:resource="http://creativecommons.org/ns#Distribution" /> - <cc:permits - rdf:resource="http://creativecommons.org/ns#DerivativeWorks" /> + <cc:License rdf:about="http://creativecommons.org/licenses/publicdomain/"> + <cc:permits rdf:resource="http://creativecommons.org/ns#Reproduction"/> + <cc:permits rdf:resource="http://creativecommons.org/ns#Distribution"/> + <cc:permits rdf:resource="http://creativecommons.org/ns#DerivativeWorks"/> </cc:License> </rdf:RDF> </metadata> - <g - id="layer1" - inkscape:label="Layer 1" - inkscape:groupmode="layer"> - <g - id="g6783" - transform="translate(-263.99,459.9855)"> - <path - sodipodi:nodetypes="ccsscsssscsscc" - id="path6785" - d="M 280.50000,-445.50000 C 278.22917,-445.50000 276.39009,-443.94972 275.78125,-441.87500 C 275.08802,-442.23883 274.33674,-442.50000 273.50000,-442.50000 C 270.74000,-442.50000 268.49999,-440.26001 268.50000,-437.50000 C 268.50000,-436.92107 268.66252,-436.39230 268.84375,-435.87500 C 267.47028,-435.10426 266.50000,-433.68600 266.50000,-432.00000 C 266.50000,-429.51600 268.51600,-427.49999 271.00000,-427.50000 C 271.17713,-427.50000 289.82287,-427.50000 290.00000,-427.50000 C 292.48399,-427.50000 294.50000,-429.51600 294.50000,-432.00000 C 294.50000,-433.68600 293.52972,-435.10426 292.15625,-435.87500 C 292.33749,-436.39229 292.50000,-436.92108 292.50000,-437.50000 C 292.50000,-440.26000 290.26000,-442.49999 287.50000,-442.50000 C 286.66326,-442.50000 285.91198,-442.23883 285.21875,-441.87500 C 284.60991,-443.94972 282.77083,-445.50000 280.50000,-445.50000 z " - style="fill:#c4c5c2;fill-opacity:1.0000000;stroke:#888a85;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <path - sodipodi:nodetypes="ccsscsssscsscc" - id="path6787" - d="M 280.50000,-445.00000 C 278.31028,-445.00000 276.77640,-443.66423 276.10445,-441.15648 C 275.43599,-441.50010 274.55686,-441.98983 273.75000,-441.98983 C 271.03349,-441.98983 268.99486,-440.05101 268.99487,-437.44429 C 268.99487,-436.89752 269.26208,-436.11085 269.43683,-435.62228 C 268.11240,-434.89433 267.00000,-433.73178 267.00000,-432.24973 C 267.00000,-429.90368 268.54617,-427.99964 271.33928,-427.99964 C 271.51009,-427.99964 289.48992,-427.99964 289.66072,-427.99964 C 292.43173,-427.99964 294.00000,-429.90368 294.00000,-432.24973 C 294.00000,-433.84210 292.88760,-434.91642 291.56317,-435.64437 C 291.73793,-436.13293 292.02724,-436.89753 292.02724,-437.44429 C 292.02724,-440.05100 289.91143,-442.01192 287.25001,-442.01193 C 286.44314,-442.01193 285.60820,-441.52219 284.93974,-441.17857 C 284.29089,-443.60011 282.68973,-445.00000 280.50000,-445.00000 z " - style="opacity:1.0000000;fill:url(#linearGradient6827);fill-opacity:1.0000000;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <g - id="g6789"> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path6791" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:url(#linearGradient6829);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path6793" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" /> + <g id="layer1"> + <g transform="translate(-263.99,459.9855)"> + <path d="M 280.50000,-445.50000 C 278.22917,-445.50000 276.39009,-443.94972 275.78125,-441.87500 C 275.08802,-442.23883 274.33674,-442.50000 273.50000,-442.50000 C 270.74000,-442.50000 268.49999,-440.26001 268.50000,-437.50000 C 268.50000,-436.92107 268.66252,-436.39230 268.84375,-435.87500 C 267.47028,-435.10426 266.50000,-433.68600 266.50000,-432.00000 C 266.50000,-429.51600 268.51600,-427.49999 271.00000,-427.50000 C 271.17713,-427.50000 289.82287,-427.50000 290.00000,-427.50000 C 292.48399,-427.50000 294.50000,-429.51600 294.50000,-432.00000 C 294.50000,-433.68600 293.52972,-435.10426 292.15625,-435.87500 C 292.33749,-436.39229 292.50000,-436.92108 292.50000,-437.50000 C 292.50000,-440.26000 290.26000,-442.49999 287.50000,-442.50000 C 286.66326,-442.50000 285.91198,-442.23883 285.21875,-441.87500 C 284.60991,-443.94972 282.77083,-445.50000 280.50000,-445.50000 z " fill="#c4c5c2" fill-opacity="1.0000000" stroke="#888a85" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 280.50000,-445.00000 C 278.31028,-445.00000 276.77640,-443.66423 276.10445,-441.15648 C 275.43599,-441.50010 274.55686,-441.98983 273.75000,-441.98983 C 271.03349,-441.98983 268.99486,-440.05101 268.99487,-437.44429 C 268.99487,-436.89752 269.26208,-436.11085 269.43683,-435.62228 C 268.11240,-434.89433 267.00000,-433.73178 267.00000,-432.24973 C 267.00000,-429.90368 268.54617,-427.99964 271.33928,-427.99964 C 271.51009,-427.99964 289.48992,-427.99964 289.66072,-427.99964 C 292.43173,-427.99964 294.00000,-429.90368 294.00000,-432.24973 C 294.00000,-433.84210 292.88760,-434.91642 291.56317,-435.64437 C 291.73793,-436.13293 292.02724,-436.89753 292.02724,-437.44429 C 292.02724,-440.05100 289.91143,-442.01192 287.25001,-442.01193 C 286.44314,-442.01193 285.60820,-441.52219 284.93974,-441.17857 C 284.29089,-443.60011 282.68973,-445.00000 280.50000,-445.00000 z " opacity="1.0000000" fill="url(#linearGradient6827)" fill-opacity="1.0000000" stroke="none" stroke-width="0.99999958" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <g> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" opacity="1.0000000" fill="url(#linearGradient6829)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <rect - y="-438.00000" - x="271.00000" - height="9.0000000" - width="20.000000" - id="rect6795" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <path - transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830195,-35.68869)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path6797" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <g - id="g6799"> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path6801" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19811,24.86321)" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:url(#linearGradient6831);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path6803" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19818,24.86331)" /> + <rect y="-438.00000" x="271.00000" height="9.0000000" width="20.000000" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830195,-35.68869)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <g> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19811,24.86321)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19818,24.86331)" opacity="1.0000000" fill="url(#linearGradient6831)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - id="g6805"> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path6807" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:url(#linearGradient6833);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path6809" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" /> + <g> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" opacity="1.0000000" fill="url(#linearGradient6833)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - transform="translate(-1.000000,0.000000)" - id="g6811"> - <path - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - d="M 280.46875,-440.96875 C 276.88937,-440.96875 274.00000,-438.04812 274.00000,-434.46875 C 274.00000,-432.09807 275.34943,-430.13096 277.25000,-429.00000 L 283.71875,-429.00000 C 285.61932,-430.13096 286.96875,-432.12931 286.96875,-434.50000 C 286.96875,-438.07938 284.04812,-440.96875 280.46875,-440.96875 z " - id="path6813" /> - <path - style="opacity:1.0000000;fill:url(#linearGradient6835);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - d="M 280.50000,-441.00000 C 276.91200,-441.00000 274.00000,-438.08799 274.00000,-434.50000 C 274.00000,-432.12360 275.34485,-430.13368 277.25000,-429.00000 L 283.75000,-429.00000 C 285.65515,-430.13368 287.00000,-432.12360 287.00000,-434.50000 C 287.00000,-438.08800 284.08800,-440.99999 280.50000,-441.00000 z " - id="path6815" /> + <g transform="translate(-1.000000,0.000000)"> + <path d="M 280.46875,-440.96875 C 276.88937,-440.96875 274.00000,-438.04812 274.00000,-434.46875 C 274.00000,-432.09807 275.34943,-430.13096 277.25000,-429.00000 L 283.71875,-429.00000 C 285.61932,-430.13096 286.96875,-432.12931 286.96875,-434.50000 C 286.96875,-438.07938 284.04812,-440.96875 280.46875,-440.96875 z " opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 280.50000,-441.00000 C 276.91200,-441.00000 274.00000,-438.08799 274.00000,-434.50000 C 274.00000,-432.12360 275.34485,-430.13368 277.25000,-429.00000 L 283.75000,-429.00000 C 285.65515,-430.13368 287.00000,-432.12360 287.00000,-434.50000 C 287.00000,-438.08800 284.08800,-440.99999 280.50000,-441.00000 z " opacity="1.0000000" fill="url(#linearGradient6835)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <path - transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830296,-35.68884)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path6817" - style="opacity:1.0000000;fill:url(#linearGradient6837);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - sodipodi:nodetypes="ccss" - id="path6819" - d="M 292.95640,-437.33396 C 292.95487,-434.64940 289.68714,-433.62001 289.68714,-433.62001 C 289.68714,-433.62001 292.03588,-435.24596 292.02399,-437.32502 C 292.02399,-437.32502 292.95640,-437.33396 292.95640,-437.33396 z " - style="fill:#888a85;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" /> - <g - transform="matrix(1.142857,0.000000,0.000000,1.142857,-28.57139,67.00008)" - id="g6821"> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path6823" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:url(#linearGradient6839);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path6825" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" /> + <path transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830296,-35.68884)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="url(#linearGradient6837)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 292.95640,-437.33396 C 292.95487,-434.64940 289.68714,-433.62001 289.68714,-433.62001 C 289.68714,-433.62001 292.03588,-435.24596 292.02399,-437.32502 C 292.02399,-437.32502 292.95640,-437.33396 292.95640,-437.33396 z " fill="#888a85" fill-opacity="1.0000000" fill-rule="evenodd" stroke="none" stroke-width="1.0000000px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1.0000000"/> + <g transform="matrix(1.142857,0.000000,0.000000,1.142857,-28.57139,67.00008)"> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" opacity="1.0000000" fill="url(#linearGradient6839)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> </g> - <g - id="g3936"> - <g - style="opacity:0.7" - id="g4091"> - <path - style="fill:#fce94f;fill-opacity:1;stroke:#fcaf3e;stroke-width:0.73732895;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="M 24 2.5 L 21.625 9.1875 C 22.399034 9.0641318 23.191406 9 24 9 C 24.808594 9 25.600966 9.0641317 26.375 9.1875 L 24 2.5 z M 8.8125 8.78125 L 11.84375 15.21875 C 12.779034 13.928569 13.928569 12.779034 15.21875 11.84375 L 8.8125 8.78125 z M 39.21875 8.78125 L 32.78125 11.84375 C 34.071431 12.779034 35.220966 13.928569 36.15625 15.21875 L 39.21875 8.78125 z M 9.1875 21.59375 L 2.5 23.96875 L 9.1875 26.34375 C 9.0673373 25.57952 9 24.797813 9 24 C 9 23.180625 9.0608858 22.377571 9.1875 21.59375 z M 38.8125 21.625 C 38.935868 22.399034 39 23.191406 39 24 C 39 24.808594 38.935868 25.600966 38.8125 26.375 L 45.5 24 L 38.8125 21.625 z M 11.84375 32.78125 L 8.8125 39.1875 L 15.21875 36.15625 C 13.928569 35.220966 12.779034 34.071431 11.84375 32.78125 z M 36.15625 32.78125 C 35.229789 34.05926 34.087617 35.194799 32.8125 36.125 L 39.21875 39.1875 L 36.15625 32.78125 z M 21.625 38.8125 L 24 45.5 L 26.375 38.8125 C 25.600966 38.935868 24.808594 39 24 39 C 23.191406 39 22.399034 38.935868 21.625 38.8125 z " - id="path7492" /> - <path - style="fill:none;fill-opacity:1;stroke:url(#radialGradient4081);stroke-width:0.84646249;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="M 24 5.25 L 22.65625 9.0625 C 23.098888 9.0231486 23.547187 9 24 9 C 24.452813 9 24.901112 9.0231486 25.34375 9.0625 L 24 5.25 z M 10.78125 10.75 L 12.5 14.375 C 13.071538 13.694089 13.724004 13.038745 14.40625 12.46875 L 10.78125 10.75 z M 37.25 10.75 L 33.625 12.46875 C 34.304675 13.038189 34.961811 13.695325 35.53125 14.375 L 37.25 10.75 z M 9.0625 22.625 L 5.28125 23.96875 L 9.0625 25.3125 C 9.024981 24.880146 9 24.442031 9 24 C 9 23.536406 9.0212735 23.077908 9.0625 22.625 z M 38.9375 22.65625 C 38.976851 23.098888 39 23.547187 39 24 C 39 24.452813 38.976851 24.901112 38.9375 25.34375 L 42.71875 24 L 38.9375 22.65625 z M 35.53125 33.59375 C 34.958293 34.27954 34.309985 34.957363 33.625 35.53125 L 37.25 37.25 L 35.53125 33.59375 z M 12.5 33.625 L 10.78125 37.21875 L 14.375 35.5 C 13.702932 34.935884 13.064116 34.297068 12.5 33.625 z M 22.65625 38.9375 L 24 42.71875 L 25.34375 38.9375 C 24.901112 38.976851 24.452813 39 24 39 C 23.547187 39 23.098888 38.976851 22.65625 38.9375 z " - id="path7494" /> + <g> + <g opacity="0.7"> + <path d="M 24 2.5 L 21.625 9.1875 C 22.399034 9.0641318 23.191406 9 24 9 C 24.808594 9 25.600966 9.0641317 26.375 9.1875 L 24 2.5 z M 8.8125 8.78125 L 11.84375 15.21875 C 12.779034 13.928569 13.928569 12.779034 15.21875 11.84375 L 8.8125 8.78125 z M 39.21875 8.78125 L 32.78125 11.84375 C 34.071431 12.779034 35.220966 13.928569 36.15625 15.21875 L 39.21875 8.78125 z M 9.1875 21.59375 L 2.5 23.96875 L 9.1875 26.34375 C 9.0673373 25.57952 9 24.797813 9 24 C 9 23.180625 9.0608858 22.377571 9.1875 21.59375 z M 38.8125 21.625 C 38.935868 22.399034 39 23.191406 39 24 C 39 24.808594 38.935868 25.600966 38.8125 26.375 L 45.5 24 L 38.8125 21.625 z M 11.84375 32.78125 L 8.8125 39.1875 L 15.21875 36.15625 C 13.928569 35.220966 12.779034 34.071431 11.84375 32.78125 z M 36.15625 32.78125 C 35.229789 34.05926 34.087617 35.194799 32.8125 36.125 L 39.21875 39.1875 L 36.15625 32.78125 z M 21.625 38.8125 L 24 45.5 L 26.375 38.8125 C 25.600966 38.935868 24.808594 39 24 39 C 23.191406 39 22.399034 38.935868 21.625 38.8125 z " fill="#fce94f" fill-opacity="1" stroke="#fcaf3e" stroke-width="0.73732895" stroke-linecap="square" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-opacity="1"/> + <path d="M 24 5.25 L 22.65625 9.0625 C 23.098888 9.0231486 23.547187 9 24 9 C 24.452813 9 24.901112 9.0231486 25.34375 9.0625 L 24 5.25 z M 10.78125 10.75 L 12.5 14.375 C 13.071538 13.694089 13.724004 13.038745 14.40625 12.46875 L 10.78125 10.75 z M 37.25 10.75 L 33.625 12.46875 C 34.304675 13.038189 34.961811 13.695325 35.53125 14.375 L 37.25 10.75 z M 9.0625 22.625 L 5.28125 23.96875 L 9.0625 25.3125 C 9.024981 24.880146 9 24.442031 9 24 C 9 23.536406 9.0212735 23.077908 9.0625 22.625 z M 38.9375 22.65625 C 38.976851 23.098888 39 23.547187 39 24 C 39 24.452813 38.976851 24.901112 38.9375 25.34375 L 42.71875 24 L 38.9375 22.65625 z M 35.53125 33.59375 C 34.958293 34.27954 34.309985 34.957363 33.625 35.53125 L 37.25 37.25 L 35.53125 33.59375 z M 12.5 33.625 L 10.78125 37.21875 L 14.375 35.5 C 13.702932 34.935884 13.064116 34.297068 12.5 33.625 z M 22.65625 38.9375 L 24 42.71875 L 25.34375 38.9375 C 24.901112 38.976851 24.452813 39 24 39 C 23.547187 39 23.098888 38.976851 22.65625 38.9375 z " fill="none" fill-opacity="1" stroke="url(#radialGradient4081)" stroke-width="0.84646249" stroke-linecap="square" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-opacity="1"/> </g> - <g - id="g4046"> - <g - id="g3931"> - <path - inkscape:r_cy="true" - inkscape:r_cx="true" - transform="matrix(0.778062,-1.061285,1.061287,0.778062,67.47952,3.641324)" - d="M -22.5 -17.5 A 9.5 9.5 0 1 1 -41.5,-17.5 A 9.5 9.5 0 1 1 -22.5 -17.5 z" - sodipodi:ry="9.5" - sodipodi:rx="9.5" - sodipodi:cy="-17.5" - sodipodi:cx="-32" - id="path7498" - style="fill:#ffee54;fill-opacity:1;stroke:#fcaf3e;stroke-width:0.75991178;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - sodipodi:type="arc" /> - <path - inkscape:r_cy="true" - inkscape:r_cx="true" - transform="matrix(1.244257,-0.167707,0.216642,1.251844,67.61648,40.527)" - d="M -22.5 -17.5 A 9.5 9.5 0 1 1 -41.5,-17.5 A 9.5 9.5 0 1 1 -22.5 -17.5 z" - sodipodi:ry="9.5" - sodipodi:rx="9.5" - sodipodi:cy="-17.5" - sodipodi:cx="-32" - id="path7500" - style="fill:url(#radialGradient4020);fill-opacity:1;stroke:none;stroke-width:1.01737845;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - sodipodi:type="arc" /> - <path - inkscape:r_cy="true" - inkscape:r_cx="true" - transform="matrix(0.715791,-0.976349,0.97635,0.715792,64.00044,5.269544)" - d="M -22.5 -17.5 A 9.5 9.5 0 1 1 -41.5,-17.5 A 9.5 9.5 0 1 1 -22.5 -17.5 z" - sodipodi:ry="9.5" - sodipodi:rx="9.5" - sodipodi:cy="-17.5" - sodipodi:cx="-32" - id="path7502" - style="fill:none;fill-opacity:1;stroke:url(#linearGradient3168);stroke-width:0.82601947;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - sodipodi:type="arc" /> + <g> + <g> + <path transform="matrix(0.778062,-1.061285,1.061287,0.778062,67.47952,3.641324)" d="M -22.5 -17.5 A 9.5 9.5 0 1 1 -41.5,-17.5 A 9.5 9.5 0 1 1 -22.5 -17.5 z" fill="#ffee54" fill-opacity="1" stroke="#fcaf3e" stroke-width="0.75991178" stroke-linecap="square" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-opacity="1"/> + <path transform="matrix(1.244257,-0.167707,0.216642,1.251844,67.61648,40.527)" d="M -22.5 -17.5 A 9.5 9.5 0 1 1 -41.5,-17.5 A 9.5 9.5 0 1 1 -22.5 -17.5 z" fill="url(#radialGradient4020)" fill-opacity="1" stroke="none" stroke-width="1.01737845" stroke-linecap="square" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-opacity="1"/> + <path transform="matrix(0.715791,-0.976349,0.97635,0.715792,64.00044,5.269544)" d="M -22.5 -17.5 A 9.5 9.5 0 1 1 -41.5,-17.5 A 9.5 9.5 0 1 1 -22.5 -17.5 z" fill="none" fill-opacity="1" stroke="url(#linearGradient3168)" stroke-width="0.82601947" stroke-linecap="square" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-opacity="1"/> </g> </g> </g> - <g - id="g6668" - transform="translate(-248.99,467.9855)"> - <path - sodipodi:nodetypes="ccsscsssscsscc" - id="path6670" - d="M 280.50000,-445.50000 C 278.22917,-445.50000 276.39009,-443.94972 275.78125,-441.87500 C 275.08802,-442.23883 274.33674,-442.50000 273.50000,-442.50000 C 270.74000,-442.50000 268.49999,-440.26001 268.50000,-437.50000 C 268.50000,-436.92107 268.66252,-436.39230 268.84375,-435.87500 C 267.47028,-435.10426 266.50000,-433.68600 266.50000,-432.00000 C 266.50000,-429.51600 268.51600,-427.49999 271.00000,-427.50000 C 271.17713,-427.50000 289.82287,-427.50000 290.00000,-427.50000 C 292.48399,-427.50000 294.50000,-429.51600 294.50000,-432.00000 C 294.50000,-433.68600 293.52972,-435.10426 292.15625,-435.87500 C 292.33749,-436.39229 292.50000,-436.92108 292.50000,-437.50000 C 292.50000,-440.26000 290.26000,-442.49999 287.50000,-442.50000 C 286.66326,-442.50000 285.91198,-442.23883 285.21875,-441.87500 C 284.60991,-443.94972 282.77083,-445.50000 280.50000,-445.50000 z " - style="fill:#c4c5c2;fill-opacity:1.0000000;stroke:#888a85;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <path - sodipodi:nodetypes="ccsscsssscsscc" - id="path6672" - d="M 280.50000,-445.00000 C 278.31028,-445.00000 276.77640,-443.66423 276.10445,-441.15648 C 275.43599,-441.50010 274.55686,-441.98983 273.75000,-441.98983 C 271.03349,-441.98983 268.99486,-440.05101 268.99487,-437.44429 C 268.99487,-436.89752 269.26208,-436.11085 269.43683,-435.62228 C 268.11240,-434.89433 267.00000,-433.73178 267.00000,-432.24973 C 267.00000,-429.90368 268.54617,-427.99964 271.33928,-427.99964 C 271.51009,-427.99964 289.48992,-427.99964 289.66072,-427.99964 C 292.43173,-427.99964 294.00000,-429.90368 294.00000,-432.24973 C 294.00000,-433.84210 292.88760,-434.91642 291.56317,-435.64437 C 291.73793,-436.13293 292.02724,-436.89753 292.02724,-437.44429 C 292.02724,-440.05100 289.91143,-442.01192 287.25001,-442.01193 C 286.44314,-442.01193 285.60820,-441.52219 284.93974,-441.17857 C 284.29089,-443.60011 282.68973,-445.00000 280.50000,-445.00000 z " - style="opacity:1.0000000;fill:url(#linearGradient6712);fill-opacity:1.0000000;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <g - id="g6674"> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path6676" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:url(#linearGradient6714);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path6678" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" /> + <g transform="translate(-248.99,467.9855)"> + <path d="M 280.50000,-445.50000 C 278.22917,-445.50000 276.39009,-443.94972 275.78125,-441.87500 C 275.08802,-442.23883 274.33674,-442.50000 273.50000,-442.50000 C 270.74000,-442.50000 268.49999,-440.26001 268.50000,-437.50000 C 268.50000,-436.92107 268.66252,-436.39230 268.84375,-435.87500 C 267.47028,-435.10426 266.50000,-433.68600 266.50000,-432.00000 C 266.50000,-429.51600 268.51600,-427.49999 271.00000,-427.50000 C 271.17713,-427.50000 289.82287,-427.50000 290.00000,-427.50000 C 292.48399,-427.50000 294.50000,-429.51600 294.50000,-432.00000 C 294.50000,-433.68600 293.52972,-435.10426 292.15625,-435.87500 C 292.33749,-436.39229 292.50000,-436.92108 292.50000,-437.50000 C 292.50000,-440.26000 290.26000,-442.49999 287.50000,-442.50000 C 286.66326,-442.50000 285.91198,-442.23883 285.21875,-441.87500 C 284.60991,-443.94972 282.77083,-445.50000 280.50000,-445.50000 z " fill="#c4c5c2" fill-opacity="1.0000000" stroke="#888a85" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 280.50000,-445.00000 C 278.31028,-445.00000 276.77640,-443.66423 276.10445,-441.15648 C 275.43599,-441.50010 274.55686,-441.98983 273.75000,-441.98983 C 271.03349,-441.98983 268.99486,-440.05101 268.99487,-437.44429 C 268.99487,-436.89752 269.26208,-436.11085 269.43683,-435.62228 C 268.11240,-434.89433 267.00000,-433.73178 267.00000,-432.24973 C 267.00000,-429.90368 268.54617,-427.99964 271.33928,-427.99964 C 271.51009,-427.99964 289.48992,-427.99964 289.66072,-427.99964 C 292.43173,-427.99964 294.00000,-429.90368 294.00000,-432.24973 C 294.00000,-433.84210 292.88760,-434.91642 291.56317,-435.64437 C 291.73793,-436.13293 292.02724,-436.89753 292.02724,-437.44429 C 292.02724,-440.05100 289.91143,-442.01192 287.25001,-442.01193 C 286.44314,-442.01193 285.60820,-441.52219 284.93974,-441.17857 C 284.29089,-443.60011 282.68973,-445.00000 280.50000,-445.00000 z " opacity="1.0000000" fill="url(#linearGradient6712)" fill-opacity="1.0000000" stroke="none" stroke-width="0.99999958" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <g> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" opacity="1.0000000" fill="url(#linearGradient6714)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <rect - y="-438.00000" - x="271.00000" - height="9.0000000" - width="20.000000" - id="rect6680" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <path - transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830195,-35.68869)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path6682" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <g - id="g6684"> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path6686" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19811,24.86321)" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:url(#linearGradient6716);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path6688" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19818,24.86331)" /> + <rect y="-438.00000" x="271.00000" height="9.0000000" width="20.000000" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830195,-35.68869)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <g> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19811,24.86321)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19818,24.86331)" opacity="1.0000000" fill="url(#linearGradient6716)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - id="g6690"> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path6692" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:url(#linearGradient6718);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path6694" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" /> + <g> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" opacity="1.0000000" fill="url(#linearGradient6718)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - transform="translate(-1.000000,0.000000)" - id="g6696"> - <path - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - d="M 280.46875,-440.96875 C 276.88937,-440.96875 274.00000,-438.04812 274.00000,-434.46875 C 274.00000,-432.09807 275.34943,-430.13096 277.25000,-429.00000 L 283.71875,-429.00000 C 285.61932,-430.13096 286.96875,-432.12931 286.96875,-434.50000 C 286.96875,-438.07938 284.04812,-440.96875 280.46875,-440.96875 z " - id="path6698" /> - <path - style="opacity:1.0000000;fill:url(#linearGradient6720);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - d="M 280.50000,-441.00000 C 276.91200,-441.00000 274.00000,-438.08799 274.00000,-434.50000 C 274.00000,-432.12360 275.34485,-430.13368 277.25000,-429.00000 L 283.75000,-429.00000 C 285.65515,-430.13368 287.00000,-432.12360 287.00000,-434.50000 C 287.00000,-438.08800 284.08800,-440.99999 280.50000,-441.00000 z " - id="path6700" /> + <g transform="translate(-1.000000,0.000000)"> + <path d="M 280.46875,-440.96875 C 276.88937,-440.96875 274.00000,-438.04812 274.00000,-434.46875 C 274.00000,-432.09807 275.34943,-430.13096 277.25000,-429.00000 L 283.71875,-429.00000 C 285.61932,-430.13096 286.96875,-432.12931 286.96875,-434.50000 C 286.96875,-438.07938 284.04812,-440.96875 280.46875,-440.96875 z " opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 280.50000,-441.00000 C 276.91200,-441.00000 274.00000,-438.08799 274.00000,-434.50000 C 274.00000,-432.12360 275.34485,-430.13368 277.25000,-429.00000 L 283.75000,-429.00000 C 285.65515,-430.13368 287.00000,-432.12360 287.00000,-434.50000 C 287.00000,-438.08800 284.08800,-440.99999 280.50000,-441.00000 z " opacity="1.0000000" fill="url(#linearGradient6720)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <path - transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830296,-35.68884)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path6702" - style="opacity:1.0000000;fill:url(#linearGradient6722);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - sodipodi:nodetypes="ccss" - id="path6704" - d="M 292.95640,-437.33396 C 292.95487,-434.64940 289.68714,-433.62001 289.68714,-433.62001 C 289.68714,-433.62001 292.03588,-435.24596 292.02399,-437.32502 C 292.02399,-437.32502 292.95640,-437.33396 292.95640,-437.33396 z " - style="fill:#888a85;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" /> - <g - transform="matrix(1.142857,0.000000,0.000000,1.142857,-28.57139,67.00008)" - id="g6706"> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path6708" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:url(#linearGradient6724);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path6710" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" /> + <path transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830296,-35.68884)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="url(#linearGradient6722)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 292.95640,-437.33396 C 292.95487,-434.64940 289.68714,-433.62001 289.68714,-433.62001 C 289.68714,-433.62001 292.03588,-435.24596 292.02399,-437.32502 C 292.02399,-437.32502 292.95640,-437.33396 292.95640,-437.33396 z " fill="#888a85" fill-opacity="1.0000000" fill-rule="evenodd" stroke="none" stroke-width="1.0000000px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1.0000000"/> + <g transform="matrix(1.142857,0.000000,0.000000,1.142857,-28.57139,67.00008)"> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" opacity="1.0000000" fill="url(#linearGradient6724)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> </g> </g> diff --git a/demos/embedded/weatherinfo/icons/weather-fog.svg b/demos/embedded/weatherinfo/icons/weather-fog.svg index a9a4ca8..56a2444 100644 --- a/demos/embedded/weatherinfo/icons/weather-fog.svg +++ b/demos/embedded/weatherinfo/icons/weather-fog.svg @@ -1,1585 +1,114 @@ <?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="svg2670" - sodipodi:version="0.32" - inkscape:version="0.46" - version="1.0" - sodipodi:docname="weather-fog.svg" - inkscape:output_extension="org.inkscape.output.svg.inkscape"> - <defs - id="defs2672"> - <linearGradient - inkscape:collect="always" - id="linearGradient6549"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6551" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6553" /> +<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="48" height="48" id="svg2670" version="1.0"> + <defs id="defs2672"> + <linearGradient id="linearGradient6549"> + <stop offset="0" id="stop6551" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6553" stop-color="#ffffff" stop-opacity="0"/> </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient6527"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6530" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6532" /> + <linearGradient id="linearGradient6527"> + <stop offset="0" id="stop6530" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6532" stop-color="#ffffff" stop-opacity="0"/> </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient6538"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6540" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6542" /> + <linearGradient id="linearGradient6538"> + <stop offset="0" id="stop6540" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6542" stop-color="#ffffff" stop-opacity="0"/> </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient6513"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6515" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6517" /> + <linearGradient id="linearGradient6513"> + <stop offset="0" id="stop6515" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6517" stop-color="#ffffff" stop-opacity="0"/> </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient6497"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6499" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6501" /> + <linearGradient id="linearGradient6497"> + <stop offset="0" id="stop6499" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6501" stop-color="#ffffff" stop-opacity="0"/> </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient6470"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6472" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6474" /> + <linearGradient id="linearGradient6470"> + <stop offset="0" id="stop6472" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6474" stop-color="#ffffff" stop-opacity="0"/> </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient7834"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop7836" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop7838" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient8397"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop8400" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop8402" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient8315"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop8317" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop8319" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient8381"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop8383" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop8385" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient8331"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop8333" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop8335" /> - </linearGradient> - <linearGradient - id="linearGradient8302"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop8304" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop8306" /> - </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="perspective2678" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8302" - id="linearGradient4844" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(69.00259,102)" - x1="228.50261" - y1="-392.30591" - x2="278.91510" - y2="-375.37952" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8331" - id="linearGradient4846" - gradientUnits="userSpaceOnUse" - x1="240.07379" - y1="-393.40720" - x2="245.82706" - y2="-388.55029" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8381" - id="linearGradient4848" - gradientUnits="userSpaceOnUse" - x1="246.74042" - y1="-391.31381" - x2="252.69785" - y2="-385.35165" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8315" - id="linearGradient4850" - gradientUnits="userSpaceOnUse" - x1="230.87598" - y1="-390.43951" - x2="235.25652" - y2="-386.95901" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8397" - id="linearGradient4852" - gradientUnits="userSpaceOnUse" - x1="238.00478" - y1="-388.47476" - x2="245.65462" - y2="-382.64539" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient7834" - id="linearGradient4854" - gradientUnits="userSpaceOnUse" - x1="-156.29044" - y1="-100.53421" - x2="-153.09810" - y2="-96.544556" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6470" - id="linearGradient4856" - gradientUnits="userSpaceOnUse" - x1="271.02170" - y1="-441.05182" - x2="285.02859" - y2="-431.96991" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6497" - id="linearGradient4858" - gradientUnits="userSpaceOnUse" - x1="287.51730" - y1="-439.75281" - x2="289.67633" - y2="-436.32199" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6513" - id="linearGradient4860" - gradientUnits="userSpaceOnUse" - x1="286.51172" - y1="-441.29074" - x2="289.85379" - y2="-436.14453" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient4862" - gradientUnits="userSpaceOnUse" - x1="285.94086" - y1="-439.93900" - x2="289.39124" - y2="-436.44290" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6527" - id="linearGradient4864" - gradientUnits="userSpaceOnUse" - x1="275.94193" - y1="-437.10501" - x2="279.97546" - y2="-431.91833" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6549" - id="linearGradient4866" - gradientUnits="userSpaceOnUse" - x1="286.66589" - y1="-439.48358" - x2="289.76562" - y2="-436.70703" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient4868" - gradientUnits="userSpaceOnUse" - x1="284.80219" - y1="-441.23294" - x2="288.89954" - y2="-436.83109" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6470" - id="linearGradient4870" - gradientUnits="userSpaceOnUse" - x1="271.02170" - y1="-441.05182" - x2="285.02859" - y2="-431.96991" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6497" - id="linearGradient4872" - gradientUnits="userSpaceOnUse" - x1="287.51730" - y1="-439.75281" - x2="289.67633" - y2="-436.32199" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6513" - id="linearGradient4874" - gradientUnits="userSpaceOnUse" - x1="286.51172" - y1="-441.29074" - x2="289.85379" - y2="-436.14453" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient4876" - gradientUnits="userSpaceOnUse" - x1="285.94086" - y1="-439.93900" - x2="289.39124" - y2="-436.44290" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6527" - id="linearGradient4878" - gradientUnits="userSpaceOnUse" - x1="275.94193" - y1="-437.10501" - x2="279.97546" - y2="-431.91833" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6549" - id="linearGradient4880" - gradientUnits="userSpaceOnUse" - x1="286.66589" - y1="-439.48358" - x2="289.76562" - y2="-436.70703" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient4882" - gradientUnits="userSpaceOnUse" - x1="284.80219" - y1="-441.23294" - x2="288.89954" - y2="-436.83109" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8302" - id="linearGradient5018" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(69.00259,102)" - x1="228.50261" - y1="-392.30591" - x2="278.91510" - y2="-375.37952" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8331" - id="linearGradient5020" - gradientUnits="userSpaceOnUse" - x1="240.07379" - y1="-393.40720" - x2="245.82706" - y2="-388.55029" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8381" - id="linearGradient5022" - gradientUnits="userSpaceOnUse" - x1="246.74042" - y1="-391.31381" - x2="252.69785" - y2="-385.35165" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8315" - id="linearGradient5024" - gradientUnits="userSpaceOnUse" - x1="230.87598" - y1="-390.43951" - x2="235.25652" - y2="-386.95901" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8397" - id="linearGradient5026" - gradientUnits="userSpaceOnUse" - x1="238.00478" - y1="-388.47476" - x2="245.65462" - y2="-382.64539" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient7834" - id="linearGradient5028" - gradientUnits="userSpaceOnUse" - x1="-156.29044" - y1="-100.53421" - x2="-153.09810" - y2="-96.544556" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6470" - id="linearGradient5030" - gradientUnits="userSpaceOnUse" - x1="271.02170" - y1="-441.05182" - x2="285.02859" - y2="-431.96991" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6497" - id="linearGradient5032" - gradientUnits="userSpaceOnUse" - x1="287.51730" - y1="-439.75281" - x2="289.67633" - y2="-436.32199" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6513" - id="linearGradient5034" - gradientUnits="userSpaceOnUse" - x1="286.51172" - y1="-441.29074" - x2="289.85379" - y2="-436.14453" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient5036" - gradientUnits="userSpaceOnUse" - x1="285.94086" - y1="-439.93900" - x2="289.39124" - y2="-436.44290" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6527" - id="linearGradient5038" - gradientUnits="userSpaceOnUse" - x1="275.94193" - y1="-437.10501" - x2="279.97546" - y2="-431.91833" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6549" - id="linearGradient5040" - gradientUnits="userSpaceOnUse" - x1="286.66589" - y1="-439.48358" - x2="289.76562" - y2="-436.70703" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient5042" - gradientUnits="userSpaceOnUse" - x1="284.80219" - y1="-441.23294" - x2="288.89954" - y2="-436.83109" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6470" - id="linearGradient5044" - gradientUnits="userSpaceOnUse" - x1="271.02170" - y1="-441.05182" - x2="285.02859" - y2="-431.96991" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6497" - id="linearGradient5046" - gradientUnits="userSpaceOnUse" - x1="287.51730" - y1="-439.75281" - x2="289.67633" - y2="-436.32199" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6513" - id="linearGradient5048" - gradientUnits="userSpaceOnUse" - x1="286.51172" - y1="-441.29074" - x2="289.85379" - y2="-436.14453" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient5050" - gradientUnits="userSpaceOnUse" - x1="285.94086" - y1="-439.93900" - x2="289.39124" - y2="-436.44290" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6527" - id="linearGradient5052" - gradientUnits="userSpaceOnUse" - x1="275.94193" - y1="-437.10501" - x2="279.97546" - y2="-431.91833" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6549" - id="linearGradient5054" - gradientUnits="userSpaceOnUse" - x1="286.66589" - y1="-439.48358" - x2="289.76562" - y2="-436.70703" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient5056" - gradientUnits="userSpaceOnUse" - x1="284.80219" - y1="-441.23294" - x2="288.89954" - y2="-436.83109" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8302" - id="linearGradient5119" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-245.83994,432.62036)" - x1="228.50261" - y1="-392.30591" - x2="278.91510" - y2="-375.37952" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6470" - id="linearGradient5122" - gradientUnits="userSpaceOnUse" - x1="271.02170" - y1="-441.05182" - x2="285.02859" - y2="-431.96991" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6497" - id="linearGradient5124" - gradientUnits="userSpaceOnUse" - x1="287.51730" - y1="-439.75281" - x2="289.67633" - y2="-436.32199" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6513" - id="linearGradient5126" - gradientUnits="userSpaceOnUse" - x1="286.51172" - y1="-441.29074" - x2="289.85379" - y2="-436.14453" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient5128" - gradientUnits="userSpaceOnUse" - x1="285.94086" - y1="-439.93900" - x2="289.39124" - y2="-436.44290" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6527" - id="linearGradient5130" - gradientUnits="userSpaceOnUse" - x1="275.94193" - y1="-437.10501" - x2="279.97546" - y2="-431.91833" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6549" - id="linearGradient5132" - gradientUnits="userSpaceOnUse" - x1="286.66589" - y1="-439.48358" - x2="289.76562" - y2="-436.70703" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient5134" - gradientUnits="userSpaceOnUse" - x1="284.80219" - y1="-441.23294" - x2="288.89954" - y2="-436.83109" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6470" - id="linearGradient5156" - gradientUnits="userSpaceOnUse" - x1="271.02170" - y1="-441.05182" - x2="285.02859" - y2="-431.96991" - gradientTransform="translate(-276.83994,492.62036)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6470" - id="linearGradient5159" - gradientUnits="userSpaceOnUse" - x1="271.02170" - y1="-441.05182" - x2="285.02859" - y2="-431.96991" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6497" - id="linearGradient5161" - gradientUnits="userSpaceOnUse" - x1="287.51730" - y1="-439.75281" - x2="289.67633" - y2="-436.32199" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6513" - id="linearGradient5163" - gradientUnits="userSpaceOnUse" - x1="286.51172" - y1="-441.29074" - x2="289.85379" - y2="-436.14453" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient5165" - gradientUnits="userSpaceOnUse" - x1="285.94086" - y1="-439.93900" - x2="289.39124" - y2="-436.44290" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6527" - id="linearGradient5167" - gradientUnits="userSpaceOnUse" - x1="275.94193" - y1="-437.10501" - x2="279.97546" - y2="-431.91833" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6549" - id="linearGradient5169" - gradientUnits="userSpaceOnUse" - x1="286.66589" - y1="-439.48358" - x2="289.76562" - y2="-436.70703" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient5171" - gradientUnits="userSpaceOnUse" - x1="284.80219" - y1="-441.23294" - x2="288.89954" - y2="-436.83109" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6470" - id="linearGradient5193" - gradientUnits="userSpaceOnUse" - x1="271.02170" - y1="-441.05182" - x2="285.02859" - y2="-431.96991" - gradientTransform="translate(-291.84253,488.62036)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6470" - id="linearGradient5221" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-291.84253,488.62036)" - x1="271.02170" - y1="-441.05182" - x2="285.02859" - y2="-431.96991" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8302" - id="linearGradient5298" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(69.00259,102)" - x1="228.50261" - y1="-392.30591" - x2="278.91510" - y2="-375.37952" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8331" - id="linearGradient5300" - gradientUnits="userSpaceOnUse" - x1="240.07379" - y1="-393.40720" - x2="245.82706" - y2="-388.55029" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8381" - id="linearGradient5302" - gradientUnits="userSpaceOnUse" - x1="246.74042" - y1="-391.31381" - x2="252.69785" - y2="-385.35165" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8315" - id="linearGradient5304" - gradientUnits="userSpaceOnUse" - x1="230.87598" - y1="-390.43951" - x2="235.25652" - y2="-386.95901" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8397" - id="linearGradient5306" - gradientUnits="userSpaceOnUse" - x1="238.00478" - y1="-388.47476" - x2="245.65462" - y2="-382.64539" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient7834" - id="linearGradient5308" - gradientUnits="userSpaceOnUse" - x1="-156.29044" - y1="-100.53421" - x2="-153.09810" - y2="-96.544556" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6470" - id="linearGradient5310" - gradientUnits="userSpaceOnUse" - x1="271.02170" - y1="-441.05182" - x2="285.02859" - y2="-431.96991" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6497" - id="linearGradient5312" - gradientUnits="userSpaceOnUse" - x1="287.51730" - y1="-439.75281" - x2="289.67633" - y2="-436.32199" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6513" - id="linearGradient5314" - gradientUnits="userSpaceOnUse" - x1="286.51172" - y1="-441.29074" - x2="289.85379" - y2="-436.14453" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient5316" - gradientUnits="userSpaceOnUse" - x1="285.94086" - y1="-439.93900" - x2="289.39124" - y2="-436.44290" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6527" - id="linearGradient5318" - gradientUnits="userSpaceOnUse" - x1="275.94193" - y1="-437.10501" - x2="279.97546" - y2="-431.91833" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6549" - id="linearGradient5320" - gradientUnits="userSpaceOnUse" - x1="286.66589" - y1="-439.48358" - x2="289.76562" - y2="-436.70703" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient5322" - gradientUnits="userSpaceOnUse" - x1="284.80219" - y1="-441.23294" - x2="288.89954" - y2="-436.83109" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6470" - id="linearGradient5324" - gradientUnits="userSpaceOnUse" - x1="271.02170" - y1="-441.05182" - x2="285.02859" - y2="-431.96991" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6497" - id="linearGradient5326" - gradientUnits="userSpaceOnUse" - x1="287.51730" - y1="-439.75281" - x2="289.67633" - y2="-436.32199" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6513" - id="linearGradient5328" - gradientUnits="userSpaceOnUse" - x1="286.51172" - y1="-441.29074" - x2="289.85379" - y2="-436.14453" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient5330" - gradientUnits="userSpaceOnUse" - x1="285.94086" - y1="-439.93900" - x2="289.39124" - y2="-436.44290" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6527" - id="linearGradient5332" - gradientUnits="userSpaceOnUse" - x1="275.94193" - y1="-437.10501" - x2="279.97546" - y2="-431.91833" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6549" - id="linearGradient5334" - gradientUnits="userSpaceOnUse" - x1="286.66589" - y1="-439.48358" - x2="289.76562" - y2="-436.70703" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient5336" - gradientUnits="userSpaceOnUse" - x1="284.80219" - y1="-441.23294" - x2="288.89954" - y2="-436.83109" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8302" - id="linearGradient5399" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-217.99871,406.5)" - x1="228.50261" - y1="-392.30591" - x2="278.91510" - y2="-375.37952" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8302" - id="linearGradient5432" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-245.83994,432.62036)" - x1="228.50261" - y1="-392.30591" - x2="278.91510" - y2="-375.37952" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6470" - id="linearGradient5434" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-276.83994,492.62036)" - x1="271.02170" - y1="-441.05182" - x2="285.02859" - y2="-431.96991" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6470" - id="linearGradient5436" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-291.84253,488.62036)" - x1="271.02170" - y1="-441.05182" - x2="285.02859" - y2="-431.96991" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8302" - id="linearGradient5515" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-217.99871,406.5)" - x1="228.50261" - y1="-392.30591" - x2="278.91510" - y2="-375.37952" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8331" - id="linearGradient5517" - gradientUnits="userSpaceOnUse" - x1="240.07379" - y1="-393.40720" - x2="245.82706" - y2="-388.55029" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8381" - id="linearGradient5519" - gradientUnits="userSpaceOnUse" - x1="246.74042" - y1="-391.31381" - x2="252.69785" - y2="-385.35165" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8315" - id="linearGradient5521" - gradientUnits="userSpaceOnUse" - x1="230.87598" - y1="-390.43951" - x2="235.25652" - y2="-386.95901" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8397" - id="linearGradient5523" - gradientUnits="userSpaceOnUse" - x1="238.00478" - y1="-388.47476" - x2="245.65462" - y2="-382.64539" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient7834" - id="linearGradient5525" - gradientUnits="userSpaceOnUse" - x1="-156.29044" - y1="-100.53421" - x2="-153.09810" - y2="-96.544556" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6470" - id="linearGradient5527" - gradientUnits="userSpaceOnUse" - x1="271.02170" - y1="-441.05182" - x2="285.02859" - y2="-431.96991" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6497" - id="linearGradient5529" - gradientUnits="userSpaceOnUse" - x1="287.51730" - y1="-439.75281" - x2="289.67633" - y2="-436.32199" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6513" - id="linearGradient5531" - gradientUnits="userSpaceOnUse" - x1="286.51172" - y1="-441.29074" - x2="289.85379" - y2="-436.14453" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient5533" - gradientUnits="userSpaceOnUse" - x1="285.94086" - y1="-439.93900" - x2="289.39124" - y2="-436.44290" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6527" - id="linearGradient5535" - gradientUnits="userSpaceOnUse" - x1="275.94193" - y1="-437.10501" - x2="279.97546" - y2="-431.91833" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6549" - id="linearGradient5537" - gradientUnits="userSpaceOnUse" - x1="286.66589" - y1="-439.48358" - x2="289.76562" - y2="-436.70703" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient5539" - gradientUnits="userSpaceOnUse" - x1="284.80219" - y1="-441.23294" - x2="288.89954" - y2="-436.83109" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6470" - id="linearGradient5541" - gradientUnits="userSpaceOnUse" - x1="271.02170" - y1="-441.05182" - x2="285.02859" - y2="-431.96991" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6497" - id="linearGradient5543" - gradientUnits="userSpaceOnUse" - x1="287.51730" - y1="-439.75281" - x2="289.67633" - y2="-436.32199" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6513" - id="linearGradient5545" - gradientUnits="userSpaceOnUse" - x1="286.51172" - y1="-441.29074" - x2="289.85379" - y2="-436.14453" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient5547" - gradientUnits="userSpaceOnUse" - x1="285.94086" - y1="-439.93900" - x2="289.39124" - y2="-436.44290" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6527" - id="linearGradient5549" - gradientUnits="userSpaceOnUse" - x1="275.94193" - y1="-437.10501" - x2="279.97546" - y2="-431.91833" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6549" - id="linearGradient5551" - gradientUnits="userSpaceOnUse" - x1="286.66589" - y1="-439.48358" - x2="289.76562" - y2="-436.70703" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient5553" - gradientUnits="userSpaceOnUse" - x1="284.80219" - y1="-441.23294" - x2="288.89954" - y2="-436.83109" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6470" - id="linearGradient5689" - gradientUnits="userSpaceOnUse" - x1="271.02170" - y1="-441.05182" - x2="285.02859" - y2="-431.96991" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6497" - id="linearGradient5691" - gradientUnits="userSpaceOnUse" - x1="287.51730" - y1="-439.75281" - x2="289.67633" - y2="-436.32199" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6513" - id="linearGradient5693" - gradientUnits="userSpaceOnUse" - x1="286.51172" - y1="-441.29074" - x2="289.85379" - y2="-436.14453" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient5695" - gradientUnits="userSpaceOnUse" - x1="285.94086" - y1="-439.93900" - x2="289.39124" - y2="-436.44290" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6527" - id="linearGradient5697" - gradientUnits="userSpaceOnUse" - x1="275.94193" - y1="-437.10501" - x2="279.97546" - y2="-431.91833" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6549" - id="linearGradient5699" - gradientUnits="userSpaceOnUse" - x1="286.66589" - y1="-439.48358" - x2="289.76562" - y2="-436.70703" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient5701" - gradientUnits="userSpaceOnUse" - x1="284.80219" - y1="-441.23294" - x2="288.89954" - y2="-436.83109" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6470" - id="linearGradient5703" - gradientUnits="userSpaceOnUse" - x1="271.02170" - y1="-441.05182" - x2="285.02859" - y2="-431.96991" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6497" - id="linearGradient5705" - gradientUnits="userSpaceOnUse" - x1="287.51730" - y1="-439.75281" - x2="289.67633" - y2="-436.32199" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6513" - id="linearGradient5707" - gradientUnits="userSpaceOnUse" - x1="286.51172" - y1="-441.29074" - x2="289.85379" - y2="-436.14453" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient5709" - gradientUnits="userSpaceOnUse" - x1="285.94086" - y1="-439.93900" - x2="289.39124" - y2="-436.44290" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6527" - id="linearGradient5711" - gradientUnits="userSpaceOnUse" - x1="275.94193" - y1="-437.10501" - x2="279.97546" - y2="-431.91833" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6549" - id="linearGradient5713" - gradientUnits="userSpaceOnUse" - x1="286.66589" - y1="-439.48358" - x2="289.76562" - y2="-436.70703" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient5715" - gradientUnits="userSpaceOnUse" - x1="284.80219" - y1="-441.23294" - x2="288.89954" - y2="-436.83109" /> + <linearGradient xlink:href="#linearGradient6470" id="linearGradient5689" gradientUnits="userSpaceOnUse" x1="271.02170" y1="-441.05182" x2="285.02859" y2="-431.96991"/> + <linearGradient xlink:href="#linearGradient6497" id="linearGradient5691" gradientUnits="userSpaceOnUse" x1="287.51730" y1="-439.75281" x2="289.67633" y2="-436.32199"/> + <linearGradient xlink:href="#linearGradient6513" id="linearGradient5693" gradientUnits="userSpaceOnUse" x1="286.51172" y1="-441.29074" x2="289.85379" y2="-436.14453"/> + <linearGradient xlink:href="#linearGradient6538" id="linearGradient5695" gradientUnits="userSpaceOnUse" x1="285.94086" y1="-439.93900" x2="289.39124" y2="-436.44290"/> + <linearGradient xlink:href="#linearGradient6527" id="linearGradient5697" gradientUnits="userSpaceOnUse" x1="275.94193" y1="-437.10501" x2="279.97546" y2="-431.91833"/> + <linearGradient xlink:href="#linearGradient6549" id="linearGradient5699" gradientUnits="userSpaceOnUse" x1="286.66589" y1="-439.48358" x2="289.76562" y2="-436.70703"/> + <linearGradient xlink:href="#linearGradient6538" id="linearGradient5701" gradientUnits="userSpaceOnUse" x1="284.80219" y1="-441.23294" x2="288.89954" y2="-436.83109"/> + <linearGradient xlink:href="#linearGradient6470" id="linearGradient5703" gradientUnits="userSpaceOnUse" x1="271.02170" y1="-441.05182" x2="285.02859" y2="-431.96991"/> + <linearGradient xlink:href="#linearGradient6497" id="linearGradient5705" gradientUnits="userSpaceOnUse" x1="287.51730" y1="-439.75281" x2="289.67633" y2="-436.32199"/> + <linearGradient xlink:href="#linearGradient6513" id="linearGradient5707" gradientUnits="userSpaceOnUse" x1="286.51172" y1="-441.29074" x2="289.85379" y2="-436.14453"/> + <linearGradient xlink:href="#linearGradient6538" id="linearGradient5709" gradientUnits="userSpaceOnUse" x1="285.94086" y1="-439.93900" x2="289.39124" y2="-436.44290"/> + <linearGradient xlink:href="#linearGradient6527" id="linearGradient5711" gradientUnits="userSpaceOnUse" x1="275.94193" y1="-437.10501" x2="279.97546" y2="-431.91833"/> + <linearGradient xlink:href="#linearGradient6549" id="linearGradient5713" gradientUnits="userSpaceOnUse" x1="286.66589" y1="-439.48358" x2="289.76562" y2="-436.70703"/> + <linearGradient xlink:href="#linearGradient6538" id="linearGradient5715" gradientUnits="userSpaceOnUse" x1="284.80219" y1="-441.23294" x2="288.89954" y2="-436.83109"/> </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="16.270833" - inkscape:cx="12.725406" - inkscape:cy="24" - inkscape:document-units="px" - inkscape:current-layer="layer1" - showgrid="false" - showguides="true" - inkscape:guide-bbox="true" - inkscape:window-width="1272" - inkscape:window-height="965" - inkscape:window-x="0" - inkscape:window-y="0" /> - <metadata - id="metadata2675"> + + <metadata id="metadata2675"> <rdf:RDF> - <cc:Work - rdf:about=""> + <cc:Work rdf:about=""> <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <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"> - <g - id="g5641" - transform="translate(5e-6,-4)"> - <g - style="opacity:0.45" - transform="translate(-248.99871,466.5)" - id="g7794"> - <path - style="fill:#c4c5c2;fill-opacity:1;stroke:#888a85;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - d="M 280.5,-445.5 C 278.22917,-445.5 276.39009,-443.94972 275.78125,-441.875 C 275.08802,-442.23883 274.33674,-442.5 273.5,-442.5 C 270.74,-442.5 268.49999,-440.26001 268.5,-437.5 C 268.5,-436.92107 268.66252,-436.3923 268.84375,-435.875 C 267.47028,-435.10426 266.5,-433.686 266.5,-432 C 266.5,-429.516 268.516,-427.49999 271,-427.5 C 271.17713,-427.5 289.82287,-427.5 290,-427.5 C 292.48399,-427.5 294.5,-429.516 294.5,-432 C 294.5,-433.686 293.52972,-435.10426 292.15625,-435.875 C 292.33749,-436.39229 292.5,-436.92108 292.5,-437.5 C 292.5,-440.26 290.26,-442.49999 287.5,-442.5 C 286.66326,-442.5 285.91198,-442.23883 285.21875,-441.875 C 284.60991,-443.94972 282.77083,-445.5 280.5,-445.5 z" - id="path7796" - sodipodi:nodetypes="ccsscsssscsscc" /> - <path - style="opacity:1;fill:url(#linearGradient5689);fill-opacity:1;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - d="M 280.5,-445 C 278.31028,-445 276.7764,-443.66423 276.10445,-441.15648 C 275.43599,-441.5001 274.55686,-441.98983 273.75,-441.98983 C 271.03349,-441.98983 268.99486,-440.05101 268.99487,-437.44429 C 268.99487,-436.89752 269.26208,-436.11085 269.43683,-435.62228 C 268.1124,-434.89433 267,-433.73178 267,-432.24973 C 267,-429.90368 268.54617,-427.99964 271.33928,-427.99964 C 271.51009,-427.99964 289.48992,-427.99964 289.66072,-427.99964 C 292.43173,-427.99964 294,-429.90368 294,-432.24973 C 294,-433.8421 292.8876,-434.91642 291.56317,-435.64437 C 291.73793,-436.13293 292.02724,-436.89753 292.02724,-437.44429 C 292.02724,-440.051 289.91143,-442.01192 287.25001,-442.01193 C 286.44314,-442.01193 285.6082,-441.52219 284.93974,-441.17857 C 284.29089,-443.60011 282.68973,-445 280.5,-445 z" - id="path7798" - sodipodi:nodetypes="ccsscsssscsscc" /> - <g - id="g7800"> - <path - transform="matrix(1.056604,0,0,1.056604,-24.19818,21.86331)" - d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" - sodipodi:ry="3.3125" - sodipodi:rx="3.3125" - sodipodi:cy="-437.59375" - sodipodi:cx="288.375" - id="path7802" - style="opacity:1;fill:#c4c5c2;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0,0,1.056604,-24.19818,21.86331)" - d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" - sodipodi:ry="3.3125" - sodipodi:rx="3.3125" - sodipodi:cy="-437.59375" - sodipodi:cx="288.375" - id="path7804" - style="opacity:1;fill:url(#linearGradient5691);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - sodipodi:type="arc" /> + <g id="layer1"> + <g transform="translate(5e-6,-4)"> + <g transform="translate(-248.99871,466.5)" opacity="0.45"> + <path d="M 280.5,-445.5 C 278.22917,-445.5 276.39009,-443.94972 275.78125,-441.875 C 275.08802,-442.23883 274.33674,-442.5 273.5,-442.5 C 270.74,-442.5 268.49999,-440.26001 268.5,-437.5 C 268.5,-436.92107 268.66252,-436.3923 268.84375,-435.875 C 267.47028,-435.10426 266.5,-433.686 266.5,-432 C 266.5,-429.516 268.516,-427.49999 271,-427.5 C 271.17713,-427.5 289.82287,-427.5 290,-427.5 C 292.48399,-427.5 294.5,-429.516 294.5,-432 C 294.5,-433.686 293.52972,-435.10426 292.15625,-435.875 C 292.33749,-436.39229 292.5,-436.92108 292.5,-437.5 C 292.5,-440.26 290.26,-442.49999 287.5,-442.5 C 286.66326,-442.5 285.91198,-442.23883 285.21875,-441.875 C 284.60991,-443.94972 282.77083,-445.5 280.5,-445.5 z" fill="#c4c5c2" fill-opacity="1" stroke="#888a85" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 280.5,-445 C 278.31028,-445 276.7764,-443.66423 276.10445,-441.15648 C 275.43599,-441.5001 274.55686,-441.98983 273.75,-441.98983 C 271.03349,-441.98983 268.99486,-440.05101 268.99487,-437.44429 C 268.99487,-436.89752 269.26208,-436.11085 269.43683,-435.62228 C 268.1124,-434.89433 267,-433.73178 267,-432.24973 C 267,-429.90368 268.54617,-427.99964 271.33928,-427.99964 C 271.51009,-427.99964 289.48992,-427.99964 289.66072,-427.99964 C 292.43173,-427.99964 294,-429.90368 294,-432.24973 C 294,-433.8421 292.8876,-434.91642 291.56317,-435.64437 C 291.73793,-436.13293 292.02724,-436.89753 292.02724,-437.44429 C 292.02724,-440.051 289.91143,-442.01192 287.25001,-442.01193 C 286.44314,-442.01193 285.6082,-441.52219 284.93974,-441.17857 C 284.29089,-443.60011 282.68973,-445 280.5,-445 z" opacity="1" fill="url(#linearGradient5689)" fill-opacity="1" stroke="none" stroke-width="0.99999958" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <g> + <path transform="matrix(1.056604,0,0,1.056604,-24.19818,21.86331)" d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" opacity="1" fill="#c4c5c2" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path transform="matrix(1.056604,0,0,1.056604,-24.19818,21.86331)" d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" opacity="1" fill="url(#linearGradient5691)" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> </g> - <rect - style="opacity:1;fill:#c4c5c2;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect7806" - width="20" - height="9" - x="271" - y="-438" /> - <path - sodipodi:type="arc" - style="opacity:1;fill:#c4c5c2;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path7808" - sodipodi:cx="288.375" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125" - sodipodi:ry="3.3125" - d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" - transform="matrix(0.90566,0,0,0.90566,9.830195,-35.68869)" /> - <g - id="g7810"> - <path - transform="matrix(1.056604,0,0,1.056604,-17.19811,24.86321)" - d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" - sodipodi:ry="3.3125" - sodipodi:rx="3.3125" - sodipodi:cy="-437.59375" - sodipodi:cx="288.375" - id="path7812" - style="opacity:1;fill:#c4c5c2;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0,0,1.056604,-17.19818,24.86331)" - d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" - sodipodi:ry="3.3125" - sodipodi:rx="3.3125" - sodipodi:cy="-437.59375" - sodipodi:cx="288.375" - id="path7814" - style="opacity:1;fill:url(#linearGradient5693);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - sodipodi:type="arc" /> + <rect width="20" height="9" x="271" y="-438" opacity="1" fill="#c4c5c2" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" transform="matrix(0.90566,0,0,0.90566,9.830195,-35.68869)" opacity="1" fill="#c4c5c2" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <g> + <path transform="matrix(1.056604,0,0,1.056604,-17.19811,24.86321)" d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" opacity="1" fill="#c4c5c2" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path transform="matrix(1.056604,0,0,1.056604,-17.19818,24.86331)" d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" opacity="1" fill="url(#linearGradient5693)" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> </g> - <g - id="g7816"> - <path - transform="matrix(1.056604,0,0,1.056604,-31.19818,24.86331)" - d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" - sodipodi:ry="3.3125" - sodipodi:rx="3.3125" - sodipodi:cy="-437.59375" - sodipodi:cx="288.375" - id="path7818" - style="opacity:1;fill:#c4c5c2;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0,0,1.056604,-31.19818,24.86331)" - d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" - sodipodi:ry="3.3125" - sodipodi:rx="3.3125" - sodipodi:cy="-437.59375" - sodipodi:cx="288.375" - id="path7820" - style="opacity:1;fill:url(#linearGradient5695);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - sodipodi:type="arc" /> + <g> + <path transform="matrix(1.056604,0,0,1.056604,-31.19818,24.86331)" d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" opacity="1" fill="#c4c5c2" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path transform="matrix(1.056604,0,0,1.056604,-31.19818,24.86331)" d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" opacity="1" fill="url(#linearGradient5695)" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> </g> - <g - id="g7822" - transform="translate(-1,0)"> - <path - id="path7824" - d="M 280.46875,-440.96875 C 276.88937,-440.96875 274,-438.04812 274,-434.46875 C 274,-432.09807 275.34943,-430.13096 277.25,-429 L 283.71875,-429 C 285.61932,-430.13096 286.96875,-432.12931 286.96875,-434.5 C 286.96875,-438.07938 284.04812,-440.96875 280.46875,-440.96875 z" - style="opacity:1;fill:#c4c5c2;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <path - id="path7826" - d="M 280.5,-441 C 276.912,-441 274,-438.08799 274,-434.5 C 274,-432.1236 275.34485,-430.13368 277.25,-429 L 283.75,-429 C 285.65515,-430.13368 287,-432.1236 287,-434.5 C 287,-438.088 284.088,-440.99999 280.5,-441 z" - style="opacity:1;fill:url(#linearGradient5697);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <g transform="translate(-1,0)"> + <path d="M 280.46875,-440.96875 C 276.88937,-440.96875 274,-438.04812 274,-434.46875 C 274,-432.09807 275.34943,-430.13096 277.25,-429 L 283.71875,-429 C 285.61932,-430.13096 286.96875,-432.12931 286.96875,-434.5 C 286.96875,-438.07938 284.04812,-440.96875 280.46875,-440.96875 z" opacity="1" fill="#c4c5c2" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 280.5,-441 C 276.912,-441 274,-438.08799 274,-434.5 C 274,-432.1236 275.34485,-430.13368 277.25,-429 L 283.75,-429 C 285.65515,-430.13368 287,-432.1236 287,-434.5 C 287,-438.088 284.088,-440.99999 280.5,-441 z" opacity="1" fill="url(#linearGradient5697)" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> </g> - <path - sodipodi:type="arc" - style="opacity:1;fill:url(#linearGradient5699);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path7828" - sodipodi:cx="288.375" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125" - sodipodi:ry="3.3125" - d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" - transform="matrix(0.90566,0,0,0.90566,9.830296,-35.68884)" /> - <path - style="fill:#888a85;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="M 292.9564,-437.33396 C 292.95487,-434.6494 289.68714,-433.62001 289.68714,-433.62001 C 289.68714,-433.62001 292.03588,-435.24596 292.02399,-437.32502 C 292.02399,-437.32502 292.9564,-437.33396 292.9564,-437.33396 z" - id="path7830" - sodipodi:nodetypes="ccss" /> - <g - id="g7832" - transform="matrix(1.142857,0,0,1.142857,-28.57139,67.00008)"> - <path - transform="matrix(1.056604,0,0,1.056604,-31.19818,24.86331)" - d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" - sodipodi:ry="3.3125" - sodipodi:rx="3.3125" - sodipodi:cy="-437.59375" - sodipodi:cx="288.375" - id="path7834" - style="opacity:1;fill:#c4c5c2;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0,0,1.056604,-31.19818,24.86331)" - d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" - sodipodi:ry="3.3125" - sodipodi:rx="3.3125" - sodipodi:cy="-437.59375" - sodipodi:cx="288.375" - id="path7836" - style="opacity:1;fill:url(#linearGradient5701);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - sodipodi:type="arc" /> + <path d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" transform="matrix(0.90566,0,0,0.90566,9.830296,-35.68884)" opacity="1" fill="url(#linearGradient5699)" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 292.9564,-437.33396 C 292.95487,-434.6494 289.68714,-433.62001 289.68714,-433.62001 C 289.68714,-433.62001 292.03588,-435.24596 292.02399,-437.32502 C 292.02399,-437.32502 292.9564,-437.33396 292.9564,-437.33396 z" fill="#888a85" fill-opacity="1" fill-rule="evenodd" stroke="none" stroke-width="1px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1"/> + <g transform="matrix(1.142857,0,0,1.142857,-28.57139,67.00008)"> + <path transform="matrix(1.056604,0,0,1.056604,-31.19818,24.86331)" d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" opacity="1" fill="#c4c5c2" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path transform="matrix(1.056604,0,0,1.056604,-31.19818,24.86331)" d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" opacity="1" fill="url(#linearGradient5701)" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> </g> </g> - <path - sodipodi:nodetypes="ccsscsssscsscc" - id="path4934" - d="M 31.501294,21.49982 C 29.311574,21.49982 27.777694,22.83559 27.105744,25.34334 C 26.437284,24.99972 25.558154,24.50999 24.751294,24.50999 C 22.034784,24.50999 19.996154,26.44881 19.996164,29.05553 C 19.996164,29.6023 20.263374,30.38897 20.438124,30.87754 C 19.113694,31.60549 18.001294,32.76804 18.001294,34.25009 C 18.001294,36.59614 19.547464,38.50018 22.340574,38.50018 C 22.511384,38.50018 40.491214,38.50018 40.662014,38.50018 C 43.433024,38.50018 45.001294,36.59614 45.001294,34.25009 C 45.001294,32.65772 43.888894,31.5834 42.564464,30.85545 C 42.739224,30.36689 43.028534,29.60229 43.028534,29.05553 C 43.028534,26.44882 40.912724,24.4879 38.251304,24.48789 C 37.444434,24.48789 36.609494,24.97763 35.941034,25.32125 C 35.292184,22.89971 33.691024,21.49982 31.501294,21.49982 z" - style="opacity:0.45;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <g - style="opacity:0.45" - transform="translate(-264.0013,462.5)" - id="g7852"> - <path - style="fill:#c4c5c2;fill-opacity:1;stroke:#888a85;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - d="M 280.5,-445.5 C 278.22917,-445.5 276.39009,-443.94972 275.78125,-441.875 C 275.08802,-442.23883 274.33674,-442.5 273.5,-442.5 C 270.74,-442.5 268.49999,-440.26001 268.5,-437.5 C 268.5,-436.92107 268.66252,-436.3923 268.84375,-435.875 C 267.47028,-435.10426 266.5,-433.686 266.5,-432 C 266.5,-429.516 268.516,-427.49999 271,-427.5 C 271.17713,-427.5 289.82287,-427.5 290,-427.5 C 292.48399,-427.5 294.5,-429.516 294.5,-432 C 294.5,-433.686 293.52972,-435.10426 292.15625,-435.875 C 292.33749,-436.39229 292.5,-436.92108 292.5,-437.5 C 292.5,-440.26 290.26,-442.49999 287.5,-442.5 C 286.66326,-442.5 285.91198,-442.23883 285.21875,-441.875 C 284.60991,-443.94972 282.77083,-445.5 280.5,-445.5 z" - id="path7854" - sodipodi:nodetypes="ccsscsssscsscc" /> - <path - style="opacity:1;fill:url(#linearGradient5703);fill-opacity:1;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - d="M 280.5,-445 C 278.31028,-445 276.7764,-443.66423 276.10445,-441.15648 C 275.43599,-441.5001 274.55686,-441.98983 273.75,-441.98983 C 271.03349,-441.98983 268.99486,-440.05101 268.99487,-437.44429 C 268.99487,-436.89752 269.26208,-436.11085 269.43683,-435.62228 C 268.1124,-434.89433 267,-433.73178 267,-432.24973 C 267,-429.90368 268.54617,-427.99964 271.33928,-427.99964 C 271.51009,-427.99964 289.48992,-427.99964 289.66072,-427.99964 C 292.43173,-427.99964 294,-429.90368 294,-432.24973 C 294,-433.8421 292.8876,-434.91642 291.56317,-435.64437 C 291.73793,-436.13293 292.02724,-436.89753 292.02724,-437.44429 C 292.02724,-440.051 289.91143,-442.01192 287.25001,-442.01193 C 286.44314,-442.01193 285.6082,-441.52219 284.93974,-441.17857 C 284.29089,-443.60011 282.68973,-445 280.5,-445 z" - id="path7856" - sodipodi:nodetypes="ccsscsssscsscc" /> - <g - id="g7858"> - <path - transform="matrix(1.056604,0,0,1.056604,-24.19818,21.86331)" - d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" - sodipodi:ry="3.3125" - sodipodi:rx="3.3125" - sodipodi:cy="-437.59375" - sodipodi:cx="288.375" - id="path7860" - style="opacity:1;fill:#c4c5c2;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0,0,1.056604,-24.19818,21.86331)" - d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" - sodipodi:ry="3.3125" - sodipodi:rx="3.3125" - sodipodi:cy="-437.59375" - sodipodi:cx="288.375" - id="path7862" - style="opacity:1;fill:url(#linearGradient5705);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - sodipodi:type="arc" /> + <path d="M 31.501294,21.49982 C 29.311574,21.49982 27.777694,22.83559 27.105744,25.34334 C 26.437284,24.99972 25.558154,24.50999 24.751294,24.50999 C 22.034784,24.50999 19.996154,26.44881 19.996164,29.05553 C 19.996164,29.6023 20.263374,30.38897 20.438124,30.87754 C 19.113694,31.60549 18.001294,32.76804 18.001294,34.25009 C 18.001294,36.59614 19.547464,38.50018 22.340574,38.50018 C 22.511384,38.50018 40.491214,38.50018 40.662014,38.50018 C 43.433024,38.50018 45.001294,36.59614 45.001294,34.25009 C 45.001294,32.65772 43.888894,31.5834 42.564464,30.85545 C 42.739224,30.36689 43.028534,29.60229 43.028534,29.05553 C 43.028534,26.44882 40.912724,24.4879 38.251304,24.48789 C 37.444434,24.48789 36.609494,24.97763 35.941034,25.32125 C 35.292184,22.89971 33.691024,21.49982 31.501294,21.49982 z" opacity="0.45" fill="#ffffff" fill-opacity="1" stroke="none" stroke-width="0.99999958" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <g transform="translate(-264.0013,462.5)" opacity="0.45"> + <path d="M 280.5,-445.5 C 278.22917,-445.5 276.39009,-443.94972 275.78125,-441.875 C 275.08802,-442.23883 274.33674,-442.5 273.5,-442.5 C 270.74,-442.5 268.49999,-440.26001 268.5,-437.5 C 268.5,-436.92107 268.66252,-436.3923 268.84375,-435.875 C 267.47028,-435.10426 266.5,-433.686 266.5,-432 C 266.5,-429.516 268.516,-427.49999 271,-427.5 C 271.17713,-427.5 289.82287,-427.5 290,-427.5 C 292.48399,-427.5 294.5,-429.516 294.5,-432 C 294.5,-433.686 293.52972,-435.10426 292.15625,-435.875 C 292.33749,-436.39229 292.5,-436.92108 292.5,-437.5 C 292.5,-440.26 290.26,-442.49999 287.5,-442.5 C 286.66326,-442.5 285.91198,-442.23883 285.21875,-441.875 C 284.60991,-443.94972 282.77083,-445.5 280.5,-445.5 z" fill="#c4c5c2" fill-opacity="1" stroke="#888a85" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 280.5,-445 C 278.31028,-445 276.7764,-443.66423 276.10445,-441.15648 C 275.43599,-441.5001 274.55686,-441.98983 273.75,-441.98983 C 271.03349,-441.98983 268.99486,-440.05101 268.99487,-437.44429 C 268.99487,-436.89752 269.26208,-436.11085 269.43683,-435.62228 C 268.1124,-434.89433 267,-433.73178 267,-432.24973 C 267,-429.90368 268.54617,-427.99964 271.33928,-427.99964 C 271.51009,-427.99964 289.48992,-427.99964 289.66072,-427.99964 C 292.43173,-427.99964 294,-429.90368 294,-432.24973 C 294,-433.8421 292.8876,-434.91642 291.56317,-435.64437 C 291.73793,-436.13293 292.02724,-436.89753 292.02724,-437.44429 C 292.02724,-440.051 289.91143,-442.01192 287.25001,-442.01193 C 286.44314,-442.01193 285.6082,-441.52219 284.93974,-441.17857 C 284.29089,-443.60011 282.68973,-445 280.5,-445 z" opacity="1" fill="url(#linearGradient5703)" fill-opacity="1" stroke="none" stroke-width="0.99999958" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <g> + <path transform="matrix(1.056604,0,0,1.056604,-24.19818,21.86331)" d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" opacity="1" fill="#c4c5c2" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path transform="matrix(1.056604,0,0,1.056604,-24.19818,21.86331)" d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" opacity="1" fill="url(#linearGradient5705)" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> </g> - <rect - style="opacity:1;fill:#c4c5c2;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect7864" - width="20" - height="9" - x="271" - y="-438" /> - <path - sodipodi:type="arc" - style="opacity:1;fill:#c4c5c2;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path7866" - sodipodi:cx="288.375" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125" - sodipodi:ry="3.3125" - d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" - transform="matrix(0.90566,0,0,0.90566,9.830195,-35.68869)" /> - <g - id="g7868"> - <path - transform="matrix(1.056604,0,0,1.056604,-17.19811,24.86321)" - d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" - sodipodi:ry="3.3125" - sodipodi:rx="3.3125" - sodipodi:cy="-437.59375" - sodipodi:cx="288.375" - id="path7870" - style="opacity:1;fill:#c4c5c2;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0,0,1.056604,-17.19818,24.86331)" - d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" - sodipodi:ry="3.3125" - sodipodi:rx="3.3125" - sodipodi:cy="-437.59375" - sodipodi:cx="288.375" - id="path7872" - style="opacity:1;fill:url(#linearGradient5707);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - sodipodi:type="arc" /> + <rect width="20" height="9" x="271" y="-438" opacity="1" fill="#c4c5c2" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" transform="matrix(0.90566,0,0,0.90566,9.830195,-35.68869)" opacity="1" fill="#c4c5c2" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <g> + <path transform="matrix(1.056604,0,0,1.056604,-17.19811,24.86321)" d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" opacity="1" fill="#c4c5c2" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path transform="matrix(1.056604,0,0,1.056604,-17.19818,24.86331)" d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" opacity="1" fill="url(#linearGradient5707)" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> </g> - <g - id="g7874"> - <path - transform="matrix(1.056604,0,0,1.056604,-31.19818,24.86331)" - d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" - sodipodi:ry="3.3125" - sodipodi:rx="3.3125" - sodipodi:cy="-437.59375" - sodipodi:cx="288.375" - id="path7876" - style="opacity:1;fill:#c4c5c2;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0,0,1.056604,-31.19818,24.86331)" - d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" - sodipodi:ry="3.3125" - sodipodi:rx="3.3125" - sodipodi:cy="-437.59375" - sodipodi:cx="288.375" - id="path7878" - style="opacity:1;fill:url(#linearGradient5709);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - sodipodi:type="arc" /> + <g> + <path transform="matrix(1.056604,0,0,1.056604,-31.19818,24.86331)" d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" opacity="1" fill="#c4c5c2" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path transform="matrix(1.056604,0,0,1.056604,-31.19818,24.86331)" d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" opacity="1" fill="url(#linearGradient5709)" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> </g> - <g - id="g7880" - transform="translate(-1,0)"> - <path - id="path7882" - d="M 280.46875,-440.96875 C 276.88937,-440.96875 274,-438.04812 274,-434.46875 C 274,-432.09807 275.34943,-430.13096 277.25,-429 L 283.71875,-429 C 285.61932,-430.13096 286.96875,-432.12931 286.96875,-434.5 C 286.96875,-438.07938 284.04812,-440.96875 280.46875,-440.96875 z" - style="opacity:1;fill:#c4c5c2;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <path - id="path7884" - d="M 280.5,-441 C 276.912,-441 274,-438.08799 274,-434.5 C 274,-432.1236 275.34485,-430.13368 277.25,-429 L 283.75,-429 C 285.65515,-430.13368 287,-432.1236 287,-434.5 C 287,-438.088 284.088,-440.99999 280.5,-441 z" - style="opacity:1;fill:url(#linearGradient5711);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <g transform="translate(-1,0)"> + <path d="M 280.46875,-440.96875 C 276.88937,-440.96875 274,-438.04812 274,-434.46875 C 274,-432.09807 275.34943,-430.13096 277.25,-429 L 283.71875,-429 C 285.61932,-430.13096 286.96875,-432.12931 286.96875,-434.5 C 286.96875,-438.07938 284.04812,-440.96875 280.46875,-440.96875 z" opacity="1" fill="#c4c5c2" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 280.5,-441 C 276.912,-441 274,-438.08799 274,-434.5 C 274,-432.1236 275.34485,-430.13368 277.25,-429 L 283.75,-429 C 285.65515,-430.13368 287,-432.1236 287,-434.5 C 287,-438.088 284.088,-440.99999 280.5,-441 z" opacity="1" fill="url(#linearGradient5711)" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> </g> - <path - sodipodi:type="arc" - style="opacity:1;fill:url(#linearGradient5713);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path7886" - sodipodi:cx="288.375" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125" - sodipodi:ry="3.3125" - d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" - transform="matrix(0.90566,0,0,0.90566,9.830296,-35.68884)" /> - <path - style="fill:#888a85;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="M 292.9564,-437.33396 C 292.95487,-434.6494 289.68714,-433.62001 289.68714,-433.62001 C 289.68714,-433.62001 292.03588,-435.24596 292.02399,-437.32502 C 292.02399,-437.32502 292.9564,-437.33396 292.9564,-437.33396 z" - id="path7888" - sodipodi:nodetypes="ccss" /> - <g - id="g7890" - transform="matrix(1.142857,0,0,1.142857,-28.57139,67.00008)"> - <path - transform="matrix(1.056604,0,0,1.056604,-31.19818,24.86331)" - d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" - sodipodi:ry="3.3125" - sodipodi:rx="3.3125" - sodipodi:cy="-437.59375" - sodipodi:cx="288.375" - id="path7892" - style="opacity:1;fill:#c4c5c2;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0,0,1.056604,-31.19818,24.86331)" - d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" - sodipodi:ry="3.3125" - sodipodi:rx="3.3125" - sodipodi:cy="-437.59375" - sodipodi:cx="288.375" - id="path7896" - style="opacity:1;fill:url(#linearGradient5715);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - sodipodi:type="arc" /> + <path d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" transform="matrix(0.90566,0,0,0.90566,9.830296,-35.68884)" opacity="1" fill="url(#linearGradient5713)" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 292.9564,-437.33396 C 292.95487,-434.6494 289.68714,-433.62001 289.68714,-433.62001 C 289.68714,-433.62001 292.03588,-435.24596 292.02399,-437.32502 C 292.02399,-437.32502 292.9564,-437.33396 292.9564,-437.33396 z" fill="#888a85" fill-opacity="1" fill-rule="evenodd" stroke="none" stroke-width="1px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1"/> + <g transform="matrix(1.142857,0,0,1.142857,-28.57139,67.00008)"> + <path transform="matrix(1.056604,0,0,1.056604,-31.19818,24.86331)" d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" opacity="1" fill="#c4c5c2" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path transform="matrix(1.056604,0,0,1.056604,-31.19818,24.86331)" d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" opacity="1" fill="url(#linearGradient5715)" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> </g> </g> - <path - sodipodi:nodetypes="ccsscsssscsscc" - id="path4978" - d="M 16.498705,17.499819 C 14.308985,17.499819 12.775105,18.835589 12.103155,21.343339 C 11.434695,20.999719 10.555565,20.509989 9.748705,20.509989 C 7.032195,20.509989 4.993565,22.448809 4.993575,25.055529 C 4.993575,25.602299 5.260785,26.388969 5.435535,26.877539 C 4.111105,27.605489 2.998705,28.768039 2.998705,30.250089 C 2.998705,32.596139 4.544875,34.500179 7.337985,34.500179 C 7.508795,34.500179 25.488624,34.500179 25.659424,34.500179 C 28.430434,34.500179 29.998704,32.596139 29.998704,30.250089 C 29.998704,28.657719 28.886304,27.583399 27.561874,26.855449 C 27.736634,26.366889 28.025944,25.602289 28.025944,25.055529 C 28.025944,22.448819 25.910134,20.487899 23.248714,20.487889 C 22.441844,20.487889 21.606904,20.977629 20.938444,21.321249 C 20.289594,18.899709 18.688434,17.499819 16.498705,17.499819 z" - style="opacity:0.45;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <path d="M 16.498705,17.499819 C 14.308985,17.499819 12.775105,18.835589 12.103155,21.343339 C 11.434695,20.999719 10.555565,20.509989 9.748705,20.509989 C 7.032195,20.509989 4.993565,22.448809 4.993575,25.055529 C 4.993575,25.602299 5.260785,26.388969 5.435535,26.877539 C 4.111105,27.605489 2.998705,28.768039 2.998705,30.250089 C 2.998705,32.596139 4.544875,34.500179 7.337985,34.500179 C 7.508795,34.500179 25.488624,34.500179 25.659424,34.500179 C 28.430434,34.500179 29.998704,32.596139 29.998704,30.250089 C 29.998704,28.657719 28.886304,27.583399 27.561874,26.855449 C 27.736634,26.366889 28.025944,25.602289 28.025944,25.055529 C 28.025944,22.448819 25.910134,20.487899 23.248714,20.487889 C 22.441844,20.487889 21.606904,20.977629 20.938444,21.321249 C 20.289594,18.899709 18.688434,17.499819 16.498705,17.499819 z" opacity="0.45" fill="#ffffff" fill-opacity="1" stroke="none" stroke-width="0.99999958" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> </g> </g> </svg> diff --git a/demos/embedded/weatherinfo/icons/weather-haze.svg b/demos/embedded/weatherinfo/icons/weather-haze.svg index f2d6671..b31811f 100644 --- a/demos/embedded/weatherinfo/icons/weather-haze.svg +++ b/demos/embedded/weatherinfo/icons/weather-haze.svg @@ -1,1121 +1,162 @@ <?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="svg14353" - sodipodi:version="0.32" - inkscape:version="0.46" - version="1.0" - sodipodi:docname="weather-haze.svg" - inkscape:output_extension="org.inkscape.output.svg.inkscape"> - <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="1" - inkscape:cx="-122" - inkscape:cy="24" - inkscape:document-units="px" - inkscape:current-layer="layer1" - showgrid="false" - inkscape:showpageshadow="false" - showborder="false" - showguides="true" - inkscape:guide-bbox="true" - inkscape:window-width="982" - inkscape:window-height="965" - inkscape:window-x="1281" - inkscape:window-y="29" - borderlayer="false" /> - <defs - id="defs14355"> - <linearGradient - inkscape:collect="always" - id="linearGradient8371"> - <stop - style="stop-color:#e8d277;stop-opacity:1;" - offset="0" - id="stop8373" /> - <stop - style="stop-color:#e8d277;stop-opacity:0;" - offset="1" - id="stop8375" /> +<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="48" height="48" id="svg14353" version="1.0"> + + <defs id="defs14355"> + <linearGradient id="linearGradient8371"> + <stop offset="0" id="stop8373" stop-color="#e8d277" stop-opacity="1"/> + <stop offset="1" id="stop8375" stop-color="#e8d277" stop-opacity="0"/> </linearGradient> - <linearGradient - id="linearGradient9810"> - <stop - style="stop-color:#ddc76e;stop-opacity:1;" - offset="0" - id="stop9812" /> - <stop - style="stop-color:#e6d965;stop-opacity:0;" - offset="1" - id="stop9814" /> + <linearGradient id="linearGradient9362"> + <stop id="stop9364" offset="0" stop-color="#392100" stop-opacity="1"/> + <stop id="stop9366" offset="1" stop-color="#392100" stop-opacity="0"/> </linearGradient> - <linearGradient - id="linearGradient9636"> - <stop - style="stop-color:#fce94f;stop-opacity:1;" - offset="0" - id="stop9638" /> - <stop - style="stop-color:#fce94f;stop-opacity:0;" - offset="1" - id="stop9640" /> + <linearGradient id="linearGradient7010"> + <stop offset="0" id="stop7012" stop-color="#aec2d7" stop-opacity="1"/> + <stop id="stop9915" offset="1" stop-color="#81a0c1" stop-opacity="1"/> </linearGradient> - <linearGradient - id="linearGradient9362"> - <stop - id="stop9364" - offset="0" - style="stop-color:#392100;stop-opacity:1;" /> - <stop - id="stop9366" - offset="1" - style="stop-color:#392100;stop-opacity:0;" /> + <linearGradient id="linearGradient6825"> + <stop offset="0" id="stop6827" stop-color="#3a2400" stop-opacity="1"/> + <stop id="stop6833" offset="0.28565985" stop-color="#8c5600" stop-opacity="1"/> + <stop offset="1" id="stop6829" stop-color="#a36400" stop-opacity="1"/> </linearGradient> - <linearGradient - id="linearGradient7010"> - <stop - style="stop-color:#aec2d7;stop-opacity:1;" - offset="0" - id="stop7012" /> - <stop - id="stop9915" - offset="1" - style="stop-color:#81a0c1;stop-opacity:1;" /> + <linearGradient id="linearGradient6772"> + <stop offset="0" id="stop6774" stop-color="#888a85" stop-opacity="1"/> + <stop offset="1" id="stop6776" stop-color="#eeeeec" stop-opacity="1"/> </linearGradient> - <linearGradient - id="linearGradient6825"> - <stop - style="stop-color:#3a2400;stop-opacity:1;" - offset="0" - id="stop6827" /> - <stop - id="stop6833" - offset="0.28565985" - style="stop-color:#8c5600;stop-opacity:1;" /> - <stop - style="stop-color:#a36400;stop-opacity:1;" - offset="1" - id="stop6829" /> + <linearGradient id="linearGradient6764"> + <stop offset="0" id="stop6766" stop-color="#eeeeec" stop-opacity="1"/> + <stop offset="1" id="stop6768" stop-color="#eeeeec" stop-opacity="0"/> </linearGradient> - <linearGradient - id="linearGradient6772"> - <stop - style="stop-color:#888a85;stop-opacity:1;" - offset="0" - id="stop6774" /> - <stop - style="stop-color:#eeeeec;stop-opacity:1;" - offset="1" - id="stop6776" /> + <linearGradient id="linearGradient6746"> + <stop offset="0" id="stop6748" stop-color="#eeeeec" stop-opacity="1"/> + <stop offset="1" id="stop6750" stop-color="#eeeeec" stop-opacity="0"/> </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient6764"> - <stop - style="stop-color:#eeeeec;stop-opacity:1;" - offset="0" - id="stop6766" /> - <stop - style="stop-color:#eeeeec;stop-opacity:0;" - offset="1" - id="stop6768" /> + <linearGradient id="linearGradient6728"> + <stop offset="0" id="stop6730" stop-color="#babdb6" stop-opacity="1"/> + <stop offset="1" id="stop6732" stop-color="#babdb6" stop-opacity="0"/> </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient6746"> - <stop - style="stop-color:#eeeeec;stop-opacity:1;" - offset="0" - id="stop6748" /> - <stop - style="stop-color:#eeeeec;stop-opacity:0;" - offset="1" - id="stop6750" /> + <linearGradient id="linearGradient6685"> + <stop offset="0" id="stop6687" stop-color="#000000" stop-opacity="1"/> + <stop offset="1" id="stop6689" stop-color="#000000" stop-opacity="0"/> </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient6728"> - <stop - style="stop-color:#babdb6;stop-opacity:1;" - offset="0" - id="stop6730" /> - <stop - style="stop-color:#babdb6;stop-opacity:0;" - offset="1" - id="stop6732" /> + <linearGradient id="linearGradient6631"> + <stop offset="0" id="stop6633" stop-color="#555753" stop-opacity="1"/> + <stop id="stop6639" offset="0.0343047" stop-color="#eeeeec" stop-opacity="0.49803922"/> + <stop offset="0.06714281" id="stop6641" stop-color="#555753" stop-opacity="1"/> + <stop id="stop6643" offset="0.08441304" stop-color="#eeeeec" stop-opacity="0.49803922"/> + <stop offset="0.13726114" id="stop6645" stop-color="#555753" stop-opacity="1"/> + <stop id="stop6647" offset="0.15779018" stop-color="#eeeeec" stop-opacity="0.49803922"/> + <stop offset="0.21104114" id="stop6649" stop-color="#555753" stop-opacity="1"/> + <stop id="stop6651" offset="0.23053712" stop-color="#eeeeec" stop-opacity="0.49803922"/> + <stop offset="0.27452311" id="stop6653" stop-color="#555753" stop-opacity="1"/> + <stop id="stop6655" offset="0.29490501" stop-color="#eeeeec" stop-opacity="0.49803922"/> + <stop offset="0.34954464" id="stop6657" stop-color="#555753" stop-opacity="1"/> + <stop id="stop6659" offset="0.36960241" stop-color="#eeeeec" stop-opacity="0.49803922"/> + <stop offset="0.4220143" id="stop6675" stop-color="#555753" stop-opacity="1"/> + <stop id="stop6677" offset="0.44345734" stop-color="#eeeeec" stop-opacity="0.49803922"/> + <stop offset="0.50078195" id="stop6679" stop-color="#555753" stop-opacity="1"/> + <stop id="stop6681" offset="0.52629334" stop-color="#eeeeec" stop-opacity="0.49803922"/> + <stop offset="0.57410157" id="stop6683" stop-color="#555753" stop-opacity="1"/> + <stop id="stop6693" offset="0.5898369" stop-color="#eeeeec" stop-opacity="0.49803922"/> + <stop offset="0.64333093" id="stop6695" stop-color="#555753" stop-opacity="1"/> + <stop id="stop6697" offset="0.66151941" stop-color="#eeeeec" stop-opacity="0.49803922"/> + <stop offset="0.70865703" id="stop6699" stop-color="#555753" stop-opacity="1"/> + <stop id="stop6701" offset="0.72415513" stop-color="#eeeeec" stop-opacity="0.49803922"/> + <stop offset="1" id="stop6661" stop-color="#555753" stop-opacity="1"/> </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient6685"> - <stop - style="stop-color:#000000;stop-opacity:1;" - offset="0" - id="stop6687" /> - <stop - style="stop-color:#000000;stop-opacity:0;" - offset="1" - id="stop6689" /> - </linearGradient> - <linearGradient - id="linearGradient6631"> - <stop - style="stop-color:#555753;stop-opacity:1;" - offset="0" - id="stop6633" /> - <stop - id="stop6639" - offset="0.0343047" - style="stop-color:#eeeeec;stop-opacity:0.49803922;" /> - <stop - style="stop-color:#555753;stop-opacity:1;" - offset="0.06714281" - id="stop6641" /> - <stop - id="stop6643" - offset="0.08441304" - style="stop-color:#eeeeec;stop-opacity:0.49803922;" /> - <stop - style="stop-color:#555753;stop-opacity:1;" - offset="0.13726114" - id="stop6645" /> - <stop - id="stop6647" - offset="0.15779018" - style="stop-color:#eeeeec;stop-opacity:0.49803922;" /> - <stop - style="stop-color:#555753;stop-opacity:1;" - offset="0.21104114" - id="stop6649" /> - <stop - id="stop6651" - offset="0.23053712" - style="stop-color:#eeeeec;stop-opacity:0.49803922;" /> - <stop - style="stop-color:#555753;stop-opacity:1;" - offset="0.27452311" - id="stop6653" /> - <stop - id="stop6655" - offset="0.29490501" - style="stop-color:#eeeeec;stop-opacity:0.49803922;" /> - <stop - style="stop-color:#555753;stop-opacity:1;" - offset="0.34954464" - id="stop6657" /> - <stop - id="stop6659" - offset="0.36960241" - style="stop-color:#eeeeec;stop-opacity:0.49803922;" /> - <stop - style="stop-color:#555753;stop-opacity:1;" - offset="0.4220143" - id="stop6675" /> - <stop - id="stop6677" - offset="0.44345734" - style="stop-color:#eeeeec;stop-opacity:0.49803922;" /> - <stop - style="stop-color:#555753;stop-opacity:1;" - offset="0.50078195" - id="stop6679" /> - <stop - id="stop6681" - offset="0.52629334" - style="stop-color:#eeeeec;stop-opacity:0.49803922;" /> - <stop - style="stop-color:#555753;stop-opacity:1;" - offset="0.57410157" - id="stop6683" /> - <stop - id="stop6693" - offset="0.5898369" - style="stop-color:#eeeeec;stop-opacity:0.49803922;" /> - <stop - style="stop-color:#555753;stop-opacity:1;" - offset="0.64333093" - id="stop6695" /> - <stop - id="stop6697" - offset="0.66151941" - style="stop-color:#eeeeec;stop-opacity:0.49803922;" /> - <stop - style="stop-color:#555753;stop-opacity:1;" - offset="0.70865703" - id="stop6699" /> - <stop - id="stop6701" - offset="0.72415513" - style="stop-color:#eeeeec;stop-opacity:0.49803922;" /> - <stop - style="stop-color:#555753;stop-opacity:1;" - offset="1" - id="stop6661" /> - </linearGradient> - <linearGradient - id="linearGradient15161"> - <stop - style="stop-color:#c3b49d;stop-opacity:0.3539823;" - offset="0" - id="stop15163" /> - <stop - id="stop9310" - offset="1" - style="stop-color:#dcd070;stop-opacity:1;" /> - </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="perspective14361" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient15161" - id="linearGradient15167" - x1="21.285088" - y1="33.110512" - x2="21.285088" - y2="-0.0017124993" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.9479167,0,0,0.9479167,1.2500007,1.2500003)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient15161" - id="linearGradient15250" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.9479167,0,0,0.9479167,1.2500007,1.2500003)" - x1="21.285088" - y1="33.110512" - x2="21.285088" - y2="-0.0017124993" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6631" - id="linearGradient6637" - x1="-0.52151477" - y1="29.500589" - x2="18.516363" - y2="14.809909" - gradientUnits="userSpaceOnUse" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient6685" - id="radialGradient6691" - cx="122" - cy="401.95938" - fx="122" - fy="401.95938" - r="6.7283827" - gradientTransform="matrix(-0.5944965,-3.8328271e-7,4.1781509e-7,-0.6480585,194.52841,528.49324)" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6728" - id="linearGradient6734" - x1="15.072129" - y1="21.263441" - x2="17.008948" - y2="21.263441" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6728" - id="linearGradient6742" - x1="15.133464" - y1="32.587334" - x2="17.008692" - y2="32.587334" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6746" - id="linearGradient6752" - x1="15.526249" - y1="2.097311" - x2="15.526249" - y2="14.758003" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6764" - id="linearGradient6770" - x1="11.884123" - y1="10.724713" - x2="6.123559" - y2="29.316263" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6772" - id="linearGradient6778" - x1="7.8838124" - y1="18.558826" - x2="7.8838124" - y2="34.97258" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6825" - id="linearGradient6831" - x1="37.997959" - y1="18.245197" - x2="37.997959" - y2="39.658928" - gradientUnits="userSpaceOnUse" /> - <pattern - patternUnits="userSpaceOnUse" - width="45.991676" - height="45.991676" - patternTransform="translate(-0.532328,52.691734)" - id="pattern7396"> - <rect - y="0" - x="0" - height="45.991676" - width="45.991676" - id="rect15159" - style="fill:url(#linearGradient7399);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - </pattern> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient15161" - id="linearGradient7399" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.9479167,0,0,0.9479167,0.2458325,0.2458356)" - x1="21.285088" - y1="33.110512" - x2="21.285088" - y2="-0.0017124993" /> - <filter - id="filter8124" - inkscape:label="filter1" - width="11.589999999999989" /> - <filter - id="filter8126" - inkscape:label="filter2" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient9362" - id="linearGradient9360" - x1="8.5806656" - y1="20.995518" - x2="8.5806656" - y2="23.085056" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient9362" - id="linearGradient9370" - gradientUnits="userSpaceOnUse" - x1="8.5806656" - y1="20.995518" - x2="8.5806656" - y2="23.085056" - gradientTransform="translate(25.006402,2.9778958e-7)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient9362" - id="linearGradient9374" - gradientUnits="userSpaceOnUse" - x1="8.5806656" - y1="20.995518" - x2="8.5806656" - y2="23.085056" - gradientTransform="translate(35.006405,2.9778958e-7)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient9810" - id="linearGradient9981" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1,0,0,4.6999999,18,-122.2)" - x1="96" - y1="36" - x2="96" - y2="30" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient9810" - id="linearGradient9983" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1,0,0,1.6289807,90.020139,-27.933112)" - x1="6.0670195" - y1="46" - x2="6.0670195" - y2="20.59375" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient9810" - id="linearGradient9985" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1,0,0,1.6289807,93.329052,-27.775305)" - x1="14.197642" - y1="46" - x2="14.197642" - y2="20.593699" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient9810" - id="linearGradient9987" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1,0,0,1.6289807,96.870945,-27.775305)" - x1="23.1" - y1="46" - x2="23.1" - y2="20.592798" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient9810" - id="linearGradient9989" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1,0,0,1.6289807,99.712841,-27.775305)" - x1="32.200001" - y1="46" - x2="32.200001" - y2="20.59375" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient7010" - id="radialGradient6968" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.2893727,-0.2474294,0.6139915,0.7180729,9.91225,5.2335615)" - cx="17.055056" - cy="3.5953908" - fx="17.055056" - fy="3.5953908" - r="24" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient9810" - id="linearGradient6977" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1,0,0,4.6999999,-72,-123.2)" - x1="96" - y1="35.333096" - x2="96" - y2="30" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient9810" - id="linearGradient6979" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1,0,0,1.6289807,2.0139e-2,-28.933112)" - x1="6.0670195" - y1="46" - x2="6.0670195" - y2="20.59375" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient9810" - id="linearGradient6981" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1,0,0,1.6289807,3.329052,-28.775305)" - x1="14.197642" - y1="46" - x2="14.197642" - y2="20.593699" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient9810" - id="linearGradient6983" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1,0,0,1.6289807,6.870945,-28.775305)" - x1="23.1" - y1="46" - x2="23.1" - y2="20.592798" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient9810" - id="linearGradient6985" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1,0,0,1.6289807,9.712841,-28.775305)" - x1="32.200001" - y1="46" - x2="32.200001" - y2="20.59375" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6825" - id="linearGradient7066" - gradientUnits="userSpaceOnUse" - x1="37.997959" - y1="18.245197" - x2="37.997959" - y2="39.658928" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6772" - id="linearGradient7068" - gradientUnits="userSpaceOnUse" - x1="7.8838124" - y1="18.558826" - x2="7.8838124" - y2="34.97258" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6728" - id="linearGradient7070" - gradientUnits="userSpaceOnUse" - x1="15.133464" - y1="32.587334" - x2="17.008692" - y2="32.587334" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6631" - id="linearGradient7072" - gradientUnits="userSpaceOnUse" - x1="-0.52151477" - y1="29.500589" - x2="18.516363" - y2="14.809909" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient6685" - id="radialGradient7074" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.5944965,-3.8328271e-7,4.1781509e-7,-0.6480585,194.52841,528.49324)" - cx="122" - cy="401.95938" - fx="122" - fy="401.95938" - r="6.7283827" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6728" - id="linearGradient7076" - gradientUnits="userSpaceOnUse" - x1="15.072129" - y1="21.263441" - x2="17.008948" - y2="21.263441" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6746" - id="linearGradient7078" - gradientUnits="userSpaceOnUse" - x1="15.526249" - y1="2.097311" - x2="15.526249" - y2="14.758003" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6764" - id="linearGradient7080" - gradientUnits="userSpaceOnUse" - x1="11.884123" - y1="10.724713" - x2="6.123559" - y2="29.316263" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient9362" - id="linearGradient7082" - gradientUnits="userSpaceOnUse" - x1="8.5806656" - y1="20.995518" - x2="8.5806656" - y2="23.085056" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient9362" - id="linearGradient7084" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(25.006402,2.9778958e-7)" - x1="8.5806656" - y1="20.995518" - x2="8.5806656" - y2="23.085056" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient9362" - id="linearGradient7086" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(35.006405,2.9778958e-7)" - x1="8.5806656" - y1="20.995518" - x2="8.5806656" - y2="23.085056" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6825" - id="linearGradient7132" - gradientUnits="userSpaceOnUse" - x1="37.997959" - y1="18.245197" - x2="37.997959" - y2="39.658928" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6772" - id="linearGradient7134" - gradientUnits="userSpaceOnUse" - x1="7.8838124" - y1="18.558826" - x2="7.8838124" - y2="34.97258" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6728" - id="linearGradient7136" - gradientUnits="userSpaceOnUse" - x1="15.133464" - y1="32.587334" - x2="17.008692" - y2="32.587334" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6631" - id="linearGradient7138" - gradientUnits="userSpaceOnUse" - x1="-0.52151477" - y1="29.500589" - x2="18.516363" - y2="14.809909" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient6685" - id="radialGradient7140" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.5944965,-3.8328271e-7,4.1781509e-7,-0.6480585,194.52841,528.49324)" - cx="122" - cy="401.95938" - fx="122" - fy="401.95938" - r="6.7283827" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6728" - id="linearGradient7142" - gradientUnits="userSpaceOnUse" - x1="15.072129" - y1="21.263441" - x2="17.008948" - y2="21.263441" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6746" - id="linearGradient7144" - gradientUnits="userSpaceOnUse" - x1="15.526249" - y1="2.097311" - x2="15.526249" - y2="14.758003" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6764" - id="linearGradient7146" - gradientUnits="userSpaceOnUse" - x1="11.884123" - y1="10.724713" - x2="6.123559" - y2="29.316263" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient9362" - id="linearGradient7148" - gradientUnits="userSpaceOnUse" - x1="8.5806656" - y1="20.995518" - x2="8.5806656" - y2="23.085056" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient9362" - id="linearGradient7150" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(25.006402,2.9778958e-7)" - x1="8.5806656" - y1="20.995518" - x2="8.5806656" - y2="23.085056" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient9362" - id="linearGradient7152" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(35.006405,2.9778958e-7)" - x1="8.5806656" - y1="20.995518" - x2="8.5806656" - y2="23.085056" /> - <filter - inkscape:collect="always" - id="filter7663" - x="-0.1147047" - width="1.2294094" - y="-0.12580788" - height="1.2516158"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="2.2006423" - id="feGaussianBlur7665" /> + <radialGradient xlink:href="#linearGradient7010" id="radialGradient6968" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.2893727,-0.2474294,0.6139915,0.7180729,9.91225,5.2335615)" cx="17.055056" cy="3.5953908" fx="17.055056" fy="3.5953908" r="24"/> + <linearGradient xlink:href="#linearGradient6825" id="linearGradient7066" gradientUnits="userSpaceOnUse" x1="37.997959" y1="18.245197" x2="37.997959" y2="39.658928"/> + <linearGradient xlink:href="#linearGradient6772" id="linearGradient7068" gradientUnits="userSpaceOnUse" x1="7.8838124" y1="18.558826" x2="7.8838124" y2="34.97258"/> + <linearGradient xlink:href="#linearGradient6728" id="linearGradient7070" gradientUnits="userSpaceOnUse" x1="15.133464" y1="32.587334" x2="17.008692" y2="32.587334"/> + <linearGradient xlink:href="#linearGradient6631" id="linearGradient7072" gradientUnits="userSpaceOnUse" x1="-0.52151477" y1="29.500589" x2="18.516363" y2="14.809909"/> + <radialGradient xlink:href="#linearGradient6685" id="radialGradient7074" gradientUnits="userSpaceOnUse" gradientTransform="matrix(-0.5944965,-3.8328271e-7,4.1781509e-7,-0.6480585,194.52841,528.49324)" cx="122" cy="401.95938" fx="122" fy="401.95938" r="6.7283827"/> + <linearGradient xlink:href="#linearGradient6728" id="linearGradient7076" gradientUnits="userSpaceOnUse" x1="15.072129" y1="21.263441" x2="17.008948" y2="21.263441"/> + <linearGradient xlink:href="#linearGradient6746" id="linearGradient7078" gradientUnits="userSpaceOnUse" x1="15.526249" y1="2.097311" x2="15.526249" y2="14.758003"/> + <linearGradient xlink:href="#linearGradient6764" id="linearGradient7080" gradientUnits="userSpaceOnUse" x1="11.884123" y1="10.724713" x2="6.123559" y2="29.316263"/> + <linearGradient xlink:href="#linearGradient9362" id="linearGradient7082" gradientUnits="userSpaceOnUse" x1="8.5806656" y1="20.995518" x2="8.5806656" y2="23.085056"/> + <linearGradient xlink:href="#linearGradient9362" id="linearGradient7084" gradientUnits="userSpaceOnUse" gradientTransform="translate(25.006402,2.9778958e-7)" x1="8.5806656" y1="20.995518" x2="8.5806656" y2="23.085056"/> + <linearGradient xlink:href="#linearGradient9362" id="linearGradient7086" gradientUnits="userSpaceOnUse" gradientTransform="translate(35.006405,2.9778958e-7)" x1="8.5806656" y1="20.995518" x2="8.5806656" y2="23.085056"/> + <linearGradient xlink:href="#linearGradient6825" id="linearGradient7132" gradientUnits="userSpaceOnUse" x1="37.997959" y1="18.245197" x2="37.997959" y2="39.658928"/> + <linearGradient xlink:href="#linearGradient6772" id="linearGradient7134" gradientUnits="userSpaceOnUse" x1="7.8838124" y1="18.558826" x2="7.8838124" y2="34.97258"/> + <linearGradient xlink:href="#linearGradient6728" id="linearGradient7136" gradientUnits="userSpaceOnUse" x1="15.133464" y1="32.587334" x2="17.008692" y2="32.587334"/> + <linearGradient xlink:href="#linearGradient6631" id="linearGradient7138" gradientUnits="userSpaceOnUse" x1="-0.52151477" y1="29.500589" x2="18.516363" y2="14.809909"/> + <radialGradient xlink:href="#linearGradient6685" id="radialGradient7140" gradientUnits="userSpaceOnUse" gradientTransform="matrix(-0.5944965,-3.8328271e-7,4.1781509e-7,-0.6480585,194.52841,528.49324)" cx="122" cy="401.95938" fx="122" fy="401.95938" r="6.7283827"/> + <linearGradient xlink:href="#linearGradient6728" id="linearGradient7142" gradientUnits="userSpaceOnUse" x1="15.072129" y1="21.263441" x2="17.008948" y2="21.263441"/> + <linearGradient xlink:href="#linearGradient6746" id="linearGradient7144" gradientUnits="userSpaceOnUse" x1="15.526249" y1="2.097311" x2="15.526249" y2="14.758003"/> + <linearGradient xlink:href="#linearGradient6764" id="linearGradient7146" gradientUnits="userSpaceOnUse" x1="11.884123" y1="10.724713" x2="6.123559" y2="29.316263"/> + <linearGradient xlink:href="#linearGradient9362" id="linearGradient7148" gradientUnits="userSpaceOnUse" x1="8.5806656" y1="20.995518" x2="8.5806656" y2="23.085056"/> + <linearGradient xlink:href="#linearGradient9362" id="linearGradient7150" gradientUnits="userSpaceOnUse" gradientTransform="translate(25.006402,2.9778958e-7)" x1="8.5806656" y1="20.995518" x2="8.5806656" y2="23.085056"/> + <linearGradient xlink:href="#linearGradient9362" id="linearGradient7152" gradientUnits="userSpaceOnUse" gradientTransform="translate(35.006405,2.9778958e-7)" x1="8.5806656" y1="20.995518" x2="8.5806656" y2="23.085056"/> + <filter id="filter7663" x="-0.1147047" width="1.2294094" y="-0.12580788" height="1.2516158"> + <feGaussianBlur stdDeviation="2.2006423" id="feGaussianBlur7665"/> </filter> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient9810" - id="linearGradient7668" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1,0,0,1.6289807,9.712841,-28.775305)" - x1="32.200001" - y1="46" - x2="32.200001" - y2="20.59375" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient9810" - id="linearGradient7671" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1,0,0,1.6289807,6.870945,-28.775305)" - x1="23.1" - y1="46" - x2="23.1" - y2="32.256355" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient9810" - id="linearGradient7674" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1,0,0,1.6289807,3.329052,-28.775305)" - x1="14.197642" - y1="46" - x2="14.197642" - y2="20.593699" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient9810" - id="linearGradient7677" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1,0,0,1.6289807,2.0139e-2,-28.933112)" - x1="6.0670195" - y1="46" - x2="6.0670195" - y2="33.256096" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8371" - id="linearGradient8377" - x1="24" - y1="45.998173" - x2="24" - y2="2.0644991" - gradientUnits="userSpaceOnUse" /> + <linearGradient xlink:href="#linearGradient8371" id="linearGradient8377" x1="24" y1="45.998173" x2="24" y2="2.0644991" gradientUnits="userSpaceOnUse"/> </defs> - <metadata - id="metadata14358"> + <metadata id="metadata14358"> <rdf:RDF> - <cc:Work - rdf:about=""> + <cc:Work rdf:about=""> <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <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"> - <rect - style="fill:url(#radialGradient6968);fill-opacity:1;fill-rule:evenodd;stroke:#132c50;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect14363" - width="47" - height="47" - x="0.5" - y="0.5" /> - <g - id="g7018" - transform="translate(-1.6037056e-2,3.090275e-2)"> - <path - sodipodi:nodetypes="cccccccccccccccccc" - id="path7020" - d="M 1.5112736,46.463508 L 46.518528,46.463508 L 46.518528,20.097311 L 42.49936,11.994593 L 37.997439,20.097311 L 33.503201,11.994593 L 29.51269,20.097311 L 29.51269,40.518226 L 17.513556,40.518226 L 17.513556,15.979513 L 18.991385,15.979513 L 15.625234,5.482499 L 11.994559,15.979622 L 13.487574,15.979622 L 13.487574,22.494238 L 8.5736236,16.493825 L 1.5112736,16.493825 L 1.5112736,46.463508 z" - style="fill:#888a85;fill-rule:evenodd;stroke:#888a85;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" /> - <path - sodipodi:nodetypes="cccccccc" - id="path7022" - d="M 46.499202,19.996278 L 46.499164,39.496968 L 29.497928,39.514749 L 29.496716,20.073218 L 33.471729,13.30179 L 37.969149,19.742327 L 42.464705,13.30179 L 46.499202,19.996278 z" - style="fill:url(#linearGradient7066);fill-opacity:1;fill-rule:evenodd;stroke:#331f00;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" /> - <path - sodipodi:nodetypes="ccc" - id="path7024" - d="M 30.4991,19.359794 L 30.495194,38.512814 L 45.998784,38.497189" - style="opacity:0.25;fill:none;fill-rule:evenodd;stroke:#eeeeec;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <rect - y="14.973112" - x="13.484319" - height="24.544136" - width="4.027225" - id="rect7026" - style="fill:#eeeeec;fill-opacity:1;fill-rule:evenodd;stroke:#2e3436;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <rect - y="25.958162" - x="1.5003295" - height="13.560402" - width="14.000328" - id="rect7028" - style="fill:url(#linearGradient7068);fill-opacity:1;fill-rule:evenodd;stroke:#2e3436;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <path - sodipodi:nodetypes="ccccc" - id="path7030" - d="M 16.000204,26.158288 L 17.008692,26.165076 L 17.006997,39.016383 L 16.000204,39.016383 L 16.000204,26.158288 z" - style="fill:url(#linearGradient7070);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <path - sodipodi:nodetypes="ccccc" - id="path7032" - d="M 1.5018555,16.471187 L 1.5018555,26.192359 L 16.519497,26.192359 L 8.5470601,16.471187 L 1.5018555,16.471187 z" - style="fill:#7f4f01;fill-opacity:1;fill-rule:evenodd;stroke:#392100;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" /> - <path - sodipodi:nodetypes="ccccccccc" - id="path7034" - d="M 46.494238,19.981528 L 42.46863,15.428034 L 37.978753,20.107557 L 33.495519,15.782001 L 28.445309,22.028089 L 33.475653,11.989135 L 37.973073,19.908885 L 42.468629,12.0045 L 46.494238,19.981528 z" - style="fill:#d3d7cf;fill-rule:evenodd;stroke:#d3d7cf;stroke-width:1.10000002;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> - <path - sodipodi:nodetypes="ccccc" - id="path7036" - d="M 1.9983315,16.96932 L 1.9983315,25.690091 L 15.466816,25.690091 L 8.3170492,16.96932 L 1.9983315,16.96932 z" - style="opacity:0.5;fill:url(#linearGradient7072);fill-opacity:1;fill-rule:evenodd;stroke:url(#radialGradient7074);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" /> - <path - sodipodi:nodetypes="cccc" - id="path7038" - d="M 15.632485,5.4903604 L 12.001677,15.991016 L 19.003769,15.992368 L 15.632485,5.4903604 z" - style="fill:#532323;fill-opacity:1;fill-rule:evenodd;stroke:#2a1111;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" /> - <path - sodipodi:nodetypes="ccccscc" - id="path7040" - d="M 13.983416,22.32144 L 13.983416,16.492941 L 17.007669,16.492941 L 17.007669,21.219904 L 17.008948,26.033783 C 17.008949,26.039055 16.935124,25.911261 16.894583,25.856332 L 13.983416,22.32144 z" - style="fill:url(#linearGradient7076);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <path - sodipodi:nodetypes="cccc" - id="path7042" - d="M 15.595391,8.6350832 L 13.413573,14.980794 L 17.638924,14.980794 L 15.595391,8.6350832 z" - style="opacity:0.5;fill:none;fill-rule:evenodd;stroke:url(#linearGradient7078);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - sodipodi:nodetypes="cccc" - id="path7044" - d="M 1.9974392,25.190652 L 14.412292,25.190652 L 8.0819463,17.470171 L 2.0013455,17.470171" - style="opacity:0.5;fill:none;fill-rule:evenodd;stroke:url(#linearGradient7080);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <g - style="fill:#fce94f" - id="g7046"> - <rect - style="fill:#fce94f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect7048" - width="2" - height="2" - x="30.999861" - y="22.002562" /> - <rect - style="fill:#fce94f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect7050" - width="2" - height="2" - x="34.001801" - y="22.000923" /> - <rect - style="fill:#fce94f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect7052" - width="2" - height="2" - x="40.997707" - y="22.000923" /> - <rect - style="fill:#fce94f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect7054" - width="2" - height="2" - x="9.0004454" - y="22.002562" /> - <rect - style="fill:#fce94f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect7056" - width="2" - height="2" - x="6.0018048" - y="22.002562" /> + <g id="layer1"> + <rect width="47" height="47" x="0.5" y="0.5" fill="url(#radialGradient6968)" fill-opacity="1" fill-rule="evenodd" stroke="#132c50" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <g transform="translate(-1.6037056e-2,3.090275e-2)"> + <path d="M 1.5112736,46.463508 L 46.518528,46.463508 L 46.518528,20.097311 L 42.49936,11.994593 L 37.997439,20.097311 L 33.503201,11.994593 L 29.51269,20.097311 L 29.51269,40.518226 L 17.513556,40.518226 L 17.513556,15.979513 L 18.991385,15.979513 L 15.625234,5.482499 L 11.994559,15.979622 L 13.487574,15.979622 L 13.487574,22.494238 L 8.5736236,16.493825 L 1.5112736,16.493825 L 1.5112736,46.463508 z" fill="#888a85" fill-rule="evenodd" stroke="#888a85" stroke-width="1px" stroke-linecap="butt" stroke-linejoin="round" stroke-opacity="1"/> + <path d="M 46.499202,19.996278 L 46.499164,39.496968 L 29.497928,39.514749 L 29.496716,20.073218 L 33.471729,13.30179 L 37.969149,19.742327 L 42.464705,13.30179 L 46.499202,19.996278 z" fill="url(#linearGradient7066)" fill-opacity="1" fill-rule="evenodd" stroke="#331f00" stroke-width="1px" stroke-linecap="round" stroke-linejoin="miter" stroke-opacity="1"/> + <path d="M 30.4991,19.359794 L 30.495194,38.512814 L 45.998784,38.497189" opacity="0.25" fill="none" fill-rule="evenodd" stroke="#eeeeec" stroke-width="1px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1"/> + <rect y="14.973112" x="13.484319" height="24.544136" width="4.027225" fill="#eeeeec" fill-opacity="1" fill-rule="evenodd" stroke="#2e3436" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <rect y="25.958162" x="1.5003295" height="13.560402" width="14.000328" fill="url(#linearGradient7068)" fill-opacity="1" fill-rule="evenodd" stroke="#2e3436" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 16.000204,26.158288 L 17.008692,26.165076 L 17.006997,39.016383 L 16.000204,39.016383 L 16.000204,26.158288 z" fill="url(#linearGradient7070)" fill-opacity="1" fill-rule="evenodd" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 1.5018555,16.471187 L 1.5018555,26.192359 L 16.519497,26.192359 L 8.5470601,16.471187 L 1.5018555,16.471187 z" fill="#7f4f01" fill-opacity="1" fill-rule="evenodd" stroke="#392100" stroke-width="1px" stroke-linecap="butt" stroke-linejoin="round" stroke-opacity="1"/> + <path d="M 46.494238,19.981528 L 42.46863,15.428034 L 37.978753,20.107557 L 33.495519,15.782001 L 28.445309,22.028089 L 33.475653,11.989135 L 37.973073,19.908885 L 42.468629,12.0045 L 46.494238,19.981528 z" fill="#d3d7cf" fill-rule="evenodd" stroke="#d3d7cf" stroke-width="1.10000002" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="4" stroke-dasharray="none" stroke-opacity="1"/> + <path d="M 1.9983315,16.96932 L 1.9983315,25.690091 L 15.466816,25.690091 L 8.3170492,16.96932 L 1.9983315,16.96932 z" opacity="0.5" fill="url(#linearGradient7072)" fill-opacity="1" fill-rule="evenodd" stroke="url(#radialGradient7074)" stroke-width="1px" stroke-linecap="butt" stroke-linejoin="round" stroke-opacity="1"/> + <path d="M 15.632485,5.4903604 L 12.001677,15.991016 L 19.003769,15.992368 L 15.632485,5.4903604 z" fill="#532323" fill-opacity="1" fill-rule="evenodd" stroke="#2a1111" stroke-width="1px" stroke-linecap="butt" stroke-linejoin="round" stroke-opacity="1"/> + <path d="M 13.983416,22.32144 L 13.983416,16.492941 L 17.007669,16.492941 L 17.007669,21.219904 L 17.008948,26.033783 C 17.008949,26.039055 16.935124,25.911261 16.894583,25.856332 L 13.983416,22.32144 z" fill="url(#linearGradient7076)" fill-opacity="1" fill-rule="evenodd" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 15.595391,8.6350832 L 13.413573,14.980794 L 17.638924,14.980794 L 15.595391,8.6350832 z" opacity="0.5" fill="none" fill-rule="evenodd" stroke="url(#linearGradient7078)" stroke-width="1px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1"/> + <path d="M 1.9974392,25.190652 L 14.412292,25.190652 L 8.0819463,17.470171 L 2.0013455,17.470171" opacity="0.5" fill="none" fill-rule="evenodd" stroke="url(#linearGradient7080)" stroke-width="1px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1"/> + <g fill="#fce94f"> + <rect width="2" height="2" x="30.999861" y="22.002562" fill="#fce94f" fill-opacity="1" fill-rule="evenodd" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="round" stroke-miterlimit="4" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <rect width="2" height="2" x="34.001801" y="22.000923" fill="#fce94f" fill-opacity="1" fill-rule="evenodd" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="round" stroke-miterlimit="4" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <rect width="2" height="2" x="40.997707" y="22.000923" fill="#fce94f" fill-opacity="1" fill-rule="evenodd" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="round" stroke-miterlimit="4" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <rect width="2" height="2" x="9.0004454" y="22.002562" fill="#fce94f" fill-opacity="1" fill-rule="evenodd" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="round" stroke-miterlimit="4" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <rect width="2" height="2" x="6.0018048" y="22.002562" fill="#fce94f" fill-opacity="1" fill-rule="evenodd" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="round" stroke-miterlimit="4" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> </g> - <g - id="g7058"> - <path - style="fill:url(#linearGradient7082);fill-opacity:1;fill-rule:evenodd;stroke:#392100;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" - d="M 4.4711906,23.06274 L 5.7618436,21.495518 L 11.216391,21.495518 L 12.507043,23.06274" - id="path7060" - sodipodi:nodetypes="cccc" /> - <path - style="fill:url(#linearGradient7084);fill-opacity:1;fill-rule:evenodd;stroke:#392100;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" - d="M 29.477593,23.06274 L 30.768246,21.495518 L 36.222793,21.495518 L 37.513445,23.06274" - id="path7062" - sodipodi:nodetypes="cccc" /> - <path - style="fill:url(#linearGradient7086);fill-opacity:1;fill-rule:evenodd;stroke:#392100;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" - d="M 39.477596,23.06274 L 40.768249,21.495518 L 43.203584,21.495518 L 44.822027,23.06274" - id="path7064" - sodipodi:nodetypes="cccc" /> + <g> + <path d="M 4.4711906,23.06274 L 5.7618436,21.495518 L 11.216391,21.495518 L 12.507043,23.06274" fill="url(#linearGradient7082)" fill-opacity="1" fill-rule="evenodd" stroke="#392100" stroke-width="1px" stroke-linecap="round" stroke-linejoin="miter" stroke-opacity="1"/> + <path d="M 29.477593,23.06274 L 30.768246,21.495518 L 36.222793,21.495518 L 37.513445,23.06274" fill="url(#linearGradient7084)" fill-opacity="1" fill-rule="evenodd" stroke="#392100" stroke-width="1px" stroke-linecap="round" stroke-linejoin="miter" stroke-opacity="1"/> + <path d="M 39.477596,23.06274 L 40.768249,21.495518 L 43.203584,21.495518 L 44.822027,23.06274" fill="url(#linearGradient7086)" fill-opacity="1" fill-rule="evenodd" stroke="#392100" stroke-width="1px" stroke-linecap="round" stroke-linejoin="miter" stroke-opacity="1"/> </g> </g> - <g - id="g6993" - transform="translate(-7.6824584e-3,3.0729835e-2)" - style="filter:url(#filter7663);opacity:0.6"> - <path - sodipodi:nodetypes="cccccccccccccccccc" - id="path15135" - d="M 1.4995548,46.463508 L 46.518528,46.463508 L 46.518528,20.097311 L 42.49936,11.994593 L 37.997439,20.097311 L 33.503201,11.994593 L 29.51269,20.097311 L 29.51269,40.518226 L 17.513556,40.518226 L 17.513556,15.979513 L 18.991385,15.979513 L 15.625234,5.482499 L 11.994559,15.979622 L 13.487574,15.979622 L 13.487574,22.494238 L 8.5736236,16.493825 L 1.4995548,16.493825 L 1.4995548,46.463508 z" - style="fill:#888a85;fill-rule:evenodd;stroke:#888a85;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" /> - <path - sodipodi:nodetypes="cccccccc" - id="path6819" - d="M 46.499202,19.996278 L 46.499164,39.496968 L 29.497928,39.514749 L 29.496716,20.073218 L 33.471729,13.30179 L 37.969149,19.742327 L 42.464705,13.30179 L 46.499202,19.996278 z" - style="fill:url(#linearGradient7132);fill-opacity:1;fill-rule:evenodd;stroke:#331f00;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" /> - <path - sodipodi:nodetypes="ccc" - id="path6843" - d="M 30.4991,19.359794 L 30.495194,38.512814 L 45.998784,38.497189" - style="opacity:0.25000000000000000;fill:none;fill-rule:evenodd;stroke:#eeeeec;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <rect - y="14.973112" - x="13.484319" - height="24.544136" - width="4.027225" - id="rect6714" - style="fill:#eeeeec;fill-opacity:1;fill-rule:evenodd;stroke:#2e3436;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <rect - y="25.958162" - x="1.5003295" - height="13.560402" - width="14.000328" - id="rect6611" - style="fill:url(#linearGradient7134);fill-opacity:1;fill-rule:evenodd;stroke:#2e3436;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <path - sodipodi:nodetypes="ccccc" - id="path6718" - d="M 16.000204,26.158288 L 17.008692,26.165076 L 17.006997,39.016383 L 16.000204,39.016383 L 16.000204,26.158288 z" - style="fill:url(#linearGradient7136);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <path - sodipodi:nodetypes="ccccc" - id="path6607" - d="M 1.5018555,16.471187 L 1.5018555,26.192359 L 16.519497,26.192359 L 8.5470601,16.471187 L 1.5018555,16.471187 z" - style="fill:#7f4f01;fill-opacity:1;fill-rule:evenodd;stroke:#392100;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" /> - <path - sodipodi:nodetypes="ccccccccc" - id="path6817" - d="M 46.494238,19.981528 L 42.46863,15.428034 L 37.978753,20.107557 L 33.495519,15.782001 L 28.445309,22.028089 L 33.475653,11.989135 L 37.973073,19.908885 L 42.468629,12.0045 L 46.494238,19.981528 z" - style="fill:#d3d7cf;fill-rule:evenodd;stroke:#d3d7cf;stroke-width:1.10000002000000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> - <path - sodipodi:nodetypes="ccccc" - id="path6629" - d="M 1.9983315,16.96932 L 1.9983315,25.690091 L 15.466816,25.690091 L 8.3170492,16.96932 L 1.9983315,16.96932 z" - style="opacity:0.50000000000000000;fill:url(#linearGradient7138);fill-opacity:1;fill-rule:evenodd;stroke:url(#radialGradient7140);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" /> - <path - sodipodi:nodetypes="cccc" - id="path6712" - d="M 15.632485,5.4903604 L 12.001677,15.991016 L 19.003769,15.992368 L 15.632485,5.4903604 z" - style="fill:#532323;fill-opacity:1;fill-rule:evenodd;stroke:#2a1111;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" /> - <path - sodipodi:nodetypes="ccccscc" - id="path6716" - d="M 13.983416,22.32144 L 13.983416,16.492941 L 17.007669,16.492941 L 17.007669,21.219904 L 17.008948,26.033783 C 17.008949,26.039055 16.935124,25.911261 16.894583,25.856332 L 13.983416,22.32144 z" - style="fill:url(#linearGradient7142);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <path - sodipodi:nodetypes="cccc" - id="path6744" - d="M 15.595391,8.6350832 L 13.413573,14.980794 L 17.638924,14.980794 L 15.595391,8.6350832 z" - style="opacity:0.50000000000000000;fill:none;fill-rule:evenodd;stroke:url(#linearGradient7144);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - sodipodi:nodetypes="cccc" - id="path6754" - d="M 1.9974392,25.190652 L 14.412292,25.190652 L 8.0819463,17.470171 L 2.0013455,17.470171" - style="opacity:0.50000000000000000;fill:none;fill-rule:evenodd;stroke:url(#linearGradient7146);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <g - style="fill:#fce94f" - id="g6598"> - <rect - style="fill:#fce94f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect15193" - width="2" - height="2" - x="30.999861" - y="22.002562" /> - <rect - style="fill:#fce94f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect15201" - width="2" - height="2" - x="34.001801" - y="22.000923" /> - <rect - style="fill:#fce94f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect15213" - width="2" - height="2" - x="40.997707" - y="22.000923" /> - <rect - style="fill:#fce94f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect15231" - width="2" - height="2" - x="9.0004454" - y="22.002562" /> - <rect - style="fill:#fce94f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect15235" - width="2" - height="2" - x="6.0018048" - y="22.002562" /> + <g transform="translate(-7.6824584e-3,3.0729835e-2)" filter="url(#filter7663)" opacity="0.6"> + <path d="M 1.4995548,46.463508 L 46.518528,46.463508 L 46.518528,20.097311 L 42.49936,11.994593 L 37.997439,20.097311 L 33.503201,11.994593 L 29.51269,20.097311 L 29.51269,40.518226 L 17.513556,40.518226 L 17.513556,15.979513 L 18.991385,15.979513 L 15.625234,5.482499 L 11.994559,15.979622 L 13.487574,15.979622 L 13.487574,22.494238 L 8.5736236,16.493825 L 1.4995548,16.493825 L 1.4995548,46.463508 z" fill="#888a85" fill-rule="evenodd" stroke="#888a85" stroke-width="1px" stroke-linecap="butt" stroke-linejoin="round" stroke-opacity="1"/> + <path d="M 46.499202,19.996278 L 46.499164,39.496968 L 29.497928,39.514749 L 29.496716,20.073218 L 33.471729,13.30179 L 37.969149,19.742327 L 42.464705,13.30179 L 46.499202,19.996278 z" fill="url(#linearGradient7132)" fill-opacity="1" fill-rule="evenodd" stroke="#331f00" stroke-width="1px" stroke-linecap="round" stroke-linejoin="miter" stroke-opacity="1"/> + <path d="M 30.4991,19.359794 L 30.495194,38.512814 L 45.998784,38.497189" opacity="0.25000000000000000" fill="none" fill-rule="evenodd" stroke="#eeeeec" stroke-width="1px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1"/> + <rect y="14.973112" x="13.484319" height="24.544136" width="4.027225" fill="#eeeeec" fill-opacity="1" fill-rule="evenodd" stroke="#2e3436" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <rect y="25.958162" x="1.5003295" height="13.560402" width="14.000328" fill="url(#linearGradient7134)" fill-opacity="1" fill-rule="evenodd" stroke="#2e3436" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 16.000204,26.158288 L 17.008692,26.165076 L 17.006997,39.016383 L 16.000204,39.016383 L 16.000204,26.158288 z" fill="url(#linearGradient7136)" fill-opacity="1" fill-rule="evenodd" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 1.5018555,16.471187 L 1.5018555,26.192359 L 16.519497,26.192359 L 8.5470601,16.471187 L 1.5018555,16.471187 z" fill="#7f4f01" fill-opacity="1" fill-rule="evenodd" stroke="#392100" stroke-width="1px" stroke-linecap="butt" stroke-linejoin="round" stroke-opacity="1"/> + <path d="M 46.494238,19.981528 L 42.46863,15.428034 L 37.978753,20.107557 L 33.495519,15.782001 L 28.445309,22.028089 L 33.475653,11.989135 L 37.973073,19.908885 L 42.468629,12.0045 L 46.494238,19.981528 z" fill="#d3d7cf" fill-rule="evenodd" stroke="#d3d7cf" stroke-width="1.10000002000000000" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="4" stroke-dasharray="none" stroke-opacity="1"/> + <path d="M 1.9983315,16.96932 L 1.9983315,25.690091 L 15.466816,25.690091 L 8.3170492,16.96932 L 1.9983315,16.96932 z" opacity="0.50000000000000000" fill="url(#linearGradient7138)" fill-opacity="1" fill-rule="evenodd" stroke="url(#radialGradient7140)" stroke-width="1px" stroke-linecap="butt" stroke-linejoin="round" stroke-opacity="1"/> + <path d="M 15.632485,5.4903604 L 12.001677,15.991016 L 19.003769,15.992368 L 15.632485,5.4903604 z" fill="#532323" fill-opacity="1" fill-rule="evenodd" stroke="#2a1111" stroke-width="1px" stroke-linecap="butt" stroke-linejoin="round" stroke-opacity="1"/> + <path d="M 13.983416,22.32144 L 13.983416,16.492941 L 17.007669,16.492941 L 17.007669,21.219904 L 17.008948,26.033783 C 17.008949,26.039055 16.935124,25.911261 16.894583,25.856332 L 13.983416,22.32144 z" fill="url(#linearGradient7142)" fill-opacity="1" fill-rule="evenodd" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 15.595391,8.6350832 L 13.413573,14.980794 L 17.638924,14.980794 L 15.595391,8.6350832 z" opacity="0.50000000000000000" fill="none" fill-rule="evenodd" stroke="url(#linearGradient7144)" stroke-width="1px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1"/> + <path d="M 1.9974392,25.190652 L 14.412292,25.190652 L 8.0819463,17.470171 L 2.0013455,17.470171" opacity="0.50000000000000000" fill="none" fill-rule="evenodd" stroke="url(#linearGradient7146)" stroke-width="1px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1"/> + <g fill="#fce94f"> + <rect width="2" height="2" x="30.999861" y="22.002562" fill="#fce94f" fill-opacity="1" fill-rule="evenodd" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="round" stroke-miterlimit="4" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <rect width="2" height="2" x="34.001801" y="22.000923" fill="#fce94f" fill-opacity="1" fill-rule="evenodd" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="round" stroke-miterlimit="4" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <rect width="2" height="2" x="40.997707" y="22.000923" fill="#fce94f" fill-opacity="1" fill-rule="evenodd" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="round" stroke-miterlimit="4" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <rect width="2" height="2" x="9.0004454" y="22.002562" fill="#fce94f" fill-opacity="1" fill-rule="evenodd" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="round" stroke-miterlimit="4" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <rect width="2" height="2" x="6.0018048" y="22.002562" fill="#fce94f" fill-opacity="1" fill-rule="evenodd" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="round" stroke-miterlimit="4" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> </g> - <g - id="g6422"> - <path - style="fill:url(#linearGradient7148);fill-opacity:1;fill-rule:evenodd;stroke:#392100;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" - d="M 4.4711906,23.06274 L 5.7618436,21.495518 L 11.216391,21.495518 L 12.507043,23.06274" - id="path9350" - sodipodi:nodetypes="cccc" /> - <path - style="fill:url(#linearGradient7150);fill-opacity:1;fill-rule:evenodd;stroke:#392100;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" - d="M 29.477593,23.06274 L 30.768246,21.495518 L 36.222793,21.495518 L 37.513445,23.06274" - id="path9368" - sodipodi:nodetypes="cccc" /> - <path - style="fill:url(#linearGradient7152);fill-opacity:1;fill-rule:evenodd;stroke:#392100;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" - d="M 39.477596,23.06274 L 40.768249,21.495518 L 43.203584,21.495518 L 44.822027,23.06274" - id="path9372" - sodipodi:nodetypes="cccc" /> + <g> + <path d="M 4.4711906,23.06274 L 5.7618436,21.495518 L 11.216391,21.495518 L 12.507043,23.06274" fill="url(#linearGradient7148)" fill-opacity="1" fill-rule="evenodd" stroke="#392100" stroke-width="1px" stroke-linecap="round" stroke-linejoin="miter" stroke-opacity="1"/> + <path d="M 29.477593,23.06274 L 30.768246,21.495518 L 36.222793,21.495518 L 37.513445,23.06274" fill="url(#linearGradient7150)" fill-opacity="1" fill-rule="evenodd" stroke="#392100" stroke-width="1px" stroke-linecap="round" stroke-linejoin="miter" stroke-opacity="1"/> + <path d="M 39.477596,23.06274 L 40.768249,21.495518 L 43.203584,21.495518 L 44.822027,23.06274" fill="url(#linearGradient7152)" fill-opacity="1" fill-rule="evenodd" stroke="#392100" stroke-width="1px" stroke-linecap="round" stroke-linejoin="miter" stroke-opacity="1"/> </g> </g> - <rect - style="opacity:0.5;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#eeeeec;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect15237" - width="45" - height="45" - x="1.5" - y="1.5" /> - <rect - style="opacity:0.5;fill:url(#linearGradient8377);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect9717" - width="44" - height="43.933674" - x="2" - y="2.0644991" /> + <rect width="45" height="45" x="1.5" y="1.5" opacity="0.5" fill="none" fill-opacity="1" fill-rule="evenodd" stroke="#eeeeec" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <rect width="44" height="43.933674" x="2" y="2.0644991" opacity="0.5" fill="url(#linearGradient8377)" fill-opacity="1" fill-rule="evenodd" stroke="none" stroke-width="1" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="4" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> </g> </svg> diff --git a/demos/embedded/weatherinfo/icons/weather-icy.svg b/demos/embedded/weatherinfo/icons/weather-icy.svg index fe42860..2c45b33 100644 --- a/demos/embedded/weatherinfo/icons/weather-icy.svg +++ b/demos/embedded/weatherinfo/icons/weather-icy.svg @@ -1,255 +1,51 @@ <?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="svg6619" - sodipodi:version="0.32" - inkscape:version="0.46" - version="1.0" - sodipodi:docname="weather-icy.svg" - inkscape:output_extension="org.inkscape.output.svg.inkscape"> - <defs - id="defs6621"> - <linearGradient - inkscape:collect="always" - id="linearGradient7440"> - <stop - style="stop-color:#eeeeec;stop-opacity:1;" - offset="0" - id="stop7442" /> - <stop - style="stop-color:#eeeeec;stop-opacity:0;" - offset="1" - id="stop7444" /> +<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="48" height="48" id="svg6619" version="1.0"> + <defs id="defs6621"> + <linearGradient id="linearGradient7440"> + <stop offset="0" id="stop7442" stop-color="#eeeeec" stop-opacity="1"/> + <stop offset="1" id="stop7444" stop-color="#eeeeec" stop-opacity="0"/> </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient7430"> - <stop - style="stop-color:#eeeeec;stop-opacity:1;" - offset="0" - id="stop7432" /> - <stop - style="stop-color:#eeeeec;stop-opacity:0;" - offset="1" - id="stop7434" /> + <linearGradient id="linearGradient7430"> + <stop offset="0" id="stop7432" stop-color="#eeeeec" stop-opacity="1"/> + <stop offset="1" id="stop7434" stop-color="#eeeeec" stop-opacity="0"/> </linearGradient> - <linearGradient - id="linearGradient7392"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop7394" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop7396" /> + <linearGradient id="linearGradient7392"> + <stop offset="0" id="stop7394" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop7396" stop-color="#ffffff" stop-opacity="0"/> </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient7380"> - <stop - style="stop-color:#cedeef;stop-opacity:1;" - offset="0" - id="stop7382" /> - <stop - style="stop-color:#cedeef;stop-opacity:0;" - offset="1" - id="stop7384" /> + <linearGradient id="linearGradient7380"> + <stop offset="0" id="stop7382" stop-color="#cedeef" stop-opacity="1"/> + <stop offset="1" id="stop7384" stop-color="#cedeef" stop-opacity="0"/> </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="perspective6627" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient7380" - id="linearGradient7386" - x1="18.165867" - y1="9.2548895" - x2="20.711481" - y2="21.572344" - gradientUnits="userSpaceOnUse" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient7392" - id="radialGradient7398" - cx="17.700384" - cy="13.797695" - fx="17.700384" - fy="13.797695" - r="1.4135723" - gradientTransform="matrix(1,0,0,1.0652174,6.1248392e-7,-0.8998502)" - gradientUnits="userSpaceOnUse" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient7392" - id="radialGradient7402" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1,0,0,1.0652174,6.1248392e-7,-0.8998502)" - cx="17.700384" - cy="13.797695" - fx="17.700384" - fy="13.797695" - r="1.4135723" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient7430" - id="radialGradient7438" - cx="10.693982" - cy="16.471191" - fx="10.693982" - fy="16.471191" - r="0.553137" - gradientTransform="matrix(2.1647007,0,0,0.8888889,-12.455288,1.8301322)" - gradientUnits="userSpaceOnUse" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient7440" - id="radialGradient7448" - cx="10.693982" - cy="16.471191" - fx="10.693982" - fy="16.471191" - r="0.553137" - gradientTransform="matrix(2.2783611,0,0,0.8888889,-13.670771,1.8301322)" - gradientUnits="userSpaceOnUse" /> + <linearGradient xlink:href="#linearGradient7380" id="linearGradient7386" x1="18.165867" y1="9.2548895" x2="20.711481" y2="21.572344" gradientUnits="userSpaceOnUse"/> + <radialGradient xlink:href="#linearGradient7392" id="radialGradient7398" cx="17.700384" cy="13.797695" fx="17.700384" fy="13.797695" r="1.4135723" gradientTransform="matrix(1,0,0,1.0652174,6.1248392e-7,-0.8998502)" gradientUnits="userSpaceOnUse"/> + <radialGradient xlink:href="#linearGradient7392" id="radialGradient7402" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1,0,0,1.0652174,6.1248392e-7,-0.8998502)" cx="17.700384" cy="13.797695" fx="17.700384" fy="13.797695" r="1.4135723"/> + <radialGradient xlink:href="#linearGradient7430" id="radialGradient7438" cx="10.693982" cy="16.471191" fx="10.693982" fy="16.471191" r="0.553137" gradientTransform="matrix(2.1647007,0,0,0.8888889,-12.455288,1.8301322)" gradientUnits="userSpaceOnUse"/> + <radialGradient xlink:href="#linearGradient7440" id="radialGradient7448" cx="10.693982" cy="16.471191" fx="10.693982" fy="16.471191" r="0.553137" gradientTransform="matrix(2.2783611,0,0,0.8888889,-13.670771,1.8301322)" gradientUnits="userSpaceOnUse"/> </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="1" - inkscape:cx="31.408407" - inkscape:cy="30.326192" - inkscape:document-units="px" - inkscape:current-layer="layer1" - showgrid="false" - showguides="true" - inkscape:guide-bbox="true" - inkscape:window-width="982" - inkscape:window-height="965" - inkscape:window-x="1280" - inkscape:window-y="28" /> - <metadata - id="metadata6624"> + + <metadata id="metadata6624"> <rdf:RDF> - <cc:Work - rdf:about=""> + <cc:Work rdf:about=""> <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <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"> - <g - id="g7906"> - <path - id="path7342" - d="M 24 10.375 C 11.701921 10.375 1.71875 12.767211 1.71875 15.71875 C 1.71875 17.498261 5.3609075 19.059125 10.9375 20.03125 L 14.3125 46.90625 L 17.9375 26.1875 L 21.3125 41.90625 L 25.5625 23.71875 L 28.03125 37.6875 L 32.3125 22.9375 L 34.84375 33.0625 L 38.375 19.8125 C 43.199321 18.83144 46.28125 17.354051 46.28125 15.71875 C 46.28125 12.767211 36.298079 10.375 24 10.375 z " - style="fill:#729fcf;fill-rule:evenodd;stroke:#204a87;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" /> - <path - sodipodi:nodetypes="cssssscssssscscssssszsssssc" - id="path7150" - d="M 24.013525,20.535861 C 29.915498,20.535861 35.256377,19.860148 39.169775,19.061611 C 41.126474,18.662343 42.702812,18.185066 43.857275,17.628422 C 45.011738,17.071777 45.794775,16.382816 45.794775,15.758562 C 45.794775,15.111496 45.011739,14.383887 43.857275,13.827243 C 42.702811,13.270598 41.126474,12.706404 39.169775,12.307136 C 35.256377,11.508599 29.915498,10.878502 24.013525,10.878502 C 18.111552,10.878502 12.739423,11.552057 8.826025,12.350594 C 6.8693258,12.749862 5.2929887,13.270598 4.138525,13.827243 C 2.9840613,14.383887 2.201025,14.939123 2.201025,15.758562 C 2.201025,16.578001 2.9840613,17.071777 4.138525,17.628422 C 5.2929887,18.185066 6.8693258,18.662343 8.826025,19.061611 M 8.826025,19.061611 C 12.739423,19.860148 18.111552,20.535861 24.013525,20.535861 M 24.013525,11.738416 C 29.832893,11.738416 35.083852,12.397075 38.857275,13.16705 C 40.743987,13.552037 42.268014,14.087721 43.263525,14.567724 C 44.259036,15.047727 44.669775,15.382119 44.669775,15.758562 C 44.669775,16.135005 44.259035,16.407937 43.263525,16.88794 C 42.268015,17.367943 40.743986,17.840596 38.857275,18.225584 C 35.083852,18.995559 29.832893,19.652061 24.013525,19.652061 C 18.194157,19.652061 12.911948,18.995559 9.138525,18.225584 C 7.2518134,17.840596 5.7277856,17.367943 4.732275,16.88794 C 3.7367644,16.407937 3.326025,16.135005 3.326025,15.758562 C 3.326025,15.382119 3.7367644,15.047727 4.732275,14.567724 C 5.7277856,14.087721 7.2518134,13.595495 9.138525,13.210508 C 12.911948,12.440533 18.194157,11.738416 24.013525,11.738416 z" - style="opacity:0.5;fill:#eeeeec;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.14379668;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <path - sodipodi:nodetypes="ccccc" - id="path7140" - d="M 20.220231,11.00128 L 29.138835,20.368103 L 24.21511,20.523801 L 15.180538,11.370038 L 20.220231,11.00128 z" - style="fill:#cedeef;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1" /> - <path - sodipodi:nodetypes="cccccccccccc" - id="path7355" - d="M 11.915494,19.751601 L 14.481435,40.163892 L 16.883534,26.331262 C 17.063009,24.706837 18.883373,24.906404 18.990928,26.307141 L 21.349551,37.344431 L 24.506026,23.859196 C 24.638961,22.408831 26.471791,22.275606 26.60475,23.905247 L 28.263765,33.272727 L 31.29544,22.83487 C 31.632247,21.540581 33.13534,21.733731 33.309125,22.813719 L 34.878361,29.055058 L 37.413573,19.544174" - style="fill:none;fill-rule:evenodd;stroke:#eeeeec;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:7;stroke-dasharray:none;opacity:0.5" /> - <path - sodipodi:nodetypes="ccccc" - id="path7358" - d="M 24.796795,10.87836 L 33.030717,20.024802 L 31.057055,20.187957 L 22.768625,10.889409 L 24.796795,10.87836 z" - style="fill:#cedeef;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - sodipodi:nodetypes="ccccc" - id="path7364" - d="M 28.334973,10.980368 L 36.114053,19.582843 L 35.115621,19.734949 L 27.305235,10.925125 L 28.334973,10.980368 z" - style="fill:#cedeef;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - sodipodi:nodetypes="ccccccc" - id="path7372" - d="M 24.276568,13.090909 C 16.315524,13.346336 6.9039601,14.217661 2.7042254,16.717029 C 1.2906531,14.934699 3.0729833,13.828425 9.2804097,12.230474 C 14.942786,11.172151 20.784867,10.869471 24.346019,10.869471 C 29.101893,10.979193 33.366216,11.259555 39.81653,12.450903 C 39.81653,12.450903 46.858243,14.197968 45.56759,16.287597 C 41.461334,13.814622 33.948682,12.944657 24.276568,13.090909 z" - style="fill:url(#linearGradient7386);fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1" /> - <path - transform="matrix(2.1222827,0,0,1.9923469,-21.167011,-16.108233)" - d="M 19.113956,13.797695 A 1.4135723,1.5057619 0 1 1 16.286812,13.797695 A 1.4135723,1.5057619 0 1 1 19.113956,13.797695 z" - sodipodi:ry="1.5057619" - sodipodi:rx="1.4135723" - sodipodi:cy="13.797695" - sodipodi:cx="17.700384" - id="path7390" - style="opacity:1;fill:url(#radialGradient7398);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:7;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - sodipodi:type="arc" /> - <path - transform="matrix(1.8078704,0,0,1.0169271,-3.0298763,-5.1757356)" - d="M 11.247119,16.471191 A 0.553137,0.49167734 0 1 1 10.140845,16.471191 A 0.553137,0.49167734 0 1 1 11.247119,16.471191 z" - sodipodi:ry="0.49167734" - sodipodi:rx="0.553137" - sodipodi:cy="16.471191" - sodipodi:cx="10.693982" - id="path7416" - style="opacity:1;fill:#eeeeec;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:7;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - sodipodi:type="arc" /> - <path - transform="matrix(4.4701088,0,0,4.6249999,-65.908816,-42.825863)" - d="M 19.113956,13.797695 A 1.4135723,1.5057619 0 1 1 16.286812,13.797695 A 1.4135723,1.5057619 0 1 1 19.113956,13.797695 z" - sodipodi:ry="1.5057619" - sodipodi:rx="1.4135723" - sodipodi:cy="13.797695" - sodipodi:cx="17.700384" - id="path7400" - style="opacity:1;fill:url(#radialGradient7402);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:7;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - sodipodi:type="arc" /> - <path - transform="matrix(4.5196759,0,0,1.0169271,-35.029811,3.0059967)" - d="M 11.247119,16.471191 A 0.553137,0.49167734 0 1 1 10.140845,16.471191 A 0.553137,0.49167734 0 1 1 11.247119,16.471191 z" - sodipodi:ry="0.49167734" - sodipodi:rx="0.553137" - sodipodi:cy="16.471191" - sodipodi:cx="10.693982" - id="path7418" - style="opacity:1;fill:url(#radialGradient7438);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:7;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - sodipodi:type="arc" /> - <path - transform="matrix(0,4.5196759,-2.0338541,0,46.913063,-27.253478)" - d="M 11.247119,16.471191 A 0.553137,0.49167734 0 1 1 10.140845,16.471191 A 0.553137,0.49167734 0 1 1 11.247119,16.471191 z" - sodipodi:ry="0.49167734" - sodipodi:rx="0.553137" - sodipodi:cy="16.471191" - sodipodi:cx="10.693982" - id="path7420" - style="opacity:1;fill:url(#radialGradient7448);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:7;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - sodipodi:type="arc" /> + <g id="layer1"> + <g> + <path d="M 24 10.375 C 11.701921 10.375 1.71875 12.767211 1.71875 15.71875 C 1.71875 17.498261 5.3609075 19.059125 10.9375 20.03125 L 14.3125 46.90625 L 17.9375 26.1875 L 21.3125 41.90625 L 25.5625 23.71875 L 28.03125 37.6875 L 32.3125 22.9375 L 34.84375 33.0625 L 38.375 19.8125 C 43.199321 18.83144 46.28125 17.354051 46.28125 15.71875 C 46.28125 12.767211 36.298079 10.375 24 10.375 z " fill="#729fcf" fill-rule="evenodd" stroke="#204a87" stroke-width="1px" stroke-linecap="butt" stroke-linejoin="round" stroke-opacity="1"/> + <path d="M 24.013525,20.535861 C 29.915498,20.535861 35.256377,19.860148 39.169775,19.061611 C 41.126474,18.662343 42.702812,18.185066 43.857275,17.628422 C 45.011738,17.071777 45.794775,16.382816 45.794775,15.758562 C 45.794775,15.111496 45.011739,14.383887 43.857275,13.827243 C 42.702811,13.270598 41.126474,12.706404 39.169775,12.307136 C 35.256377,11.508599 29.915498,10.878502 24.013525,10.878502 C 18.111552,10.878502 12.739423,11.552057 8.826025,12.350594 C 6.8693258,12.749862 5.2929887,13.270598 4.138525,13.827243 C 2.9840613,14.383887 2.201025,14.939123 2.201025,15.758562 C 2.201025,16.578001 2.9840613,17.071777 4.138525,17.628422 C 5.2929887,18.185066 6.8693258,18.662343 8.826025,19.061611 M 8.826025,19.061611 C 12.739423,19.860148 18.111552,20.535861 24.013525,20.535861 M 24.013525,11.738416 C 29.832893,11.738416 35.083852,12.397075 38.857275,13.16705 C 40.743987,13.552037 42.268014,14.087721 43.263525,14.567724 C 44.259036,15.047727 44.669775,15.382119 44.669775,15.758562 C 44.669775,16.135005 44.259035,16.407937 43.263525,16.88794 C 42.268015,17.367943 40.743986,17.840596 38.857275,18.225584 C 35.083852,18.995559 29.832893,19.652061 24.013525,19.652061 C 18.194157,19.652061 12.911948,18.995559 9.138525,18.225584 C 7.2518134,17.840596 5.7277856,17.367943 4.732275,16.88794 C 3.7367644,16.407937 3.326025,16.135005 3.326025,15.758562 C 3.326025,15.382119 3.7367644,15.047727 4.732275,14.567724 C 5.7277856,14.087721 7.2518134,13.595495 9.138525,13.210508 C 12.911948,12.440533 18.194157,11.738416 24.013525,11.738416 z" opacity="0.5" fill="#eeeeec" fill-opacity="1" fill-rule="evenodd" stroke="none" stroke-width="1.14379668" stroke-linecap="square" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 20.220231,11.00128 L 29.138835,20.368103 L 24.21511,20.523801 L 15.180538,11.370038 L 20.220231,11.00128 z" fill="#cedeef" fill-rule="evenodd" stroke="none" stroke-width="1px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1" fill-opacity="1"/> + <path d="M 11.915494,19.751601 L 14.481435,40.163892 L 16.883534,26.331262 C 17.063009,24.706837 18.883373,24.906404 18.990928,26.307141 L 21.349551,37.344431 L 24.506026,23.859196 C 24.638961,22.408831 26.471791,22.275606 26.60475,23.905247 L 28.263765,33.272727 L 31.29544,22.83487 C 31.632247,21.540581 33.13534,21.733731 33.309125,22.813719 L 34.878361,29.055058 L 37.413573,19.544174" fill="none" fill-rule="evenodd" stroke="#eeeeec" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1" stroke-miterlimit="7" stroke-dasharray="none" opacity="0.5"/> + <path d="M 24.796795,10.87836 L 33.030717,20.024802 L 31.057055,20.187957 L 22.768625,10.889409 L 24.796795,10.87836 z" fill="#cedeef" fill-opacity="1" fill-rule="evenodd" stroke="none" stroke-width="1px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1"/> + <path d="M 28.334973,10.980368 L 36.114053,19.582843 L 35.115621,19.734949 L 27.305235,10.925125 L 28.334973,10.980368 z" fill="#cedeef" fill-opacity="1" fill-rule="evenodd" stroke="none" stroke-width="1px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1"/> + <path d="M 24.276568,13.090909 C 16.315524,13.346336 6.9039601,14.217661 2.7042254,16.717029 C 1.2906531,14.934699 3.0729833,13.828425 9.2804097,12.230474 C 14.942786,11.172151 20.784867,10.869471 24.346019,10.869471 C 29.101893,10.979193 33.366216,11.259555 39.81653,12.450903 C 39.81653,12.450903 46.858243,14.197968 45.56759,16.287597 C 41.461334,13.814622 33.948682,12.944657 24.276568,13.090909 z" fill="url(#linearGradient7386)" fill-rule="evenodd" stroke="none" stroke-width="1px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1" fill-opacity="1"/> + <path transform="matrix(2.1222827,0,0,1.9923469,-21.167011,-16.108233)" d="M 19.113956,13.797695 A 1.4135723,1.5057619 0 1 1 16.286812,13.797695 A 1.4135723,1.5057619 0 1 1 19.113956,13.797695 z" opacity="1" fill="url(#radialGradient7398)" fill-opacity="1" fill-rule="evenodd" stroke="none" stroke-width="1" stroke-linecap="square" stroke-linejoin="round" stroke-miterlimit="7" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path transform="matrix(1.8078704,0,0,1.0169271,-3.0298763,-5.1757356)" d="M 11.247119,16.471191 A 0.553137,0.49167734 0 1 1 10.140845,16.471191 A 0.553137,0.49167734 0 1 1 11.247119,16.471191 z" opacity="1" fill="#eeeeec" fill-opacity="1" fill-rule="evenodd" stroke="none" stroke-width="1" stroke-linecap="square" stroke-linejoin="round" stroke-miterlimit="7" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path transform="matrix(4.4701088,0,0,4.6249999,-65.908816,-42.825863)" d="M 19.113956,13.797695 A 1.4135723,1.5057619 0 1 1 16.286812,13.797695 A 1.4135723,1.5057619 0 1 1 19.113956,13.797695 z" opacity="1" fill="url(#radialGradient7402)" fill-opacity="1" fill-rule="evenodd" stroke="none" stroke-width="1" stroke-linecap="square" stroke-linejoin="round" stroke-miterlimit="7" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path transform="matrix(4.5196759,0,0,1.0169271,-35.029811,3.0059967)" d="M 11.247119,16.471191 A 0.553137,0.49167734 0 1 1 10.140845,16.471191 A 0.553137,0.49167734 0 1 1 11.247119,16.471191 z" opacity="1" fill="url(#radialGradient7438)" fill-opacity="1" fill-rule="evenodd" stroke="none" stroke-width="1" stroke-linecap="square" stroke-linejoin="round" stroke-miterlimit="7" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path transform="matrix(0,4.5196759,-2.0338541,0,46.913063,-27.253478)" d="M 11.247119,16.471191 A 0.553137,0.49167734 0 1 1 10.140845,16.471191 A 0.553137,0.49167734 0 1 1 11.247119,16.471191 z" opacity="1" fill="url(#radialGradient7448)" fill-opacity="1" fill-rule="evenodd" stroke="none" stroke-width="1" stroke-linecap="square" stroke-linejoin="round" stroke-miterlimit="7" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> </g> </g> </svg> diff --git a/demos/embedded/weatherinfo/icons/weather-overcast.svg b/demos/embedded/weatherinfo/icons/weather-overcast.svg index 35fb4a4..cf77214 100644 --- a/demos/embedded/weatherinfo/icons/weather-overcast.svg +++ b/demos/embedded/weatherinfo/icons/weather-overcast.svg @@ -1,2554 +1,81 @@ <?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="48px" - height="48px" - id="svg1306" - sodipodi:version="0.32" - inkscape:version="0.46" - sodipodi:docbase="/home/rcollier/Work/Novell/Tango/weather" - sodipodi:docname="weather-overcast.svg" - inkscape:output_extension="org.inkscape.output.svg.inkscape"> - <defs - id="defs1308"> - <inkscape:perspective - sodipodi:type="inkscape:persp3d" - inkscape:vp_x="0 : 24 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_z="48 : 24 : 1" - inkscape:persp3d-origin="24 : 16 : 1" - id="perspective361" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient10670" - gradientUnits="userSpaceOnUse" - x1="284.80219" - y1="-441.23294" - x2="288.89954" - y2="-436.83109" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6549" - id="linearGradient10668" - gradientUnits="userSpaceOnUse" - x1="286.66589" - y1="-439.48358" - x2="289.76562" - y2="-436.70703" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6527" - id="linearGradient10666" - gradientUnits="userSpaceOnUse" - x1="275.94193" - y1="-437.10501" - x2="279.97546" - y2="-431.91833" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient10664" - gradientUnits="userSpaceOnUse" - x1="285.94086" - y1="-439.93900" - x2="289.39124" - y2="-436.44290" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6513" - id="linearGradient10662" - gradientUnits="userSpaceOnUse" - x1="286.51172" - y1="-441.29074" - x2="289.85379" - y2="-436.14453" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6497" - id="linearGradient10660" - gradientUnits="userSpaceOnUse" - x1="287.51730" - y1="-439.75281" - x2="289.67633" - y2="-436.32199" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6470" - id="linearGradient10658" - gradientUnits="userSpaceOnUse" - x1="271.02170" - y1="-441.05182" - x2="285.02859" - y2="-431.96991" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient10656" - gradientUnits="userSpaceOnUse" - x1="284.80219" - y1="-441.23294" - x2="288.89954" - y2="-436.83109" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6549"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6551" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6553" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6549" - id="linearGradient10654" - gradientUnits="userSpaceOnUse" - x1="286.66589" - y1="-439.48358" - x2="289.76562" - y2="-436.70703" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6527"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6530" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6532" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6527" - id="linearGradient10652" - gradientUnits="userSpaceOnUse" - x1="275.94193" - y1="-437.10501" - x2="279.97546" - y2="-431.91833" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6538"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6540" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6542" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient10650" - gradientUnits="userSpaceOnUse" - x1="285.94086" - y1="-439.93900" - x2="289.39124" - y2="-436.44290" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6513"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6515" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6517" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6513" - id="linearGradient10648" - gradientUnits="userSpaceOnUse" - x1="286.51172" - y1="-441.29074" - x2="289.85379" - y2="-436.14453" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6497"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6499" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6501" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6497" - id="linearGradient10646" - gradientUnits="userSpaceOnUse" - x1="287.51730" - y1="-439.75281" - x2="289.67633" - y2="-436.32199" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6470"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6472" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6474" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6470" - id="linearGradient10644" - gradientUnits="userSpaceOnUse" - x1="271.02170" - y1="-441.05182" - x2="285.02859" - y2="-431.96991" /> - <linearGradient - inkscape:collect="always" - id="linearGradient7834"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop7836" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop7838" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient7834" - id="linearGradient10642" - gradientUnits="userSpaceOnUse" - x1="-156.29044" - y1="-100.53421" - x2="-153.09810" - y2="-96.544556" /> - <linearGradient - inkscape:collect="always" - id="linearGradient8397"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop8400" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop8402" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8397" - id="linearGradient10640" - gradientUnits="userSpaceOnUse" - x1="238.00478" - y1="-388.47476" - x2="245.65462" - y2="-382.64539" /> - <linearGradient - inkscape:collect="always" - id="linearGradient8315"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop8317" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop8319" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8315" - id="linearGradient10638" - gradientUnits="userSpaceOnUse" - x1="230.87598" - y1="-390.43951" - x2="235.25652" - y2="-386.95901" /> - <linearGradient - inkscape:collect="always" - id="linearGradient8381"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop8383" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop8385" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8381" - id="linearGradient10636" - gradientUnits="userSpaceOnUse" - x1="246.74042" - y1="-391.31381" - x2="252.69785" - y2="-385.35165" /> - <linearGradient - inkscape:collect="always" - id="linearGradient8331"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop8333" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop8335" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8331" - id="linearGradient10634" - gradientUnits="userSpaceOnUse" - x1="240.07379" - y1="-393.40720" - x2="245.82706" - y2="-388.55029" /> - <linearGradient - inkscape:collect="always" - id="linearGradient8302"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop8304" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop8306" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8302" - id="linearGradient10632" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(69.00259,102.0000)" - x1="228.50261" - y1="-392.30591" - x2="278.91510" - y2="-375.37952" /> - <linearGradient - inkscape:collect="always" - id="linearGradient3019"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop3021" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop3023" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2298" - id="linearGradient2861" - gradientUnits="userSpaceOnUse" - x1="-27.006643" - y1="-37.550461" - x2="-34.700153" - y2="-4.4493785" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2527" - id="linearGradient2859" - gradientUnits="userSpaceOnUse" - x1="-25.137094" - y1="-1.2491118" - x2="-35.652866" - y2="-24.884460" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3478" - id="linearGradient2857" - gradientUnits="userSpaceOnUse" - x1="11.149398" - y1="-43.997444" - x2="4.9625983" - y2="-8.3080902" /> - <linearGradient - inkscape:collect="always" - id="linearGradient4488"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop4490" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop4492" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient3478"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop3480" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop3482" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient2298"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop2300" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop2302" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient3347"> - <stop - style="stop-color:#edd400;stop-opacity:1;" - offset="0" - id="stop3349" /> - <stop - style="stop-color:#edd400;stop-opacity:0;" - offset="1" - id="stop3351" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient2527"> - <stop - style="stop-color:#fcaf3e;stop-opacity:1;" - offset="0" - id="stop2529" /> - <stop - style="stop-color:#fcaf3e;stop-opacity:0;" - offset="1" - id="stop2531" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient2500"> - <stop - style="stop-color:#fce94f;stop-opacity:1;" - offset="0" - id="stop2502" /> - <stop - style="stop-color:#fce94f;stop-opacity:0;" - offset="1" - id="stop2504" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient2392"> - <stop - style="stop-color:#eeeeec;stop-opacity:1;" - offset="0" - id="stop2394" /> - <stop - style="stop-color:#eeeeec;stop-opacity:0;" - offset="1" - id="stop2396" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient2254"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop2256" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop2258" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2263" - gradientUnits="userSpaceOnUse" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" - gradientTransform="translate(-1.608757,3.097272)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2267" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(3.555020,0.968578)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2271" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(9.263651,3.495228)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2275" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(8.497184,-2.330824)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2279" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(14.46340,2.014073)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2283" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2287" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2291" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2295" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2299" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2303" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(1.707748,-5.784024)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2311" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2350" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(16.14002,24.66420)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2352" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-0.932144,25.87240)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2354" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(5.356636,23.86870)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2356" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(11.19027,26.52035)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2358" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(10.30638,19.27251)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2360" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,0.229156,30.76299)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2362" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,16.67145,27.22746)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2364" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,17.05272,31.47010)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2366" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-4.010744,24.96040)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2368" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,8.185476,29.52556)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2370" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(4.207586,21.30544)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2372" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.12415,32.08882)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2392" - id="linearGradient2398" - x1="6.6651416" - y1="13.802798" - x2="41.403877" - y2="13.802798" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2426" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(14.46340,2.014073)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2428" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(8.497184,-2.330824)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2430" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-1.608757,3.097272)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2432" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(3.555020,0.968578)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2434" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(9.263651,3.495228)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2436" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2438" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2440" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2442" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2444" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2446" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2392" - id="linearGradient2448" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" - x1="6.6651416" - y1="13.802798" - x2="41.403877" - y2="13.802798" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2392" - id="linearGradient2451" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,4.378541,10.65407)" - x1="6.6651416" - y1="13.802798" - x2="41.403877" - y2="13.802798" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2457" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2460" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2463" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2469" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2472" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(12.51365,8.745228)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2475" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(6.805020,6.218578)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2478" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(1.641243,8.347272)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2483" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(0.842481,-3.998086)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2500" - id="linearGradient2506" - x1="37.000000" - y1="-21.750000" - x2="53.750000" - y2="9.0000000" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2500" - id="linearGradient2509" - gradientUnits="userSpaceOnUse" - x1="37.000000" - y1="-21.750000" - x2="53.750000" - y2="9.0000000" - gradientTransform="matrix(0.889091,0.000000,0.000000,0.617886,-4.771368,39.81402)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2500" - id="linearGradient2513" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.605509,0.000000,0.000000,0.710542,-0.224971,42.19500)" - x1="38.857941" - y1="-18.407482" - x2="53.750000" - y2="9.0000000" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2500" - id="linearGradient2517" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.414169,0.000000,0.000000,0.778853,-1.910724,36.87850)" - x1="37.000000" - y1="-21.750000" - x2="53.750000" - y2="9.0000000" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2527" - id="linearGradient2533" - x1="-25.137094" - y1="-1.2491118" - x2="-35.652866" - y2="-24.884460" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2537" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(17.33814,3.415985)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2541" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(13.40064,1.353485)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2555" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-7.499805,1.708617)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2563" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-0.726830,2.481141)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3347" - id="linearGradient3353" - x1="23.303862" - y1="29.115711" - x2="29.750000" - y2="46.092930" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3366" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(13.40064,1.353485)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3368" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(1.641243,8.347272)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3370" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(6.805020,6.218578)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3372" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(12.51365,8.745228)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3374" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3376" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3378" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3380" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3383" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3386" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3389" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3392" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3395" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(3.674812,3.088370)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3398" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-2.033818,0.561720)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3401" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-7.197595,2.690414)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3405" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(4.561802,-4.303373)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - gradientUnits="userSpaceOnUse" - y2="-4.4493785" - x2="-34.700153" - y1="-37.550461" - x1="-27.006643" - id="linearGradient2916" - xlink:href="#linearGradient2298" - inkscape:collect="always" /> - <linearGradient - y2="-24.884460" - x2="-35.652866" - y1="-1.2491118" - x1="-25.137094" - gradientUnits="userSpaceOnUse" - id="linearGradient2914" - xlink:href="#linearGradient2527" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(57.97693,-10.56876)" - gradientUnits="userSpaceOnUse" - id="linearGradient2912" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,123.1162,-5.446357)" - gradientUnits="userSpaceOnUse" - id="linearGradient2910" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)" - gradientUnits="userSpaceOnUse" - id="linearGradient2908" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)" - gradientUnits="userSpaceOnUse" - id="linearGradient2906" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)" - gradientUnits="userSpaceOnUse" - id="linearGradient2904" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)" - gradientUnits="userSpaceOnUse" - id="linearGradient2902" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(3.674812,3.088370)" - gradientUnits="userSpaceOnUse" - id="linearGradient2900" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-2.033818,0.561720)" - gradientUnits="userSpaceOnUse" - id="linearGradient2898" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-7.197595,2.690414)" - gradientUnits="userSpaceOnUse" - id="linearGradient2896" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="-24.884460" - x2="-35.652866" - y1="-1.2491118" - x1="-25.137094" - gradientUnits="userSpaceOnUse" - id="linearGradient2894" - xlink:href="#linearGradient2527" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,79.36909,-3.193747)" - gradientUnits="userSpaceOnUse" - id="linearGradient2892" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,56.25514,-12.39388)" - gradientUnits="userSpaceOnUse" - id="linearGradient2890" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(88.49344,-9.697877)" - gradientUnits="userSpaceOnUse" - id="linearGradient2888" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(4.561802,-4.303373)" - gradientUnits="userSpaceOnUse" - id="linearGradient2886" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-7.197595,2.690414)" - gradientUnits="userSpaceOnUse" - id="linearGradient2884" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-2.033818,0.561720)" - gradientUnits="userSpaceOnUse" - id="linearGradient2882" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(3.674812,3.088370)" - gradientUnits="userSpaceOnUse" - id="linearGradient2880" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)" - gradientUnits="userSpaceOnUse" - id="linearGradient2878" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)" - gradientUnits="userSpaceOnUse" - id="linearGradient2876" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)" - gradientUnits="userSpaceOnUse" - id="linearGradient2874" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)" - gradientUnits="userSpaceOnUse" - id="linearGradient2872" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)" - gradientUnits="userSpaceOnUse" - id="linearGradient2870" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)" - gradientUnits="userSpaceOnUse" - id="linearGradient2868" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)" - gradientUnits="userSpaceOnUse" - id="linearGradient2866" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)" - gradientUnits="userSpaceOnUse" - id="linearGradient2864" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(12.51365,8.745228)" - gradientUnits="userSpaceOnUse" - id="linearGradient2862" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(6.805020,6.218578)" - gradientUnits="userSpaceOnUse" - id="linearGradient2860" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(1.641243,8.347272)" - gradientUnits="userSpaceOnUse" - id="linearGradient2858" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(13.40064,1.353485)" - gradientUnits="userSpaceOnUse" - id="linearGradient2856" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientUnits="userSpaceOnUse" - y2="46.092930" - x2="29.750000" - y1="29.115711" - x1="23.303862" - id="linearGradient2854" - xlink:href="#linearGradient3347" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-0.726830,2.481141)" - gradientUnits="userSpaceOnUse" - id="linearGradient2852" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-7.499805,1.708617)" - gradientUnits="userSpaceOnUse" - id="linearGradient2850" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(13.40064,1.353485)" - gradientUnits="userSpaceOnUse" - id="linearGradient2848" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(17.33814,3.415985)" - gradientUnits="userSpaceOnUse" - id="linearGradient2846" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientUnits="userSpaceOnUse" - y2="-24.884460" - x2="-35.652866" - y1="-1.2491118" - x1="-25.137094" - id="linearGradient2844" - xlink:href="#linearGradient2527" - inkscape:collect="always" /> - <linearGradient - y2="9.0000000" - x2="53.750000" - y1="-21.750000" - x1="37.000000" - gradientTransform="matrix(0.414169,0.000000,0.000000,0.778853,-1.910724,36.87850)" - gradientUnits="userSpaceOnUse" - id="linearGradient2842" - xlink:href="#linearGradient2500" - inkscape:collect="always" /> - <linearGradient - y2="9.0000000" - x2="53.750000" - y1="-18.407482" - x1="38.857941" - gradientTransform="matrix(0.605509,0.000000,0.000000,0.710542,-0.224971,42.19500)" - gradientUnits="userSpaceOnUse" - id="linearGradient2840" - xlink:href="#linearGradient2500" - inkscape:collect="always" /> - <linearGradient - gradientTransform="matrix(0.889091,0.000000,0.000000,0.617886,-4.771368,39.81402)" - y2="9.0000000" - x2="53.750000" - y1="-21.750000" - x1="37.000000" - gradientUnits="userSpaceOnUse" - id="linearGradient2838" - xlink:href="#linearGradient2500" - inkscape:collect="always" /> - <linearGradient - gradientUnits="userSpaceOnUse" - y2="9.0000000" - x2="53.750000" - y1="-21.750000" - x1="37.000000" - id="linearGradient2836" - xlink:href="#linearGradient2500" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(0.842481,-3.998086)" - gradientUnits="userSpaceOnUse" - id="linearGradient2834" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(1.641243,8.347272)" - gradientUnits="userSpaceOnUse" - id="linearGradient2832" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(6.805020,6.218578)" - gradientUnits="userSpaceOnUse" - id="linearGradient2830" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(12.51365,8.745228)" - gradientUnits="userSpaceOnUse" - id="linearGradient2828" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)" - gradientUnits="userSpaceOnUse" - id="linearGradient2826" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)" - gradientUnits="userSpaceOnUse" - id="linearGradient2824" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)" - gradientUnits="userSpaceOnUse" - id="linearGradient2822" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)" - gradientUnits="userSpaceOnUse" - id="linearGradient2820" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="13.802798" - x2="41.403877" - y1="13.802798" - x1="6.6651416" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,4.378541,10.65407)" - gradientUnits="userSpaceOnUse" - id="linearGradient2818" - xlink:href="#linearGradient2392" - inkscape:collect="always" /> - <linearGradient - y2="13.802798" - x2="41.403877" - y1="13.802798" - x1="6.6651416" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" - gradientUnits="userSpaceOnUse" - id="linearGradient2816" - xlink:href="#linearGradient2392" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)" - gradientUnits="userSpaceOnUse" - id="linearGradient2814" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)" - gradientUnits="userSpaceOnUse" - id="linearGradient2812" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)" - gradientUnits="userSpaceOnUse" - id="linearGradient2810" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)" - gradientUnits="userSpaceOnUse" - id="linearGradient2808" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)" - gradientUnits="userSpaceOnUse" - id="linearGradient2806" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)" - gradientUnits="userSpaceOnUse" - id="linearGradient2804" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(9.263651,3.495228)" - gradientUnits="userSpaceOnUse" - id="linearGradient2802" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(3.555020,0.968578)" - gradientUnits="userSpaceOnUse" - id="linearGradient2800" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-1.608757,3.097272)" - gradientUnits="userSpaceOnUse" - id="linearGradient2798" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(8.497184,-2.330824)" - gradientUnits="userSpaceOnUse" - id="linearGradient2796" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(14.46340,2.014073)" - gradientUnits="userSpaceOnUse" - id="linearGradient2794" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" - gradientUnits="userSpaceOnUse" - y2="13.802798" - x2="41.403877" - y1="13.802798" - x1="6.6651416" - id="linearGradient2792" - xlink:href="#linearGradient2392" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.12415,32.08882)" - gradientUnits="userSpaceOnUse" - id="linearGradient2790" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(4.207586,21.30544)" - gradientUnits="userSpaceOnUse" - id="linearGradient2788" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,8.185476,29.52556)" - gradientUnits="userSpaceOnUse" - id="linearGradient2786" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-4.010744,24.96040)" - gradientUnits="userSpaceOnUse" - id="linearGradient2784" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,17.05272,31.47010)" - gradientUnits="userSpaceOnUse" - id="linearGradient2782" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,16.67145,27.22746)" - gradientUnits="userSpaceOnUse" - id="linearGradient2780" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,0.229156,30.76299)" - gradientUnits="userSpaceOnUse" - id="linearGradient2778" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(10.30638,19.27251)" - gradientUnits="userSpaceOnUse" - id="linearGradient2776" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(11.19027,26.52035)" - gradientUnits="userSpaceOnUse" - id="linearGradient2774" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(5.356636,23.86870)" - gradientUnits="userSpaceOnUse" - id="linearGradient2772" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-0.932144,25.87240)" - gradientUnits="userSpaceOnUse" - id="linearGradient2770" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(16.14002,24.66420)" - gradientUnits="userSpaceOnUse" - id="linearGradient2768" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)" - gradientUnits="userSpaceOnUse" - id="linearGradient2766" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(1.707748,-5.784024)" - gradientUnits="userSpaceOnUse" - id="linearGradient2764" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)" - gradientUnits="userSpaceOnUse" - id="linearGradient2762" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)" - gradientUnits="userSpaceOnUse" - id="linearGradient2760" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)" - gradientUnits="userSpaceOnUse" - id="linearGradient2758" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)" - gradientUnits="userSpaceOnUse" - id="linearGradient2756" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)" - gradientUnits="userSpaceOnUse" - id="linearGradient2754" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(14.46340,2.014073)" - gradientUnits="userSpaceOnUse" - id="linearGradient2752" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(8.497184,-2.330824)" - gradientUnits="userSpaceOnUse" - id="linearGradient2750" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(9.263651,3.495228)" - gradientUnits="userSpaceOnUse" - id="linearGradient2748" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(3.555020,0.968578)" - gradientUnits="userSpaceOnUse" - id="linearGradient2746" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientTransform="translate(-1.608757,3.097272)" - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientUnits="userSpaceOnUse" - id="linearGradient2744" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient4434" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(41.44608,-6.716447)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient4436" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(46.60985,-8.845141)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient4438" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(52.31848,-6.318491)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient4440" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,42.85737,-2.200849)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient4442" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,57.93093,-1.243739)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient4444" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,37.36747,-8.003450)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient4446" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,49.43869,-3.313289)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient4464" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(41.44608,-6.716447)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient4466" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(46.60985,-8.845141)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient4468" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(52.31848,-6.318491)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient4470" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,42.85737,-2.200849)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient4472" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,57.93093,-1.243739)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient4474" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,37.36747,-8.003450)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient4476" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,49.43869,-3.313289)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient4538" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(41.44608,-6.716447)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient4540" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(46.60985,-8.845141)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient4542" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(52.31848,-6.318491)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient4544" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,42.85737,-2.200849)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient4546" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,57.93093,-1.243739)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient4548" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,37.36747,-8.003450)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient4550" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,49.43869,-3.313289)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient4488" - id="linearGradient4552" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.927204,0.000000,0.000000,0.882329,2.105168,3.373861)" - x1="17.181321" - y1="32.443652" - x2="47.342173" - y2="32.443652" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient4488" - id="linearGradient2276" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.926905,0.000000,0.000000,0.881886,2.081767,3.390390)" - x1="17.181321" - y1="32.443652" - x2="47.342173" - y2="32.443652" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient4488" - id="linearGradient2289" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.931230,0.000000,0.000000,0.881886,-13.99458,-6.609596)" - x1="17.181321" - y1="32.443652" - x2="47.342173" - y2="32.443652" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient3025" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient3029" - gradientUnits="userSpaceOnUse" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient3033" - gradientUnits="userSpaceOnUse" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient3037" - gradientUnits="userSpaceOnUse" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient3041" - gradientUnits="userSpaceOnUse" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient3045" - gradientUnits="userSpaceOnUse" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient3049" - gradientUnits="userSpaceOnUse" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient3053" - gradientUnits="userSpaceOnUse" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient3056" - gradientUnits="userSpaceOnUse" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" - gradientTransform="translate(3.437500,-3.000000)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient3060" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.333333,0.000000,0.000000,1.000000,-6.911612,2.585786)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient3064" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-3.146447,8.838835e-2)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient3068" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,13.66667,3.000000)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient3072" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,15.66667,8.000000)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient3076" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,-0.698434,10.27557)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient3080" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.613903,0.000000,0.000000,0.613903,17.68234,16.99480)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient3107" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(3.437500,-3.000000)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient3109" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.333333,0.000000,0.000000,1.000000,-6.911612,2.585786)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient3111" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-3.146447,8.838835e-2)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient3113" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,13.66667,3.000000)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient3115" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,15.66667,8.000000)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient3117" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,-0.698434,10.27557)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient3119" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.613903,0.000000,0.000000,0.613903,17.68234,16.99480)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> +<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="48px" height="48px" id="svg1306"> + <defs id="defs1308"> + <linearGradient xlink:href="#linearGradient6538" id="linearGradient10670" gradientUnits="userSpaceOnUse" x1="284.80219" y1="-441.23294" x2="288.89954" y2="-436.83109"/> + <linearGradient xlink:href="#linearGradient6549" id="linearGradient10668" gradientUnits="userSpaceOnUse" x1="286.66589" y1="-439.48358" x2="289.76562" y2="-436.70703"/> + <linearGradient xlink:href="#linearGradient6527" id="linearGradient10666" gradientUnits="userSpaceOnUse" x1="275.94193" y1="-437.10501" x2="279.97546" y2="-431.91833"/> + <linearGradient xlink:href="#linearGradient6538" id="linearGradient10664" gradientUnits="userSpaceOnUse" x1="285.94086" y1="-439.93900" x2="289.39124" y2="-436.44290"/> + <linearGradient xlink:href="#linearGradient6513" id="linearGradient10662" gradientUnits="userSpaceOnUse" x1="286.51172" y1="-441.29074" x2="289.85379" y2="-436.14453"/> + <linearGradient xlink:href="#linearGradient6497" id="linearGradient10660" gradientUnits="userSpaceOnUse" x1="287.51730" y1="-439.75281" x2="289.67633" y2="-436.32199"/> + <linearGradient xlink:href="#linearGradient6470" id="linearGradient10658" gradientUnits="userSpaceOnUse" x1="271.02170" y1="-441.05182" x2="285.02859" y2="-431.96991"/> + <linearGradient xlink:href="#linearGradient6538" id="linearGradient10656" gradientUnits="userSpaceOnUse" x1="284.80219" y1="-441.23294" x2="288.89954" y2="-436.83109"/> + <linearGradient id="linearGradient6549"> + <stop offset="0" id="stop6551" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6553" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient6549" id="linearGradient10654" gradientUnits="userSpaceOnUse" x1="286.66589" y1="-439.48358" x2="289.76562" y2="-436.70703"/> + <linearGradient id="linearGradient6527"> + <stop offset="0" id="stop6530" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6532" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient6527" id="linearGradient10652" gradientUnits="userSpaceOnUse" x1="275.94193" y1="-437.10501" x2="279.97546" y2="-431.91833"/> + <linearGradient id="linearGradient6538"> + <stop offset="0" id="stop6540" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6542" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient6538" id="linearGradient10650" gradientUnits="userSpaceOnUse" x1="285.94086" y1="-439.93900" x2="289.39124" y2="-436.44290"/> + <linearGradient id="linearGradient6513"> + <stop offset="0" id="stop6515" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6517" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient6513" id="linearGradient10648" gradientUnits="userSpaceOnUse" x1="286.51172" y1="-441.29074" x2="289.85379" y2="-436.14453"/> + <linearGradient id="linearGradient6497"> + <stop offset="0" id="stop6499" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6501" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient6497" id="linearGradient10646" gradientUnits="userSpaceOnUse" x1="287.51730" y1="-439.75281" x2="289.67633" y2="-436.32199"/> + <linearGradient id="linearGradient6470"> + <stop offset="0" id="stop6472" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6474" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient6470" id="linearGradient10644" gradientUnits="userSpaceOnUse" x1="271.02170" y1="-441.05182" x2="285.02859" y2="-431.96991"/> + <linearGradient id="linearGradient7834"> + <stop offset="0" id="stop7836" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop7838" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient7834" id="linearGradient10642" gradientUnits="userSpaceOnUse" x1="-156.29044" y1="-100.53421" x2="-153.09810" y2="-96.544556"/> + <linearGradient id="linearGradient8397"> + <stop offset="0" id="stop8400" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop8402" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient8397" id="linearGradient10640" gradientUnits="userSpaceOnUse" x1="238.00478" y1="-388.47476" x2="245.65462" y2="-382.64539"/> + <linearGradient id="linearGradient8315"> + <stop offset="0" id="stop8317" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop8319" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient8315" id="linearGradient10638" gradientUnits="userSpaceOnUse" x1="230.87598" y1="-390.43951" x2="235.25652" y2="-386.95901"/> + <linearGradient id="linearGradient8381"> + <stop offset="0" id="stop8383" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop8385" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient8381" id="linearGradient10636" gradientUnits="userSpaceOnUse" x1="246.74042" y1="-391.31381" x2="252.69785" y2="-385.35165"/> + <linearGradient id="linearGradient8331"> + <stop offset="0" id="stop8333" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop8335" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient8331" id="linearGradient10634" gradientUnits="userSpaceOnUse" x1="240.07379" y1="-393.40720" x2="245.82706" y2="-388.55029"/> + <linearGradient id="linearGradient8302"> + <stop offset="0" id="stop8304" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop8306" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient8302" id="linearGradient10632" gradientUnits="userSpaceOnUse" gradientTransform="translate(69.00259,102.0000)" x1="228.50261" y1="-392.30591" x2="278.91510" y2="-375.37952"/> </defs> - <sodipodi:namedview - id="base" - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1.0" - inkscape:pageopacity="0.0" - inkscape:pageshadow="2" - inkscape:zoom="11.313709" - inkscape:cx="8.6163343" - inkscape:cy="24.822365" - inkscape:current-layer="layer1" - showgrid="true" - inkscape:grid-bbox="true" - inkscape:document-units="px" - inkscape:window-width="1210" - inkscape:window-height="704" - inkscape:window-x="182" - inkscape:window-y="144" - inkscape:showpageshadow="false" - showguides="true" - inkscape:guide-bbox="true" /> - <metadata - id="metadata1311"> + + <metadata id="metadata1311"> <rdf:RDF> - <cc:Work - rdf:about=""> + <cc:Work rdf:about=""> <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> <dc:title>weather-overcast</dc:title> <dc:date>January 2006</dc:date> <dc:creator> @@ -2569,466 +96,94 @@ <rdf:li>notify</rdf:li> </rdf:Bag> </dc:subject> - <cc:license - rdf:resource="http://creativecommons.org/licenses/publicdomain/" /> + <cc:license rdf:resource="http://creativecommons.org/licenses/publicdomain/"/> </cc:Work> - <cc:License - rdf:about="http://creativecommons.org/licenses/publicdomain/"> - <cc:permits - rdf:resource="http://creativecommons.org/ns#Reproduction" /> - <cc:permits - rdf:resource="http://creativecommons.org/ns#Distribution" /> - <cc:permits - rdf:resource="http://creativecommons.org/ns#DerivativeWorks" /> + <cc:License rdf:about="http://creativecommons.org/licenses/publicdomain/"> + <cc:permits rdf:resource="http://creativecommons.org/ns#Reproduction"/> + <cc:permits rdf:resource="http://creativecommons.org/ns#Distribution"/> + <cc:permits rdf:resource="http://creativecommons.org/ns#DerivativeWorks"/> </cc:License> </rdf:RDF> </metadata> - <g - id="layer1" - inkscape:label="Layer 1" - inkscape:groupmode="layer"> - <g - id="g10011" - transform="translate(-287.0000,298.0000)"> - <path - id="path8267" - d="M 311.50259,-296.00000 C 308.73017,-296.00000 306.39436,-294.42629 305.09634,-292.18750 C 304.15198,-292.66254 303.13115,-293.00000 302.00259,-293.00000 C 298.13859,-293.00000 295.00259,-289.86400 295.00259,-286.00000 C 295.00259,-282.13600 298.13859,-279.00000 302.00259,-279.00000 C 304.42226,-279.00000 306.43268,-280.31932 307.69009,-282.18750 C 308.82429,-281.49788 310.07907,-281.00000 311.50259,-281.00000 C 312.41571,-281.00000 313.25554,-281.23202 314.06509,-281.53125 C 314.57503,-280.66352 315.24421,-279.95153 316.06509,-279.37500 C 316.05785,-279.24462 316.00259,-279.13218 316.00259,-279.00000 C 316.00259,-275.13600 319.13858,-272.00000 323.00259,-272.00000 C 326.86659,-272.00000 330.00259,-275.13600 330.00259,-279.00000 C 330.00259,-281.36969 328.74361,-283.35834 326.94009,-284.62500 C 326.94733,-284.75538 327.00259,-284.86782 327.00259,-285.00000 C 327.00259,-288.86400 323.86660,-292.00000 320.00259,-292.00000 C 319.37989,-292.00000 318.82740,-291.77781 318.25259,-291.62500 C 317.05806,-294.18384 314.51125,-296.00000 311.50259,-296.00000 z " - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <path - id="path8291" - d="M 311.50259,-295.00000 C 308.72211,-295.00000 306.36808,-293.23815 305.44009,-290.78125 C 304.45467,-291.49069 303.30866,-292.00000 302.00259,-292.00000 C 298.69059,-292.00000 296.00259,-289.31200 296.00259,-286.00000 C 296.00259,-282.68800 298.69059,-280.00000 302.00259,-280.00000 C 304.43034,-280.00000 306.49583,-281.45558 307.44009,-283.53125 C 308.56085,-282.61369 309.94223,-282.00000 311.50259,-282.00000 C 312.57713,-282.00000 313.54687,-282.31896 314.44009,-282.78125 C 314.83849,-281.78149 315.54123,-280.99493 316.37759,-280.34375 C 316.19758,-279.74813 316.00259,-279.15410 316.00259,-278.50000 C 316.00259,-274.91200 318.91459,-272.00000 322.50259,-272.00000 C 326.09059,-272.00000 329.00259,-274.91200 329.00259,-278.50000 C 329.00259,-280.86079 327.66826,-282.83019 325.78384,-283.96875 C 325.84643,-284.31598 326.00259,-284.63483 326.00259,-285.00000 C 326.00259,-288.31200 323.31459,-291.00000 320.00259,-291.00000 C 319.14961,-291.00000 318.33129,-290.82132 317.59634,-290.50000 C 316.74257,-293.09388 314.38110,-294.99999 311.50259,-295.00000 z " - style="opacity:1.0000000;fill:url(#linearGradient10632);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <path - transform="matrix(0.964447,0.000000,0.000000,0.964447,89.29111,91.52621)" - d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z" - sodipodi:ry="6.7396116" - sodipodi:rx="6.7396116" - sodipodi:cy="-383.66660" - sodipodi:cx="241.80843" - id="path8414" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <g - transform="translate(69.00259,102.0000)" - id="g8349"> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path8327" - sodipodi:cx="243.95184" - sodipodi:cy="-389.30136" - sodipodi:rx="6.2313786" - sodipodi:ry="6.2313786" - d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1 237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1 250.18322 -389.30136 z" - transform="matrix(0.882630,0.000000,0.000000,0.882630,27.18078,-46.89094)" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:url(#linearGradient10634);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path8329" - sodipodi:cx="243.95184" - sodipodi:cy="-389.30136" - sodipodi:rx="6.2313786" - sodipodi:ry="6.2313786" - d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1 237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1 250.18322 -389.30136 z" - transform="matrix(0.882630,0.000000,0.000000,0.882630,27.18078,-46.89094)" /> + <g id="layer1"> + <g transform="translate(-287.0000,298.0000)"> + <path d="M 311.50259,-296.00000 C 308.73017,-296.00000 306.39436,-294.42629 305.09634,-292.18750 C 304.15198,-292.66254 303.13115,-293.00000 302.00259,-293.00000 C 298.13859,-293.00000 295.00259,-289.86400 295.00259,-286.00000 C 295.00259,-282.13600 298.13859,-279.00000 302.00259,-279.00000 C 304.42226,-279.00000 306.43268,-280.31932 307.69009,-282.18750 C 308.82429,-281.49788 310.07907,-281.00000 311.50259,-281.00000 C 312.41571,-281.00000 313.25554,-281.23202 314.06509,-281.53125 C 314.57503,-280.66352 315.24421,-279.95153 316.06509,-279.37500 C 316.05785,-279.24462 316.00259,-279.13218 316.00259,-279.00000 C 316.00259,-275.13600 319.13858,-272.00000 323.00259,-272.00000 C 326.86659,-272.00000 330.00259,-275.13600 330.00259,-279.00000 C 330.00259,-281.36969 328.74361,-283.35834 326.94009,-284.62500 C 326.94733,-284.75538 327.00259,-284.86782 327.00259,-285.00000 C 327.00259,-288.86400 323.86660,-292.00000 320.00259,-292.00000 C 319.37989,-292.00000 318.82740,-291.77781 318.25259,-291.62500 C 317.05806,-294.18384 314.51125,-296.00000 311.50259,-296.00000 z " opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 311.50259,-295.00000 C 308.72211,-295.00000 306.36808,-293.23815 305.44009,-290.78125 C 304.45467,-291.49069 303.30866,-292.00000 302.00259,-292.00000 C 298.69059,-292.00000 296.00259,-289.31200 296.00259,-286.00000 C 296.00259,-282.68800 298.69059,-280.00000 302.00259,-280.00000 C 304.43034,-280.00000 306.49583,-281.45558 307.44009,-283.53125 C 308.56085,-282.61369 309.94223,-282.00000 311.50259,-282.00000 C 312.57713,-282.00000 313.54687,-282.31896 314.44009,-282.78125 C 314.83849,-281.78149 315.54123,-280.99493 316.37759,-280.34375 C 316.19758,-279.74813 316.00259,-279.15410 316.00259,-278.50000 C 316.00259,-274.91200 318.91459,-272.00000 322.50259,-272.00000 C 326.09059,-272.00000 329.00259,-274.91200 329.00259,-278.50000 C 329.00259,-280.86079 327.66826,-282.83019 325.78384,-283.96875 C 325.84643,-284.31598 326.00259,-284.63483 326.00259,-285.00000 C 326.00259,-288.31200 323.31459,-291.00000 320.00259,-291.00000 C 319.14961,-291.00000 318.33129,-290.82132 317.59634,-290.50000 C 316.74257,-293.09388 314.38110,-294.99999 311.50259,-295.00000 z " opacity="1.0000000" fill="url(#linearGradient10632)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(0.964447,0.000000,0.000000,0.964447,89.29111,91.52621)" d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <g transform="translate(69.00259,102.0000)"> + <path d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1 237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1 250.18322 -389.30136 z" transform="matrix(0.882630,0.000000,0.000000,0.882630,27.18078,-46.89094)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1 237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1 250.18322 -389.30136 z" transform="matrix(0.882630,0.000000,0.000000,0.882630,27.18078,-46.89094)" opacity="1.0000000" fill="url(#linearGradient10634)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - transform="translate(69.00259,102.0000)" - id="g8389"> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path8368" - sodipodi:cx="251.22179" - sodipodi:cy="-385.78790" - sodipodi:rx="6.0325046" - sodipodi:ry="6.0325046" - d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1 245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1 257.25429 -385.78790 z" - transform="matrix(0.911728,0.000000,0.000000,0.911728,21.45407,-34.76637)" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:url(#linearGradient10636);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path8370" - sodipodi:cx="251.22179" - sodipodi:cy="-385.78790" - sodipodi:rx="6.0325046" - sodipodi:ry="6.0325046" - d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1 245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1 257.25429 -385.78790 z" - transform="matrix(0.911728,0.000000,0.000000,0.911728,21.45407,-34.76637)" /> + <g transform="translate(69.00259,102.0000)"> + <path d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1 245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1 257.25429 -385.78790 z" transform="matrix(0.911728,0.000000,0.000000,0.911728,21.45407,-34.76637)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1 245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1 257.25429 -385.78790 z" transform="matrix(0.911728,0.000000,0.000000,0.911728,21.45407,-34.76637)" opacity="1.0000000" fill="url(#linearGradient10636)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - transform="translate(69.00259,102.0000)" - id="g8323"> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path8311" - sodipodi:cx="233.43362" - sodipodi:cy="-387.88715" - sodipodi:rx="4.3752232" - sodipodi:ry="4.3752232" - d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1 229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1 237.80885 -387.88715 z" - transform="matrix(1.142799,0.000000,0.000000,1.142799,-33.76771,55.27704)" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:url(#linearGradient10638);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path8313" - sodipodi:cx="233.43362" - sodipodi:cy="-387.88715" - sodipodi:rx="4.3752232" - sodipodi:ry="4.3752232" - d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1 229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1 237.80885 -387.88715 z" - transform="matrix(1.142799,0.000000,0.000000,1.142799,-33.76771,55.27704)" /> + <g transform="translate(69.00259,102.0000)"> + <path d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1 229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1 237.80885 -387.88715 z" transform="matrix(1.142799,0.000000,0.000000,1.142799,-33.76771,55.27704)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1 229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1 237.80885 -387.88715 z" transform="matrix(1.142799,0.000000,0.000000,1.142799,-33.76771,55.27704)" opacity="1.0000000" fill="url(#linearGradient10638)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - transform="translate(69.00259,102.0000)" - id="g8406"> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path8393" - sodipodi:cx="241.80843" - sodipodi:cy="-383.66660" - sodipodi:rx="6.7396116" - sodipodi:ry="6.7396116" - d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z" - transform="matrix(1.038636,0.000000,0.000000,1.038636,-9.150940,14.48994)" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:url(#linearGradient10640);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path8395" - sodipodi:cx="241.80843" - sodipodi:cy="-383.66660" - sodipodi:rx="6.7396116" - sodipodi:ry="6.7396116" - d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z" - transform="matrix(1.038636,0.000000,0.000000,1.038636,-9.150933,14.48993)" /> + <g transform="translate(69.00259,102.0000)"> + <path d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z" transform="matrix(1.038636,0.000000,0.000000,1.038636,-9.150940,14.48994)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z" transform="matrix(1.038636,0.000000,0.000000,1.038636,-9.150933,14.48993)" opacity="1.0000000" fill="url(#linearGradient10640)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - style="stroke:none" - transform="matrix(0.935028,0.000000,0.000000,0.935028,446.8280,-187.6162)" - id="g4518"> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:0.33115697;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path4520" - sodipodi:cx="-155.06250" - sodipodi:cy="-96.937500" - sodipodi:rx="3.1250000" - sodipodi:ry="3.1250000" - d="M -151.93750 -96.937500 A 3.1250000 3.1250000 0 1 1 -158.18750,-96.937500 A 3.1250000 3.1250000 0 1 1 -151.93750 -96.937500 z" - transform="matrix(1.737733,0.000000,0.000000,1.737733,110.8322,70.07649)" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:url(#linearGradient10642);fill-opacity:1.0000000;stroke:none;stroke-width:0.45224530;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path4522" - sodipodi:cx="-155.06250" - sodipodi:cy="-96.937500" - sodipodi:rx="3.1250000" - sodipodi:ry="3.1250000" - d="M -151.93750 -96.937500 A 3.1250000 3.1250000 0 1 1 -158.18750,-96.937500 A 3.1250000 3.1250000 0 1 1 -151.93750 -96.937500 z" - transform="matrix(1.737733,0.000000,0.000000,1.737733,110.8948,70.01402)" /> + <g transform="matrix(0.935028,0.000000,0.000000,0.935028,446.8280,-187.6162)" stroke="none"> + <path d="M -151.93750 -96.937500 A 3.1250000 3.1250000 0 1 1 -158.18750,-96.937500 A 3.1250000 3.1250000 0 1 1 -151.93750 -96.937500 z" transform="matrix(1.737733,0.000000,0.000000,1.737733,110.8322,70.07649)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="0.33115697" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M -151.93750 -96.937500 A 3.1250000 3.1250000 0 1 1 -158.18750,-96.937500 A 3.1250000 3.1250000 0 1 1 -151.93750 -96.937500 z" transform="matrix(1.737733,0.000000,0.000000,1.737733,110.8948,70.01402)" opacity="1.0000000" fill="url(#linearGradient10642)" fill-opacity="1.0000000" stroke="none" stroke-width="0.45224530" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - transform="translate(38.00259,162.0000)" - id="g7794"> - <path - style="fill:#c4c5c2;fill-opacity:1.0000000;stroke:#888a85;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - d="M 280.50000,-445.50000 C 278.22917,-445.50000 276.39009,-443.94972 275.78125,-441.87500 C 275.08802,-442.23883 274.33674,-442.50000 273.50000,-442.50000 C 270.74000,-442.50000 268.49999,-440.26001 268.50000,-437.50000 C 268.50000,-436.92107 268.66252,-436.39230 268.84375,-435.87500 C 267.47028,-435.10426 266.50000,-433.68600 266.50000,-432.00000 C 266.50000,-429.51600 268.51600,-427.49999 271.00000,-427.50000 C 271.17713,-427.50000 289.82287,-427.50000 290.00000,-427.50000 C 292.48399,-427.50000 294.50000,-429.51600 294.50000,-432.00000 C 294.50000,-433.68600 293.52972,-435.10426 292.15625,-435.87500 C 292.33749,-436.39229 292.50000,-436.92108 292.50000,-437.50000 C 292.50000,-440.26000 290.26000,-442.49999 287.50000,-442.50000 C 286.66326,-442.50000 285.91198,-442.23883 285.21875,-441.87500 C 284.60991,-443.94972 282.77083,-445.50000 280.50000,-445.50000 z " - id="path7796" - sodipodi:nodetypes="ccsscsssscsscc" /> - <path - style="opacity:1.0000000;fill:url(#linearGradient10644);fill-opacity:1.0000000;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - d="M 280.50000,-445.00000 C 278.31028,-445.00000 276.77640,-443.66423 276.10445,-441.15648 C 275.43599,-441.50010 274.55686,-441.98983 273.75000,-441.98983 C 271.03349,-441.98983 268.99486,-440.05101 268.99487,-437.44429 C 268.99487,-436.89752 269.26208,-436.11085 269.43683,-435.62228 C 268.11240,-434.89433 267.00000,-433.73178 267.00000,-432.24973 C 267.00000,-429.90368 268.54617,-427.99964 271.33928,-427.99964 C 271.51009,-427.99964 289.48992,-427.99964 289.66072,-427.99964 C 292.43173,-427.99964 294.00000,-429.90368 294.00000,-432.24973 C 294.00000,-433.84210 292.88760,-434.91642 291.56317,-435.64437 C 291.73793,-436.13293 292.02724,-436.89753 292.02724,-437.44429 C 292.02724,-440.05100 289.91143,-442.01192 287.25001,-442.01193 C 286.44314,-442.01193 285.60820,-441.52219 284.93974,-441.17857 C 284.29089,-443.60011 282.68973,-445.00000 280.50000,-445.00000 z " - id="path7798" - sodipodi:nodetypes="ccsscsssscsscc" /> - <g - id="g7800"> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path7802" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path7804" - style="opacity:1.0000000;fill:url(#linearGradient10646);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> + <g transform="translate(38.00259,162.0000)"> + <path d="M 280.50000,-445.50000 C 278.22917,-445.50000 276.39009,-443.94972 275.78125,-441.87500 C 275.08802,-442.23883 274.33674,-442.50000 273.50000,-442.50000 C 270.74000,-442.50000 268.49999,-440.26001 268.50000,-437.50000 C 268.50000,-436.92107 268.66252,-436.39230 268.84375,-435.87500 C 267.47028,-435.10426 266.50000,-433.68600 266.50000,-432.00000 C 266.50000,-429.51600 268.51600,-427.49999 271.00000,-427.50000 C 271.17713,-427.50000 289.82287,-427.50000 290.00000,-427.50000 C 292.48399,-427.50000 294.50000,-429.51600 294.50000,-432.00000 C 294.50000,-433.68600 293.52972,-435.10426 292.15625,-435.87500 C 292.33749,-436.39229 292.50000,-436.92108 292.50000,-437.50000 C 292.50000,-440.26000 290.26000,-442.49999 287.50000,-442.50000 C 286.66326,-442.50000 285.91198,-442.23883 285.21875,-441.87500 C 284.60991,-443.94972 282.77083,-445.50000 280.50000,-445.50000 z " fill="#c4c5c2" fill-opacity="1.0000000" stroke="#888a85" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 280.50000,-445.00000 C 278.31028,-445.00000 276.77640,-443.66423 276.10445,-441.15648 C 275.43599,-441.50010 274.55686,-441.98983 273.75000,-441.98983 C 271.03349,-441.98983 268.99486,-440.05101 268.99487,-437.44429 C 268.99487,-436.89752 269.26208,-436.11085 269.43683,-435.62228 C 268.11240,-434.89433 267.00000,-433.73178 267.00000,-432.24973 C 267.00000,-429.90368 268.54617,-427.99964 271.33928,-427.99964 C 271.51009,-427.99964 289.48992,-427.99964 289.66072,-427.99964 C 292.43173,-427.99964 294.00000,-429.90368 294.00000,-432.24973 C 294.00000,-433.84210 292.88760,-434.91642 291.56317,-435.64437 C 291.73793,-436.13293 292.02724,-436.89753 292.02724,-437.44429 C 292.02724,-440.05100 289.91143,-442.01192 287.25001,-442.01193 C 286.44314,-442.01193 285.60820,-441.52219 284.93974,-441.17857 C 284.29089,-443.60011 282.68973,-445.00000 280.50000,-445.00000 z " opacity="1.0000000" fill="url(#linearGradient10644)" fill-opacity="1.0000000" stroke="none" stroke-width="0.99999958" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <g> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="url(#linearGradient10646)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <rect - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="rect7806" - width="20.000000" - height="9.0000000" - x="271.00000" - y="-438.00000" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path7808" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830195,-35.68869)" /> - <g - id="g7810"> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19811,24.86321)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path7812" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19818,24.86331)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path7814" - style="opacity:1.0000000;fill:url(#linearGradient10648);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> + <rect width="20.000000" height="9.0000000" x="271.00000" y="-438.00000" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830195,-35.68869)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <g> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19811,24.86321)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19818,24.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="url(#linearGradient10648)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - id="g7816"> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path7818" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path7820" - style="opacity:1.0000000;fill:url(#linearGradient10650);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> + <g> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="url(#linearGradient10650)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - id="g7822" - transform="translate(-1.000000,0.000000)"> - <path - id="path7824" - d="M 280.46875,-440.96875 C 276.88937,-440.96875 274.00000,-438.04812 274.00000,-434.46875 C 274.00000,-432.09807 275.34943,-430.13096 277.25000,-429.00000 L 283.71875,-429.00000 C 285.61932,-430.13096 286.96875,-432.12931 286.96875,-434.50000 C 286.96875,-438.07938 284.04812,-440.96875 280.46875,-440.96875 z " - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <path - id="path7826" - d="M 280.50000,-441.00000 C 276.91200,-441.00000 274.00000,-438.08799 274.00000,-434.50000 C 274.00000,-432.12360 275.34485,-430.13368 277.25000,-429.00000 L 283.75000,-429.00000 C 285.65515,-430.13368 287.00000,-432.12360 287.00000,-434.50000 C 287.00000,-438.08800 284.08800,-440.99999 280.50000,-441.00000 z " - style="opacity:1.0000000;fill:url(#linearGradient10652);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> + <g transform="translate(-1.000000,0.000000)"> + <path d="M 280.46875,-440.96875 C 276.88937,-440.96875 274.00000,-438.04812 274.00000,-434.46875 C 274.00000,-432.09807 275.34943,-430.13096 277.25000,-429.00000 L 283.71875,-429.00000 C 285.61932,-430.13096 286.96875,-432.12931 286.96875,-434.50000 C 286.96875,-438.07938 284.04812,-440.96875 280.46875,-440.96875 z " opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 280.50000,-441.00000 C 276.91200,-441.00000 274.00000,-438.08799 274.00000,-434.50000 C 274.00000,-432.12360 275.34485,-430.13368 277.25000,-429.00000 L 283.75000,-429.00000 C 285.65515,-430.13368 287.00000,-432.12360 287.00000,-434.50000 C 287.00000,-438.08800 284.08800,-440.99999 280.50000,-441.00000 z " opacity="1.0000000" fill="url(#linearGradient10652)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:url(#linearGradient10654);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path7828" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830296,-35.68884)" /> - <path - style="fill:#888a85;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" - d="M 292.95640,-437.33396 C 292.95487,-434.64940 289.68714,-433.62001 289.68714,-433.62001 C 289.68714,-433.62001 292.03588,-435.24596 292.02399,-437.32502 C 292.02399,-437.32502 292.95640,-437.33396 292.95640,-437.33396 z " - id="path7830" - sodipodi:nodetypes="ccss" /> - <g - id="g7832" - transform="matrix(1.142857,0.000000,0.000000,1.142857,-28.57139,67.00008)"> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path7834" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path7836" - style="opacity:1.0000000;fill:url(#linearGradient10656);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830296,-35.68884)" opacity="1.0000000" fill="url(#linearGradient10654)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 292.95640,-437.33396 C 292.95487,-434.64940 289.68714,-433.62001 289.68714,-433.62001 C 289.68714,-433.62001 292.03588,-435.24596 292.02399,-437.32502 C 292.02399,-437.32502 292.95640,-437.33396 292.95640,-437.33396 z " fill="#888a85" fill-opacity="1.0000000" fill-rule="evenodd" stroke="none" stroke-width="1.0000000px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1.0000000"/> + <g transform="matrix(1.142857,0.000000,0.000000,1.142857,-28.57139,67.00008)"> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="url(#linearGradient10656)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> </g> - <g - transform="translate(23.00000,158.0000)" - id="g7852"> - <path - style="fill:#c4c5c2;fill-opacity:1.0000000;stroke:#888a85;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - d="M 280.50000,-445.50000 C 278.22917,-445.50000 276.39009,-443.94972 275.78125,-441.87500 C 275.08802,-442.23883 274.33674,-442.50000 273.50000,-442.50000 C 270.74000,-442.50000 268.49999,-440.26001 268.50000,-437.50000 C 268.50000,-436.92107 268.66252,-436.39230 268.84375,-435.87500 C 267.47028,-435.10426 266.50000,-433.68600 266.50000,-432.00000 C 266.50000,-429.51600 268.51600,-427.49999 271.00000,-427.50000 C 271.17713,-427.50000 289.82287,-427.50000 290.00000,-427.50000 C 292.48399,-427.50000 294.50000,-429.51600 294.50000,-432.00000 C 294.50000,-433.68600 293.52972,-435.10426 292.15625,-435.87500 C 292.33749,-436.39229 292.50000,-436.92108 292.50000,-437.50000 C 292.50000,-440.26000 290.26000,-442.49999 287.50000,-442.50000 C 286.66326,-442.50000 285.91198,-442.23883 285.21875,-441.87500 C 284.60991,-443.94972 282.77083,-445.50000 280.50000,-445.50000 z " - id="path7854" - sodipodi:nodetypes="ccsscsssscsscc" /> - <path - style="opacity:1.0000000;fill:url(#linearGradient10658);fill-opacity:1.0000000;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - d="M 280.50000,-445.00000 C 278.31028,-445.00000 276.77640,-443.66423 276.10445,-441.15648 C 275.43599,-441.50010 274.55686,-441.98983 273.75000,-441.98983 C 271.03349,-441.98983 268.99486,-440.05101 268.99487,-437.44429 C 268.99487,-436.89752 269.26208,-436.11085 269.43683,-435.62228 C 268.11240,-434.89433 267.00000,-433.73178 267.00000,-432.24973 C 267.00000,-429.90368 268.54617,-427.99964 271.33928,-427.99964 C 271.51009,-427.99964 289.48992,-427.99964 289.66072,-427.99964 C 292.43173,-427.99964 294.00000,-429.90368 294.00000,-432.24973 C 294.00000,-433.84210 292.88760,-434.91642 291.56317,-435.64437 C 291.73793,-436.13293 292.02724,-436.89753 292.02724,-437.44429 C 292.02724,-440.05100 289.91143,-442.01192 287.25001,-442.01193 C 286.44314,-442.01193 285.60820,-441.52219 284.93974,-441.17857 C 284.29089,-443.60011 282.68973,-445.00000 280.50000,-445.00000 z " - id="path7856" - sodipodi:nodetypes="ccsscsssscsscc" /> - <g - id="g7858"> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path7860" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path7862" - style="opacity:1.0000000;fill:url(#linearGradient10660);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> + <g transform="translate(23.00000,158.0000)"> + <path d="M 280.50000,-445.50000 C 278.22917,-445.50000 276.39009,-443.94972 275.78125,-441.87500 C 275.08802,-442.23883 274.33674,-442.50000 273.50000,-442.50000 C 270.74000,-442.50000 268.49999,-440.26001 268.50000,-437.50000 C 268.50000,-436.92107 268.66252,-436.39230 268.84375,-435.87500 C 267.47028,-435.10426 266.50000,-433.68600 266.50000,-432.00000 C 266.50000,-429.51600 268.51600,-427.49999 271.00000,-427.50000 C 271.17713,-427.50000 289.82287,-427.50000 290.00000,-427.50000 C 292.48399,-427.50000 294.50000,-429.51600 294.50000,-432.00000 C 294.50000,-433.68600 293.52972,-435.10426 292.15625,-435.87500 C 292.33749,-436.39229 292.50000,-436.92108 292.50000,-437.50000 C 292.50000,-440.26000 290.26000,-442.49999 287.50000,-442.50000 C 286.66326,-442.50000 285.91198,-442.23883 285.21875,-441.87500 C 284.60991,-443.94972 282.77083,-445.50000 280.50000,-445.50000 z " fill="#c4c5c2" fill-opacity="1.0000000" stroke="#888a85" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 280.50000,-445.00000 C 278.31028,-445.00000 276.77640,-443.66423 276.10445,-441.15648 C 275.43599,-441.50010 274.55686,-441.98983 273.75000,-441.98983 C 271.03349,-441.98983 268.99486,-440.05101 268.99487,-437.44429 C 268.99487,-436.89752 269.26208,-436.11085 269.43683,-435.62228 C 268.11240,-434.89433 267.00000,-433.73178 267.00000,-432.24973 C 267.00000,-429.90368 268.54617,-427.99964 271.33928,-427.99964 C 271.51009,-427.99964 289.48992,-427.99964 289.66072,-427.99964 C 292.43173,-427.99964 294.00000,-429.90368 294.00000,-432.24973 C 294.00000,-433.84210 292.88760,-434.91642 291.56317,-435.64437 C 291.73793,-436.13293 292.02724,-436.89753 292.02724,-437.44429 C 292.02724,-440.05100 289.91143,-442.01192 287.25001,-442.01193 C 286.44314,-442.01193 285.60820,-441.52219 284.93974,-441.17857 C 284.29089,-443.60011 282.68973,-445.00000 280.50000,-445.00000 z " opacity="1.0000000" fill="url(#linearGradient10658)" fill-opacity="1.0000000" stroke="none" stroke-width="0.99999958" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <g> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="url(#linearGradient10660)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <rect - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="rect7864" - width="20.000000" - height="9.0000000" - x="271.00000" - y="-438.00000" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path7866" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830195,-35.68869)" /> - <g - id="g7868"> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19811,24.86321)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path7870" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19818,24.86331)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path7872" - style="opacity:1.0000000;fill:url(#linearGradient10662);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> + <rect width="20.000000" height="9.0000000" x="271.00000" y="-438.00000" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830195,-35.68869)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <g> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19811,24.86321)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19818,24.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="url(#linearGradient10662)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - id="g7874"> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path7876" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path7878" - style="opacity:1.0000000;fill:url(#linearGradient10664);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> + <g> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="url(#linearGradient10664)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - id="g7880" - transform="translate(-1.000000,0.000000)"> - <path - id="path7882" - d="M 280.46875,-440.96875 C 276.88937,-440.96875 274.00000,-438.04812 274.00000,-434.46875 C 274.00000,-432.09807 275.34943,-430.13096 277.25000,-429.00000 L 283.71875,-429.00000 C 285.61932,-430.13096 286.96875,-432.12931 286.96875,-434.50000 C 286.96875,-438.07938 284.04812,-440.96875 280.46875,-440.96875 z " - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <path - id="path7884" - d="M 280.50000,-441.00000 C 276.91200,-441.00000 274.00000,-438.08799 274.00000,-434.50000 C 274.00000,-432.12360 275.34485,-430.13368 277.25000,-429.00000 L 283.75000,-429.00000 C 285.65515,-430.13368 287.00000,-432.12360 287.00000,-434.50000 C 287.00000,-438.08800 284.08800,-440.99999 280.50000,-441.00000 z " - style="opacity:1.0000000;fill:url(#linearGradient10666);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> + <g transform="translate(-1.000000,0.000000)"> + <path d="M 280.46875,-440.96875 C 276.88937,-440.96875 274.00000,-438.04812 274.00000,-434.46875 C 274.00000,-432.09807 275.34943,-430.13096 277.25000,-429.00000 L 283.71875,-429.00000 C 285.61932,-430.13096 286.96875,-432.12931 286.96875,-434.50000 C 286.96875,-438.07938 284.04812,-440.96875 280.46875,-440.96875 z " opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 280.50000,-441.00000 C 276.91200,-441.00000 274.00000,-438.08799 274.00000,-434.50000 C 274.00000,-432.12360 275.34485,-430.13368 277.25000,-429.00000 L 283.75000,-429.00000 C 285.65515,-430.13368 287.00000,-432.12360 287.00000,-434.50000 C 287.00000,-438.08800 284.08800,-440.99999 280.50000,-441.00000 z " opacity="1.0000000" fill="url(#linearGradient10666)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:url(#linearGradient10668);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path7886" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830296,-35.68884)" /> - <path - style="fill:#888a85;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" - d="M 292.95640,-437.33396 C 292.95487,-434.64940 289.68714,-433.62001 289.68714,-433.62001 C 289.68714,-433.62001 292.03588,-435.24596 292.02399,-437.32502 C 292.02399,-437.32502 292.95640,-437.33396 292.95640,-437.33396 z " - id="path7888" - sodipodi:nodetypes="ccss" /> - <g - id="g7890" - transform="matrix(1.142857,0.000000,0.000000,1.142857,-28.57139,67.00008)"> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path7892" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path7896" - style="opacity:1.0000000;fill:url(#linearGradient10670);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830296,-35.68884)" opacity="1.0000000" fill="url(#linearGradient10668)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 292.95640,-437.33396 C 292.95487,-434.64940 289.68714,-433.62001 289.68714,-433.62001 C 289.68714,-433.62001 292.03588,-435.24596 292.02399,-437.32502 C 292.02399,-437.32502 292.95640,-437.33396 292.95640,-437.33396 z " fill="#888a85" fill-opacity="1.0000000" fill-rule="evenodd" stroke="none" stroke-width="1.0000000px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1.0000000"/> + <g transform="matrix(1.142857,0.000000,0.000000,1.142857,-28.57139,67.00008)"> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="url(#linearGradient10670)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> </g> </g> diff --git a/demos/embedded/weatherinfo/icons/weather-showers.svg b/demos/embedded/weatherinfo/icons/weather-showers.svg index c814571..017665d 100644 --- a/demos/embedded/weatherinfo/icons/weather-showers.svg +++ b/demos/embedded/weatherinfo/icons/weather-showers.svg @@ -1,4297 +1,83 @@ <?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="48px" - height="48px" - id="svg1306" - sodipodi:version="0.32" - inkscape:version="0.46" - sodipodi:docbase="/home/rcollier/Work/Novell/Tango/weather" - sodipodi:docname="weather-showers.svg" - inkscape:output_extension="org.inkscape.output.svg.inkscape"> - <defs - id="defs1308"> - <inkscape:perspective - sodipodi:type="inkscape:persp3d" - inkscape:vp_x="0 : 24 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_z="48 : 24 : 1" - inkscape:persp3d-origin="24 : 16 : 1" - id="perspective530" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient11348" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.070878,0.000000,-0.535439,0.674858,287.5142,77.50802)" - x1="-137.49608" - y1="-425.28664" - x2="-130.60854" - y2="-425.28665" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient11346" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.070879,0.000000,-0.535439,0.674857,277.5140,77.50780)" - x1="-137.49608" - y1="-425.28664" - x2="-130.60854" - y2="-425.28665" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient11344" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.088439,0.000000,-0.544220,0.674842,265.9811,77.50139)" - x1="-137.49608" - y1="-425.28664" - x2="-130.60854" - y2="-425.28665" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient13352" - gradientUnits="userSpaceOnUse" - x1="284.80219" - y1="-441.23294" - x2="288.89954" - y2="-436.83109" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6549" - id="linearGradient13350" - gradientUnits="userSpaceOnUse" - x1="286.66589" - y1="-439.48358" - x2="289.76562" - y2="-436.70703" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6527" - id="linearGradient13347" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-35.00007,207.0001)" - x1="275.94193" - y1="-437.10501" - x2="279.97546" - y2="-431.91833" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient13345" - gradientUnits="userSpaceOnUse" - x1="285.94086" - y1="-439.93900" - x2="289.39124" - y2="-436.44290" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6513" - id="linearGradient13343" - gradientUnits="userSpaceOnUse" - x1="286.51172" - y1="-441.29074" - x2="289.85379" - y2="-436.14453" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6497" - id="linearGradient13341" - gradientUnits="userSpaceOnUse" - x1="287.51730" - y1="-439.75281" - x2="289.67633" - y2="-436.32199" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6470" - id="linearGradient13339" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-34.00007,207.0001)" - x1="271.02170" - y1="-441.05182" - x2="285.02859" - y2="-431.96991" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient13337" - gradientUnits="userSpaceOnUse" - x1="284.80219" - y1="-441.23294" - x2="288.89954" - y2="-436.83109" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6549"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6551" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6553" /> +<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="48px" height="48px" id="svg1306"> + <defs id="defs1308"> + <linearGradient xlink:href="#linearGradient2254" id="linearGradient11348" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.070878,0.000000,-0.535439,0.674858,287.5142,77.50802)" x1="-137.49608" y1="-425.28664" x2="-130.60854" y2="-425.28665"/> + <linearGradient xlink:href="#linearGradient2254" id="linearGradient11346" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.070879,0.000000,-0.535439,0.674857,277.5140,77.50780)" x1="-137.49608" y1="-425.28664" x2="-130.60854" y2="-425.28665"/> + <linearGradient xlink:href="#linearGradient2254" id="linearGradient11344" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.088439,0.000000,-0.544220,0.674842,265.9811,77.50139)" x1="-137.49608" y1="-425.28664" x2="-130.60854" y2="-425.28665"/> + <linearGradient xlink:href="#linearGradient6538" id="linearGradient13352" gradientUnits="userSpaceOnUse" x1="284.80219" y1="-441.23294" x2="288.89954" y2="-436.83109"/> + <linearGradient xlink:href="#linearGradient6549" id="linearGradient13350" gradientUnits="userSpaceOnUse" x1="286.66589" y1="-439.48358" x2="289.76562" y2="-436.70703"/> + <linearGradient xlink:href="#linearGradient6527" id="linearGradient13347" gradientUnits="userSpaceOnUse" gradientTransform="translate(-35.00007,207.0001)" x1="275.94193" y1="-437.10501" x2="279.97546" y2="-431.91833"/> + <linearGradient xlink:href="#linearGradient6538" id="linearGradient13345" gradientUnits="userSpaceOnUse" x1="285.94086" y1="-439.93900" x2="289.39124" y2="-436.44290"/> + <linearGradient xlink:href="#linearGradient6513" id="linearGradient13343" gradientUnits="userSpaceOnUse" x1="286.51172" y1="-441.29074" x2="289.85379" y2="-436.14453"/> + <linearGradient xlink:href="#linearGradient6497" id="linearGradient13341" gradientUnits="userSpaceOnUse" x1="287.51730" y1="-439.75281" x2="289.67633" y2="-436.32199"/> + <linearGradient xlink:href="#linearGradient6470" id="linearGradient13339" gradientUnits="userSpaceOnUse" gradientTransform="translate(-34.00007,207.0001)" x1="271.02170" y1="-441.05182" x2="285.02859" y2="-431.96991"/> + <linearGradient xlink:href="#linearGradient6538" id="linearGradient13337" gradientUnits="userSpaceOnUse" x1="284.80219" y1="-441.23294" x2="288.89954" y2="-436.83109"/> + <linearGradient id="linearGradient6549"> + <stop offset="0" id="stop6551" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6553" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient6549" id="linearGradient13335" gradientUnits="userSpaceOnUse" x1="286.66589" y1="-439.48358" x2="289.76562" y2="-436.70703"/> + <linearGradient id="linearGradient6527"> + <stop offset="0" id="stop6530" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6532" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient6527" id="linearGradient13333" gradientUnits="userSpaceOnUse" gradientTransform="translate(-35.00007,207.0001)" x1="275.94193" y1="-437.10501" x2="279.97546" y2="-431.91833"/> + <linearGradient id="linearGradient6538"> + <stop offset="0" id="stop6540" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6542" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient6538" id="linearGradient13331" gradientUnits="userSpaceOnUse" x1="285.94086" y1="-439.93900" x2="289.39124" y2="-436.44290"/> + <linearGradient id="linearGradient6513"> + <stop offset="0" id="stop6515" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6517" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient6513" id="linearGradient13329" gradientUnits="userSpaceOnUse" x1="286.51172" y1="-441.29074" x2="289.85379" y2="-436.14453"/> + <linearGradient id="linearGradient6497"> + <stop offset="0" id="stop6499" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6501" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient6497" id="linearGradient13327" gradientUnits="userSpaceOnUse" x1="287.51730" y1="-439.75281" x2="289.67633" y2="-436.32199"/> + <linearGradient id="linearGradient6470"> + <stop offset="0" id="stop6472" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6474" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient6470" id="linearGradient13325" gradientUnits="userSpaceOnUse" gradientTransform="translate(-34.00007,207.0001)" x1="271.02170" y1="-441.05182" x2="285.02859" y2="-431.96991"/> + <linearGradient id="linearGradient8397"> + <stop offset="0" id="stop8400" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop8402" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient8397" id="linearGradient13323" gradientUnits="userSpaceOnUse" x1="238.00478" y1="-388.47476" x2="245.65462" y2="-382.64539"/> + <linearGradient id="linearGradient8315"> + <stop offset="0" id="stop8317" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop8319" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient8315" id="linearGradient13321" gradientUnits="userSpaceOnUse" x1="230.87598" y1="-390.43951" x2="235.25652" y2="-386.95901"/> + <linearGradient id="linearGradient8381"> + <stop offset="0" id="stop8383" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop8385" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient8381" id="linearGradient13319" gradientUnits="userSpaceOnUse" x1="246.74042" y1="-391.31381" x2="252.69785" y2="-385.35165"/> + <linearGradient id="linearGradient8331"> + <stop offset="0" id="stop8333" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop8335" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient8331" id="linearGradient13317" gradientUnits="userSpaceOnUse" x1="240.07379" y1="-393.40720" x2="245.82706" y2="-388.55029"/> + <linearGradient id="linearGradient8302"> + <stop offset="0" id="stop8304" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop8306" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient8302" id="linearGradient13315" gradientUnits="userSpaceOnUse" gradientTransform="translate(69.00000,155.0000)" x1="228.50261" y1="-392.30591" x2="266.36395" y2="-379.26862"/> + <linearGradient id="linearGradient2254"> + <stop offset="0" id="stop2256" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop2258" stop-color="#ffffff" stop-opacity="0"/> </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6549" - id="linearGradient13335" - gradientUnits="userSpaceOnUse" - x1="286.66589" - y1="-439.48358" - x2="289.76562" - y2="-436.70703" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6527"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6530" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6532" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6527" - id="linearGradient13333" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-35.00007,207.0001)" - x1="275.94193" - y1="-437.10501" - x2="279.97546" - y2="-431.91833" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6538"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6540" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6542" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient13331" - gradientUnits="userSpaceOnUse" - x1="285.94086" - y1="-439.93900" - x2="289.39124" - y2="-436.44290" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6513"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6515" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6517" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6513" - id="linearGradient13329" - gradientUnits="userSpaceOnUse" - x1="286.51172" - y1="-441.29074" - x2="289.85379" - y2="-436.14453" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6497"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6499" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6501" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6497" - id="linearGradient13327" - gradientUnits="userSpaceOnUse" - x1="287.51730" - y1="-439.75281" - x2="289.67633" - y2="-436.32199" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6470"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6472" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6474" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6470" - id="linearGradient13325" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-34.00007,207.0001)" - x1="271.02170" - y1="-441.05182" - x2="285.02859" - y2="-431.96991" /> - <linearGradient - inkscape:collect="always" - id="linearGradient8397"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop8400" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop8402" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8397" - id="linearGradient13323" - gradientUnits="userSpaceOnUse" - x1="238.00478" - y1="-388.47476" - x2="245.65462" - y2="-382.64539" /> - <linearGradient - inkscape:collect="always" - id="linearGradient8315"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop8317" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop8319" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8315" - id="linearGradient13321" - gradientUnits="userSpaceOnUse" - x1="230.87598" - y1="-390.43951" - x2="235.25652" - y2="-386.95901" /> - <linearGradient - inkscape:collect="always" - id="linearGradient8381"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop8383" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop8385" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8381" - id="linearGradient13319" - gradientUnits="userSpaceOnUse" - x1="246.74042" - y1="-391.31381" - x2="252.69785" - y2="-385.35165" /> - <linearGradient - inkscape:collect="always" - id="linearGradient8331"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop8333" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop8335" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8331" - id="linearGradient13317" - gradientUnits="userSpaceOnUse" - x1="240.07379" - y1="-393.40720" - x2="245.82706" - y2="-388.55029" /> - <linearGradient - inkscape:collect="always" - id="linearGradient8302"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop8304" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop8306" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8302" - id="linearGradient13315" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(69.00000,155.0000)" - x1="228.50261" - y1="-392.30591" - x2="266.36395" - y2="-379.26862" /> - <linearGradient - inkscape:collect="always" - id="linearGradient4442"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop4444" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop4446" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient4442" - id="linearGradient4467" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-59.00000,27.72122)" - x1="4.3602662" - y1="-21.904713" - x2="40.139732" - y2="-1.8452871" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4430" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,7.747730,-6.786242)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4426" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,12.43523,-5.473742)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4404" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.333333,0.000000,0.000000,1.000000,-14.02052,-13.29853)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4407" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,-9.728831,-6.856090)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4410" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-4.033948,-17.90479)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4413" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.613903,0.000000,0.000000,0.613903,-1.200260,0.631990)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4419" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,4.534070,-12.70656)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4422" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-9.992899,-16.32980)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient4488" - id="linearGradient4479" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.926905,0.000000,0.000000,0.881886,-60.91820,-2.915960)" - x1="17.181321" - y1="32.443652" - x2="47.342173" - y2="32.443652" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4359" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.333333,0.000000,0.000000,1.000000,-7.329241,-50.85192)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4357" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,-0.912551,-43.37823)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4355" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(3.365819,-55.70818)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4353" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.613903,0.000000,0.000000,0.613903,17.14727,-36.85890)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4351" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,15.17579,-44.92562)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4349" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,12.81910,-50.04120)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4347" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-3.681521,-53.82781)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - id="linearGradient4488"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop4490" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop4492" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient4488" - id="linearGradient4370" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.926905,0.000000,0.000000,0.881886,-74.92090,-6.914630)" - x1="17.175579" - y1="23.374163" - x2="38.037014" - y2="38.680286" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4255" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.333333,0.000000,0.000000,1.000000,-7.329241,-50.85192)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4253" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,-0.912551,-43.37823)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4251" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(3.365819,-55.70818)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4249" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.613903,0.000000,0.000000,0.613903,17.14727,-36.85890)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4247" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,15.17579,-44.92562)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4245" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,12.81910,-50.04120)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - id="linearGradient3019"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop3021" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop3023" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4243" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-3.681521,-53.82781)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - id="linearGradient6525" - gradientUnits="userSpaceOnUse" - x1="4.1914001" - y1="11.113300" - x2="47.319698" - y2="56.052299"> - <stop - offset="0" - style="stop-color:#ffffff;stop-opacity:1;" - id="stop6529" /> - <stop - offset="1" - style="stop-color:#ffffff;stop-opacity:0.34020618;" - id="stop6531" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6525" - id="linearGradient5250" - x1="8.5469341" - y1="30.281681" - x2="30.85088" - y2="48.301884" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.874977,0.000000,0.000000,0.921480,-56.65990,-1.553540)" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6537"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6539" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6541" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient2298"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop2300" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop2302" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient3347"> - <stop - style="stop-color:#edd400;stop-opacity:1;" - offset="0" - id="stop3349" /> - <stop - style="stop-color:#edd400;stop-opacity:0;" - offset="1" - id="stop3351" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient2527"> - <stop - style="stop-color:#fcaf3e;stop-opacity:1;" - offset="0" - id="stop2529" /> - <stop - style="stop-color:#fcaf3e;stop-opacity:0;" - offset="1" - id="stop2531" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient2500"> - <stop - style="stop-color:#fce94f;stop-opacity:1;" - offset="0" - id="stop2502" /> - <stop - style="stop-color:#fce94f;stop-opacity:0;" - offset="1" - id="stop2504" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient2392"> - <stop - style="stop-color:#eeeeec;stop-opacity:1;" - offset="0" - id="stop2394" /> - <stop - style="stop-color:#eeeeec;stop-opacity:0;" - offset="1" - id="stop2396" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient2254"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop2256" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop2258" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2263" - gradientUnits="userSpaceOnUse" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" - gradientTransform="translate(-1.608757,3.097272)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2267" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(3.555020,0.968578)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2271" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(9.263651,3.495228)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2275" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(8.497184,-2.330824)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2279" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(14.46340,2.014073)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2283" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2287" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2291" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2295" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2299" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2303" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(1.707748,-5.784024)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2311" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2350" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(16.14002,24.66420)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2352" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-0.932144,25.87240)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2354" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(5.356636,23.86870)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2356" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(11.19027,26.52035)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2358" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(10.30638,19.27251)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2360" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,0.229156,30.76299)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2362" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,16.67145,27.22746)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2364" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,17.05272,31.47010)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2366" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-4.010744,24.96040)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2368" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,8.185476,29.52556)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2370" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(4.207586,21.30544)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2372" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.12415,32.08882)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2392" - id="linearGradient2398" - x1="6.6651416" - y1="13.802798" - x2="41.403877" - y2="13.802798" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2426" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(14.46340,2.014073)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2428" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(8.497184,-2.330824)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2430" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-1.608757,3.097272)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2432" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(3.555020,0.968578)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2434" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(9.263651,3.495228)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2436" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2438" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2440" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2442" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2444" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2446" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2392" - id="linearGradient2448" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" - x1="6.6651416" - y1="13.802798" - x2="41.403877" - y2="13.802798" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2392" - id="linearGradient2451" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,4.378541,10.65407)" - x1="6.6651416" - y1="13.802798" - x2="41.403877" - y2="13.802798" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2457" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2460" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2463" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2469" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2472" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(12.51365,8.745228)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2475" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(6.805020,6.218578)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2478" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(1.641243,8.347272)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2483" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(0.842481,-3.998086)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2500" - id="linearGradient2506" - x1="37.000000" - y1="-21.750000" - x2="53.750000" - y2="9.0000000" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2500" - id="linearGradient2509" - gradientUnits="userSpaceOnUse" - x1="37.000000" - y1="-21.750000" - x2="53.750000" - y2="9.0000000" - gradientTransform="matrix(0.889091,0.000000,0.000000,0.617886,-4.771368,39.81402)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2500" - id="linearGradient2513" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.605509,0.000000,0.000000,0.710542,-0.224971,42.19500)" - x1="38.857941" - y1="-18.407482" - x2="53.750000" - y2="9.0000000" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2500" - id="linearGradient2517" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.414169,0.000000,0.000000,0.778853,-1.910724,36.87850)" - x1="37.000000" - y1="-21.750000" - x2="53.750000" - y2="9.0000000" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2527" - id="linearGradient2533" - x1="-25.137094" - y1="-1.2491118" - x2="-35.652866" - y2="-24.884460" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2537" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(17.33814,3.415985)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2541" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(13.40064,1.353485)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2555" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-7.499805,1.708617)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2563" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-0.726830,2.481141)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3347" - id="linearGradient3353" - x1="23.303862" - y1="29.115711" - x2="29.750000" - y2="46.092930" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3366" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(13.40064,1.353485)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3368" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(1.641243,8.347272)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3370" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(6.805020,6.218578)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3372" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(12.51365,8.745228)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3374" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3376" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3378" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3380" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3383" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3386" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3389" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3392" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3395" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(3.674812,3.088370)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3398" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-2.033818,0.561720)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3401" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-7.197595,2.690414)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3405" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(4.561802,-4.303373)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - gradientUnits="userSpaceOnUse" - y2="-4.4493785" - x2="-34.700153" - y1="-37.550461" - x1="-27.006643" - id="linearGradient2916" - xlink:href="#linearGradient2298" - inkscape:collect="always" /> - <linearGradient - y2="-24.884460" - x2="-35.652866" - y1="-1.2491118" - x1="-25.137094" - gradientUnits="userSpaceOnUse" - id="linearGradient2914" - xlink:href="#linearGradient2527" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(57.97693,-10.56876)" - gradientUnits="userSpaceOnUse" - id="linearGradient2912" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,123.1162,-5.446357)" - gradientUnits="userSpaceOnUse" - id="linearGradient2910" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)" - gradientUnits="userSpaceOnUse" - id="linearGradient2908" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)" - gradientUnits="userSpaceOnUse" - id="linearGradient2906" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)" - gradientUnits="userSpaceOnUse" - id="linearGradient2904" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)" - gradientUnits="userSpaceOnUse" - id="linearGradient2902" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(3.674812,3.088370)" - gradientUnits="userSpaceOnUse" - id="linearGradient2900" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-2.033818,0.561720)" - gradientUnits="userSpaceOnUse" - id="linearGradient2898" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-7.197595,2.690414)" - gradientUnits="userSpaceOnUse" - id="linearGradient2896" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="-24.884460" - x2="-35.652866" - y1="-1.2491118" - x1="-25.137094" - gradientUnits="userSpaceOnUse" - id="linearGradient2894" - xlink:href="#linearGradient2527" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,79.36909,-3.193747)" - gradientUnits="userSpaceOnUse" - id="linearGradient2892" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,56.25514,-12.39388)" - gradientUnits="userSpaceOnUse" - id="linearGradient2890" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(88.49344,-9.697877)" - gradientUnits="userSpaceOnUse" - id="linearGradient2888" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(4.561802,-4.303373)" - gradientUnits="userSpaceOnUse" - id="linearGradient2886" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-7.197595,2.690414)" - gradientUnits="userSpaceOnUse" - id="linearGradient2884" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-2.033818,0.561720)" - gradientUnits="userSpaceOnUse" - id="linearGradient2882" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(3.674812,3.088370)" - gradientUnits="userSpaceOnUse" - id="linearGradient2880" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)" - gradientUnits="userSpaceOnUse" - id="linearGradient2878" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)" - gradientUnits="userSpaceOnUse" - id="linearGradient2876" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)" - gradientUnits="userSpaceOnUse" - id="linearGradient2874" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)" - gradientUnits="userSpaceOnUse" - id="linearGradient2872" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)" - gradientUnits="userSpaceOnUse" - id="linearGradient2870" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)" - gradientUnits="userSpaceOnUse" - id="linearGradient2868" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)" - gradientUnits="userSpaceOnUse" - id="linearGradient2866" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)" - gradientUnits="userSpaceOnUse" - id="linearGradient2864" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(12.51365,8.745228)" - gradientUnits="userSpaceOnUse" - id="linearGradient2862" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(6.805020,6.218578)" - gradientUnits="userSpaceOnUse" - id="linearGradient2860" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(1.641243,8.347272)" - gradientUnits="userSpaceOnUse" - id="linearGradient2858" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(13.40064,1.353485)" - gradientUnits="userSpaceOnUse" - id="linearGradient2856" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientUnits="userSpaceOnUse" - y2="46.092930" - x2="29.750000" - y1="29.115711" - x1="23.303862" - id="linearGradient2854" - xlink:href="#linearGradient3347" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-0.726830,2.481141)" - gradientUnits="userSpaceOnUse" - id="linearGradient2852" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-7.499805,1.708617)" - gradientUnits="userSpaceOnUse" - id="linearGradient2850" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(13.40064,1.353485)" - gradientUnits="userSpaceOnUse" - id="linearGradient2848" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(17.33814,3.415985)" - gradientUnits="userSpaceOnUse" - id="linearGradient2846" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientUnits="userSpaceOnUse" - y2="-24.884460" - x2="-35.652866" - y1="-1.2491118" - x1="-25.137094" - id="linearGradient2844" - xlink:href="#linearGradient2527" - inkscape:collect="always" /> - <linearGradient - y2="9.0000000" - x2="53.750000" - y1="-21.750000" - x1="37.000000" - gradientTransform="matrix(0.414169,0.000000,0.000000,0.778853,-1.910724,36.87850)" - gradientUnits="userSpaceOnUse" - id="linearGradient2842" - xlink:href="#linearGradient2500" - inkscape:collect="always" /> - <linearGradient - y2="9.0000000" - x2="53.750000" - y1="-18.407482" - x1="38.857941" - gradientTransform="matrix(0.605509,0.000000,0.000000,0.710542,-0.224971,42.19500)" - gradientUnits="userSpaceOnUse" - id="linearGradient2840" - xlink:href="#linearGradient2500" - inkscape:collect="always" /> - <linearGradient - gradientTransform="matrix(0.889091,0.000000,0.000000,0.617886,-4.771368,39.81402)" - y2="9.0000000" - x2="53.750000" - y1="-21.750000" - x1="37.000000" - gradientUnits="userSpaceOnUse" - id="linearGradient2838" - xlink:href="#linearGradient2500" - inkscape:collect="always" /> - <linearGradient - gradientUnits="userSpaceOnUse" - y2="9.0000000" - x2="53.750000" - y1="-21.750000" - x1="37.000000" - id="linearGradient2836" - xlink:href="#linearGradient2500" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(0.842481,-3.998086)" - gradientUnits="userSpaceOnUse" - id="linearGradient2834" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(1.641243,8.347272)" - gradientUnits="userSpaceOnUse" - id="linearGradient2832" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(6.805020,6.218578)" - gradientUnits="userSpaceOnUse" - id="linearGradient2830" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(12.51365,8.745228)" - gradientUnits="userSpaceOnUse" - id="linearGradient2828" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)" - gradientUnits="userSpaceOnUse" - id="linearGradient2826" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)" - gradientUnits="userSpaceOnUse" - id="linearGradient2824" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)" - gradientUnits="userSpaceOnUse" - id="linearGradient2822" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)" - gradientUnits="userSpaceOnUse" - id="linearGradient2820" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="13.802798" - x2="41.403877" - y1="13.802798" - x1="6.6651416" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,4.378541,10.65407)" - gradientUnits="userSpaceOnUse" - id="linearGradient2818" - xlink:href="#linearGradient2392" - inkscape:collect="always" /> - <linearGradient - y2="13.802798" - x2="41.403877" - y1="13.802798" - x1="6.6651416" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" - gradientUnits="userSpaceOnUse" - id="linearGradient2816" - xlink:href="#linearGradient2392" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)" - gradientUnits="userSpaceOnUse" - id="linearGradient2814" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)" - gradientUnits="userSpaceOnUse" - id="linearGradient2812" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)" - gradientUnits="userSpaceOnUse" - id="linearGradient2810" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)" - gradientUnits="userSpaceOnUse" - id="linearGradient2808" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)" - gradientUnits="userSpaceOnUse" - id="linearGradient2806" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)" - gradientUnits="userSpaceOnUse" - id="linearGradient2804" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(9.263651,3.495228)" - gradientUnits="userSpaceOnUse" - id="linearGradient2802" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(3.555020,0.968578)" - gradientUnits="userSpaceOnUse" - id="linearGradient2800" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-1.608757,3.097272)" - gradientUnits="userSpaceOnUse" - id="linearGradient2798" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(8.497184,-2.330824)" - gradientUnits="userSpaceOnUse" - id="linearGradient2796" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(14.46340,2.014073)" - gradientUnits="userSpaceOnUse" - id="linearGradient2794" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" - gradientUnits="userSpaceOnUse" - y2="13.802798" - x2="41.403877" - y1="13.802798" - x1="6.6651416" - id="linearGradient2792" - xlink:href="#linearGradient2392" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.12415,32.08882)" - gradientUnits="userSpaceOnUse" - id="linearGradient2790" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(4.207586,21.30544)" - gradientUnits="userSpaceOnUse" - id="linearGradient2788" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,8.185476,29.52556)" - gradientUnits="userSpaceOnUse" - id="linearGradient2786" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-4.010744,24.96040)" - gradientUnits="userSpaceOnUse" - id="linearGradient2784" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,17.05272,31.47010)" - gradientUnits="userSpaceOnUse" - id="linearGradient2782" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,16.67145,27.22746)" - gradientUnits="userSpaceOnUse" - id="linearGradient2780" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,0.229156,30.76299)" - gradientUnits="userSpaceOnUse" - id="linearGradient2778" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(10.30638,19.27251)" - gradientUnits="userSpaceOnUse" - id="linearGradient2776" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(11.19027,26.52035)" - gradientUnits="userSpaceOnUse" - id="linearGradient2774" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(5.356636,23.86870)" - gradientUnits="userSpaceOnUse" - id="linearGradient2772" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-0.932144,25.87240)" - gradientUnits="userSpaceOnUse" - id="linearGradient2770" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(16.14002,24.66420)" - gradientUnits="userSpaceOnUse" - id="linearGradient2768" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)" - gradientUnits="userSpaceOnUse" - id="linearGradient2766" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(1.707748,-5.784024)" - gradientUnits="userSpaceOnUse" - id="linearGradient2764" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)" - gradientUnits="userSpaceOnUse" - id="linearGradient2762" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)" - gradientUnits="userSpaceOnUse" - id="linearGradient2760" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)" - gradientUnits="userSpaceOnUse" - id="linearGradient2758" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)" - gradientUnits="userSpaceOnUse" - id="linearGradient2756" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)" - gradientUnits="userSpaceOnUse" - id="linearGradient2754" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(14.46340,2.014073)" - gradientUnits="userSpaceOnUse" - id="linearGradient2752" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(8.497184,-2.330824)" - gradientUnits="userSpaceOnUse" - id="linearGradient2750" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(9.263651,3.495228)" - gradientUnits="userSpaceOnUse" - id="linearGradient2748" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(3.555020,0.968578)" - gradientUnits="userSpaceOnUse" - id="linearGradient2746" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientTransform="translate(-1.608757,3.097272)" - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientUnits="userSpaceOnUse" - id="linearGradient2744" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientUnits="userSpaceOnUse" - y2="-4.4493785" - x2="-34.700153" - y1="-37.550461" - x1="-27.006643" - id="linearGradient2304" - xlink:href="#linearGradient2298" - inkscape:collect="always" /> - <linearGradient - y2="-24.884460" - x2="-35.652866" - y1="-1.2491118" - x1="-25.137094" - gradientUnits="userSpaceOnUse" - id="linearGradient1557" - xlink:href="#linearGradient2527" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(57.97693,-10.56876)" - gradientUnits="userSpaceOnUse" - id="linearGradient1538" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,123.1162,-5.446357)" - gradientUnits="userSpaceOnUse" - id="linearGradient1536" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)" - gradientUnits="userSpaceOnUse" - id="linearGradient1534" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)" - gradientUnits="userSpaceOnUse" - id="linearGradient1532" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)" - gradientUnits="userSpaceOnUse" - id="linearGradient1530" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)" - gradientUnits="userSpaceOnUse" - id="linearGradient1528" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(3.674812,3.088370)" - gradientUnits="userSpaceOnUse" - id="linearGradient1526" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-2.033818,0.561720)" - gradientUnits="userSpaceOnUse" - id="linearGradient1524" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-7.197595,2.690414)" - gradientUnits="userSpaceOnUse" - id="linearGradient1522" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="-24.884460" - x2="-35.652866" - y1="-1.2491118" - x1="-25.137094" - gradientUnits="userSpaceOnUse" - id="linearGradient1520" - xlink:href="#linearGradient2527" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,79.36909,-3.193747)" - gradientUnits="userSpaceOnUse" - id="linearGradient1518" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,56.25514,-12.39388)" - gradientUnits="userSpaceOnUse" - id="linearGradient1516" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(88.49344,-9.697877)" - gradientUnits="userSpaceOnUse" - id="linearGradient1514" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(4.561802,-4.303373)" - gradientUnits="userSpaceOnUse" - id="linearGradient5957" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-7.197595,2.690414)" - gradientUnits="userSpaceOnUse" - id="linearGradient5955" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-2.033818,0.561720)" - gradientUnits="userSpaceOnUse" - id="linearGradient5953" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(3.674812,3.088370)" - gradientUnits="userSpaceOnUse" - id="linearGradient5951" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)" - gradientUnits="userSpaceOnUse" - id="linearGradient5949" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)" - gradientUnits="userSpaceOnUse" - id="linearGradient5947" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)" - gradientUnits="userSpaceOnUse" - id="linearGradient5945" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)" - gradientUnits="userSpaceOnUse" - id="linearGradient5943" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)" - gradientUnits="userSpaceOnUse" - id="linearGradient5941" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)" - gradientUnits="userSpaceOnUse" - id="linearGradient5939" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)" - gradientUnits="userSpaceOnUse" - id="linearGradient5937" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)" - gradientUnits="userSpaceOnUse" - id="linearGradient5935" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(12.51365,8.745228)" - gradientUnits="userSpaceOnUse" - id="linearGradient5933" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(6.805020,6.218578)" - gradientUnits="userSpaceOnUse" - id="linearGradient5931" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(1.641243,8.347272)" - gradientUnits="userSpaceOnUse" - id="linearGradient5929" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(13.40064,1.353485)" - gradientUnits="userSpaceOnUse" - id="linearGradient5927" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientUnits="userSpaceOnUse" - y2="46.092930" - x2="29.750000" - y1="29.115711" - x1="23.303862" - id="linearGradient5925" - xlink:href="#linearGradient3347" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-0.726830,2.481141)" - gradientUnits="userSpaceOnUse" - id="linearGradient5923" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-7.499805,1.708617)" - gradientUnits="userSpaceOnUse" - id="linearGradient5921" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(13.40064,1.353485)" - gradientUnits="userSpaceOnUse" - id="linearGradient5919" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(17.33814,3.415985)" - gradientUnits="userSpaceOnUse" - id="linearGradient5917" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientUnits="userSpaceOnUse" - y2="-24.884460" - x2="-35.652866" - y1="-1.2491118" - x1="-25.137094" - id="linearGradient5915" - xlink:href="#linearGradient2527" - inkscape:collect="always" /> - <linearGradient - y2="9.0000000" - x2="53.750000" - y1="-21.750000" - x1="37.000000" - gradientTransform="matrix(0.414169,0.000000,0.000000,0.778853,-1.910724,36.87850)" - gradientUnits="userSpaceOnUse" - id="linearGradient5913" - xlink:href="#linearGradient2500" - inkscape:collect="always" /> - <linearGradient - y2="9.0000000" - x2="53.750000" - y1="-18.407482" - x1="38.857941" - gradientTransform="matrix(0.605509,0.000000,0.000000,0.710542,-0.224971,42.19500)" - gradientUnits="userSpaceOnUse" - id="linearGradient5911" - xlink:href="#linearGradient2500" - inkscape:collect="always" /> - <linearGradient - gradientTransform="matrix(0.889091,0.000000,0.000000,0.617886,-4.771368,39.81402)" - y2="9.0000000" - x2="53.750000" - y1="-21.750000" - x1="37.000000" - gradientUnits="userSpaceOnUse" - id="linearGradient5909" - xlink:href="#linearGradient2500" - inkscape:collect="always" /> - <linearGradient - gradientUnits="userSpaceOnUse" - y2="9.0000000" - x2="53.750000" - y1="-21.750000" - x1="37.000000" - id="linearGradient5907" - xlink:href="#linearGradient2500" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(0.842481,-3.998086)" - gradientUnits="userSpaceOnUse" - id="linearGradient5905" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(1.641243,8.347272)" - gradientUnits="userSpaceOnUse" - id="linearGradient5903" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(6.805020,6.218578)" - gradientUnits="userSpaceOnUse" - id="linearGradient5901" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(12.51365,8.745228)" - gradientUnits="userSpaceOnUse" - id="linearGradient5899" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)" - gradientUnits="userSpaceOnUse" - id="linearGradient5897" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)" - gradientUnits="userSpaceOnUse" - id="linearGradient5895" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)" - gradientUnits="userSpaceOnUse" - id="linearGradient5893" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)" - gradientUnits="userSpaceOnUse" - id="linearGradient5891" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="13.802798" - x2="41.403877" - y1="13.802798" - x1="6.6651416" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,4.378541,10.65407)" - gradientUnits="userSpaceOnUse" - id="linearGradient5889" - xlink:href="#linearGradient2392" - inkscape:collect="always" /> - <linearGradient - y2="13.802798" - x2="41.403877" - y1="13.802798" - x1="6.6651416" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" - gradientUnits="userSpaceOnUse" - id="linearGradient5887" - xlink:href="#linearGradient2392" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)" - gradientUnits="userSpaceOnUse" - id="linearGradient5885" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)" - gradientUnits="userSpaceOnUse" - id="linearGradient5883" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)" - gradientUnits="userSpaceOnUse" - id="linearGradient5881" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)" - gradientUnits="userSpaceOnUse" - id="linearGradient5879" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)" - gradientUnits="userSpaceOnUse" - id="linearGradient5877" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)" - gradientUnits="userSpaceOnUse" - id="linearGradient5875" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(9.263651,3.495228)" - gradientUnits="userSpaceOnUse" - id="linearGradient5873" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(3.555020,0.968578)" - gradientUnits="userSpaceOnUse" - id="linearGradient5871" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-1.608757,3.097272)" - gradientUnits="userSpaceOnUse" - id="linearGradient5869" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(8.497184,-2.330824)" - gradientUnits="userSpaceOnUse" - id="linearGradient5867" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(14.46340,2.014073)" - gradientUnits="userSpaceOnUse" - id="linearGradient5865" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" - gradientUnits="userSpaceOnUse" - y2="13.802798" - x2="41.403877" - y1="13.802798" - x1="6.6651416" - id="linearGradient5863" - xlink:href="#linearGradient2392" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.12415,32.08882)" - gradientUnits="userSpaceOnUse" - id="linearGradient5861" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(4.207586,21.30544)" - gradientUnits="userSpaceOnUse" - id="linearGradient5859" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,8.185476,29.52556)" - gradientUnits="userSpaceOnUse" - id="linearGradient5857" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-4.010744,24.96040)" - gradientUnits="userSpaceOnUse" - id="linearGradient5855" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,17.05272,31.47010)" - gradientUnits="userSpaceOnUse" - id="linearGradient5853" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,16.67145,27.22746)" - gradientUnits="userSpaceOnUse" - id="linearGradient5851" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,0.229156,30.76299)" - gradientUnits="userSpaceOnUse" - id="linearGradient5849" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(10.30638,19.27251)" - gradientUnits="userSpaceOnUse" - id="linearGradient5847" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(11.19027,26.52035)" - gradientUnits="userSpaceOnUse" - id="linearGradient5845" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(5.356636,23.86870)" - gradientUnits="userSpaceOnUse" - id="linearGradient5843" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-0.932144,25.87240)" - gradientUnits="userSpaceOnUse" - id="linearGradient5841" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(16.14002,24.66420)" - gradientUnits="userSpaceOnUse" - id="linearGradient5839" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)" - gradientUnits="userSpaceOnUse" - id="linearGradient5837" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(1.707748,-5.784024)" - gradientUnits="userSpaceOnUse" - id="linearGradient5835" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)" - gradientUnits="userSpaceOnUse" - id="linearGradient5833" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)" - gradientUnits="userSpaceOnUse" - id="linearGradient5831" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)" - gradientUnits="userSpaceOnUse" - id="linearGradient5829" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)" - gradientUnits="userSpaceOnUse" - id="linearGradient5827" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)" - gradientUnits="userSpaceOnUse" - id="linearGradient5825" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(14.46340,2.014073)" - gradientUnits="userSpaceOnUse" - id="linearGradient5823" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(8.497184,-2.330824)" - gradientUnits="userSpaceOnUse" - id="linearGradient5821" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(9.263651,3.495228)" - gradientUnits="userSpaceOnUse" - id="linearGradient5819" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(3.555020,0.968578)" - gradientUnits="userSpaceOnUse" - id="linearGradient5817" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientTransform="translate(-1.608757,3.097272)" - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientUnits="userSpaceOnUse" - id="linearGradient5815" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6101" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.13675,17.05613)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6118" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,12.38965,19.30874)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6121" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-10.72430,10.10861)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6124" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(21.51400,12.80461)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6179" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-7.197595,2.690414)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6181" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-2.033818,0.561720)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6183" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(3.674812,3.088370)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6185" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6187" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6189" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6191" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2527" - id="linearGradient6193" - gradientUnits="userSpaceOnUse" - x1="-25.137094" - y1="-1.2491118" - x2="-35.652866" - y2="-24.884460" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6196" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,2.209129,10.83861)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6199" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-9.862093,6.148450)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6202" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,10.70137,12.90816)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6205" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-4.372193,11.95105)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6208" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(5.088919,7.833409)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6211" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-0.619711,5.306759)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6214" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-5.783488,7.435453)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6242" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-5.783488,7.435453)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6244" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-0.619711,5.306759)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6246" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(5.088919,7.833409)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6248" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,10.70137,12.90816)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6250" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-9.862093,6.148450)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6252" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,2.209129,10.83861)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6254" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-9.002513,11.93373)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6257" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-0.297112,4.275205)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6260" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,10.91453,3.180085)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6263" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-1.156692,-1.510075)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6266" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,19.40677,5.249635)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6269" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(13.79432,0.174884)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6272" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(8.085690,-2.351766)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6275" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(2.921913,-0.223072)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6311" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(21.51400,12.80461)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6313" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-10.72430,10.10861)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6315" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,12.38965,19.30874)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6317" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-1.156692,-1.510075)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6319" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.13675,17.05613)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6321" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-5.783488,7.435453)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6323" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-0.619711,5.306759)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6325" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(5.088919,7.833409)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6327" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,10.70137,12.90816)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6329" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-9.862093,6.148450)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6331" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,2.209129,10.83861)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6333" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-9.002513,11.93373)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6335" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(2.921913,-0.223072)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6337" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(8.085690,-2.351766)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6339" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(13.79432,0.174884)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6341" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,19.40677,5.249635)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6343" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,10.91453,3.180085)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6537" - id="linearGradient6543" - x1="27.320963" - y1="44.228481" - x2="52.328316" - y2="44.228481" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.526962,0.000000,-2.763717e-17,0.972572,16.13182,0.843286)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6537" - id="linearGradient6547" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.526962,0.000000,-4.388782e-16,0.972572,25.91493,0.633642)" - x1="27.320963" - y1="44.228481" - x2="52.328316" - y2="44.228481" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6537" - id="linearGradient6551" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.526962,0.000000,-4.388782e-16,0.972572,36.25638,0.633643)" - x1="27.320963" - y1="44.228481" - x2="45.115814" - y2="44.228455" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6537" - id="linearGradient6559" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.526962,0.000000,-2.332577e-16,0.972572,16.13182,0.843286)" - x1="27.320963" - y1="44.228481" - x2="52.328316" - y2="44.228481" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6537" - id="linearGradient6561" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.526962,0.000000,-6.444987e-16,0.972572,25.91493,0.633642)" - x1="27.320963" - y1="44.228481" - x2="52.328316" - y2="44.228481" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6537" - id="linearGradient6563" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.526962,0.000000,-6.444987e-16,0.972572,36.25638,0.633643)" - x1="27.320963" - y1="44.228481" - x2="45.115814" - y2="44.228455" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6537" - id="linearGradient6566" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.577744,0.000000,-5.984325e-16,1.025105,38.38995,-1.768804)" - x1="27.320963" - y1="44.228481" - x2="45.115814" - y2="44.228455" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6537" - id="linearGradient6569" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.577744,0.000000,-5.984325e-16,1.025105,27.05193,-1.768805)" - x1="27.320963" - y1="44.228481" - x2="52.328316" - y2="44.228481" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6537" - id="linearGradient6572" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.589347,0.000000,-1.531909e-16,1.025217,16.34910,-1.110328)" - x1="27.320963" - y1="44.228481" - x2="52.328316" - y2="44.228481" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6576" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.132431,0.000000,0.000000,1.016132,11.79178,-1.090051)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6579" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.853605,0.000000,0.000000,1.016132,20.48211,1.012885)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6582" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,14.73875,-4.143732)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6585" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,8.896962,-6.711142)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6588" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,3.612740,-4.548108)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6599" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.999079,0.000000,0.000000,1.016132,58.06881,13.00984)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6603" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.496116,0.000000,0.000000,1.282841,-0.560999,-5.855873)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6606" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.314274,0.000000,0.000000,1.016132,13.30131,15.29879)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6609" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.496116,0.000000,0.000000,1.282841,-10.35177,5.950245)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6612" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,22.63849,8.689740)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6618" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,17.34164,6.586930)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6622" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,12.56867,12.68572)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6624" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-5.783488,7.435453)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6626" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-0.619711,5.306759)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6628" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(5.088919,7.833409)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6630" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,10.70137,12.90816)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6632" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-9.862093,6.148450)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6634" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,2.209129,10.83861)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6636" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-9.002513,11.93373)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient4442" - id="linearGradient2736" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-59.00000,27.72122)" - x1="4.3602662" - y1="-21.904713" - x2="40.139732" - y2="-1.8452871" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2738" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-9.992899,-16.32980)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2740" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,4.534070,-12.70656)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2742" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.613903,0.000000,0.000000,0.613903,-1.200260,0.631990)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2745" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-4.033948,-17.90479)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2747" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,-9.728831,-6.856090)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2749" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.333333,0.000000,0.000000,1.000000,-14.02052,-13.29853)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2751" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,12.43523,-5.473742)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2753" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,7.747730,-6.786242)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient4488" - id="linearGradient2755" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.926905,0.000000,0.000000,0.881886,-60.91820,-2.915960)" - x1="17.181321" - y1="32.443652" - x2="47.342173" - y2="32.443652" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2757" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-3.681521,-53.82781)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2759" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,12.81910,-50.04120)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2761" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,15.17579,-44.92562)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2763" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.613903,0.000000,0.000000,0.613903,17.14727,-36.85890)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2765" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(3.365819,-55.70818)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2767" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,-0.912551,-43.37823)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2769" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.333333,0.000000,0.000000,1.000000,-7.329241,-50.85192)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient4488" - id="linearGradient2771" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.926905,0.000000,0.000000,0.881886,-74.92090,-6.914630)" - x1="17.175579" - y1="23.374163" - x2="38.037014" - y2="38.680286" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2773" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-3.681521,-53.82781)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2775" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,12.81910,-50.04120)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2777" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,15.17579,-44.92562)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2779" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.613903,0.000000,0.000000,0.613903,17.14727,-36.85890)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2781" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(3.365819,-55.70818)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2783" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,-0.912551,-43.37823)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2785" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.333333,0.000000,0.000000,1.000000,-7.329241,-50.85192)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient4488" - id="linearGradient2799" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.926905,0.000000,0.000000,0.881886,-11.91814,-7.649759)" - x1="17.175579" - y1="23.374163" - x2="38.037014" - y2="38.680286" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient4488" - id="linearGradient2813" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.926905,0.000000,0.000000,0.881886,2.084560,-3.651089)" - x1="18.664751" - y1="23.374166" - x2="31.294144" - y2="35.845455" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient4442" - id="linearGradient2827" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(4.002760,26.98609)" - x1="4.3602662" - y1="-21.904713" - x2="40.139732" - y2="-1.8452871" /> </defs> - <sodipodi:namedview - id="base" - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1.0" - inkscape:pageopacity="0.0" - inkscape:pageshadow="2" - inkscape:zoom="16" - inkscape:cx="11.996306" - inkscape:cy="38.014291" - inkscape:current-layer="layer1" - showgrid="true" - inkscape:grid-bbox="true" - inkscape:document-units="px" - inkscape:window-width="1200" - inkscape:window-height="704" - inkscape:window-x="134" - inkscape:window-y="133" - inkscape:showpageshadow="false" /> - <metadata - id="metadata1311"> + + <metadata id="metadata1311"> <rdf:RDF> - <cc:Work - rdf:about=""> + <cc:Work rdf:about=""> <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> <dc:title>weather-showers</dc:title> <dc:date>January 2006</dc:date> <dc:creator> @@ -4312,441 +98,81 @@ <rdf:li>notify</rdf:li> </rdf:Bag> </dc:subject> - <cc:license - rdf:resource="http://creativecommons.org/licenses/publicdomain/" /> + <cc:license rdf:resource="http://creativecommons.org/licenses/publicdomain/"/> </cc:Work> - <cc:License - rdf:about="http://creativecommons.org/licenses/publicdomain/"> - <cc:permits - rdf:resource="http://creativecommons.org/ns#Reproduction" /> - <cc:permits - rdf:resource="http://creativecommons.org/ns#Distribution" /> - <cc:permits - rdf:resource="http://creativecommons.org/ns#DerivativeWorks" /> + <cc:License rdf:about="http://creativecommons.org/licenses/publicdomain/"> + <cc:permits rdf:resource="http://creativecommons.org/ns#Reproduction"/> + <cc:permits rdf:resource="http://creativecommons.org/ns#Distribution"/> + <cc:permits rdf:resource="http://creativecommons.org/ns#DerivativeWorks"/> </cc:License> </rdf:RDF> </metadata> - <g - id="layer1" - inkscape:label="Layer 1" - inkscape:groupmode="layer"> - <g - id="g11337" - transform="translate(-339.9823,245.0132)"> - <rect - transform="matrix(1.000000,0.000000,-0.600523,0.799607,0.000000,0.000000)" - ry="1.5179254" - rx="2.3596079" - y="-270.75461" - x="189.68199" - height="17.509083" - width="32.962067" - id="rect6086" - style="opacity:1.0000000;fill:#729fcf;fill-opacity:1.0000000;stroke:#3465a4;stroke-width:1.0817814;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <g - style="opacity:0.80000001" - transform="matrix(1.000000,0.000000,0.000000,0.999611,0.000000,-7.862650e-2)" - id="g10414"> - <path - style="fill:url(#linearGradient11344);fill-opacity:1.0000000;stroke:none;stroke-width:1.1547011;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - d="M 352.47790,-216.00000 L 359.39580,-216.00000 C 360.69054,-216.00000 361.33008,-215.50056 360.82979,-214.88017 L 352.15249,-204.12015 C 351.65217,-203.49974 350.20707,-203.00030 348.91233,-203.00030 L 344.86943,-203.00030 C 343.57469,-203.00030 342.30979,-202.95120 343.43545,-204.12015 C 343.43545,-204.12015 352.47790,-216.00000 352.47790,-216.00000 z " - id="rect6088" - sodipodi:nodetypes="cccccccc" /> - <path - style="fill:url(#linearGradient11346);fill-opacity:1.0000000;stroke:none;stroke-width:1.1547011;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - d="M 362.74641,-216.00000 L 369.42169,-216.00000 C 370.69552,-216.00000 371.32477,-215.50054 370.83253,-214.88014 L 362.29523,-204.11987 C 361.80299,-203.49946 360.38121,-203.00000 359.10738,-203.00000 L 353.00000,-203.00000 C 353.00000,-203.00000 362.74641,-216.00000 362.74641,-216.00000 z " - id="path6115" - sodipodi:nodetypes="ccccccc" /> - <path - style="fill:url(#linearGradient11348);fill-opacity:1.0000000;stroke:none;stroke-width:1.1547011;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - d="M 372.74640,-216.00000 L 379.42169,-216.00000 C 380.69553,-216.00000 381.32477,-215.50053 380.83253,-214.88014 L 372.29523,-204.11986 C 371.80299,-203.49945 370.38122,-203.00000 369.10738,-203.00000 L 363.00000,-203.00000 C 363.00000,-203.00000 372.74640,-216.00000 372.74640,-216.00000 z " - id="path6125" - sodipodi:nodetypes="ccccccc" /> + <g id="layer1"> + <g transform="translate(-339.9823,245.0132)"> + <rect transform="matrix(1.000000,0.000000,-0.600523,0.799607,0.000000,0.000000)" ry="1.5179254" rx="2.3596079" y="-270.75461" x="189.68199" height="17.509083" width="32.962067" opacity="1.0000000" fill="#729fcf" fill-opacity="1.0000000" stroke="#3465a4" stroke-width="1.0817814" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <g transform="matrix(1.000000,0.000000,0.000000,0.999611,0.000000,-7.862650e-2)" opacity="0.80000001"> + <path d="M 352.47790,-216.00000 L 359.39580,-216.00000 C 360.69054,-216.00000 361.33008,-215.50056 360.82979,-214.88017 L 352.15249,-204.12015 C 351.65217,-203.49974 350.20707,-203.00030 348.91233,-203.00030 L 344.86943,-203.00030 C 343.57469,-203.00030 342.30979,-202.95120 343.43545,-204.12015 C 343.43545,-204.12015 352.47790,-216.00000 352.47790,-216.00000 z " fill="url(#linearGradient11344)" fill-opacity="1.0000000" stroke="none" stroke-width="1.1547011" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0.0000000" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 362.74641,-216.00000 L 369.42169,-216.00000 C 370.69552,-216.00000 371.32477,-215.50054 370.83253,-214.88014 L 362.29523,-204.11987 C 361.80299,-203.49946 360.38121,-203.00000 359.10738,-203.00000 L 353.00000,-203.00000 C 353.00000,-203.00000 362.74641,-216.00000 362.74641,-216.00000 z " fill="url(#linearGradient11346)" fill-opacity="1.0000000" stroke="none" stroke-width="1.1547011" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0.0000000" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 372.74640,-216.00000 L 379.42169,-216.00000 C 380.69553,-216.00000 381.32477,-215.50053 380.83253,-214.88014 L 372.29523,-204.11986 C 371.80299,-203.49945 370.38122,-203.00000 369.10738,-203.00000 L 363.00000,-203.00000 C 363.00000,-203.00000 372.74640,-216.00000 372.74640,-216.00000 z " fill="url(#linearGradient11348)" fill-opacity="1.0000000" stroke="none" stroke-width="1.1547011" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0.0000000" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> </g> - <g - id="g13213" - transform="matrix(0.999675,0.000000,0.000000,1.000000,-286.8562,245.0000)"> - <g - id="g13215"> - <path - style="opacity:1.0000000;fill:#555753;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - d="M 311.50000,-242.99998 C 308.72758,-242.99998 306.39177,-241.42627 305.09375,-239.18748 C 304.14939,-239.66252 303.12856,-239.99998 302.00000,-239.99998 C 298.13600,-239.99998 295.00000,-236.86398 295.00000,-232.99998 C 295.00000,-229.13598 298.13600,-225.99998 302.00000,-225.99998 C 304.41967,-225.99998 306.43009,-227.31930 307.68750,-229.18748 C 308.82170,-228.49786 310.07648,-227.99998 311.50000,-227.99998 C 312.41312,-227.99998 313.25295,-228.23200 314.06250,-228.53123 C 314.57244,-227.66350 315.24162,-226.95151 316.06250,-226.37498 C 316.05526,-226.24460 316.00000,-226.13216 316.00000,-225.99998 C 316.00000,-222.13598 319.13599,-218.99998 323.00000,-218.99998 C 326.86400,-218.99998 330.00000,-222.13598 330.00000,-225.99998 C 330.00000,-228.36967 328.74102,-230.35832 326.93750,-231.62498 C 326.94474,-231.75536 327.00000,-231.86780 327.00000,-231.99998 C 327.00000,-235.86398 323.86401,-238.99998 320.00000,-238.99998 C 319.37730,-238.99998 318.82481,-238.77779 318.25000,-238.62498 C 317.05547,-241.18382 314.50866,-242.99998 311.50000,-242.99998 z " - id="path13217" /> - <path - style="opacity:1.0000000;fill:url(#linearGradient13315);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - d="M 311.50000,-241.99998 C 308.71952,-241.99998 306.36549,-240.23813 305.43750,-237.78123 C 304.45208,-238.49067 303.30607,-238.99998 302.00000,-238.99998 C 298.68800,-238.99998 296.00000,-236.31198 296.00000,-232.99998 C 296.00000,-229.68798 298.68800,-226.99998 302.00000,-226.99998 C 304.42775,-226.99998 306.49324,-228.45556 307.43750,-230.53123 C 308.55826,-229.61367 309.93964,-228.99998 311.50000,-228.99998 C 312.57454,-228.99998 313.54428,-229.31894 314.43750,-229.78123 C 314.83590,-228.78147 315.53864,-227.99491 316.37500,-227.34373 C 316.19499,-226.74811 316.00000,-226.15408 316.00000,-225.49998 C 316.00000,-221.91198 318.91200,-218.99998 322.50000,-218.99998 C 326.08800,-218.99998 329.00000,-221.91198 329.00000,-225.49998 C 329.00000,-227.86077 327.66567,-229.83017 325.78125,-230.96873 C 325.84384,-231.31596 326.00000,-231.63481 326.00000,-231.99998 C 326.00000,-235.31198 323.31200,-237.99998 320.00000,-237.99998 C 319.14702,-237.99998 318.32870,-237.82130 317.59375,-237.49998 C 316.73998,-240.09386 314.37851,-241.99997 311.50000,-241.99998 z " - id="path13219" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path13221" - sodipodi:cx="241.80843" - sodipodi:cy="-383.66660" - sodipodi:rx="6.7396116" - sodipodi:ry="6.7396116" - d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z" - transform="matrix(0.964447,0.000000,0.000000,0.964447,89.28852,144.5262)" /> - <g - id="g13223"> - <path - transform="matrix(0.882630,0.000000,0.000000,0.882630,96.18078,108.1091)" - d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1 237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1 250.18322 -389.30136 z" - sodipodi:ry="6.2313786" - sodipodi:rx="6.2313786" - sodipodi:cy="-389.30136" - sodipodi:cx="243.95184" - id="path13225" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(0.882630,0.000000,0.000000,0.882630,96.18078,108.1091)" - d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1 237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1 250.18322 -389.30136 z" - sodipodi:ry="6.2313786" - sodipodi:rx="6.2313786" - sodipodi:cy="-389.30136" - sodipodi:cx="243.95184" - id="path13227" - style="opacity:0.49444440;fill:url(#linearGradient13317);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> + <g transform="matrix(0.999675,0.000000,0.000000,1.000000,-286.8562,245.0000)"> + <g> + <path d="M 311.50000,-242.99998 C 308.72758,-242.99998 306.39177,-241.42627 305.09375,-239.18748 C 304.14939,-239.66252 303.12856,-239.99998 302.00000,-239.99998 C 298.13600,-239.99998 295.00000,-236.86398 295.00000,-232.99998 C 295.00000,-229.13598 298.13600,-225.99998 302.00000,-225.99998 C 304.41967,-225.99998 306.43009,-227.31930 307.68750,-229.18748 C 308.82170,-228.49786 310.07648,-227.99998 311.50000,-227.99998 C 312.41312,-227.99998 313.25295,-228.23200 314.06250,-228.53123 C 314.57244,-227.66350 315.24162,-226.95151 316.06250,-226.37498 C 316.05526,-226.24460 316.00000,-226.13216 316.00000,-225.99998 C 316.00000,-222.13598 319.13599,-218.99998 323.00000,-218.99998 C 326.86400,-218.99998 330.00000,-222.13598 330.00000,-225.99998 C 330.00000,-228.36967 328.74102,-230.35832 326.93750,-231.62498 C 326.94474,-231.75536 327.00000,-231.86780 327.00000,-231.99998 C 327.00000,-235.86398 323.86401,-238.99998 320.00000,-238.99998 C 319.37730,-238.99998 318.82481,-238.77779 318.25000,-238.62498 C 317.05547,-241.18382 314.50866,-242.99998 311.50000,-242.99998 z " opacity="1.0000000" fill="#555753" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 311.50000,-241.99998 C 308.71952,-241.99998 306.36549,-240.23813 305.43750,-237.78123 C 304.45208,-238.49067 303.30607,-238.99998 302.00000,-238.99998 C 298.68800,-238.99998 296.00000,-236.31198 296.00000,-232.99998 C 296.00000,-229.68798 298.68800,-226.99998 302.00000,-226.99998 C 304.42775,-226.99998 306.49324,-228.45556 307.43750,-230.53123 C 308.55826,-229.61367 309.93964,-228.99998 311.50000,-228.99998 C 312.57454,-228.99998 313.54428,-229.31894 314.43750,-229.78123 C 314.83590,-228.78147 315.53864,-227.99491 316.37500,-227.34373 C 316.19499,-226.74811 316.00000,-226.15408 316.00000,-225.49998 C 316.00000,-221.91198 318.91200,-218.99998 322.50000,-218.99998 C 326.08800,-218.99998 329.00000,-221.91198 329.00000,-225.49998 C 329.00000,-227.86077 327.66567,-229.83017 325.78125,-230.96873 C 325.84384,-231.31596 326.00000,-231.63481 326.00000,-231.99998 C 326.00000,-235.31198 323.31200,-237.99998 320.00000,-237.99998 C 319.14702,-237.99998 318.32870,-237.82130 317.59375,-237.49998 C 316.73998,-240.09386 314.37851,-241.99997 311.50000,-241.99998 z " opacity="1.0000000" fill="url(#linearGradient13315)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z" transform="matrix(0.964447,0.000000,0.000000,0.964447,89.28852,144.5262)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <g> + <path transform="matrix(0.882630,0.000000,0.000000,0.882630,96.18078,108.1091)" d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1 237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1 250.18322 -389.30136 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(0.882630,0.000000,0.000000,0.882630,96.18078,108.1091)" d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1 237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1 250.18322 -389.30136 z" opacity="0.49444440" fill="url(#linearGradient13317)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - id="g13229"> - <path - transform="matrix(0.911728,0.000000,0.000000,0.911728,90.45407,120.2336)" - d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1 245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1 257.25429 -385.78790 z" - sodipodi:ry="6.0325046" - sodipodi:rx="6.0325046" - sodipodi:cy="-385.78790" - sodipodi:cx="251.22179" - id="path13231" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(0.911728,0.000000,0.000000,0.911728,90.45407,120.2336)" - d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1 245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1 257.25429 -385.78790 z" - sodipodi:ry="6.0325046" - sodipodi:rx="6.0325046" - sodipodi:cy="-385.78790" - sodipodi:cx="251.22179" - id="path13233" - style="opacity:0.49444440;fill:url(#linearGradient13319);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> + <g> + <path transform="matrix(0.911728,0.000000,0.000000,0.911728,90.45407,120.2336)" d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1 245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1 257.25429 -385.78790 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(0.911728,0.000000,0.000000,0.911728,90.45407,120.2336)" d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1 245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1 257.25429 -385.78790 z" opacity="0.49444440" fill="url(#linearGradient13319)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - id="g13235"> - <path - transform="matrix(1.142799,0.000000,0.000000,1.142799,35.23229,210.2770)" - d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1 229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1 237.80885 -387.88715 z" - sodipodi:ry="4.3752232" - sodipodi:rx="4.3752232" - sodipodi:cy="-387.88715" - sodipodi:cx="233.43362" - id="path13237" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.142799,0.000000,0.000000,1.142799,35.23229,210.2770)" - d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1 229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1 237.80885 -387.88715 z" - sodipodi:ry="4.3752232" - sodipodi:rx="4.3752232" - sodipodi:cy="-387.88715" - sodipodi:cx="233.43362" - id="path13239" - style="opacity:0.49444440;fill:url(#linearGradient13321);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> + <g> + <path transform="matrix(1.142799,0.000000,0.000000,1.142799,35.23229,210.2770)" d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1 229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1 237.80885 -387.88715 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.142799,0.000000,0.000000,1.142799,35.23229,210.2770)" d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1 229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1 237.80885 -387.88715 z" opacity="0.49444440" fill="url(#linearGradient13321)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - id="g13241"> - <path - transform="matrix(1.038636,0.000000,0.000000,1.038636,59.84906,169.4899)" - d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z" - sodipodi:ry="6.7396116" - sodipodi:rx="6.7396116" - sodipodi:cy="-383.66660" - sodipodi:cx="241.80843" - id="path13243" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.038636,0.000000,0.000000,1.038636,59.84907,169.4899)" - d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z" - sodipodi:ry="6.7396116" - sodipodi:rx="6.7396116" - sodipodi:cy="-383.66660" - sodipodi:cx="241.80843" - id="path13245" - style="opacity:0.49444440;fill:url(#linearGradient13323);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> + <g> + <path transform="matrix(1.038636,0.000000,0.000000,1.038636,59.84906,169.4899)" d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.038636,0.000000,0.000000,1.038636,59.84907,169.4899)" d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z" opacity="0.49444440" fill="url(#linearGradient13323)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> </g> - <g - transform="translate(72.00007,7.999930)" - id="g13247"> - <path - style="fill:#888a85;fill-opacity:1.0000000;stroke:#555753;stroke-width:1.0001625;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - d="M 246.49993,-238.49993 C 244.22910,-238.49993 242.39002,-236.94965 241.78118,-234.87493 C 241.08795,-235.23876 240.33667,-235.49993 239.49993,-235.49993 C 236.73993,-235.49993 234.49992,-233.25994 234.49993,-230.49993 C 234.49993,-229.92100 234.66245,-229.39223 234.84368,-228.87493 C 233.47021,-228.10419 232.49993,-226.68593 232.49993,-224.99993 C 232.49993,-222.51593 234.51593,-220.49992 236.99993,-220.49993 C 237.17706,-220.49993 255.82280,-220.49993 255.99993,-220.49993 C 258.48392,-220.49993 260.49993,-222.51593 260.49993,-224.99993 C 260.49993,-226.68593 259.52965,-228.10419 258.15618,-228.87493 C 258.33742,-229.39222 258.49993,-229.92101 258.49993,-230.49993 C 258.49993,-233.25993 256.25993,-235.49992 253.49993,-235.49993 C 252.66319,-235.49993 251.91191,-235.23876 251.21868,-234.87493 C 250.60984,-236.94965 248.77076,-238.49993 246.49993,-238.49993 z " - id="path13249" - sodipodi:nodetypes="ccsscsssscsscc" /> - <path - style="opacity:1.0000000;fill:url(#linearGradient13325);fill-opacity:1.0000000;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - d="M 246.49993,-237.99993 C 244.31021,-237.99993 242.77633,-236.66416 242.10438,-234.15641 C 241.43592,-234.50003 240.55679,-234.98976 239.74993,-234.98976 C 237.03342,-234.98976 234.99479,-233.05094 234.99480,-230.44422 C 234.99480,-229.89745 235.26201,-229.11078 235.43676,-228.62221 C 234.11233,-227.89426 232.99993,-226.73171 232.99993,-225.24966 C 232.99993,-222.90361 234.54610,-220.99957 237.33921,-220.99957 C 237.51002,-220.99957 255.48985,-220.99957 255.66065,-220.99957 C 258.43166,-220.99957 259.99993,-222.90361 259.99993,-225.24966 C 259.99993,-226.84203 258.88753,-227.91635 257.56310,-228.64430 C 257.73786,-229.13286 258.02717,-229.89746 258.02717,-230.44422 C 258.02717,-233.05093 255.91136,-235.01185 253.24994,-235.01186 C 252.44307,-235.01186 251.60813,-234.52212 250.93967,-234.17850 C 250.29082,-236.60004 248.68966,-237.99993 246.49993,-237.99993 z " - id="path13251" - sodipodi:nodetypes="ccsscsssscsscc" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path13253" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" /> - <path - sodipodi:type="arc" - style="opacity:0.47777775;fill:url(#linearGradient13327);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path13255" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" /> - <rect - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="rect13257" - width="20.000000" - height="9.0000000" - x="236.99994" - y="-230.99992" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path13259" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16987,171.3114)" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path13261" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19818,231.8633)" /> - <path - sodipodi:type="arc" - style="opacity:0.47777775;fill:url(#linearGradient13329);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path13263" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19825,231.8634)" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path13265" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" /> - <path - sodipodi:type="arc" - style="opacity:0.47777775;fill:url(#linearGradient13331);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path13267" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" /> - <path - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - d="M 245.46868,-233.96868 C 241.88930,-233.96868 238.99993,-231.04805 238.99993,-227.46868 C 238.99993,-225.09800 240.34936,-223.13089 242.24993,-221.99993 L 248.71868,-221.99993 C 250.61925,-223.13089 251.96868,-225.12924 251.96868,-227.49993 C 251.96868,-231.07931 249.04805,-233.96868 245.46868,-233.96868 z " - id="path13269" /> - <path - style="opacity:0.47777775;fill:url(#linearGradient13333);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - d="M 245.49993,-233.99993 C 241.91193,-233.99993 238.99993,-231.08792 238.99993,-227.49993 C 238.99993,-225.12353 240.34478,-223.13361 242.24993,-221.99993 L 248.74993,-221.99993 C 250.65508,-223.13361 251.99993,-225.12353 251.99993,-227.49993 C 251.99993,-231.08793 249.08793,-233.99992 245.49993,-233.99993 z " - id="path13271" /> - <path - sodipodi:type="arc" - style="opacity:0.47777775;fill:url(#linearGradient13335);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path13273" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16977,171.3113)" /> - <path - style="fill:#555753;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" - d="M 258.95633,-230.33389 C 258.95480,-227.64933 255.68707,-226.61994 255.68707,-226.61994 C 255.68707,-226.61994 258.03581,-228.24589 258.02392,-230.32495 C 258.02392,-230.32495 258.95633,-230.33389 258.95633,-230.33389 z " - id="path13275" - sodipodi:nodetypes="ccss" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path13277" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" /> - <path - sodipodi:type="arc" - style="opacity:0.47777775;fill:url(#linearGradient13337);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path13279" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" /> + <g transform="translate(72.00007,7.999930)"> + <path d="M 246.49993,-238.49993 C 244.22910,-238.49993 242.39002,-236.94965 241.78118,-234.87493 C 241.08795,-235.23876 240.33667,-235.49993 239.49993,-235.49993 C 236.73993,-235.49993 234.49992,-233.25994 234.49993,-230.49993 C 234.49993,-229.92100 234.66245,-229.39223 234.84368,-228.87493 C 233.47021,-228.10419 232.49993,-226.68593 232.49993,-224.99993 C 232.49993,-222.51593 234.51593,-220.49992 236.99993,-220.49993 C 237.17706,-220.49993 255.82280,-220.49993 255.99993,-220.49993 C 258.48392,-220.49993 260.49993,-222.51593 260.49993,-224.99993 C 260.49993,-226.68593 259.52965,-228.10419 258.15618,-228.87493 C 258.33742,-229.39222 258.49993,-229.92101 258.49993,-230.49993 C 258.49993,-233.25993 256.25993,-235.49992 253.49993,-235.49993 C 252.66319,-235.49993 251.91191,-235.23876 251.21868,-234.87493 C 250.60984,-236.94965 248.77076,-238.49993 246.49993,-238.49993 z " fill="#888a85" fill-opacity="1.0000000" stroke="#555753" stroke-width="1.0001625" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 246.49993,-237.99993 C 244.31021,-237.99993 242.77633,-236.66416 242.10438,-234.15641 C 241.43592,-234.50003 240.55679,-234.98976 239.74993,-234.98976 C 237.03342,-234.98976 234.99479,-233.05094 234.99480,-230.44422 C 234.99480,-229.89745 235.26201,-229.11078 235.43676,-228.62221 C 234.11233,-227.89426 232.99993,-226.73171 232.99993,-225.24966 C 232.99993,-222.90361 234.54610,-220.99957 237.33921,-220.99957 C 237.51002,-220.99957 255.48985,-220.99957 255.66065,-220.99957 C 258.43166,-220.99957 259.99993,-222.90361 259.99993,-225.24966 C 259.99993,-226.84203 258.88753,-227.91635 257.56310,-228.64430 C 257.73786,-229.13286 258.02717,-229.89746 258.02717,-230.44422 C 258.02717,-233.05093 255.91136,-235.01185 253.24994,-235.01186 C 252.44307,-235.01186 251.60813,-234.52212 250.93967,-234.17850 C 250.29082,-236.60004 248.68966,-237.99993 246.49993,-237.99993 z " opacity="1.0000000" fill="url(#linearGradient13325)" fill-opacity="1.0000000" stroke="none" stroke-width="0.99999958" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" opacity="0.47777775" fill="url(#linearGradient13327)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <rect width="20.000000" height="9.0000000" x="236.99994" y="-230.99992" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16987,171.3114)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19818,231.8633)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19825,231.8634)" opacity="0.47777775" fill="url(#linearGradient13329)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" opacity="0.47777775" fill="url(#linearGradient13331)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 245.46868,-233.96868 C 241.88930,-233.96868 238.99993,-231.04805 238.99993,-227.46868 C 238.99993,-225.09800 240.34936,-223.13089 242.24993,-221.99993 L 248.71868,-221.99993 C 250.61925,-223.13089 251.96868,-225.12924 251.96868,-227.49993 C 251.96868,-231.07931 249.04805,-233.96868 245.46868,-233.96868 z " opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 245.49993,-233.99993 C 241.91193,-233.99993 238.99993,-231.08792 238.99993,-227.49993 C 238.99993,-225.12353 240.34478,-223.13361 242.24993,-221.99993 L 248.74993,-221.99993 C 250.65508,-223.13361 251.99993,-225.12353 251.99993,-227.49993 C 251.99993,-231.08793 249.08793,-233.99992 245.49993,-233.99993 z " opacity="0.47777775" fill="url(#linearGradient13333)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16977,171.3113)" opacity="0.47777775" fill="url(#linearGradient13335)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 258.95633,-230.33389 C 258.95480,-227.64933 255.68707,-226.61994 255.68707,-226.61994 C 255.68707,-226.61994 258.03581,-228.24589 258.02392,-230.32495 C 258.02392,-230.32495 258.95633,-230.33389 258.95633,-230.33389 z " fill="#555753" fill-opacity="1.0000000" fill-rule="evenodd" stroke="none" stroke-width="1.0000000px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" opacity="0.47777775" fill="url(#linearGradient13337)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - transform="translate(56.98577,3.983930)" - id="g13281"> - <path - style="fill:#888a85;fill-opacity:1.0000000;stroke:#555753;stroke-width:1.0001625;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - d="M 246.49993,-238.49993 C 244.22910,-238.49993 242.39002,-236.94965 241.78118,-234.87493 C 241.08795,-235.23876 240.33667,-235.49993 239.49993,-235.49993 C 236.73993,-235.49993 234.49992,-233.25994 234.49993,-230.49993 C 234.49993,-229.92100 234.66245,-229.39223 234.84368,-228.87493 C 233.47021,-228.10419 232.49993,-226.68593 232.49993,-224.99993 C 232.49993,-222.51593 234.51593,-220.49992 236.99993,-220.49993 C 237.17706,-220.49993 255.82280,-220.49993 255.99993,-220.49993 C 258.48392,-220.49993 260.49993,-222.51593 260.49993,-224.99993 C 260.49993,-226.68593 259.52965,-228.10419 258.15618,-228.87493 C 258.33742,-229.39222 258.49993,-229.92101 258.49993,-230.49993 C 258.49993,-233.25993 256.25993,-235.49992 253.49993,-235.49993 C 252.66319,-235.49993 251.91191,-235.23876 251.21868,-234.87493 C 250.60984,-236.94965 248.77076,-238.49993 246.49993,-238.49993 z " - id="path13283" - sodipodi:nodetypes="ccsscsssscsscc" /> - <path - style="opacity:1.0000000;fill:url(#linearGradient13339);fill-opacity:1.0000000;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - d="M 246.49993,-237.99993 C 244.31021,-237.99993 242.77633,-236.66416 242.10438,-234.15641 C 241.43592,-234.50003 240.55679,-234.98976 239.74993,-234.98976 C 237.03342,-234.98976 234.99479,-233.05094 234.99480,-230.44422 C 234.99480,-229.89745 235.26201,-229.11078 235.43676,-228.62221 C 234.11233,-227.89426 232.99993,-226.73171 232.99993,-225.24966 C 232.99993,-222.90361 234.54610,-220.99957 237.33921,-220.99957 C 237.51002,-220.99957 255.48985,-220.99957 255.66065,-220.99957 C 258.43166,-220.99957 259.99993,-222.90361 259.99993,-225.24966 C 259.99993,-226.84203 258.88753,-227.91635 257.56310,-228.64430 C 257.73786,-229.13286 258.02717,-229.89746 258.02717,-230.44422 C 258.02717,-233.05093 255.91136,-235.01185 253.24994,-235.01186 C 252.44307,-235.01186 251.60813,-234.52212 250.93967,-234.17850 C 250.29082,-236.60004 248.68966,-237.99993 246.49993,-237.99993 z " - id="path13285" - sodipodi:nodetypes="ccsscsssscsscc" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path13287" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" /> - <path - sodipodi:type="arc" - style="opacity:0.47777775;fill:url(#linearGradient13341);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path13289" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" /> - <rect - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="rect13291" - width="20.000000" - height="9.0000000" - x="236.99994" - y="-230.99992" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path13293" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16987,171.3114)" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path13295" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19818,231.8633)" /> - <path - sodipodi:type="arc" - style="opacity:0.47777775;fill:url(#linearGradient13343);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path13297" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19825,231.8634)" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path13299" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" /> - <path - sodipodi:type="arc" - style="opacity:0.47777775;fill:url(#linearGradient13345);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path13301" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" /> - <path - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - d="M 245.46868,-233.96868 C 241.88930,-233.96868 238.99993,-231.04805 238.99993,-227.46868 C 238.99993,-225.09800 240.34936,-223.13089 242.24993,-221.99993 L 248.71868,-221.99993 C 250.61925,-223.13089 251.96868,-225.12924 251.96868,-227.49993 C 251.96868,-231.07931 249.04805,-233.96868 245.46868,-233.96868 z " - id="path13303" /> - <path - style="opacity:0.47777775;fill:url(#linearGradient13347);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - d="M 245.49993,-233.99993 C 241.91193,-233.99993 238.99993,-231.08792 238.99993,-227.49993 C 238.99993,-225.12353 240.34478,-223.13361 242.24993,-221.99993 L 248.74993,-221.99993 C 250.65508,-223.13361 251.99993,-225.12353 251.99993,-227.49993 C 251.99993,-231.08793 249.08793,-233.99992 245.49993,-233.99993 z " - id="path13305" /> - <path - sodipodi:type="arc" - style="opacity:0.47777775;fill:url(#linearGradient13350);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path13307" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16977,171.3113)" /> - <path - style="fill:#555753;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" - d="M 258.95633,-230.33389 C 258.95480,-227.64933 255.68707,-226.61994 255.68707,-226.61994 C 255.68707,-226.61994 258.03581,-228.24589 258.02392,-230.32495 C 258.02392,-230.32495 258.95633,-230.33389 258.95633,-230.33389 z " - id="path13309" - sodipodi:nodetypes="ccss" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path13311" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" /> - <path - sodipodi:type="arc" - style="opacity:0.47777775;fill:url(#linearGradient13352);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path13313" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" /> + <g transform="translate(56.98577,3.983930)"> + <path d="M 246.49993,-238.49993 C 244.22910,-238.49993 242.39002,-236.94965 241.78118,-234.87493 C 241.08795,-235.23876 240.33667,-235.49993 239.49993,-235.49993 C 236.73993,-235.49993 234.49992,-233.25994 234.49993,-230.49993 C 234.49993,-229.92100 234.66245,-229.39223 234.84368,-228.87493 C 233.47021,-228.10419 232.49993,-226.68593 232.49993,-224.99993 C 232.49993,-222.51593 234.51593,-220.49992 236.99993,-220.49993 C 237.17706,-220.49993 255.82280,-220.49993 255.99993,-220.49993 C 258.48392,-220.49993 260.49993,-222.51593 260.49993,-224.99993 C 260.49993,-226.68593 259.52965,-228.10419 258.15618,-228.87493 C 258.33742,-229.39222 258.49993,-229.92101 258.49993,-230.49993 C 258.49993,-233.25993 256.25993,-235.49992 253.49993,-235.49993 C 252.66319,-235.49993 251.91191,-235.23876 251.21868,-234.87493 C 250.60984,-236.94965 248.77076,-238.49993 246.49993,-238.49993 z " fill="#888a85" fill-opacity="1.0000000" stroke="#555753" stroke-width="1.0001625" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 246.49993,-237.99993 C 244.31021,-237.99993 242.77633,-236.66416 242.10438,-234.15641 C 241.43592,-234.50003 240.55679,-234.98976 239.74993,-234.98976 C 237.03342,-234.98976 234.99479,-233.05094 234.99480,-230.44422 C 234.99480,-229.89745 235.26201,-229.11078 235.43676,-228.62221 C 234.11233,-227.89426 232.99993,-226.73171 232.99993,-225.24966 C 232.99993,-222.90361 234.54610,-220.99957 237.33921,-220.99957 C 237.51002,-220.99957 255.48985,-220.99957 255.66065,-220.99957 C 258.43166,-220.99957 259.99993,-222.90361 259.99993,-225.24966 C 259.99993,-226.84203 258.88753,-227.91635 257.56310,-228.64430 C 257.73786,-229.13286 258.02717,-229.89746 258.02717,-230.44422 C 258.02717,-233.05093 255.91136,-235.01185 253.24994,-235.01186 C 252.44307,-235.01186 251.60813,-234.52212 250.93967,-234.17850 C 250.29082,-236.60004 248.68966,-237.99993 246.49993,-237.99993 z " opacity="1.0000000" fill="url(#linearGradient13339)" fill-opacity="1.0000000" stroke="none" stroke-width="0.99999958" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" opacity="0.47777775" fill="url(#linearGradient13341)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <rect width="20.000000" height="9.0000000" x="236.99994" y="-230.99992" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16987,171.3114)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19818,231.8633)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19825,231.8634)" opacity="0.47777775" fill="url(#linearGradient13343)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" opacity="0.47777775" fill="url(#linearGradient13345)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 245.46868,-233.96868 C 241.88930,-233.96868 238.99993,-231.04805 238.99993,-227.46868 C 238.99993,-225.09800 240.34936,-223.13089 242.24993,-221.99993 L 248.71868,-221.99993 C 250.61925,-223.13089 251.96868,-225.12924 251.96868,-227.49993 C 251.96868,-231.07931 249.04805,-233.96868 245.46868,-233.96868 z " opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 245.49993,-233.99993 C 241.91193,-233.99993 238.99993,-231.08792 238.99993,-227.49993 C 238.99993,-225.12353 240.34478,-223.13361 242.24993,-221.99993 L 248.74993,-221.99993 C 250.65508,-223.13361 251.99993,-225.12353 251.99993,-227.49993 C 251.99993,-231.08793 249.08793,-233.99992 245.49993,-233.99993 z " opacity="0.47777775" fill="url(#linearGradient13347)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16977,171.3113)" opacity="0.47777775" fill="url(#linearGradient13350)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 258.95633,-230.33389 C 258.95480,-227.64933 255.68707,-226.61994 255.68707,-226.61994 C 255.68707,-226.61994 258.03581,-228.24589 258.02392,-230.32495 C 258.02392,-230.32495 258.95633,-230.33389 258.95633,-230.33389 z " fill="#555753" fill-opacity="1.0000000" fill-rule="evenodd" stroke="none" stroke-width="1.0000000px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" opacity="0.47777775" fill="url(#linearGradient13352)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> </g> </g> diff --git a/demos/embedded/weatherinfo/icons/weather-sleet.svg b/demos/embedded/weatherinfo/icons/weather-sleet.svg index f1cb9eb..bf2306f 100644 --- a/demos/embedded/weatherinfo/icons/weather-sleet.svg +++ b/demos/embedded/weatherinfo/icons/weather-sleet.svg @@ -1,4573 +1,96 @@ <?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="48px" - height="48px" - id="svg1306" - sodipodi:version="0.32" - inkscape:version="0.46" - sodipodi:docbase="/home/rcollier/Work/Novell/Tango/weather" - sodipodi:docname="weather-sleet.svg" - inkscape:output_extension="org.inkscape.output.svg.inkscape"> - <defs - id="defs1308"> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient5358" - id="linearGradient12213" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)" - x1="6.8942904" - y1="-359.82382" - x2="27.400387" - y2="-381.30222" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient5346" - id="radialGradient12211" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)" - cx="21.920311" - cy="-382.96454" - fx="21.920311" - fy="-382.96454" - r="21.743534" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient5358" - id="linearGradient12201" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)" - x1="6.8942904" - y1="-359.82382" - x2="27.400387" - y2="-381.30222" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient5346" - id="radialGradient12199" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)" - cx="21.920311" - cy="-382.96454" - fx="21.920311" - fy="-382.96454" - r="21.743534" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient5358" - id="linearGradient12253" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)" - x1="6.8942904" - y1="-359.82382" - x2="27.400387" - y2="-381.30222" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient5346" - id="radialGradient12251" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)" - cx="21.920311" - cy="-382.96454" - fx="21.920311" - fy="-382.96454" - r="21.743534" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient5358" - id="linearGradient12237" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)" - x1="6.8942904" - y1="-359.82382" - x2="27.400387" - y2="-381.30222" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient5346" - id="radialGradient12235" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)" - cx="21.920311" - cy="-382.96454" - fx="21.920311" - fy="-382.96454" - r="21.743534" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient5358" - id="linearGradient12225" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)" - x1="6.8942904" - y1="-359.82382" - x2="27.400387" - y2="-381.30222" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient5346" - id="radialGradient12223" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)" - cx="21.920311" - cy="-382.96454" - fx="21.920311" - fy="-382.96454" - r="21.743534" /> - <linearGradient - inkscape:collect="always" - id="linearGradient5358"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop5360" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop5362" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient5358" - id="linearGradient12249" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)" - x1="6.8942904" - y1="-359.82382" - x2="27.400387" - y2="-381.30222" /> - <linearGradient - inkscape:collect="always" - id="linearGradient5346"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop5348" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop5350" /> - </linearGradient> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient5346" - id="radialGradient12247" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)" - cx="21.920311" - cy="-382.96454" - fx="21.920311" - fy="-382.96454" - r="21.743534" /> - <inkscape:perspective - sodipodi:type="inkscape:persp3d" - inkscape:vp_x="0 : 24 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_z="48 : 24 : 1" - inkscape:persp3d-origin="24 : 16 : 1" - id="perspective6329" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient11348" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.070878,0.000000,-0.535439,0.674858,287.5142,77.50802)" - x1="-137.49608" - y1="-425.28664" - x2="-130.60854" - y2="-425.28665" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient11346" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.070879,0.000000,-0.535439,0.674857,277.5140,77.50780)" - x1="-137.49608" - y1="-425.28664" - x2="-130.60854" - y2="-425.28665" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient11344" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.088439,0.000000,-0.544220,0.674842,265.9811,77.50139)" - x1="-137.49608" - y1="-425.28664" - x2="-130.60854" - y2="-425.28665" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient13352" - gradientUnits="userSpaceOnUse" - x1="284.80219" - y1="-441.23294" - x2="288.89954" - y2="-436.83109" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6549" - id="linearGradient13350" - gradientUnits="userSpaceOnUse" - x1="286.66589" - y1="-439.48358" - x2="289.76562" - y2="-436.70703" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6527" - id="linearGradient13347" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-35.00007,207.0001)" - x1="275.94193" - y1="-437.10501" - x2="279.97546" - y2="-431.91833" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient13345" - gradientUnits="userSpaceOnUse" - x1="285.94086" - y1="-439.93900" - x2="289.39124" - y2="-436.44290" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6513" - id="linearGradient13343" - gradientUnits="userSpaceOnUse" - x1="286.51172" - y1="-441.29074" - x2="289.85379" - y2="-436.14453" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6497" - id="linearGradient13341" - gradientUnits="userSpaceOnUse" - x1="287.51730" - y1="-439.75281" - x2="289.67633" - y2="-436.32199" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6470" - id="linearGradient13339" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-34.00007,207.0001)" - x1="271.02170" - y1="-441.05182" - x2="285.02859" - y2="-431.96991" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient13337" - gradientUnits="userSpaceOnUse" - x1="284.80219" - y1="-441.23294" - x2="288.89954" - y2="-436.83109" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6549"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6551" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6553" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6549" - id="linearGradient13335" - gradientUnits="userSpaceOnUse" - x1="286.66589" - y1="-439.48358" - x2="289.76562" - y2="-436.70703" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6527"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6530" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6532" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6527" - id="linearGradient13333" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-35.00007,207.0001)" - x1="275.94193" - y1="-437.10501" - x2="279.97546" - y2="-431.91833" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6538"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6540" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6542" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient13331" - gradientUnits="userSpaceOnUse" - x1="285.94086" - y1="-439.93900" - x2="289.39124" - y2="-436.44290" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6513"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6515" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6517" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6513" - id="linearGradient13329" - gradientUnits="userSpaceOnUse" - x1="286.51172" - y1="-441.29074" - x2="289.85379" - y2="-436.14453" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6497"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6499" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6501" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6497" - id="linearGradient13327" - gradientUnits="userSpaceOnUse" - x1="287.51730" - y1="-439.75281" - x2="289.67633" - y2="-436.32199" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6470"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6472" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6474" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6470" - id="linearGradient13325" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-34.00007,207.0001)" - x1="271.02170" - y1="-441.05182" - x2="285.02859" - y2="-431.96991" /> - <linearGradient - inkscape:collect="always" - id="linearGradient8397"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop8400" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop8402" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8397" - id="linearGradient13323" - gradientUnits="userSpaceOnUse" - x1="238.00478" - y1="-388.47476" - x2="245.65462" - y2="-382.64539" /> - <linearGradient - inkscape:collect="always" - id="linearGradient8315"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop8317" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop8319" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8315" - id="linearGradient13321" - gradientUnits="userSpaceOnUse" - x1="230.87598" - y1="-390.43951" - x2="235.25652" - y2="-386.95901" /> - <linearGradient - inkscape:collect="always" - id="linearGradient8381"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop8383" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop8385" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8381" - id="linearGradient13319" - gradientUnits="userSpaceOnUse" - x1="246.74042" - y1="-391.31381" - x2="252.69785" - y2="-385.35165" /> - <linearGradient - inkscape:collect="always" - id="linearGradient8331"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop8333" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop8335" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8331" - id="linearGradient13317" - gradientUnits="userSpaceOnUse" - x1="240.07379" - y1="-393.40720" - x2="245.82706" - y2="-388.55029" /> - <linearGradient - inkscape:collect="always" - id="linearGradient8302"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop8304" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop8306" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8302" - id="linearGradient13315" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(69.00000,155.0000)" - x1="228.50261" - y1="-392.30591" - x2="266.36395" - y2="-379.26862" /> - <linearGradient - inkscape:collect="always" - id="linearGradient4442"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop4444" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop4446" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient4442" - id="linearGradient4467" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-59.00000,27.72122)" - x1="4.3602662" - y1="-21.904713" - x2="40.139732" - y2="-1.8452871" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4430" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,7.747730,-6.786242)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4426" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,12.43523,-5.473742)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4404" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.333333,0.000000,0.000000,1.000000,-14.02052,-13.29853)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4407" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,-9.728831,-6.856090)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4410" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-4.033948,-17.90479)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4413" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.613903,0.000000,0.000000,0.613903,-1.200260,0.631990)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4419" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,4.534070,-12.70656)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4422" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-9.992899,-16.32980)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient4488" - id="linearGradient4479" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.926905,0.000000,0.000000,0.881886,-60.91820,-2.915960)" - x1="17.181321" - y1="32.443652" - x2="47.342173" - y2="32.443652" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4359" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.333333,0.000000,0.000000,1.000000,-7.329241,-50.85192)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4357" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,-0.912551,-43.37823)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4355" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(3.365819,-55.70818)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4353" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.613903,0.000000,0.000000,0.613903,17.14727,-36.85890)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4351" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,15.17579,-44.92562)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4349" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,12.81910,-50.04120)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4347" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-3.681521,-53.82781)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - id="linearGradient4488"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop4490" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop4492" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient4488" - id="linearGradient4370" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.926905,0.000000,0.000000,0.881886,-74.92090,-6.914630)" - x1="17.175579" - y1="23.374163" - x2="38.037014" - y2="38.680286" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4255" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.333333,0.000000,0.000000,1.000000,-7.329241,-50.85192)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4253" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,-0.912551,-43.37823)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4251" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(3.365819,-55.70818)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4249" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.613903,0.000000,0.000000,0.613903,17.14727,-36.85890)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4247" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,15.17579,-44.92562)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4245" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,12.81910,-50.04120)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - id="linearGradient3019"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop3021" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop3023" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4243" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-3.681521,-53.82781)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - id="linearGradient6525" - gradientUnits="userSpaceOnUse" - x1="4.1914001" - y1="11.113300" - x2="47.319698" - y2="56.052299"> - <stop - offset="0" - style="stop-color:#ffffff;stop-opacity:1;" - id="stop6529" /> - <stop - offset="1" - style="stop-color:#ffffff;stop-opacity:0.34020618;" - id="stop6531" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6525" - id="linearGradient5250" - x1="8.5469341" - y1="30.281681" - x2="30.85088" - y2="48.301884" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.874977,0.000000,0.000000,0.921480,-56.65990,-1.553540)" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6537"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6539" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6541" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient2298"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop2300" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop2302" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient3347"> - <stop - style="stop-color:#edd400;stop-opacity:1;" - offset="0" - id="stop3349" /> - <stop - style="stop-color:#edd400;stop-opacity:0;" - offset="1" - id="stop3351" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient2527"> - <stop - style="stop-color:#fcaf3e;stop-opacity:1;" - offset="0" - id="stop2529" /> - <stop - style="stop-color:#fcaf3e;stop-opacity:0;" - offset="1" - id="stop2531" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient2500"> - <stop - style="stop-color:#fce94f;stop-opacity:1;" - offset="0" - id="stop2502" /> - <stop - style="stop-color:#fce94f;stop-opacity:0;" - offset="1" - id="stop2504" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient2392"> - <stop - style="stop-color:#eeeeec;stop-opacity:1;" - offset="0" - id="stop2394" /> - <stop - style="stop-color:#eeeeec;stop-opacity:0;" - offset="1" - id="stop2396" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient2254"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop2256" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop2258" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2263" - gradientUnits="userSpaceOnUse" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" - gradientTransform="translate(-1.608757,3.097272)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2267" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(3.555020,0.968578)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2271" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(9.263651,3.495228)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2275" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(8.497184,-2.330824)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2279" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(14.46340,2.014073)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2283" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2287" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2291" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2295" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2299" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2303" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(1.707748,-5.784024)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2311" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2350" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(16.14002,24.66420)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2352" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-0.932144,25.87240)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2354" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(5.356636,23.86870)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2356" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(11.19027,26.52035)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2358" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(10.30638,19.27251)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2360" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,0.229156,30.76299)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2362" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,16.67145,27.22746)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2364" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,17.05272,31.47010)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2366" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-4.010744,24.96040)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2368" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,8.185476,29.52556)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2370" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(4.207586,21.30544)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2372" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.12415,32.08882)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2392" - id="linearGradient2398" - x1="6.6651416" - y1="13.802798" - x2="41.403877" - y2="13.802798" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2426" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(14.46340,2.014073)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2428" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(8.497184,-2.330824)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2430" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-1.608757,3.097272)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2432" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(3.555020,0.968578)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2434" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(9.263651,3.495228)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2436" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2438" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2440" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2442" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2444" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2446" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2392" - id="linearGradient2448" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" - x1="6.6651416" - y1="13.802798" - x2="41.403877" - y2="13.802798" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2392" - id="linearGradient2451" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,4.378541,10.65407)" - x1="6.6651416" - y1="13.802798" - x2="41.403877" - y2="13.802798" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2457" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2460" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2463" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2469" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2472" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(12.51365,8.745228)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2475" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(6.805020,6.218578)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2478" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(1.641243,8.347272)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2483" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(0.842481,-3.998086)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2500" - id="linearGradient2506" - x1="37.000000" - y1="-21.750000" - x2="53.750000" - y2="9.0000000" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2500" - id="linearGradient2509" - gradientUnits="userSpaceOnUse" - x1="37.000000" - y1="-21.750000" - x2="53.750000" - y2="9.0000000" - gradientTransform="matrix(0.889091,0.000000,0.000000,0.617886,-4.771368,39.81402)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2500" - id="linearGradient2513" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.605509,0.000000,0.000000,0.710542,-0.224971,42.19500)" - x1="38.857941" - y1="-18.407482" - x2="53.750000" - y2="9.0000000" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2500" - id="linearGradient2517" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.414169,0.000000,0.000000,0.778853,-1.910724,36.87850)" - x1="37.000000" - y1="-21.750000" - x2="53.750000" - y2="9.0000000" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2527" - id="linearGradient2533" - x1="-25.137094" - y1="-1.2491118" - x2="-35.652866" - y2="-24.884460" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2537" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(17.33814,3.415985)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2541" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(13.40064,1.353485)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2555" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-7.499805,1.708617)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2563" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-0.726830,2.481141)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3347" - id="linearGradient3353" - x1="23.303862" - y1="29.115711" - x2="29.750000" - y2="46.092930" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3366" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(13.40064,1.353485)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3368" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(1.641243,8.347272)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3370" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(6.805020,6.218578)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3372" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(12.51365,8.745228)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3374" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3376" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3378" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3380" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3383" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3386" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3389" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3392" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3395" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(3.674812,3.088370)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3398" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-2.033818,0.561720)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3401" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-7.197595,2.690414)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3405" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(4.561802,-4.303373)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - gradientUnits="userSpaceOnUse" - y2="-4.4493785" - x2="-34.700153" - y1="-37.550461" - x1="-27.006643" - id="linearGradient2916" - xlink:href="#linearGradient2298" - inkscape:collect="always" /> - <linearGradient - y2="-24.884460" - x2="-35.652866" - y1="-1.2491118" - x1="-25.137094" - gradientUnits="userSpaceOnUse" - id="linearGradient2914" - xlink:href="#linearGradient2527" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(57.97693,-10.56876)" - gradientUnits="userSpaceOnUse" - id="linearGradient2912" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,123.1162,-5.446357)" - gradientUnits="userSpaceOnUse" - id="linearGradient2910" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)" - gradientUnits="userSpaceOnUse" - id="linearGradient2908" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)" - gradientUnits="userSpaceOnUse" - id="linearGradient2906" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)" - gradientUnits="userSpaceOnUse" - id="linearGradient2904" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)" - gradientUnits="userSpaceOnUse" - id="linearGradient2902" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(3.674812,3.088370)" - gradientUnits="userSpaceOnUse" - id="linearGradient2900" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-2.033818,0.561720)" - gradientUnits="userSpaceOnUse" - id="linearGradient2898" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-7.197595,2.690414)" - gradientUnits="userSpaceOnUse" - id="linearGradient2896" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="-24.884460" - x2="-35.652866" - y1="-1.2491118" - x1="-25.137094" - gradientUnits="userSpaceOnUse" - id="linearGradient2894" - xlink:href="#linearGradient2527" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,79.36909,-3.193747)" - gradientUnits="userSpaceOnUse" - id="linearGradient2892" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,56.25514,-12.39388)" - gradientUnits="userSpaceOnUse" - id="linearGradient2890" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(88.49344,-9.697877)" - gradientUnits="userSpaceOnUse" - id="linearGradient2888" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(4.561802,-4.303373)" - gradientUnits="userSpaceOnUse" - id="linearGradient2886" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-7.197595,2.690414)" - gradientUnits="userSpaceOnUse" - id="linearGradient2884" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-2.033818,0.561720)" - gradientUnits="userSpaceOnUse" - id="linearGradient2882" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(3.674812,3.088370)" - gradientUnits="userSpaceOnUse" - id="linearGradient2880" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)" - gradientUnits="userSpaceOnUse" - id="linearGradient2878" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)" - gradientUnits="userSpaceOnUse" - id="linearGradient2876" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)" - gradientUnits="userSpaceOnUse" - id="linearGradient2874" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)" - gradientUnits="userSpaceOnUse" - id="linearGradient2872" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)" - gradientUnits="userSpaceOnUse" - id="linearGradient2870" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)" - gradientUnits="userSpaceOnUse" - id="linearGradient2868" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)" - gradientUnits="userSpaceOnUse" - id="linearGradient2866" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)" - gradientUnits="userSpaceOnUse" - id="linearGradient2864" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(12.51365,8.745228)" - gradientUnits="userSpaceOnUse" - id="linearGradient2862" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(6.805020,6.218578)" - gradientUnits="userSpaceOnUse" - id="linearGradient2860" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(1.641243,8.347272)" - gradientUnits="userSpaceOnUse" - id="linearGradient2858" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(13.40064,1.353485)" - gradientUnits="userSpaceOnUse" - id="linearGradient2856" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientUnits="userSpaceOnUse" - y2="46.092930" - x2="29.750000" - y1="29.115711" - x1="23.303862" - id="linearGradient2854" - xlink:href="#linearGradient3347" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-0.726830,2.481141)" - gradientUnits="userSpaceOnUse" - id="linearGradient2852" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-7.499805,1.708617)" - gradientUnits="userSpaceOnUse" - id="linearGradient2850" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(13.40064,1.353485)" - gradientUnits="userSpaceOnUse" - id="linearGradient2848" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(17.33814,3.415985)" - gradientUnits="userSpaceOnUse" - id="linearGradient2846" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientUnits="userSpaceOnUse" - y2="-24.884460" - x2="-35.652866" - y1="-1.2491118" - x1="-25.137094" - id="linearGradient2844" - xlink:href="#linearGradient2527" - inkscape:collect="always" /> - <linearGradient - y2="9.0000000" - x2="53.750000" - y1="-21.750000" - x1="37.000000" - gradientTransform="matrix(0.414169,0.000000,0.000000,0.778853,-1.910724,36.87850)" - gradientUnits="userSpaceOnUse" - id="linearGradient2842" - xlink:href="#linearGradient2500" - inkscape:collect="always" /> - <linearGradient - y2="9.0000000" - x2="53.750000" - y1="-18.407482" - x1="38.857941" - gradientTransform="matrix(0.605509,0.000000,0.000000,0.710542,-0.224971,42.19500)" - gradientUnits="userSpaceOnUse" - id="linearGradient2840" - xlink:href="#linearGradient2500" - inkscape:collect="always" /> - <linearGradient - gradientTransform="matrix(0.889091,0.000000,0.000000,0.617886,-4.771368,39.81402)" - y2="9.0000000" - x2="53.750000" - y1="-21.750000" - x1="37.000000" - gradientUnits="userSpaceOnUse" - id="linearGradient2838" - xlink:href="#linearGradient2500" - inkscape:collect="always" /> - <linearGradient - gradientUnits="userSpaceOnUse" - y2="9.0000000" - x2="53.750000" - y1="-21.750000" - x1="37.000000" - id="linearGradient2836" - xlink:href="#linearGradient2500" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(0.842481,-3.998086)" - gradientUnits="userSpaceOnUse" - id="linearGradient2834" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(1.641243,8.347272)" - gradientUnits="userSpaceOnUse" - id="linearGradient2832" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(6.805020,6.218578)" - gradientUnits="userSpaceOnUse" - id="linearGradient2830" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(12.51365,8.745228)" - gradientUnits="userSpaceOnUse" - id="linearGradient2828" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)" - gradientUnits="userSpaceOnUse" - id="linearGradient2826" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)" - gradientUnits="userSpaceOnUse" - id="linearGradient2824" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)" - gradientUnits="userSpaceOnUse" - id="linearGradient2822" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)" - gradientUnits="userSpaceOnUse" - id="linearGradient2820" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="13.802798" - x2="41.403877" - y1="13.802798" - x1="6.6651416" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,4.378541,10.65407)" - gradientUnits="userSpaceOnUse" - id="linearGradient2818" - xlink:href="#linearGradient2392" - inkscape:collect="always" /> - <linearGradient - y2="13.802798" - x2="41.403877" - y1="13.802798" - x1="6.6651416" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" - gradientUnits="userSpaceOnUse" - id="linearGradient2816" - xlink:href="#linearGradient2392" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)" - gradientUnits="userSpaceOnUse" - id="linearGradient2814" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)" - gradientUnits="userSpaceOnUse" - id="linearGradient2812" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)" - gradientUnits="userSpaceOnUse" - id="linearGradient2810" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)" - gradientUnits="userSpaceOnUse" - id="linearGradient2808" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)" - gradientUnits="userSpaceOnUse" - id="linearGradient2806" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)" - gradientUnits="userSpaceOnUse" - id="linearGradient2804" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(9.263651,3.495228)" - gradientUnits="userSpaceOnUse" - id="linearGradient2802" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(3.555020,0.968578)" - gradientUnits="userSpaceOnUse" - id="linearGradient2800" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-1.608757,3.097272)" - gradientUnits="userSpaceOnUse" - id="linearGradient2798" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(8.497184,-2.330824)" - gradientUnits="userSpaceOnUse" - id="linearGradient2796" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(14.46340,2.014073)" - gradientUnits="userSpaceOnUse" - id="linearGradient2794" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" - gradientUnits="userSpaceOnUse" - y2="13.802798" - x2="41.403877" - y1="13.802798" - x1="6.6651416" - id="linearGradient2792" - xlink:href="#linearGradient2392" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.12415,32.08882)" - gradientUnits="userSpaceOnUse" - id="linearGradient2790" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(4.207586,21.30544)" - gradientUnits="userSpaceOnUse" - id="linearGradient2788" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,8.185476,29.52556)" - gradientUnits="userSpaceOnUse" - id="linearGradient2786" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-4.010744,24.96040)" - gradientUnits="userSpaceOnUse" - id="linearGradient2784" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,17.05272,31.47010)" - gradientUnits="userSpaceOnUse" - id="linearGradient2782" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,16.67145,27.22746)" - gradientUnits="userSpaceOnUse" - id="linearGradient2780" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,0.229156,30.76299)" - gradientUnits="userSpaceOnUse" - id="linearGradient2778" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(10.30638,19.27251)" - gradientUnits="userSpaceOnUse" - id="linearGradient2776" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(11.19027,26.52035)" - gradientUnits="userSpaceOnUse" - id="linearGradient2774" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(5.356636,23.86870)" - gradientUnits="userSpaceOnUse" - id="linearGradient2772" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-0.932144,25.87240)" - gradientUnits="userSpaceOnUse" - id="linearGradient2770" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(16.14002,24.66420)" - gradientUnits="userSpaceOnUse" - id="linearGradient2768" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)" - gradientUnits="userSpaceOnUse" - id="linearGradient2766" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(1.707748,-5.784024)" - gradientUnits="userSpaceOnUse" - id="linearGradient2764" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)" - gradientUnits="userSpaceOnUse" - id="linearGradient2762" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)" - gradientUnits="userSpaceOnUse" - id="linearGradient2760" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)" - gradientUnits="userSpaceOnUse" - id="linearGradient2758" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)" - gradientUnits="userSpaceOnUse" - id="linearGradient2756" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)" - gradientUnits="userSpaceOnUse" - id="linearGradient2754" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(14.46340,2.014073)" - gradientUnits="userSpaceOnUse" - id="linearGradient2752" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(8.497184,-2.330824)" - gradientUnits="userSpaceOnUse" - id="linearGradient2750" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(9.263651,3.495228)" - gradientUnits="userSpaceOnUse" - id="linearGradient2748" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(3.555020,0.968578)" - gradientUnits="userSpaceOnUse" - id="linearGradient2746" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientTransform="translate(-1.608757,3.097272)" - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientUnits="userSpaceOnUse" - id="linearGradient2744" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientUnits="userSpaceOnUse" - y2="-4.4493785" - x2="-34.700153" - y1="-37.550461" - x1="-27.006643" - id="linearGradient2304" - xlink:href="#linearGradient2298" - inkscape:collect="always" /> - <linearGradient - y2="-24.884460" - x2="-35.652866" - y1="-1.2491118" - x1="-25.137094" - gradientUnits="userSpaceOnUse" - id="linearGradient1557" - xlink:href="#linearGradient2527" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(57.97693,-10.56876)" - gradientUnits="userSpaceOnUse" - id="linearGradient1538" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,123.1162,-5.446357)" - gradientUnits="userSpaceOnUse" - id="linearGradient1536" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)" - gradientUnits="userSpaceOnUse" - id="linearGradient1534" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)" - gradientUnits="userSpaceOnUse" - id="linearGradient1532" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)" - gradientUnits="userSpaceOnUse" - id="linearGradient1530" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)" - gradientUnits="userSpaceOnUse" - id="linearGradient1528" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(3.674812,3.088370)" - gradientUnits="userSpaceOnUse" - id="linearGradient1526" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-2.033818,0.561720)" - gradientUnits="userSpaceOnUse" - id="linearGradient1524" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-7.197595,2.690414)" - gradientUnits="userSpaceOnUse" - id="linearGradient1522" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="-24.884460" - x2="-35.652866" - y1="-1.2491118" - x1="-25.137094" - gradientUnits="userSpaceOnUse" - id="linearGradient1520" - xlink:href="#linearGradient2527" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,79.36909,-3.193747)" - gradientUnits="userSpaceOnUse" - id="linearGradient1518" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,56.25514,-12.39388)" - gradientUnits="userSpaceOnUse" - id="linearGradient1516" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(88.49344,-9.697877)" - gradientUnits="userSpaceOnUse" - id="linearGradient1514" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(4.561802,-4.303373)" - gradientUnits="userSpaceOnUse" - id="linearGradient5957" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-7.197595,2.690414)" - gradientUnits="userSpaceOnUse" - id="linearGradient5955" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-2.033818,0.561720)" - gradientUnits="userSpaceOnUse" - id="linearGradient5953" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(3.674812,3.088370)" - gradientUnits="userSpaceOnUse" - id="linearGradient5951" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)" - gradientUnits="userSpaceOnUse" - id="linearGradient5949" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)" - gradientUnits="userSpaceOnUse" - id="linearGradient5947" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)" - gradientUnits="userSpaceOnUse" - id="linearGradient5945" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)" - gradientUnits="userSpaceOnUse" - id="linearGradient5943" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)" - gradientUnits="userSpaceOnUse" - id="linearGradient5941" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)" - gradientUnits="userSpaceOnUse" - id="linearGradient5939" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)" - gradientUnits="userSpaceOnUse" - id="linearGradient5937" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)" - gradientUnits="userSpaceOnUse" - id="linearGradient5935" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(12.51365,8.745228)" - gradientUnits="userSpaceOnUse" - id="linearGradient5933" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(6.805020,6.218578)" - gradientUnits="userSpaceOnUse" - id="linearGradient5931" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(1.641243,8.347272)" - gradientUnits="userSpaceOnUse" - id="linearGradient5929" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(13.40064,1.353485)" - gradientUnits="userSpaceOnUse" - id="linearGradient5927" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientUnits="userSpaceOnUse" - y2="46.092930" - x2="29.750000" - y1="29.115711" - x1="23.303862" - id="linearGradient5925" - xlink:href="#linearGradient3347" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-0.726830,2.481141)" - gradientUnits="userSpaceOnUse" - id="linearGradient5923" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-7.499805,1.708617)" - gradientUnits="userSpaceOnUse" - id="linearGradient5921" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(13.40064,1.353485)" - gradientUnits="userSpaceOnUse" - id="linearGradient5919" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(17.33814,3.415985)" - gradientUnits="userSpaceOnUse" - id="linearGradient5917" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientUnits="userSpaceOnUse" - y2="-24.884460" - x2="-35.652866" - y1="-1.2491118" - x1="-25.137094" - id="linearGradient5915" - xlink:href="#linearGradient2527" - inkscape:collect="always" /> - <linearGradient - y2="9.0000000" - x2="53.750000" - y1="-21.750000" - x1="37.000000" - gradientTransform="matrix(0.414169,0.000000,0.000000,0.778853,-1.910724,36.87850)" - gradientUnits="userSpaceOnUse" - id="linearGradient5913" - xlink:href="#linearGradient2500" - inkscape:collect="always" /> - <linearGradient - y2="9.0000000" - x2="53.750000" - y1="-18.407482" - x1="38.857941" - gradientTransform="matrix(0.605509,0.000000,0.000000,0.710542,-0.224971,42.19500)" - gradientUnits="userSpaceOnUse" - id="linearGradient5911" - xlink:href="#linearGradient2500" - inkscape:collect="always" /> - <linearGradient - gradientTransform="matrix(0.889091,0.000000,0.000000,0.617886,-4.771368,39.81402)" - y2="9.0000000" - x2="53.750000" - y1="-21.750000" - x1="37.000000" - gradientUnits="userSpaceOnUse" - id="linearGradient5909" - xlink:href="#linearGradient2500" - inkscape:collect="always" /> - <linearGradient - gradientUnits="userSpaceOnUse" - y2="9.0000000" - x2="53.750000" - y1="-21.750000" - x1="37.000000" - id="linearGradient5907" - xlink:href="#linearGradient2500" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(0.842481,-3.998086)" - gradientUnits="userSpaceOnUse" - id="linearGradient5905" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(1.641243,8.347272)" - gradientUnits="userSpaceOnUse" - id="linearGradient5903" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(6.805020,6.218578)" - gradientUnits="userSpaceOnUse" - id="linearGradient5901" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(12.51365,8.745228)" - gradientUnits="userSpaceOnUse" - id="linearGradient5899" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)" - gradientUnits="userSpaceOnUse" - id="linearGradient5897" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)" - gradientUnits="userSpaceOnUse" - id="linearGradient5895" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)" - gradientUnits="userSpaceOnUse" - id="linearGradient5893" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)" - gradientUnits="userSpaceOnUse" - id="linearGradient5891" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="13.802798" - x2="41.403877" - y1="13.802798" - x1="6.6651416" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,4.378541,10.65407)" - gradientUnits="userSpaceOnUse" - id="linearGradient5889" - xlink:href="#linearGradient2392" - inkscape:collect="always" /> - <linearGradient - y2="13.802798" - x2="41.403877" - y1="13.802798" - x1="6.6651416" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" - gradientUnits="userSpaceOnUse" - id="linearGradient5887" - xlink:href="#linearGradient2392" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)" - gradientUnits="userSpaceOnUse" - id="linearGradient5885" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)" - gradientUnits="userSpaceOnUse" - id="linearGradient5883" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)" - gradientUnits="userSpaceOnUse" - id="linearGradient5881" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)" - gradientUnits="userSpaceOnUse" - id="linearGradient5879" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)" - gradientUnits="userSpaceOnUse" - id="linearGradient5877" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)" - gradientUnits="userSpaceOnUse" - id="linearGradient5875" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(9.263651,3.495228)" - gradientUnits="userSpaceOnUse" - id="linearGradient5873" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(3.555020,0.968578)" - gradientUnits="userSpaceOnUse" - id="linearGradient5871" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-1.608757,3.097272)" - gradientUnits="userSpaceOnUse" - id="linearGradient5869" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(8.497184,-2.330824)" - gradientUnits="userSpaceOnUse" - id="linearGradient5867" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(14.46340,2.014073)" - gradientUnits="userSpaceOnUse" - id="linearGradient5865" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" - gradientUnits="userSpaceOnUse" - y2="13.802798" - x2="41.403877" - y1="13.802798" - x1="6.6651416" - id="linearGradient5863" - xlink:href="#linearGradient2392" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.12415,32.08882)" - gradientUnits="userSpaceOnUse" - id="linearGradient5861" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(4.207586,21.30544)" - gradientUnits="userSpaceOnUse" - id="linearGradient5859" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,8.185476,29.52556)" - gradientUnits="userSpaceOnUse" - id="linearGradient5857" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-4.010744,24.96040)" - gradientUnits="userSpaceOnUse" - id="linearGradient5855" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,17.05272,31.47010)" - gradientUnits="userSpaceOnUse" - id="linearGradient5853" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,16.67145,27.22746)" - gradientUnits="userSpaceOnUse" - id="linearGradient5851" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,0.229156,30.76299)" - gradientUnits="userSpaceOnUse" - id="linearGradient5849" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(10.30638,19.27251)" - gradientUnits="userSpaceOnUse" - id="linearGradient5847" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(11.19027,26.52035)" - gradientUnits="userSpaceOnUse" - id="linearGradient5845" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(5.356636,23.86870)" - gradientUnits="userSpaceOnUse" - id="linearGradient5843" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-0.932144,25.87240)" - gradientUnits="userSpaceOnUse" - id="linearGradient5841" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(16.14002,24.66420)" - gradientUnits="userSpaceOnUse" - id="linearGradient5839" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)" - gradientUnits="userSpaceOnUse" - id="linearGradient5837" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(1.707748,-5.784024)" - gradientUnits="userSpaceOnUse" - id="linearGradient5835" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)" - gradientUnits="userSpaceOnUse" - id="linearGradient5833" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)" - gradientUnits="userSpaceOnUse" - id="linearGradient5831" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)" - gradientUnits="userSpaceOnUse" - id="linearGradient5829" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)" - gradientUnits="userSpaceOnUse" - id="linearGradient5827" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)" - gradientUnits="userSpaceOnUse" - id="linearGradient5825" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(14.46340,2.014073)" - gradientUnits="userSpaceOnUse" - id="linearGradient5823" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(8.497184,-2.330824)" - gradientUnits="userSpaceOnUse" - id="linearGradient5821" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(9.263651,3.495228)" - gradientUnits="userSpaceOnUse" - id="linearGradient5819" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(3.555020,0.968578)" - gradientUnits="userSpaceOnUse" - id="linearGradient5817" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientTransform="translate(-1.608757,3.097272)" - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientUnits="userSpaceOnUse" - id="linearGradient5815" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6101" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.13675,17.05613)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6118" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,12.38965,19.30874)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6121" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-10.72430,10.10861)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6124" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(21.51400,12.80461)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6179" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-7.197595,2.690414)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6181" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-2.033818,0.561720)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6183" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(3.674812,3.088370)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6185" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6187" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6189" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6191" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2527" - id="linearGradient6193" - gradientUnits="userSpaceOnUse" - x1="-25.137094" - y1="-1.2491118" - x2="-35.652866" - y2="-24.884460" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6196" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,2.209129,10.83861)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6199" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-9.862093,6.148450)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6202" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,10.70137,12.90816)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6205" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-4.372193,11.95105)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6208" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(5.088919,7.833409)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6211" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-0.619711,5.306759)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6214" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-5.783488,7.435453)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6242" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-5.783488,7.435453)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6244" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-0.619711,5.306759)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6246" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(5.088919,7.833409)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6248" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,10.70137,12.90816)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6250" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-9.862093,6.148450)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6252" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,2.209129,10.83861)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6254" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-9.002513,11.93373)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6257" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-0.297112,4.275205)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6260" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,10.91453,3.180085)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6263" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-1.156692,-1.510075)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6266" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,19.40677,5.249635)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6269" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(13.79432,0.174884)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6272" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(8.085690,-2.351766)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6275" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(2.921913,-0.223072)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6311" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(21.51400,12.80461)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6313" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-10.72430,10.10861)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6315" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,12.38965,19.30874)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6317" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-1.156692,-1.510075)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6319" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.13675,17.05613)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6321" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-5.783488,7.435453)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6323" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-0.619711,5.306759)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6325" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(5.088919,7.833409)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6327" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,10.70137,12.90816)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6329" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-9.862093,6.148450)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6331" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,2.209129,10.83861)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6333" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-9.002513,11.93373)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6335" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(2.921913,-0.223072)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6337" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(8.085690,-2.351766)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6339" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(13.79432,0.174884)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6341" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,19.40677,5.249635)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6343" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,10.91453,3.180085)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6537" - id="linearGradient6543" - x1="27.320963" - y1="44.228481" - x2="52.328316" - y2="44.228481" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.526962,0.000000,-2.763717e-17,0.972572,16.13182,0.843286)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6537" - id="linearGradient6547" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.526962,0.000000,-4.388782e-16,0.972572,25.91493,0.633642)" - x1="27.320963" - y1="44.228481" - x2="52.328316" - y2="44.228481" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6537" - id="linearGradient6551" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.526962,0.000000,-4.388782e-16,0.972572,36.25638,0.633643)" - x1="27.320963" - y1="44.228481" - x2="45.115814" - y2="44.228455" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6537" - id="linearGradient6559" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.526962,0.000000,-2.332577e-16,0.972572,16.13182,0.843286)" - x1="27.320963" - y1="44.228481" - x2="52.328316" - y2="44.228481" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6537" - id="linearGradient6561" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.526962,0.000000,-6.444987e-16,0.972572,25.91493,0.633642)" - x1="27.320963" - y1="44.228481" - x2="52.328316" - y2="44.228481" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6537" - id="linearGradient6563" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.526962,0.000000,-6.444987e-16,0.972572,36.25638,0.633643)" - x1="27.320963" - y1="44.228481" - x2="45.115814" - y2="44.228455" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6537" - id="linearGradient6566" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.577744,0.000000,-5.984325e-16,1.025105,38.38995,-1.768804)" - x1="27.320963" - y1="44.228481" - x2="45.115814" - y2="44.228455" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6537" - id="linearGradient6569" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.577744,0.000000,-5.984325e-16,1.025105,27.05193,-1.768805)" - x1="27.320963" - y1="44.228481" - x2="52.328316" - y2="44.228481" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6537" - id="linearGradient6572" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.589347,0.000000,-1.531909e-16,1.025217,16.34910,-1.110328)" - x1="27.320963" - y1="44.228481" - x2="52.328316" - y2="44.228481" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6576" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.132431,0.000000,0.000000,1.016132,11.79178,-1.090051)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6579" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.853605,0.000000,0.000000,1.016132,20.48211,1.012885)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6582" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,14.73875,-4.143732)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6585" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,8.896962,-6.711142)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6588" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,3.612740,-4.548108)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6599" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.999079,0.000000,0.000000,1.016132,58.06881,13.00984)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6603" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.496116,0.000000,0.000000,1.282841,-0.560999,-5.855873)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6606" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.314274,0.000000,0.000000,1.016132,13.30131,15.29879)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6609" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.496116,0.000000,0.000000,1.282841,-10.35177,5.950245)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6612" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,22.63849,8.689740)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6618" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,17.34164,6.586930)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6622" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,12.56867,12.68572)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6624" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-5.783488,7.435453)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6626" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-0.619711,5.306759)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6628" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(5.088919,7.833409)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6630" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,10.70137,12.90816)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6632" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-9.862093,6.148450)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6634" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,2.209129,10.83861)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6636" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-9.002513,11.93373)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient4442" - id="linearGradient2736" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-59.00000,27.72122)" - x1="4.3602662" - y1="-21.904713" - x2="40.139732" - y2="-1.8452871" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2738" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-9.992899,-16.32980)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2740" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,4.534070,-12.70656)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2742" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.613903,0.000000,0.000000,0.613903,-1.200260,0.631990)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2745" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-4.033948,-17.90479)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2747" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,-9.728831,-6.856090)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2749" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.333333,0.000000,0.000000,1.000000,-14.02052,-13.29853)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2751" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,12.43523,-5.473742)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2753" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,7.747730,-6.786242)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient4488" - id="linearGradient2755" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.926905,0.000000,0.000000,0.881886,-60.91820,-2.915960)" - x1="17.181321" - y1="32.443652" - x2="47.342173" - y2="32.443652" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2757" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-3.681521,-53.82781)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2759" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,12.81910,-50.04120)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2761" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,15.17579,-44.92562)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2763" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.613903,0.000000,0.000000,0.613903,17.14727,-36.85890)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2765" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(3.365819,-55.70818)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2767" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,-0.912551,-43.37823)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2769" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.333333,0.000000,0.000000,1.000000,-7.329241,-50.85192)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient4488" - id="linearGradient2771" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.926905,0.000000,0.000000,0.881886,-74.92090,-6.914630)" - x1="17.175579" - y1="23.374163" - x2="38.037014" - y2="38.680286" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2773" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-3.681521,-53.82781)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2775" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,12.81910,-50.04120)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2777" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,15.17579,-44.92562)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2779" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.613903,0.000000,0.000000,0.613903,17.14727,-36.85890)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2781" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(3.365819,-55.70818)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2783" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,-0.912551,-43.37823)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2785" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.333333,0.000000,0.000000,1.000000,-7.329241,-50.85192)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient4488" - id="linearGradient2799" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.926905,0.000000,0.000000,0.881886,-11.91814,-7.649759)" - x1="17.175579" - y1="23.374163" - x2="38.037014" - y2="38.680286" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient4488" - id="linearGradient2813" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.926905,0.000000,0.000000,0.881886,2.084560,-3.651089)" - x1="18.664751" - y1="23.374166" - x2="31.294144" - y2="35.845455" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient4442" - id="linearGradient2827" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(4.002760,26.98609)" - x1="4.3602662" - y1="-21.904713" - x2="40.139732" - y2="-1.8452871" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient5346" - id="radialGradient8290" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)" - cx="21.920311" - cy="-382.96454" - fx="21.920311" - fy="-382.96454" - r="21.743534" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient5358" - id="linearGradient8292" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)" - x1="6.8942904" - y1="-359.82382" - x2="27.400387" - y2="-381.30222" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient5346" - id="radialGradient8294" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)" - cx="21.920311" - cy="-382.96454" - fx="21.920311" - fy="-382.96454" - r="21.743534" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient5358" - id="linearGradient8296" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)" - x1="6.8942904" - y1="-359.82382" - x2="27.400387" - y2="-381.30222" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient5346" - id="radialGradient8298" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)" - cx="21.920311" - cy="-382.96454" - fx="21.920311" - fy="-382.96454" - r="21.743534" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient5358" - id="linearGradient8300" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)" - x1="6.8942904" - y1="-359.82382" - x2="27.400387" - y2="-381.30222" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient5346" - id="radialGradient8302" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)" - cx="21.920311" - cy="-382.96454" - fx="21.920311" - fy="-382.96454" - r="21.743534" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient5358" - id="linearGradient8304" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)" - x1="6.8942904" - y1="-359.82382" - x2="27.400387" - y2="-381.30222" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient5346" - id="radialGradient8306" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)" - cx="21.920311" - cy="-382.96454" - fx="21.920311" - fy="-382.96454" - r="21.743534" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient5358" - id="linearGradient8308" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)" - x1="6.8942904" - y1="-359.82382" - x2="27.400387" - y2="-381.30222" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient5346" - id="radialGradient8310" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)" - cx="21.920311" - cy="-382.96454" - fx="21.920311" - fy="-382.96454" - r="21.743534" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient5358" - id="linearGradient8312" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)" - x1="6.8942904" - y1="-359.82382" - x2="27.400387" - y2="-381.30222" /> +<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="48px" height="48px" id="svg1306"> + <defs id="defs1308"> + <linearGradient id="linearGradient5358"> + <stop offset="0" id="stop5360" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop5362" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient id="linearGradient5346"> + <stop offset="0" id="stop5348" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop5350" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient6538" id="linearGradient13352" gradientUnits="userSpaceOnUse" x1="284.80219" y1="-441.23294" x2="288.89954" y2="-436.83109"/> + <linearGradient xlink:href="#linearGradient6549" id="linearGradient13350" gradientUnits="userSpaceOnUse" x1="286.66589" y1="-439.48358" x2="289.76562" y2="-436.70703"/> + <linearGradient xlink:href="#linearGradient6527" id="linearGradient13347" gradientUnits="userSpaceOnUse" gradientTransform="translate(-35.00007,207.0001)" x1="275.94193" y1="-437.10501" x2="279.97546" y2="-431.91833"/> + <linearGradient xlink:href="#linearGradient6538" id="linearGradient13345" gradientUnits="userSpaceOnUse" x1="285.94086" y1="-439.93900" x2="289.39124" y2="-436.44290"/> + <linearGradient xlink:href="#linearGradient6513" id="linearGradient13343" gradientUnits="userSpaceOnUse" x1="286.51172" y1="-441.29074" x2="289.85379" y2="-436.14453"/> + <linearGradient xlink:href="#linearGradient6497" id="linearGradient13341" gradientUnits="userSpaceOnUse" x1="287.51730" y1="-439.75281" x2="289.67633" y2="-436.32199"/> + <linearGradient xlink:href="#linearGradient6470" id="linearGradient13339" gradientUnits="userSpaceOnUse" gradientTransform="translate(-34.00007,207.0001)" x1="271.02170" y1="-441.05182" x2="285.02859" y2="-431.96991"/> + <linearGradient xlink:href="#linearGradient6538" id="linearGradient13337" gradientUnits="userSpaceOnUse" x1="284.80219" y1="-441.23294" x2="288.89954" y2="-436.83109"/> + <linearGradient id="linearGradient6549"> + <stop offset="0" id="stop6551" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6553" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient6549" id="linearGradient13335" gradientUnits="userSpaceOnUse" x1="286.66589" y1="-439.48358" x2="289.76562" y2="-436.70703"/> + <linearGradient id="linearGradient6527"> + <stop offset="0" id="stop6530" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6532" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient6527" id="linearGradient13333" gradientUnits="userSpaceOnUse" gradientTransform="translate(-35.00007,207.0001)" x1="275.94193" y1="-437.10501" x2="279.97546" y2="-431.91833"/> + <linearGradient id="linearGradient6538"> + <stop offset="0" id="stop6540" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6542" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient6538" id="linearGradient13331" gradientUnits="userSpaceOnUse" x1="285.94086" y1="-439.93900" x2="289.39124" y2="-436.44290"/> + <linearGradient id="linearGradient6513"> + <stop offset="0" id="stop6515" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6517" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient6513" id="linearGradient13329" gradientUnits="userSpaceOnUse" x1="286.51172" y1="-441.29074" x2="289.85379" y2="-436.14453"/> + <linearGradient id="linearGradient6497"> + <stop offset="0" id="stop6499" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6501" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient6497" id="linearGradient13327" gradientUnits="userSpaceOnUse" x1="287.51730" y1="-439.75281" x2="289.67633" y2="-436.32199"/> + <linearGradient id="linearGradient6470"> + <stop offset="0" id="stop6472" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6474" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient6470" id="linearGradient13325" gradientUnits="userSpaceOnUse" gradientTransform="translate(-34.00007,207.0001)" x1="271.02170" y1="-441.05182" x2="285.02859" y2="-431.96991"/> + <linearGradient id="linearGradient8397"> + <stop offset="0" id="stop8400" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop8402" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient8397" id="linearGradient13323" gradientUnits="userSpaceOnUse" x1="238.00478" y1="-388.47476" x2="245.65462" y2="-382.64539"/> + <linearGradient id="linearGradient8315"> + <stop offset="0" id="stop8317" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop8319" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient8315" id="linearGradient13321" gradientUnits="userSpaceOnUse" x1="230.87598" y1="-390.43951" x2="235.25652" y2="-386.95901"/> + <linearGradient id="linearGradient8381"> + <stop offset="0" id="stop8383" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop8385" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient8381" id="linearGradient13319" gradientUnits="userSpaceOnUse" x1="246.74042" y1="-391.31381" x2="252.69785" y2="-385.35165"/> + <linearGradient id="linearGradient8331"> + <stop offset="0" id="stop8333" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop8335" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient8331" id="linearGradient13317" gradientUnits="userSpaceOnUse" x1="240.07379" y1="-393.40720" x2="245.82706" y2="-388.55029"/> + <linearGradient id="linearGradient8302"> + <stop offset="0" id="stop8304" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop8306" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient8302" id="linearGradient13315" gradientUnits="userSpaceOnUse" gradientTransform="translate(69.00000,155.0000)" x1="228.50261" y1="-392.30591" x2="266.36395" y2="-379.26862"/> + <radialGradient xlink:href="#linearGradient5346" id="radialGradient8290" gradientUnits="userSpaceOnUse" gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)" cx="21.920311" cy="-382.96454" fx="21.920311" fy="-382.96454" r="21.743534"/> + <linearGradient xlink:href="#linearGradient5358" id="linearGradient8292" gradientUnits="userSpaceOnUse" gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)" x1="6.8942904" y1="-359.82382" x2="27.400387" y2="-381.30222"/> + <radialGradient xlink:href="#linearGradient5346" id="radialGradient8294" gradientUnits="userSpaceOnUse" gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)" cx="21.920311" cy="-382.96454" fx="21.920311" fy="-382.96454" r="21.743534"/> + <linearGradient xlink:href="#linearGradient5358" id="linearGradient8296" gradientUnits="userSpaceOnUse" gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)" x1="6.8942904" y1="-359.82382" x2="27.400387" y2="-381.30222"/> + <radialGradient xlink:href="#linearGradient5346" id="radialGradient8298" gradientUnits="userSpaceOnUse" gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)" cx="21.920311" cy="-382.96454" fx="21.920311" fy="-382.96454" r="21.743534"/> + <linearGradient xlink:href="#linearGradient5358" id="linearGradient8300" gradientUnits="userSpaceOnUse" gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)" x1="6.8942904" y1="-359.82382" x2="27.400387" y2="-381.30222"/> + <radialGradient xlink:href="#linearGradient5346" id="radialGradient8302" gradientUnits="userSpaceOnUse" gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)" cx="21.920311" cy="-382.96454" fx="21.920311" fy="-382.96454" r="21.743534"/> + <linearGradient xlink:href="#linearGradient5358" id="linearGradient8304" gradientUnits="userSpaceOnUse" gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)" x1="6.8942904" y1="-359.82382" x2="27.400387" y2="-381.30222"/> + <radialGradient xlink:href="#linearGradient5346" id="radialGradient8306" gradientUnits="userSpaceOnUse" gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)" cx="21.920311" cy="-382.96454" fx="21.920311" fy="-382.96454" r="21.743534"/> + <linearGradient xlink:href="#linearGradient5358" id="linearGradient8308" gradientUnits="userSpaceOnUse" gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)" x1="6.8942904" y1="-359.82382" x2="27.400387" y2="-381.30222"/> + <radialGradient xlink:href="#linearGradient5346" id="radialGradient8310" gradientUnits="userSpaceOnUse" gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)" cx="21.920311" cy="-382.96454" fx="21.920311" fy="-382.96454" r="21.743534"/> + <linearGradient xlink:href="#linearGradient5358" id="linearGradient8312" gradientUnits="userSpaceOnUse" gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)" x1="6.8942904" y1="-359.82382" x2="27.400387" y2="-381.30222"/> </defs> - <sodipodi:namedview - id="base" - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1.0" - inkscape:pageopacity="0.0" - inkscape:pageshadow="2" - inkscape:zoom="1" - inkscape:cx="24" - inkscape:cy="24" - inkscape:current-layer="layer1" - showgrid="true" - inkscape:grid-bbox="true" - inkscape:document-units="px" - inkscape:window-width="982" - inkscape:window-height="965" - inkscape:window-x="1280" - inkscape:window-y="28" - inkscape:showpageshadow="false" /> - <metadata - id="metadata1311"> + + <metadata id="metadata1311"> <rdf:RDF> - <cc:Work - rdf:about=""> + <cc:Work rdf:about=""> <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> <dc:title>weather-showers</dc:title> <dc:date>January 2006</dc:date> <dc:creator> @@ -4588,608 +111,119 @@ <rdf:li>notify</rdf:li> </rdf:Bag> </dc:subject> - <cc:license - rdf:resource="http://creativecommons.org/licenses/by-sa/2.0/" /> + <cc:license rdf:resource="http://creativecommons.org/licenses/by-sa/2.0/"/> </cc:Work> - <cc:License - rdf:about="http://creativecommons.org/licenses/by-sa/2.0/"> - <cc:permits - rdf:resource="http://web.resource.org/cc/Reproduction" /> - <cc:permits - rdf:resource="http://web.resource.org/cc/Distribution" /> - <cc:requires - rdf:resource="http://web.resource.org/cc/Notice" /> - <cc:requires - rdf:resource="http://web.resource.org/cc/Attribution" /> - <cc:permits - rdf:resource="http://web.resource.org/cc/DerivativeWorks" /> - <cc:requires - rdf:resource="http://web.resource.org/cc/ShareAlike" /> + <cc:License rdf:about="http://creativecommons.org/licenses/by-sa/2.0/"> + <cc:permits rdf:resource="http://web.resource.org/cc/Reproduction"/> + <cc:permits rdf:resource="http://web.resource.org/cc/Distribution"/> + <cc:requires rdf:resource="http://web.resource.org/cc/Notice"/> + <cc:requires rdf:resource="http://web.resource.org/cc/Attribution"/> + <cc:permits rdf:resource="http://web.resource.org/cc/DerivativeWorks"/> + <cc:requires rdf:resource="http://web.resource.org/cc/ShareAlike"/> </cc:License> </rdf:RDF> </metadata> - <g - id="layer1" - inkscape:label="Layer 1" - inkscape:groupmode="layer"> - <g - id="g10087"> - <g - transform="matrix(0.999675,0.000000,0.000000,1.000000,-286.8562,245.0000)" - id="g13213"> - <g - id="g13215"> - <path - id="path13217" - d="M 311.50000,-242.99998 C 308.72758,-242.99998 306.39177,-241.42627 305.09375,-239.18748 C 304.14939,-239.66252 303.12856,-239.99998 302.00000,-239.99998 C 298.13600,-239.99998 295.00000,-236.86398 295.00000,-232.99998 C 295.00000,-229.13598 298.13600,-225.99998 302.00000,-225.99998 C 304.41967,-225.99998 306.43009,-227.31930 307.68750,-229.18748 C 308.82170,-228.49786 310.07648,-227.99998 311.50000,-227.99998 C 312.41312,-227.99998 313.25295,-228.23200 314.06250,-228.53123 C 314.57244,-227.66350 315.24162,-226.95151 316.06250,-226.37498 C 316.05526,-226.24460 316.00000,-226.13216 316.00000,-225.99998 C 316.00000,-222.13598 319.13599,-218.99998 323.00000,-218.99998 C 326.86400,-218.99998 330.00000,-222.13598 330.00000,-225.99998 C 330.00000,-228.36967 328.74102,-230.35832 326.93750,-231.62498 C 326.94474,-231.75536 327.00000,-231.86780 327.00000,-231.99998 C 327.00000,-235.86398 323.86401,-238.99998 320.00000,-238.99998 C 319.37730,-238.99998 318.82481,-238.77779 318.25000,-238.62498 C 317.05547,-241.18382 314.50866,-242.99998 311.50000,-242.99998 z " - style="opacity:1.0000000;fill:#555753;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <path - id="path13219" - d="M 311.50000,-241.99998 C 308.71952,-241.99998 306.36549,-240.23813 305.43750,-237.78123 C 304.45208,-238.49067 303.30607,-238.99998 302.00000,-238.99998 C 298.68800,-238.99998 296.00000,-236.31198 296.00000,-232.99998 C 296.00000,-229.68798 298.68800,-226.99998 302.00000,-226.99998 C 304.42775,-226.99998 306.49324,-228.45556 307.43750,-230.53123 C 308.55826,-229.61367 309.93964,-228.99998 311.50000,-228.99998 C 312.57454,-228.99998 313.54428,-229.31894 314.43750,-229.78123 C 314.83590,-228.78147 315.53864,-227.99491 316.37500,-227.34373 C 316.19499,-226.74811 316.00000,-226.15408 316.00000,-225.49998 C 316.00000,-221.91198 318.91200,-218.99998 322.50000,-218.99998 C 326.08800,-218.99998 329.00000,-221.91198 329.00000,-225.49998 C 329.00000,-227.86077 327.66567,-229.83017 325.78125,-230.96873 C 325.84384,-231.31596 326.00000,-231.63481 326.00000,-231.99998 C 326.00000,-235.31198 323.31200,-237.99998 320.00000,-237.99998 C 319.14702,-237.99998 318.32870,-237.82130 317.59375,-237.49998 C 316.73998,-240.09386 314.37851,-241.99997 311.50000,-241.99998 z " - style="opacity:1.0000000;fill:url(#linearGradient13315);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <path - transform="matrix(0.964447,0.000000,0.000000,0.964447,89.28852,144.5262)" - d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z" - sodipodi:ry="6.7396116" - sodipodi:rx="6.7396116" - sodipodi:cy="-383.66660" - sodipodi:cx="241.80843" - id="path13221" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <g - id="g13223"> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path13225" - sodipodi:cx="243.95184" - sodipodi:cy="-389.30136" - sodipodi:rx="6.2313786" - sodipodi:ry="6.2313786" - d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1 237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1 250.18322 -389.30136 z" - transform="matrix(0.882630,0.000000,0.000000,0.882630,96.18078,108.1091)" /> - <path - sodipodi:type="arc" - style="opacity:0.49444440;fill:url(#linearGradient13317);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path13227" - sodipodi:cx="243.95184" - sodipodi:cy="-389.30136" - sodipodi:rx="6.2313786" - sodipodi:ry="6.2313786" - d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1 237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1 250.18322 -389.30136 z" - transform="matrix(0.882630,0.000000,0.000000,0.882630,96.18078,108.1091)" /> + <g id="layer1"> + <g> + <g transform="matrix(0.999675,0.000000,0.000000,1.000000,-286.8562,245.0000)"> + <g> + <path d="M 311.50000,-242.99998 C 308.72758,-242.99998 306.39177,-241.42627 305.09375,-239.18748 C 304.14939,-239.66252 303.12856,-239.99998 302.00000,-239.99998 C 298.13600,-239.99998 295.00000,-236.86398 295.00000,-232.99998 C 295.00000,-229.13598 298.13600,-225.99998 302.00000,-225.99998 C 304.41967,-225.99998 306.43009,-227.31930 307.68750,-229.18748 C 308.82170,-228.49786 310.07648,-227.99998 311.50000,-227.99998 C 312.41312,-227.99998 313.25295,-228.23200 314.06250,-228.53123 C 314.57244,-227.66350 315.24162,-226.95151 316.06250,-226.37498 C 316.05526,-226.24460 316.00000,-226.13216 316.00000,-225.99998 C 316.00000,-222.13598 319.13599,-218.99998 323.00000,-218.99998 C 326.86400,-218.99998 330.00000,-222.13598 330.00000,-225.99998 C 330.00000,-228.36967 328.74102,-230.35832 326.93750,-231.62498 C 326.94474,-231.75536 327.00000,-231.86780 327.00000,-231.99998 C 327.00000,-235.86398 323.86401,-238.99998 320.00000,-238.99998 C 319.37730,-238.99998 318.82481,-238.77779 318.25000,-238.62498 C 317.05547,-241.18382 314.50866,-242.99998 311.50000,-242.99998 z " opacity="1.0000000" fill="#555753" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 311.50000,-241.99998 C 308.71952,-241.99998 306.36549,-240.23813 305.43750,-237.78123 C 304.45208,-238.49067 303.30607,-238.99998 302.00000,-238.99998 C 298.68800,-238.99998 296.00000,-236.31198 296.00000,-232.99998 C 296.00000,-229.68798 298.68800,-226.99998 302.00000,-226.99998 C 304.42775,-226.99998 306.49324,-228.45556 307.43750,-230.53123 C 308.55826,-229.61367 309.93964,-228.99998 311.50000,-228.99998 C 312.57454,-228.99998 313.54428,-229.31894 314.43750,-229.78123 C 314.83590,-228.78147 315.53864,-227.99491 316.37500,-227.34373 C 316.19499,-226.74811 316.00000,-226.15408 316.00000,-225.49998 C 316.00000,-221.91198 318.91200,-218.99998 322.50000,-218.99998 C 326.08800,-218.99998 329.00000,-221.91198 329.00000,-225.49998 C 329.00000,-227.86077 327.66567,-229.83017 325.78125,-230.96873 C 325.84384,-231.31596 326.00000,-231.63481 326.00000,-231.99998 C 326.00000,-235.31198 323.31200,-237.99998 320.00000,-237.99998 C 319.14702,-237.99998 318.32870,-237.82130 317.59375,-237.49998 C 316.73998,-240.09386 314.37851,-241.99997 311.50000,-241.99998 z " opacity="1.0000000" fill="url(#linearGradient13315)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(0.964447,0.000000,0.000000,0.964447,89.28852,144.5262)" d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <g> + <path d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1 237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1 250.18322 -389.30136 z" transform="matrix(0.882630,0.000000,0.000000,0.882630,96.18078,108.1091)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1 237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1 250.18322 -389.30136 z" transform="matrix(0.882630,0.000000,0.000000,0.882630,96.18078,108.1091)" opacity="0.49444440" fill="url(#linearGradient13317)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - id="g13229"> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path13231" - sodipodi:cx="251.22179" - sodipodi:cy="-385.78790" - sodipodi:rx="6.0325046" - sodipodi:ry="6.0325046" - d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1 245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1 257.25429 -385.78790 z" - transform="matrix(0.911728,0.000000,0.000000,0.911728,90.45407,120.2336)" /> - <path - sodipodi:type="arc" - style="opacity:0.49444440;fill:url(#linearGradient13319);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path13233" - sodipodi:cx="251.22179" - sodipodi:cy="-385.78790" - sodipodi:rx="6.0325046" - sodipodi:ry="6.0325046" - d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1 245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1 257.25429 -385.78790 z" - transform="matrix(0.911728,0.000000,0.000000,0.911728,90.45407,120.2336)" /> + <g> + <path d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1 245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1 257.25429 -385.78790 z" transform="matrix(0.911728,0.000000,0.000000,0.911728,90.45407,120.2336)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1 245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1 257.25429 -385.78790 z" transform="matrix(0.911728,0.000000,0.000000,0.911728,90.45407,120.2336)" opacity="0.49444440" fill="url(#linearGradient13319)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - id="g13235"> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path13237" - sodipodi:cx="233.43362" - sodipodi:cy="-387.88715" - sodipodi:rx="4.3752232" - sodipodi:ry="4.3752232" - d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1 229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1 237.80885 -387.88715 z" - transform="matrix(1.142799,0.000000,0.000000,1.142799,35.23229,210.2770)" /> - <path - sodipodi:type="arc" - style="opacity:0.49444440;fill:url(#linearGradient13321);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path13239" - sodipodi:cx="233.43362" - sodipodi:cy="-387.88715" - sodipodi:rx="4.3752232" - sodipodi:ry="4.3752232" - d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1 229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1 237.80885 -387.88715 z" - transform="matrix(1.142799,0.000000,0.000000,1.142799,35.23229,210.2770)" /> + <g> + <path d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1 229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1 237.80885 -387.88715 z" transform="matrix(1.142799,0.000000,0.000000,1.142799,35.23229,210.2770)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1 229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1 237.80885 -387.88715 z" transform="matrix(1.142799,0.000000,0.000000,1.142799,35.23229,210.2770)" opacity="0.49444440" fill="url(#linearGradient13321)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - id="g13241"> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path13243" - sodipodi:cx="241.80843" - sodipodi:cy="-383.66660" - sodipodi:rx="6.7396116" - sodipodi:ry="6.7396116" - d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z" - transform="matrix(1.038636,0.000000,0.000000,1.038636,59.84906,169.4899)" /> - <path - sodipodi:type="arc" - style="opacity:0.49444440;fill:url(#linearGradient13323);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path13245" - sodipodi:cx="241.80843" - sodipodi:cy="-383.66660" - sodipodi:rx="6.7396116" - sodipodi:ry="6.7396116" - d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z" - transform="matrix(1.038636,0.000000,0.000000,1.038636,59.84907,169.4899)" /> + <g> + <path d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z" transform="matrix(1.038636,0.000000,0.000000,1.038636,59.84906,169.4899)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z" transform="matrix(1.038636,0.000000,0.000000,1.038636,59.84907,169.4899)" opacity="0.49444440" fill="url(#linearGradient13323)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> </g> - <g - id="g13247" - transform="translate(72.00007,7.999930)"> - <path - sodipodi:nodetypes="ccsscsssscsscc" - id="path13249" - d="M 246.49993,-238.49993 C 244.22910,-238.49993 242.39002,-236.94965 241.78118,-234.87493 C 241.08795,-235.23876 240.33667,-235.49993 239.49993,-235.49993 C 236.73993,-235.49993 234.49992,-233.25994 234.49993,-230.49993 C 234.49993,-229.92100 234.66245,-229.39223 234.84368,-228.87493 C 233.47021,-228.10419 232.49993,-226.68593 232.49993,-224.99993 C 232.49993,-222.51593 234.51593,-220.49992 236.99993,-220.49993 C 237.17706,-220.49993 255.82280,-220.49993 255.99993,-220.49993 C 258.48392,-220.49993 260.49993,-222.51593 260.49993,-224.99993 C 260.49993,-226.68593 259.52965,-228.10419 258.15618,-228.87493 C 258.33742,-229.39222 258.49993,-229.92101 258.49993,-230.49993 C 258.49993,-233.25993 256.25993,-235.49992 253.49993,-235.49993 C 252.66319,-235.49993 251.91191,-235.23876 251.21868,-234.87493 C 250.60984,-236.94965 248.77076,-238.49993 246.49993,-238.49993 z " - style="fill:#888a85;fill-opacity:1.0000000;stroke:#555753;stroke-width:1.0001625;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <path - sodipodi:nodetypes="ccsscsssscsscc" - id="path13251" - d="M 246.49993,-237.99993 C 244.31021,-237.99993 242.77633,-236.66416 242.10438,-234.15641 C 241.43592,-234.50003 240.55679,-234.98976 239.74993,-234.98976 C 237.03342,-234.98976 234.99479,-233.05094 234.99480,-230.44422 C 234.99480,-229.89745 235.26201,-229.11078 235.43676,-228.62221 C 234.11233,-227.89426 232.99993,-226.73171 232.99993,-225.24966 C 232.99993,-222.90361 234.54610,-220.99957 237.33921,-220.99957 C 237.51002,-220.99957 255.48985,-220.99957 255.66065,-220.99957 C 258.43166,-220.99957 259.99993,-222.90361 259.99993,-225.24966 C 259.99993,-226.84203 258.88753,-227.91635 257.56310,-228.64430 C 257.73786,-229.13286 258.02717,-229.89746 258.02717,-230.44422 C 258.02717,-233.05093 255.91136,-235.01185 253.24994,-235.01186 C 252.44307,-235.01186 251.60813,-234.52212 250.93967,-234.17850 C 250.29082,-236.60004 248.68966,-237.99993 246.49993,-237.99993 z " - style="opacity:1.0000000;fill:url(#linearGradient13325);fill-opacity:1.0000000;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path13253" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path13255" - style="opacity:0.47777775;fill:url(#linearGradient13327);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <rect - y="-230.99992" - x="236.99994" - height="9.0000000" - width="20.000000" - id="rect13257" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <path - transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16987,171.3114)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path13259" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19818,231.8633)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path13261" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19825,231.8634)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path13263" - style="opacity:0.47777775;fill:url(#linearGradient13329);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path13265" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path13267" - style="opacity:0.47777775;fill:url(#linearGradient13331);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - id="path13269" - d="M 245.46868,-233.96868 C 241.88930,-233.96868 238.99993,-231.04805 238.99993,-227.46868 C 238.99993,-225.09800 240.34936,-223.13089 242.24993,-221.99993 L 248.71868,-221.99993 C 250.61925,-223.13089 251.96868,-225.12924 251.96868,-227.49993 C 251.96868,-231.07931 249.04805,-233.96868 245.46868,-233.96868 z " - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <path - id="path13271" - d="M 245.49993,-233.99993 C 241.91193,-233.99993 238.99993,-231.08792 238.99993,-227.49993 C 238.99993,-225.12353 240.34478,-223.13361 242.24993,-221.99993 L 248.74993,-221.99993 C 250.65508,-223.13361 251.99993,-225.12353 251.99993,-227.49993 C 251.99993,-231.08793 249.08793,-233.99992 245.49993,-233.99993 z " - style="opacity:0.47777775;fill:url(#linearGradient13333);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <path - transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16977,171.3113)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path13273" - style="opacity:0.47777775;fill:url(#linearGradient13335);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - sodipodi:nodetypes="ccss" - id="path13275" - d="M 258.95633,-230.33389 C 258.95480,-227.64933 255.68707,-226.61994 255.68707,-226.61994 C 255.68707,-226.61994 258.03581,-228.24589 258.02392,-230.32495 C 258.02392,-230.32495 258.95633,-230.33389 258.95633,-230.33389 z " - style="fill:#555753;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" /> - <path - transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path13277" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path13279" - style="opacity:0.47777775;fill:url(#linearGradient13337);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> + <g transform="translate(72.00007,7.999930)"> + <path d="M 246.49993,-238.49993 C 244.22910,-238.49993 242.39002,-236.94965 241.78118,-234.87493 C 241.08795,-235.23876 240.33667,-235.49993 239.49993,-235.49993 C 236.73993,-235.49993 234.49992,-233.25994 234.49993,-230.49993 C 234.49993,-229.92100 234.66245,-229.39223 234.84368,-228.87493 C 233.47021,-228.10419 232.49993,-226.68593 232.49993,-224.99993 C 232.49993,-222.51593 234.51593,-220.49992 236.99993,-220.49993 C 237.17706,-220.49993 255.82280,-220.49993 255.99993,-220.49993 C 258.48392,-220.49993 260.49993,-222.51593 260.49993,-224.99993 C 260.49993,-226.68593 259.52965,-228.10419 258.15618,-228.87493 C 258.33742,-229.39222 258.49993,-229.92101 258.49993,-230.49993 C 258.49993,-233.25993 256.25993,-235.49992 253.49993,-235.49993 C 252.66319,-235.49993 251.91191,-235.23876 251.21868,-234.87493 C 250.60984,-236.94965 248.77076,-238.49993 246.49993,-238.49993 z " fill="#888a85" fill-opacity="1.0000000" stroke="#555753" stroke-width="1.0001625" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 246.49993,-237.99993 C 244.31021,-237.99993 242.77633,-236.66416 242.10438,-234.15641 C 241.43592,-234.50003 240.55679,-234.98976 239.74993,-234.98976 C 237.03342,-234.98976 234.99479,-233.05094 234.99480,-230.44422 C 234.99480,-229.89745 235.26201,-229.11078 235.43676,-228.62221 C 234.11233,-227.89426 232.99993,-226.73171 232.99993,-225.24966 C 232.99993,-222.90361 234.54610,-220.99957 237.33921,-220.99957 C 237.51002,-220.99957 255.48985,-220.99957 255.66065,-220.99957 C 258.43166,-220.99957 259.99993,-222.90361 259.99993,-225.24966 C 259.99993,-226.84203 258.88753,-227.91635 257.56310,-228.64430 C 257.73786,-229.13286 258.02717,-229.89746 258.02717,-230.44422 C 258.02717,-233.05093 255.91136,-235.01185 253.24994,-235.01186 C 252.44307,-235.01186 251.60813,-234.52212 250.93967,-234.17850 C 250.29082,-236.60004 248.68966,-237.99993 246.49993,-237.99993 z " opacity="1.0000000" fill="url(#linearGradient13325)" fill-opacity="1.0000000" stroke="none" stroke-width="0.99999958" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="0.47777775" fill="url(#linearGradient13327)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <rect y="-230.99992" x="236.99994" height="9.0000000" width="20.000000" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16987,171.3114)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19818,231.8633)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19825,231.8634)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="0.47777775" fill="url(#linearGradient13329)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="0.47777775" fill="url(#linearGradient13331)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 245.46868,-233.96868 C 241.88930,-233.96868 238.99993,-231.04805 238.99993,-227.46868 C 238.99993,-225.09800 240.34936,-223.13089 242.24993,-221.99993 L 248.71868,-221.99993 C 250.61925,-223.13089 251.96868,-225.12924 251.96868,-227.49993 C 251.96868,-231.07931 249.04805,-233.96868 245.46868,-233.96868 z " opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 245.49993,-233.99993 C 241.91193,-233.99993 238.99993,-231.08792 238.99993,-227.49993 C 238.99993,-225.12353 240.34478,-223.13361 242.24993,-221.99993 L 248.74993,-221.99993 C 250.65508,-223.13361 251.99993,-225.12353 251.99993,-227.49993 C 251.99993,-231.08793 249.08793,-233.99992 245.49993,-233.99993 z " opacity="0.47777775" fill="url(#linearGradient13333)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16977,171.3113)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="0.47777775" fill="url(#linearGradient13335)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 258.95633,-230.33389 C 258.95480,-227.64933 255.68707,-226.61994 255.68707,-226.61994 C 255.68707,-226.61994 258.03581,-228.24589 258.02392,-230.32495 C 258.02392,-230.32495 258.95633,-230.33389 258.95633,-230.33389 z " fill="#555753" fill-opacity="1.0000000" fill-rule="evenodd" stroke="none" stroke-width="1.0000000px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1.0000000"/> + <path transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="0.47777775" fill="url(#linearGradient13337)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - id="g13281" - transform="translate(56.98577,3.983930)"> - <path - sodipodi:nodetypes="ccsscsssscsscc" - id="path13283" - d="M 246.49993,-238.49993 C 244.22910,-238.49993 242.39002,-236.94965 241.78118,-234.87493 C 241.08795,-235.23876 240.33667,-235.49993 239.49993,-235.49993 C 236.73993,-235.49993 234.49992,-233.25994 234.49993,-230.49993 C 234.49993,-229.92100 234.66245,-229.39223 234.84368,-228.87493 C 233.47021,-228.10419 232.49993,-226.68593 232.49993,-224.99993 C 232.49993,-222.51593 234.51593,-220.49992 236.99993,-220.49993 C 237.17706,-220.49993 255.82280,-220.49993 255.99993,-220.49993 C 258.48392,-220.49993 260.49993,-222.51593 260.49993,-224.99993 C 260.49993,-226.68593 259.52965,-228.10419 258.15618,-228.87493 C 258.33742,-229.39222 258.49993,-229.92101 258.49993,-230.49993 C 258.49993,-233.25993 256.25993,-235.49992 253.49993,-235.49993 C 252.66319,-235.49993 251.91191,-235.23876 251.21868,-234.87493 C 250.60984,-236.94965 248.77076,-238.49993 246.49993,-238.49993 z " - style="fill:#888a85;fill-opacity:1.0000000;stroke:#555753;stroke-width:1.0001625;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <path - sodipodi:nodetypes="ccsscsssscsscc" - id="path13285" - d="M 246.49993,-237.99993 C 244.31021,-237.99993 242.77633,-236.66416 242.10438,-234.15641 C 241.43592,-234.50003 240.55679,-234.98976 239.74993,-234.98976 C 237.03342,-234.98976 234.99479,-233.05094 234.99480,-230.44422 C 234.99480,-229.89745 235.26201,-229.11078 235.43676,-228.62221 C 234.11233,-227.89426 232.99993,-226.73171 232.99993,-225.24966 C 232.99993,-222.90361 234.54610,-220.99957 237.33921,-220.99957 C 237.51002,-220.99957 255.48985,-220.99957 255.66065,-220.99957 C 258.43166,-220.99957 259.99993,-222.90361 259.99993,-225.24966 C 259.99993,-226.84203 258.88753,-227.91635 257.56310,-228.64430 C 257.73786,-229.13286 258.02717,-229.89746 258.02717,-230.44422 C 258.02717,-233.05093 255.91136,-235.01185 253.24994,-235.01186 C 252.44307,-235.01186 251.60813,-234.52212 250.93967,-234.17850 C 250.29082,-236.60004 248.68966,-237.99993 246.49993,-237.99993 z " - style="opacity:1.0000000;fill:url(#linearGradient13339);fill-opacity:1.0000000;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path13287" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path13289" - style="opacity:0.47777775;fill:url(#linearGradient13341);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <rect - y="-230.99992" - x="236.99994" - height="9.0000000" - width="20.000000" - id="rect13291" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <path - transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16987,171.3114)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path13293" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19818,231.8633)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path13295" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19825,231.8634)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path13297" - style="opacity:0.47777775;fill:url(#linearGradient13343);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path13299" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path13301" - style="opacity:0.47777775;fill:url(#linearGradient13345);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - id="path13303" - d="M 245.46868,-233.96868 C 241.88930,-233.96868 238.99993,-231.04805 238.99993,-227.46868 C 238.99993,-225.09800 240.34936,-223.13089 242.24993,-221.99993 L 248.71868,-221.99993 C 250.61925,-223.13089 251.96868,-225.12924 251.96868,-227.49993 C 251.96868,-231.07931 249.04805,-233.96868 245.46868,-233.96868 z " - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <path - id="path13305" - d="M 245.49993,-233.99993 C 241.91193,-233.99993 238.99993,-231.08792 238.99993,-227.49993 C 238.99993,-225.12353 240.34478,-223.13361 242.24993,-221.99993 L 248.74993,-221.99993 C 250.65508,-223.13361 251.99993,-225.12353 251.99993,-227.49993 C 251.99993,-231.08793 249.08793,-233.99992 245.49993,-233.99993 z " - style="opacity:0.47777775;fill:url(#linearGradient13347);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <path - transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16977,171.3113)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path13307" - style="opacity:0.47777775;fill:url(#linearGradient13350);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - sodipodi:nodetypes="ccss" - id="path13309" - d="M 258.95633,-230.33389 C 258.95480,-227.64933 255.68707,-226.61994 255.68707,-226.61994 C 255.68707,-226.61994 258.03581,-228.24589 258.02392,-230.32495 C 258.02392,-230.32495 258.95633,-230.33389 258.95633,-230.33389 z " - style="fill:#555753;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" /> - <path - transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path13311" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path13313" - style="opacity:0.47777775;fill:url(#linearGradient13352);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> + <g transform="translate(56.98577,3.983930)"> + <path d="M 246.49993,-238.49993 C 244.22910,-238.49993 242.39002,-236.94965 241.78118,-234.87493 C 241.08795,-235.23876 240.33667,-235.49993 239.49993,-235.49993 C 236.73993,-235.49993 234.49992,-233.25994 234.49993,-230.49993 C 234.49993,-229.92100 234.66245,-229.39223 234.84368,-228.87493 C 233.47021,-228.10419 232.49993,-226.68593 232.49993,-224.99993 C 232.49993,-222.51593 234.51593,-220.49992 236.99993,-220.49993 C 237.17706,-220.49993 255.82280,-220.49993 255.99993,-220.49993 C 258.48392,-220.49993 260.49993,-222.51593 260.49993,-224.99993 C 260.49993,-226.68593 259.52965,-228.10419 258.15618,-228.87493 C 258.33742,-229.39222 258.49993,-229.92101 258.49993,-230.49993 C 258.49993,-233.25993 256.25993,-235.49992 253.49993,-235.49993 C 252.66319,-235.49993 251.91191,-235.23876 251.21868,-234.87493 C 250.60984,-236.94965 248.77076,-238.49993 246.49993,-238.49993 z " fill="#888a85" fill-opacity="1.0000000" stroke="#555753" stroke-width="1.0001625" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 246.49993,-237.99993 C 244.31021,-237.99993 242.77633,-236.66416 242.10438,-234.15641 C 241.43592,-234.50003 240.55679,-234.98976 239.74993,-234.98976 C 237.03342,-234.98976 234.99479,-233.05094 234.99480,-230.44422 C 234.99480,-229.89745 235.26201,-229.11078 235.43676,-228.62221 C 234.11233,-227.89426 232.99993,-226.73171 232.99993,-225.24966 C 232.99993,-222.90361 234.54610,-220.99957 237.33921,-220.99957 C 237.51002,-220.99957 255.48985,-220.99957 255.66065,-220.99957 C 258.43166,-220.99957 259.99993,-222.90361 259.99993,-225.24966 C 259.99993,-226.84203 258.88753,-227.91635 257.56310,-228.64430 C 257.73786,-229.13286 258.02717,-229.89746 258.02717,-230.44422 C 258.02717,-233.05093 255.91136,-235.01185 253.24994,-235.01186 C 252.44307,-235.01186 251.60813,-234.52212 250.93967,-234.17850 C 250.29082,-236.60004 248.68966,-237.99993 246.49993,-237.99993 z " opacity="1.0000000" fill="url(#linearGradient13339)" fill-opacity="1.0000000" stroke="none" stroke-width="0.99999958" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="0.47777775" fill="url(#linearGradient13341)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <rect y="-230.99992" x="236.99994" height="9.0000000" width="20.000000" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16987,171.3114)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19818,231.8633)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19825,231.8634)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="0.47777775" fill="url(#linearGradient13343)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="0.47777775" fill="url(#linearGradient13345)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 245.46868,-233.96868 C 241.88930,-233.96868 238.99993,-231.04805 238.99993,-227.46868 C 238.99993,-225.09800 240.34936,-223.13089 242.24993,-221.99993 L 248.71868,-221.99993 C 250.61925,-223.13089 251.96868,-225.12924 251.96868,-227.49993 C 251.96868,-231.07931 249.04805,-233.96868 245.46868,-233.96868 z " opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 245.49993,-233.99993 C 241.91193,-233.99993 238.99993,-231.08792 238.99993,-227.49993 C 238.99993,-225.12353 240.34478,-223.13361 242.24993,-221.99993 L 248.74993,-221.99993 C 250.65508,-223.13361 251.99993,-225.12353 251.99993,-227.49993 C 251.99993,-231.08793 249.08793,-233.99992 245.49993,-233.99993 z " opacity="0.47777775" fill="url(#linearGradient13347)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16977,171.3113)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="0.47777775" fill="url(#linearGradient13350)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 258.95633,-230.33389 C 258.95480,-227.64933 255.68707,-226.61994 255.68707,-226.61994 C 255.68707,-226.61994 258.03581,-228.24589 258.02392,-230.32495 C 258.02392,-230.32495 258.95633,-230.33389 258.95633,-230.33389 z " fill="#555753" fill-opacity="1.0000000" fill-rule="evenodd" stroke="none" stroke-width="1.0000000px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1.0000000"/> + <path transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="0.47777775" fill="url(#linearGradient13352)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> </g> - <g - transform="translate(17.177973,-2)" - id="g8264"> - <g - id="g12227" - transform="translate(-219.67784,275.47179)"> - <path - sodipodi:nodetypes="cccc" - id="path12229" - d="M 231.62587,-228.77086 C 230.58662,-229.36665 230.23015,-230.68774 230.83016,-231.71967 C 232.16166,-233.80243 233.93524,-233.26584 234.84231,-235.46138 C 236.10323,-234.12777 235.63545,-227.21367 231.62587,-228.77086 z" - style="fill:#729fcf;fill-opacity:1;stroke:#204a87;stroke-width:1.07456863;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <path - sodipodi:nodetypes="csscc" - id="path12231" - d="M 234.31017,-229.9035 C 233.82059,-229.03976 232.73502,-228.74348 231.88703,-229.24216 C 231.03903,-229.74084 230.74816,-230.84657 231.23774,-231.71031 C 231.72733,-232.57405 233.84374,-232.16235 234.58388,-234 C 235.43187,-233.50133 234.79976,-230.76724 234.31017,-229.9035 z" - style="opacity:0.46111109;fill:url(#radialGradient8290);fill-opacity:1;stroke:none;stroke-width:1.07457018;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1" /> - <path - sodipodi:nodetypes="ccc" - id="path12233" - d="M 233.02237,-229 C 228.40776,-230.07384 233.25985,-233.71939 234,-232.92154 C 230.4176,-231.55118 233.02237,-229 233.02237,-229 z" - style="opacity:1;fill:url(#linearGradient8292);fill-opacity:1;stroke:none;stroke-width:1.07457018;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1" /> + <g transform="translate(17.177973,-2)"> + <g transform="translate(-219.67784,275.47179)"> + <path d="M 231.62587,-228.77086 C 230.58662,-229.36665 230.23015,-230.68774 230.83016,-231.71967 C 232.16166,-233.80243 233.93524,-233.26584 234.84231,-235.46138 C 236.10323,-234.12777 235.63545,-227.21367 231.62587,-228.77086 z" fill="#729fcf" fill-opacity="1" stroke="#204a87" stroke-width="1.07456863" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 234.31017,-229.9035 C 233.82059,-229.03976 232.73502,-228.74348 231.88703,-229.24216 C 231.03903,-229.74084 230.74816,-230.84657 231.23774,-231.71031 C 231.72733,-232.57405 233.84374,-232.16235 234.58388,-234 C 235.43187,-233.50133 234.79976,-230.76724 234.31017,-229.9035 z" opacity="0.46111109" fill="url(#radialGradient8290)" fill-opacity="1" stroke="none" stroke-width="1.07457018" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 233.02237,-229 C 228.40776,-230.07384 233.25985,-233.71939 234,-232.92154 C 230.4176,-231.55118 233.02237,-229 233.02237,-229 z" opacity="1" fill="url(#linearGradient8292)" fill-opacity="1" stroke="none" stroke-width="1.07457018" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0" stroke-dashoffset="0" stroke-opacity="1"/> </g> - <g - id="g12191" - transform="translate(-239.67784,265.47959)"> - <path - sodipodi:nodetypes="cccc" - id="path12193" - d="M 231.62587,-228.77086 C 230.58662,-229.36665 230.23015,-230.68774 230.83016,-231.71967 C 232.16166,-233.80243 233.93524,-233.26584 234.84231,-235.46138 C 236.10323,-234.12777 235.63545,-227.21367 231.62587,-228.77086 z" - style="fill:#729fcf;fill-opacity:1;stroke:#204a87;stroke-width:1.07456863;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <path - sodipodi:nodetypes="csscc" - id="path12195" - d="M 234.31017,-229.9035 C 233.82059,-229.03976 232.73502,-228.74348 231.88703,-229.24216 C 231.03903,-229.74084 230.74816,-230.84657 231.23774,-231.71031 C 231.72733,-232.57405 233.84374,-232.16235 234.58388,-234 C 235.43187,-233.50133 234.79976,-230.76724 234.31017,-229.9035 z" - style="opacity:0.46111109;fill:url(#radialGradient8294);fill-opacity:1;stroke:none;stroke-width:1.07457018;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1" /> - <path - sodipodi:nodetypes="ccc" - id="path12197" - d="M 233.02237,-229 C 228.40776,-230.07384 233.25985,-233.71939 234,-232.92154 C 230.4176,-231.55118 233.02237,-229 233.02237,-229 z" - style="opacity:1;fill:url(#linearGradient8296);fill-opacity:1;stroke:none;stroke-width:1.07457018;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1" /> + <g transform="translate(-239.67784,265.47959)"> + <path d="M 231.62587,-228.77086 C 230.58662,-229.36665 230.23015,-230.68774 230.83016,-231.71967 C 232.16166,-233.80243 233.93524,-233.26584 234.84231,-235.46138 C 236.10323,-234.12777 235.63545,-227.21367 231.62587,-228.77086 z" fill="#729fcf" fill-opacity="1" stroke="#204a87" stroke-width="1.07456863" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 234.31017,-229.9035 C 233.82059,-229.03976 232.73502,-228.74348 231.88703,-229.24216 C 231.03903,-229.74084 230.74816,-230.84657 231.23774,-231.71031 C 231.72733,-232.57405 233.84374,-232.16235 234.58388,-234 C 235.43187,-233.50133 234.79976,-230.76724 234.31017,-229.9035 z" opacity="0.46111109" fill="url(#radialGradient8294)" fill-opacity="1" stroke="none" stroke-width="1.07457018" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 233.02237,-229 C 228.40776,-230.07384 233.25985,-233.71939 234,-232.92154 C 230.4176,-231.55118 233.02237,-229 233.02237,-229 z" opacity="1" fill="url(#linearGradient8296)" fill-opacity="1" stroke="none" stroke-width="1.07457018" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0" stroke-dashoffset="0" stroke-opacity="1"/> </g> - <g - id="g12239" - transform="translate(-210.67944,272.47179)"> - <path - sodipodi:nodetypes="cccc" - id="path12241" - d="M 231.62587,-228.77086 C 230.58662,-229.36665 230.23015,-230.68774 230.83016,-231.71967 C 232.16166,-233.80243 233.93524,-233.26584 234.84231,-235.46138 C 236.10323,-234.12777 235.63545,-227.21367 231.62587,-228.77086 z" - style="fill:#729fcf;fill-opacity:1;stroke:#204a87;stroke-width:1.07456863;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <path - sodipodi:nodetypes="csscc" - id="path12243" - d="M 234.31017,-229.9035 C 233.82059,-229.03976 232.73502,-228.74348 231.88703,-229.24216 C 231.03903,-229.74084 230.74816,-230.84657 231.23774,-231.71031 C 231.72733,-232.57405 233.84374,-232.16235 234.58388,-234 C 235.43187,-233.50133 234.79976,-230.76724 234.31017,-229.9035 z" - style="opacity:0.46111109;fill:url(#radialGradient8298);fill-opacity:1;stroke:none;stroke-width:1.07457018;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1" /> - <path - sodipodi:nodetypes="ccc" - id="path12245" - d="M 233.02237,-229 C 228.40776,-230.07384 233.25985,-233.71939 234,-232.92154 C 230.4176,-231.55118 233.02237,-229 233.02237,-229 z" - style="opacity:1;fill:url(#linearGradient8300);fill-opacity:1;stroke:none;stroke-width:1.07457018;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1" /> + <g transform="translate(-210.67944,272.47179)"> + <path d="M 231.62587,-228.77086 C 230.58662,-229.36665 230.23015,-230.68774 230.83016,-231.71967 C 232.16166,-233.80243 233.93524,-233.26584 234.84231,-235.46138 C 236.10323,-234.12777 235.63545,-227.21367 231.62587,-228.77086 z" fill="#729fcf" fill-opacity="1" stroke="#204a87" stroke-width="1.07456863" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 234.31017,-229.9035 C 233.82059,-229.03976 232.73502,-228.74348 231.88703,-229.24216 C 231.03903,-229.74084 230.74816,-230.84657 231.23774,-231.71031 C 231.72733,-232.57405 233.84374,-232.16235 234.58388,-234 C 235.43187,-233.50133 234.79976,-230.76724 234.31017,-229.9035 z" opacity="0.46111109" fill="url(#radialGradient8298)" fill-opacity="1" stroke="none" stroke-width="1.07457018" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 233.02237,-229 C 228.40776,-230.07384 233.25985,-233.71939 234,-232.92154 C 230.4176,-231.55118 233.02237,-229 233.02237,-229 z" opacity="1" fill="url(#linearGradient8300)" fill-opacity="1" stroke="none" stroke-width="1.07457018" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0" stroke-dashoffset="0" stroke-opacity="1"/> </g> - <g - id="g12186" - transform="translate(-241.67794,275.47309)"> - <path - sodipodi:nodetypes="cccc" - id="path6059" - d="M 231.62587,-228.77086 C 230.58662,-229.36665 230.23015,-230.68774 230.83016,-231.71967 C 232.16166,-233.80243 233.93524,-233.26584 234.84231,-235.46138 C 236.10323,-234.12777 235.63545,-227.21367 231.62587,-228.77086 z" - style="fill:#729fcf;fill-opacity:1;stroke:#204a87;stroke-width:1.07456863;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <path - sodipodi:nodetypes="csscc" - id="path6061" - d="M 234.31017,-229.9035 C 233.82059,-229.03976 232.73502,-228.74348 231.88703,-229.24216 C 231.03903,-229.74084 230.74816,-230.84657 231.23774,-231.71031 C 231.72733,-232.57405 233.84374,-232.16235 234.58388,-234 C 235.43187,-233.50133 234.79976,-230.76724 234.31017,-229.9035 z" - style="opacity:0.46111109;fill:url(#radialGradient8302);fill-opacity:1;stroke:none;stroke-width:1.07457018;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1" /> - <path - sodipodi:nodetypes="ccc" - id="path6063" - d="M 233.02237,-229 C 228.40776,-230.07384 233.25985,-233.71939 234,-232.92154 C 230.4176,-231.55118 233.02237,-229 233.02237,-229 z" - style="opacity:1;fill:url(#linearGradient8304);fill-opacity:1;stroke:none;stroke-width:1.07457018;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1" /> + <g transform="translate(-241.67794,275.47309)"> + <path d="M 231.62587,-228.77086 C 230.58662,-229.36665 230.23015,-230.68774 230.83016,-231.71967 C 232.16166,-233.80243 233.93524,-233.26584 234.84231,-235.46138 C 236.10323,-234.12777 235.63545,-227.21367 231.62587,-228.77086 z" fill="#729fcf" fill-opacity="1" stroke="#204a87" stroke-width="1.07456863" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 234.31017,-229.9035 C 233.82059,-229.03976 232.73502,-228.74348 231.88703,-229.24216 C 231.03903,-229.74084 230.74816,-230.84657 231.23774,-231.71031 C 231.72733,-232.57405 233.84374,-232.16235 234.58388,-234 C 235.43187,-233.50133 234.79976,-230.76724 234.31017,-229.9035 z" opacity="0.46111109" fill="url(#radialGradient8302)" fill-opacity="1" stroke="none" stroke-width="1.07457018" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 233.02237,-229 C 228.40776,-230.07384 233.25985,-233.71939 234,-232.92154 C 230.4176,-231.55118 233.02237,-229 233.02237,-229 z" opacity="1" fill="url(#linearGradient8304)" fill-opacity="1" stroke="none" stroke-width="1.07457018" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0" stroke-dashoffset="0" stroke-opacity="1"/> </g> - <g - id="g12203" - transform="translate(-231.67944,270.47179)"> - <path - sodipodi:nodetypes="cccc" - id="path12205" - d="M 231.62587,-228.77086 C 230.58662,-229.36665 230.23015,-230.68774 230.83016,-231.71967 C 232.16166,-233.80243 233.93524,-233.26584 234.84231,-235.46138 C 236.10323,-234.12777 235.63545,-227.21367 231.62587,-228.77086 z" - style="fill:#729fcf;fill-opacity:1;stroke:#204a87;stroke-width:1.07456863;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <path - sodipodi:nodetypes="csscc" - id="path12207" - d="M 234.31017,-229.9035 C 233.82059,-229.03976 232.73502,-228.74348 231.88703,-229.24216 C 231.03903,-229.74084 230.74816,-230.84657 231.23774,-231.71031 C 231.72733,-232.57405 233.84374,-232.16235 234.58388,-234 C 235.43187,-233.50133 234.79976,-230.76724 234.31017,-229.9035 z" - style="opacity:0.46111109;fill:url(#radialGradient8306);fill-opacity:1;stroke:none;stroke-width:1.07457018;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1" /> - <path - sodipodi:nodetypes="ccc" - id="path12209" - d="M 233.02237,-229 C 228.40776,-230.07384 233.25985,-233.71939 234,-232.92154 C 230.4176,-231.55118 233.02237,-229 233.02237,-229 z" - style="opacity:1;fill:url(#linearGradient8308);fill-opacity:1;stroke:none;stroke-width:1.07457018;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1" /> + <g transform="translate(-231.67944,270.47179)"> + <path d="M 231.62587,-228.77086 C 230.58662,-229.36665 230.23015,-230.68774 230.83016,-231.71967 C 232.16166,-233.80243 233.93524,-233.26584 234.84231,-235.46138 C 236.10323,-234.12777 235.63545,-227.21367 231.62587,-228.77086 z" fill="#729fcf" fill-opacity="1" stroke="#204a87" stroke-width="1.07456863" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 234.31017,-229.9035 C 233.82059,-229.03976 232.73502,-228.74348 231.88703,-229.24216 C 231.03903,-229.74084 230.74816,-230.84657 231.23774,-231.71031 C 231.72733,-232.57405 233.84374,-232.16235 234.58388,-234 C 235.43187,-233.50133 234.79976,-230.76724 234.31017,-229.9035 z" opacity="0.46111109" fill="url(#radialGradient8306)" fill-opacity="1" stroke="none" stroke-width="1.07457018" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 233.02237,-229 C 228.40776,-230.07384 233.25985,-233.71939 234,-232.92154 C 230.4176,-231.55118 233.02237,-229 233.02237,-229 z" opacity="1" fill="url(#linearGradient8308)" fill-opacity="1" stroke="none" stroke-width="1.07457018" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0" stroke-dashoffset="0" stroke-opacity="1"/> </g> - <g - id="g12215" - transform="translate(-217.67944,265.47959)"> - <path - sodipodi:nodetypes="cccc" - id="path12217" - d="M 231.62587,-228.77086 C 230.58662,-229.36665 230.23015,-230.68774 230.83016,-231.71967 C 232.16166,-233.80243 233.93524,-233.26584 234.84231,-235.46138 C 236.10323,-234.12777 235.63545,-227.21367 231.62587,-228.77086 z" - style="fill:#729fcf;fill-opacity:1;stroke:#204a87;stroke-width:1.07456863;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <path - sodipodi:nodetypes="csscc" - id="path12219" - d="M 234.31017,-229.9035 C 233.82059,-229.03976 232.73502,-228.74348 231.88703,-229.24216 C 231.03903,-229.74084 230.74816,-230.84657 231.23774,-231.71031 C 231.72733,-232.57405 233.84374,-232.16235 234.58388,-234 C 235.43187,-233.50133 234.79976,-230.76724 234.31017,-229.9035 z" - style="opacity:0.46111109;fill:url(#radialGradient8310);fill-opacity:1;stroke:none;stroke-width:1.07457018;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1" /> - <path - sodipodi:nodetypes="ccc" - id="path12221" - d="M 233.02237,-229 C 228.40776,-230.07384 233.25985,-233.71939 234,-232.92154 C 230.4176,-231.55118 233.02237,-229 233.02237,-229 z" - style="opacity:1;fill:url(#linearGradient8312);fill-opacity:1;stroke:none;stroke-width:1.07457018;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1" /> + <g transform="translate(-217.67944,265.47959)"> + <path d="M 231.62587,-228.77086 C 230.58662,-229.36665 230.23015,-230.68774 230.83016,-231.71967 C 232.16166,-233.80243 233.93524,-233.26584 234.84231,-235.46138 C 236.10323,-234.12777 235.63545,-227.21367 231.62587,-228.77086 z" fill="#729fcf" fill-opacity="1" stroke="#204a87" stroke-width="1.07456863" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 234.31017,-229.9035 C 233.82059,-229.03976 232.73502,-228.74348 231.88703,-229.24216 C 231.03903,-229.74084 230.74816,-230.84657 231.23774,-231.71031 C 231.72733,-232.57405 233.84374,-232.16235 234.58388,-234 C 235.43187,-233.50133 234.79976,-230.76724 234.31017,-229.9035 z" opacity="0.46111109" fill="url(#radialGradient8310)" fill-opacity="1" stroke="none" stroke-width="1.07457018" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 233.02237,-229 C 228.40776,-230.07384 233.25985,-233.71939 234,-232.92154 C 230.4176,-231.55118 233.02237,-229 233.02237,-229 z" opacity="1" fill="url(#linearGradient8312)" fill-opacity="1" stroke="none" stroke-width="1.07457018" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0" stroke-dashoffset="0" stroke-opacity="1"/> </g> </g> - <g - transform="translate(-162.99643,221.88968)" - id="g12157"> - <path - sodipodi:type="arc" - style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#729fcf;stroke-width:1.45874679;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path12159" - sodipodi:cx="29.610096" - sodipodi:cy="-316.77872" - sodipodi:rx="2.2097087" - sodipodi:ry="2.2097087" - d="M 31.819805,-316.77872 A 2.2097087,2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087,2.2097087 0 1 1 31.819805,-316.77872 z" - transform="matrix(0.68552,0,0,0.68552,151.7017,27.15827)" /> - <path - sodipodi:type="arc" - style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#729fcf;stroke-width:1.09220433;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path12161" - sodipodi:cx="29.610096" - sodipodi:cy="-316.77872" - sodipodi:rx="2.2097087" - sodipodi:ry="2.2097087" - d="M 31.819805,-316.77872 A 2.2097087,2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087,2.2097087 0 1 1 31.819805,-316.77872 z" - transform="matrix(0.915572,0,0,0.915587,152.4091,103.5577)" /> - <path - sodipodi:type="arc" - style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#729fcf;stroke-width:1.47481608;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path12163" - sodipodi:cx="29.610096" - sodipodi:cy="-316.77872" - sodipodi:rx="2.2097087" - sodipodi:ry="2.2097087" - d="M 31.819805,-316.77872 A 2.2097087,2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087,2.2097087 0 1 1 31.819805,-316.77872 z" - transform="matrix(0.672406,0,0,0.683742,153.0708,34.62149)" /> - <path - sodipodi:type="arc" - style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#729fcf;stroke-width:1.4678179;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path12165" - sodipodi:cx="29.610096" - sodipodi:cy="-316.77872" - sodipodi:rx="2.2097087" - sodipodi:ry="2.2097087" - d="M 31.819805,-316.77872 A 2.2097087,2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087,2.2097087 0 1 1 31.819805,-316.77872 z" - transform="matrix(0.6823,0,0,0.680269,181.797,30.49471)" /> - <path - sodipodi:type="arc" - style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#729fcf;stroke-width:0.89916825;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path12167" - sodipodi:cx="29.610096" - sodipodi:cy="-316.77872" - sodipodi:rx="2.2097087" - sodipodi:ry="2.2097087" - d="M 31.819805,-316.77872 A 2.2097087,2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087,2.2097087 0 1 1 31.819805,-316.77872 z" - transform="matrix(1.107132,0,0,1.117168,157.2177,164.9217)" /> - <path - sodipodi:type="arc" - style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#729fcf;stroke-width:0.91822928;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path12169" - sodipodi:cx="29.610096" - sodipodi:cy="-316.77872" - sodipodi:rx="2.2097087" - sodipodi:ry="2.2097087" - d="M 31.819805,-316.77872 A 2.2097087,2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087,2.2097087 0 1 1 31.819805,-316.77872 z" - transform="matrix(1.127592,0,0,1.05183,161.6119,151.3731)" /> - <path - sodipodi:type="arc" - style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#729fcf;stroke-width:1.46413279;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path12171" - sodipodi:cx="29.610096" - sodipodi:cy="-316.77872" - sodipodi:rx="2.2097087" - sodipodi:ry="2.2097087" - d="M 31.819805,-316.77872 A 2.2097087,2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087,2.2097087 0 1 1 31.819805,-316.77872 z" - transform="matrix(0.685519,0,0,0.680487,164.6869,34.56369)" /> + <g transform="translate(-162.99643,221.88968)"> + <path d="M 31.819805,-316.77872 A 2.2097087,2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087,2.2097087 0 1 1 31.819805,-316.77872 z" transform="matrix(0.68552,0,0,0.68552,151.7017,27.15827)" opacity="1" fill="#ffffff" fill-opacity="1" stroke="#729fcf" stroke-width="1.45874679" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 31.819805,-316.77872 A 2.2097087,2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087,2.2097087 0 1 1 31.819805,-316.77872 z" transform="matrix(0.915572,0,0,0.915587,152.4091,103.5577)" opacity="1" fill="#ffffff" fill-opacity="1" stroke="#729fcf" stroke-width="1.09220433" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 31.819805,-316.77872 A 2.2097087,2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087,2.2097087 0 1 1 31.819805,-316.77872 z" transform="matrix(0.672406,0,0,0.683742,153.0708,34.62149)" opacity="1" fill="#ffffff" fill-opacity="1" stroke="#729fcf" stroke-width="1.47481608" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 31.819805,-316.77872 A 2.2097087,2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087,2.2097087 0 1 1 31.819805,-316.77872 z" transform="matrix(0.6823,0,0,0.680269,181.797,30.49471)" opacity="1" fill="#ffffff" fill-opacity="1" stroke="#729fcf" stroke-width="1.4678179" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 31.819805,-316.77872 A 2.2097087,2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087,2.2097087 0 1 1 31.819805,-316.77872 z" transform="matrix(1.107132,0,0,1.117168,157.2177,164.9217)" opacity="1" fill="#ffffff" fill-opacity="1" stroke="#729fcf" stroke-width="0.89916825" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 31.819805,-316.77872 A 2.2097087,2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087,2.2097087 0 1 1 31.819805,-316.77872 z" transform="matrix(1.127592,0,0,1.05183,161.6119,151.3731)" opacity="1" fill="#ffffff" fill-opacity="1" stroke="#729fcf" stroke-width="0.91822928" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 31.819805,-316.77872 A 2.2097087,2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087,2.2097087 0 1 1 31.819805,-316.77872 z" transform="matrix(0.685519,0,0,0.680487,164.6869,34.56369)" opacity="1" fill="#ffffff" fill-opacity="1" stroke="#729fcf" stroke-width="1.46413279" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> </g> </g> </g> diff --git a/demos/embedded/weatherinfo/icons/weather-snow.svg b/demos/embedded/weatherinfo/icons/weather-snow.svg index 6c7b4ad..a91946f 100644 --- a/demos/embedded/weatherinfo/icons/weather-snow.svg +++ b/demos/embedded/weatherinfo/icons/weather-snow.svg @@ -1,1418 +1,81 @@ <?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="48px" - height="48px" - id="svg1306" - sodipodi:version="0.32" - inkscape:version="0.46" - sodipodi:docbase="/home/rcollier/Work/Novell/Tango/weather" - sodipodi:docname="weather-snow.svg" - inkscape:output_extension="org.inkscape.output.svg.inkscape"> - <defs - id="defs1308"> - <inkscape:perspective - sodipodi:type="inkscape:persp3d" - inkscape:vp_x="0 : 24 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_z="48 : 24 : 1" - inkscape:persp3d-origin="24 : 16 : 1" - id="perspective253" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient10630" - gradientUnits="userSpaceOnUse" - x1="284.80219" - y1="-441.23294" - x2="288.89954" - y2="-436.83109" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6549" - id="linearGradient10628" - gradientUnits="userSpaceOnUse" - x1="286.66589" - y1="-439.48358" - x2="289.76562" - y2="-436.70703" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6527" - id="linearGradient10626" - gradientUnits="userSpaceOnUse" - x1="275.94193" - y1="-437.10501" - x2="279.97546" - y2="-431.91833" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient10624" - gradientUnits="userSpaceOnUse" - x1="285.94086" - y1="-439.93900" - x2="289.39124" - y2="-436.44290" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6513" - id="linearGradient10622" - gradientUnits="userSpaceOnUse" - x1="286.51172" - y1="-441.29074" - x2="289.85379" - y2="-436.14453" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6497" - id="linearGradient10620" - gradientUnits="userSpaceOnUse" - x1="287.51730" - y1="-439.75281" - x2="289.67633" - y2="-436.32199" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6470" - id="linearGradient10618" - gradientUnits="userSpaceOnUse" - x1="271.02170" - y1="-441.05182" - x2="285.02859" - y2="-431.96991" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient10616" - gradientUnits="userSpaceOnUse" - x1="284.80219" - y1="-441.23294" - x2="288.89954" - y2="-436.83109" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6549"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6551" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6553" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6549" - id="linearGradient10614" - gradientUnits="userSpaceOnUse" - x1="286.66589" - y1="-439.48358" - x2="289.76562" - y2="-436.70703" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6527"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6530" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6532" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6527" - id="linearGradient10612" - gradientUnits="userSpaceOnUse" - x1="275.94193" - y1="-437.10501" - x2="279.97546" - y2="-431.91833" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6538"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6540" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6542" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient10610" - gradientUnits="userSpaceOnUse" - x1="285.94086" - y1="-439.93900" - x2="289.39124" - y2="-436.44290" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6513"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6515" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6517" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6513" - id="linearGradient10608" - gradientUnits="userSpaceOnUse" - x1="286.51172" - y1="-441.29074" - x2="289.85379" - y2="-436.14453" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6497"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6499" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6501" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6497" - id="linearGradient10606" - gradientUnits="userSpaceOnUse" - x1="287.51730" - y1="-439.75281" - x2="289.67633" - y2="-436.32199" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6470"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6472" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6474" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6470" - id="linearGradient10604" - gradientUnits="userSpaceOnUse" - x1="271.02170" - y1="-441.05182" - x2="285.02859" - y2="-431.96991" /> - <linearGradient - inkscape:collect="always" - id="linearGradient7834"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop7836" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop7838" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient7834" - id="linearGradient10602" - gradientUnits="userSpaceOnUse" - x1="-156.29044" - y1="-100.53421" - x2="-153.09810" - y2="-96.544556" /> - <linearGradient - inkscape:collect="always" - id="linearGradient8397"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop8400" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop8402" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8397" - id="linearGradient10600" - gradientUnits="userSpaceOnUse" - x1="238.00478" - y1="-388.47476" - x2="245.65462" - y2="-382.64539" /> - <linearGradient - inkscape:collect="always" - id="linearGradient8315"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop8317" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop8319" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8315" - id="linearGradient10598" - gradientUnits="userSpaceOnUse" - x1="230.87598" - y1="-390.43951" - x2="235.25652" - y2="-386.95901" /> - <linearGradient - inkscape:collect="always" - id="linearGradient8381"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop8383" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop8385" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8381" - id="linearGradient10596" - gradientUnits="userSpaceOnUse" - x1="246.74042" - y1="-391.31381" - x2="252.69785" - y2="-385.35165" /> - <linearGradient - inkscape:collect="always" - id="linearGradient8331"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop8333" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop8335" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8331" - id="linearGradient10594" - gradientUnits="userSpaceOnUse" - x1="240.07379" - y1="-393.40720" - x2="245.82706" - y2="-388.55029" /> - <linearGradient - inkscape:collect="always" - id="linearGradient8302"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop8304" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop8306" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8302" - id="linearGradient10592" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(122.0230,102.0000)" - x1="228.50261" - y1="-392.30591" - x2="278.91510" - y2="-375.37952" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2298" - id="linearGradient7748" - gradientUnits="userSpaceOnUse" - x1="-27.006643" - y1="-37.550461" - x2="-34.700153" - y2="-4.4493785" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2527" - id="linearGradient7746" - gradientUnits="userSpaceOnUse" - x1="-25.137094" - y1="-1.2491118" - x2="-35.652866" - y2="-24.884460" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3478" - id="linearGradient7744" - gradientUnits="userSpaceOnUse" - x1="11.149398" - y1="-43.997444" - x2="4.9625983" - y2="-8.3080902" /> - <linearGradient - inkscape:collect="always" - id="linearGradient4829"> - <stop - style="stop-color:#000000;stop-opacity:1;" - offset="0" - id="stop4831" /> - <stop - style="stop-color:#000000;stop-opacity:0;" - offset="1" - id="stop4833" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient3478"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop3480" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop3482" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient2298"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop2300" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop2302" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient3347"> - <stop - style="stop-color:#edd400;stop-opacity:1;" - offset="0" - id="stop3349" /> - <stop - style="stop-color:#edd400;stop-opacity:0;" - offset="1" - id="stop3351" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient2527"> - <stop - style="stop-color:#fcaf3e;stop-opacity:1;" - offset="0" - id="stop2529" /> - <stop - style="stop-color:#fcaf3e;stop-opacity:0;" - offset="1" - id="stop2531" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient2500"> - <stop - style="stop-color:#fce94f;stop-opacity:1;" - offset="0" - id="stop2502" /> - <stop - style="stop-color:#fce94f;stop-opacity:0;" - offset="1" - id="stop2504" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient2392"> - <stop - style="stop-color:#eeeeec;stop-opacity:1;" - offset="0" - id="stop2394" /> - <stop - style="stop-color:#eeeeec;stop-opacity:0;" - offset="1" - id="stop2396" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient2254"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop2256" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop2258" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2263" - gradientUnits="userSpaceOnUse" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" - gradientTransform="translate(-1.608757,3.097272)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2267" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(3.555020,0.968578)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2271" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(9.263651,3.495228)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2275" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(8.497184,-2.330824)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2279" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(14.46340,2.014073)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2283" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2287" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2291" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2295" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2299" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2303" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(1.707748,-5.784024)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2311" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2350" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(16.14002,24.66420)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2352" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-0.932144,25.87240)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2354" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(5.356636,23.86870)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2356" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(11.19027,26.52035)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2358" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(10.30638,19.27251)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2360" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,0.229156,30.76299)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2362" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,16.67145,27.22746)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2364" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,17.05272,31.47010)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2366" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-4.010744,24.96040)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2368" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,8.185476,29.52556)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2370" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(4.207586,21.30544)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2372" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.12415,32.08882)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2392" - id="linearGradient2398" - x1="6.6651416" - y1="13.802798" - x2="41.403877" - y2="13.802798" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2426" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(14.46340,2.014073)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2428" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(8.497184,-2.330824)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2430" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-1.608757,3.097272)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2432" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(3.555020,0.968578)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2434" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(9.263651,3.495228)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2436" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2438" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2440" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2442" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2444" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2446" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2392" - id="linearGradient2448" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" - x1="6.6651416" - y1="13.802798" - x2="41.403877" - y2="13.802798" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2392" - id="linearGradient2451" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,4.378541,10.65407)" - x1="6.6651416" - y1="13.802798" - x2="41.403877" - y2="13.802798" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2457" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2460" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2463" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2469" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2472" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(12.51365,8.745228)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2475" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(6.805020,6.218578)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2478" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(1.641243,8.347272)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2483" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(0.842481,-3.998086)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2500" - id="linearGradient2506" - x1="37.000000" - y1="-21.750000" - x2="53.750000" - y2="9.0000000" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2500" - id="linearGradient2509" - gradientUnits="userSpaceOnUse" - x1="37.000000" - y1="-21.750000" - x2="53.750000" - y2="9.0000000" - gradientTransform="matrix(0.889091,0.000000,0.000000,0.617886,-4.771368,39.81402)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2500" - id="linearGradient2513" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.605509,0.000000,0.000000,0.710542,-0.224971,42.19500)" - x1="38.857941" - y1="-18.407482" - x2="53.750000" - y2="9.0000000" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2500" - id="linearGradient2517" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.414169,0.000000,0.000000,0.778853,-1.910724,36.87850)" - x1="37.000000" - y1="-21.750000" - x2="53.750000" - y2="9.0000000" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2527" - id="linearGradient2533" - x1="-25.137094" - y1="-1.2491118" - x2="-35.652866" - y2="-24.884460" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2537" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(17.33814,3.415985)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2541" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(13.40064,1.353485)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2555" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-7.499805,1.708617)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2563" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-0.726830,2.481141)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3347" - id="linearGradient3353" - x1="23.303862" - y1="29.115711" - x2="29.750000" - y2="46.092930" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3366" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(13.40064,1.353485)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3368" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(1.641243,8.347272)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3370" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(6.805020,6.218578)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3372" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(12.51365,8.745228)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3374" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3376" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3378" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3380" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3383" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3386" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3389" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3392" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3395" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(3.674812,3.088370)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3398" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-2.033818,0.561720)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3401" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-7.197595,2.690414)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3405" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(4.561802,-4.303373)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient1514" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(88.49344,-9.697877)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient1516" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,56.25514,-12.39388)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient1518" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,79.36909,-3.193747)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2527" - id="linearGradient1520" - gradientUnits="userSpaceOnUse" - x1="-25.137094" - y1="-1.2491118" - x2="-35.652866" - y2="-24.884460" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient1522" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-7.197595,2.690414)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient1524" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-2.033818,0.561720)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient1526" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(3.674812,3.088370)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient1528" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient1530" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient1532" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient1534" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient1536" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,123.1162,-5.446357)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient1538" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(57.97693,-10.56876)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2527" - id="linearGradient1557" - gradientUnits="userSpaceOnUse" - x1="-25.137094" - y1="-1.2491118" - x2="-35.652866" - y2="-24.884460" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient4829" - id="radialGradient4835" - cx="-35.001785" - cy="-1.1439217" - fx="-35.001785" - fy="-1.1439217" - r="17.500893" - gradientTransform="matrix(1.000000,0.000000,0.000000,0.565657,-5.564992e-15,-0.496855)" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2298" - id="linearGradient1427" - gradientUnits="userSpaceOnUse" - x1="-27.006643" - y1="-37.550461" - x2="-34.700153" - y2="-4.4493785" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3478" - id="linearGradient1431" - gradientUnits="userSpaceOnUse" - x1="11.149398" - y1="-43.997444" - x2="4.9625983" - y2="-8.3080902" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3478" - id="linearGradient14128" - gradientUnits="userSpaceOnUse" - x1="11.149398" - y1="-43.997444" - x2="4.9625983" - y2="-8.3080902" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2527" - id="linearGradient14130" - gradientUnits="userSpaceOnUse" - x1="-25.137094" - y1="-1.2491118" - x2="-35.652866" - y2="-24.884460" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2298" - id="linearGradient14132" - gradientUnits="userSpaceOnUse" - x1="-27.006643" - y1="-37.550461" - x2="-34.700153" - y2="-4.4493785" /> +<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="48px" height="48px" id="svg1306"> + <defs id="defs1308"> + <linearGradient xlink:href="#linearGradient6538" id="linearGradient10630" gradientUnits="userSpaceOnUse" x1="284.80219" y1="-441.23294" x2="288.89954" y2="-436.83109"/> + <linearGradient xlink:href="#linearGradient6549" id="linearGradient10628" gradientUnits="userSpaceOnUse" x1="286.66589" y1="-439.48358" x2="289.76562" y2="-436.70703"/> + <linearGradient xlink:href="#linearGradient6527" id="linearGradient10626" gradientUnits="userSpaceOnUse" x1="275.94193" y1="-437.10501" x2="279.97546" y2="-431.91833"/> + <linearGradient xlink:href="#linearGradient6538" id="linearGradient10624" gradientUnits="userSpaceOnUse" x1="285.94086" y1="-439.93900" x2="289.39124" y2="-436.44290"/> + <linearGradient xlink:href="#linearGradient6513" id="linearGradient10622" gradientUnits="userSpaceOnUse" x1="286.51172" y1="-441.29074" x2="289.85379" y2="-436.14453"/> + <linearGradient xlink:href="#linearGradient6497" id="linearGradient10620" gradientUnits="userSpaceOnUse" x1="287.51730" y1="-439.75281" x2="289.67633" y2="-436.32199"/> + <linearGradient xlink:href="#linearGradient6470" id="linearGradient10618" gradientUnits="userSpaceOnUse" x1="271.02170" y1="-441.05182" x2="285.02859" y2="-431.96991"/> + <linearGradient xlink:href="#linearGradient6538" id="linearGradient10616" gradientUnits="userSpaceOnUse" x1="284.80219" y1="-441.23294" x2="288.89954" y2="-436.83109"/> + <linearGradient id="linearGradient6549"> + <stop offset="0" id="stop6551" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6553" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient6549" id="linearGradient10614" gradientUnits="userSpaceOnUse" x1="286.66589" y1="-439.48358" x2="289.76562" y2="-436.70703"/> + <linearGradient id="linearGradient6527"> + <stop offset="0" id="stop6530" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6532" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient6527" id="linearGradient10612" gradientUnits="userSpaceOnUse" x1="275.94193" y1="-437.10501" x2="279.97546" y2="-431.91833"/> + <linearGradient id="linearGradient6538"> + <stop offset="0" id="stop6540" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6542" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient6538" id="linearGradient10610" gradientUnits="userSpaceOnUse" x1="285.94086" y1="-439.93900" x2="289.39124" y2="-436.44290"/> + <linearGradient id="linearGradient6513"> + <stop offset="0" id="stop6515" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6517" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient6513" id="linearGradient10608" gradientUnits="userSpaceOnUse" x1="286.51172" y1="-441.29074" x2="289.85379" y2="-436.14453"/> + <linearGradient id="linearGradient6497"> + <stop offset="0" id="stop6499" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6501" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient6497" id="linearGradient10606" gradientUnits="userSpaceOnUse" x1="287.51730" y1="-439.75281" x2="289.67633" y2="-436.32199"/> + <linearGradient id="linearGradient6470"> + <stop offset="0" id="stop6472" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6474" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient6470" id="linearGradient10604" gradientUnits="userSpaceOnUse" x1="271.02170" y1="-441.05182" x2="285.02859" y2="-431.96991"/> + <linearGradient id="linearGradient7834"> + <stop offset="0" id="stop7836" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop7838" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient7834" id="linearGradient10602" gradientUnits="userSpaceOnUse" x1="-156.29044" y1="-100.53421" x2="-153.09810" y2="-96.544556"/> + <linearGradient id="linearGradient8397"> + <stop offset="0" id="stop8400" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop8402" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient8397" id="linearGradient10600" gradientUnits="userSpaceOnUse" x1="238.00478" y1="-388.47476" x2="245.65462" y2="-382.64539"/> + <linearGradient id="linearGradient8315"> + <stop offset="0" id="stop8317" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop8319" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient8315" id="linearGradient10598" gradientUnits="userSpaceOnUse" x1="230.87598" y1="-390.43951" x2="235.25652" y2="-386.95901"/> + <linearGradient id="linearGradient8381"> + <stop offset="0" id="stop8383" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop8385" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient8381" id="linearGradient10596" gradientUnits="userSpaceOnUse" x1="246.74042" y1="-391.31381" x2="252.69785" y2="-385.35165"/> + <linearGradient id="linearGradient8331"> + <stop offset="0" id="stop8333" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop8335" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient8331" id="linearGradient10594" gradientUnits="userSpaceOnUse" x1="240.07379" y1="-393.40720" x2="245.82706" y2="-388.55029"/> + <linearGradient id="linearGradient8302"> + <stop offset="0" id="stop8304" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop8306" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient8302" id="linearGradient10592" gradientUnits="userSpaceOnUse" gradientTransform="translate(122.0230,102.0000)" x1="228.50261" y1="-392.30591" x2="278.91510" y2="-375.37952"/> </defs> - <sodipodi:namedview - id="base" - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1.0" - inkscape:pageopacity="0.0" - inkscape:pageshadow="2" - inkscape:zoom="8" - inkscape:cx="23.594384" - inkscape:cy="39.722629" - inkscape:current-layer="layer1" - showgrid="true" - inkscape:grid-bbox="true" - inkscape:document-units="px" - inkscape:window-width="859" - inkscape:window-height="818" - inkscape:window-x="0" - inkscape:window-y="30" - inkscape:showpageshadow="false" /> - <metadata - id="metadata1311"> + + <metadata id="metadata1311"> <rdf:RDF> - <cc:Work - rdf:about=""> + <cc:Work rdf:about=""> <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> <dc:title>weather-snow</dc:title> <dc:date>January 2006</dc:date> <dc:creator> @@ -1433,542 +96,105 @@ <rdf:li>notification</rdf:li> </rdf:Bag> </dc:subject> - <cc:license - rdf:resource="http://creativecommons.org/licenses/publicdomain/" /> + <cc:license rdf:resource="http://creativecommons.org/licenses/publicdomain/"/> </cc:Work> - <cc:License - rdf:about="http://creativecommons.org/licenses/publicdomain/"> - <cc:permits - rdf:resource="http://creativecommons.org/ns#Reproduction" /> - <cc:permits - rdf:resource="http://creativecommons.org/ns#Distribution" /> - <cc:permits - rdf:resource="http://creativecommons.org/ns#DerivativeWorks" /> + <cc:License rdf:about="http://creativecommons.org/licenses/publicdomain/"> + <cc:permits rdf:resource="http://creativecommons.org/ns#Reproduction"/> + <cc:permits rdf:resource="http://creativecommons.org/ns#Distribution"/> + <cc:permits rdf:resource="http://creativecommons.org/ns#DerivativeWorks"/> </cc:License> </rdf:RDF> </metadata> - <g - id="layer1" - inkscape:label="Layer 1" - inkscape:groupmode="layer"> - <g - id="g9947" - transform="translate(-340.0455,298.0001)"> - <path - id="path8718" - d="M 364.52300,-296.00000 C 361.75058,-296.00000 359.41477,-294.42629 358.11675,-292.18750 C 357.17239,-292.66254 356.15156,-293.00000 355.02300,-293.00000 C 351.15900,-293.00000 348.02300,-289.86400 348.02300,-286.00000 C 348.02300,-282.13600 351.15900,-279.00000 355.02300,-279.00000 C 357.44267,-279.00000 359.45309,-280.31932 360.71050,-282.18750 C 361.84470,-281.49788 363.09948,-281.00000 364.52300,-281.00000 C 365.43612,-281.00000 366.27595,-281.23202 367.08550,-281.53125 C 367.59544,-280.66352 368.26462,-279.95153 369.08550,-279.37500 C 369.07826,-279.24462 369.02300,-279.13218 369.02300,-279.00000 C 369.02300,-275.13600 372.15899,-272.00000 376.02300,-272.00000 C 379.88700,-272.00000 383.02300,-275.13600 383.02300,-279.00000 C 383.02300,-281.36969 381.76402,-283.35834 379.96050,-284.62500 C 379.96774,-284.75538 380.02300,-284.86782 380.02300,-285.00000 C 380.02300,-288.86400 376.88701,-292.00000 373.02300,-292.00000 C 372.40030,-292.00000 371.84781,-291.77781 371.27300,-291.62500 C 370.07847,-294.18384 367.53166,-296.00000 364.52300,-296.00000 z " - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <path - id="path8720" - d="M 364.52300,-295.00000 C 361.74252,-295.00000 359.38849,-293.23815 358.46050,-290.78125 C 357.47508,-291.49069 356.32907,-292.00000 355.02300,-292.00000 C 351.71100,-292.00000 349.02300,-289.31200 349.02300,-286.00000 C 349.02300,-282.68800 351.71100,-280.00000 355.02300,-280.00000 C 357.45075,-280.00000 359.51624,-281.45558 360.46050,-283.53125 C 361.58126,-282.61369 362.96264,-282.00000 364.52300,-282.00000 C 365.59754,-282.00000 366.56728,-282.31896 367.46050,-282.78125 C 367.85890,-281.78149 368.56164,-280.99493 369.39800,-280.34375 C 369.21799,-279.74813 369.02300,-279.15410 369.02300,-278.50000 C 369.02300,-274.91200 371.93500,-272.00000 375.52300,-272.00000 C 379.11100,-272.00000 382.02300,-274.91200 382.02300,-278.50000 C 382.02300,-280.86079 380.68867,-282.83019 378.80425,-283.96875 C 378.86684,-284.31598 379.02300,-284.63483 379.02300,-285.00000 C 379.02300,-288.31200 376.33500,-291.00000 373.02300,-291.00000 C 372.17002,-291.00000 371.35170,-290.82132 370.61675,-290.50000 C 369.76298,-293.09388 367.40151,-294.99999 364.52300,-295.00000 z " - style="opacity:1.0000000;fill:url(#linearGradient10592);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <path - transform="matrix(0.964447,0.000000,0.000000,0.964447,142.3115,91.52621)" - d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z" - sodipodi:ry="6.7396116" - sodipodi:rx="6.7396116" - sodipodi:cy="-383.66660" - sodipodi:cx="241.80843" - id="path8722" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <g - transform="translate(122.0230,102.0000)" - id="g8724"> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path8726" - sodipodi:cx="243.95184" - sodipodi:cy="-389.30136" - sodipodi:rx="6.2313786" - sodipodi:ry="6.2313786" - d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1 237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1 250.18322 -389.30136 z" - transform="matrix(0.882630,0.000000,0.000000,0.882630,27.18078,-46.89094)" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:url(#linearGradient10594);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path8728" - sodipodi:cx="243.95184" - sodipodi:cy="-389.30136" - sodipodi:rx="6.2313786" - sodipodi:ry="6.2313786" - d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1 237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1 250.18322 -389.30136 z" - transform="matrix(0.882630,0.000000,0.000000,0.882630,27.18078,-46.89094)" /> + <g id="layer1"> + <g transform="translate(-340.0455,298.0001)"> + <path d="M 364.52300,-296.00000 C 361.75058,-296.00000 359.41477,-294.42629 358.11675,-292.18750 C 357.17239,-292.66254 356.15156,-293.00000 355.02300,-293.00000 C 351.15900,-293.00000 348.02300,-289.86400 348.02300,-286.00000 C 348.02300,-282.13600 351.15900,-279.00000 355.02300,-279.00000 C 357.44267,-279.00000 359.45309,-280.31932 360.71050,-282.18750 C 361.84470,-281.49788 363.09948,-281.00000 364.52300,-281.00000 C 365.43612,-281.00000 366.27595,-281.23202 367.08550,-281.53125 C 367.59544,-280.66352 368.26462,-279.95153 369.08550,-279.37500 C 369.07826,-279.24462 369.02300,-279.13218 369.02300,-279.00000 C 369.02300,-275.13600 372.15899,-272.00000 376.02300,-272.00000 C 379.88700,-272.00000 383.02300,-275.13600 383.02300,-279.00000 C 383.02300,-281.36969 381.76402,-283.35834 379.96050,-284.62500 C 379.96774,-284.75538 380.02300,-284.86782 380.02300,-285.00000 C 380.02300,-288.86400 376.88701,-292.00000 373.02300,-292.00000 C 372.40030,-292.00000 371.84781,-291.77781 371.27300,-291.62500 C 370.07847,-294.18384 367.53166,-296.00000 364.52300,-296.00000 z " opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 364.52300,-295.00000 C 361.74252,-295.00000 359.38849,-293.23815 358.46050,-290.78125 C 357.47508,-291.49069 356.32907,-292.00000 355.02300,-292.00000 C 351.71100,-292.00000 349.02300,-289.31200 349.02300,-286.00000 C 349.02300,-282.68800 351.71100,-280.00000 355.02300,-280.00000 C 357.45075,-280.00000 359.51624,-281.45558 360.46050,-283.53125 C 361.58126,-282.61369 362.96264,-282.00000 364.52300,-282.00000 C 365.59754,-282.00000 366.56728,-282.31896 367.46050,-282.78125 C 367.85890,-281.78149 368.56164,-280.99493 369.39800,-280.34375 C 369.21799,-279.74813 369.02300,-279.15410 369.02300,-278.50000 C 369.02300,-274.91200 371.93500,-272.00000 375.52300,-272.00000 C 379.11100,-272.00000 382.02300,-274.91200 382.02300,-278.50000 C 382.02300,-280.86079 380.68867,-282.83019 378.80425,-283.96875 C 378.86684,-284.31598 379.02300,-284.63483 379.02300,-285.00000 C 379.02300,-288.31200 376.33500,-291.00000 373.02300,-291.00000 C 372.17002,-291.00000 371.35170,-290.82132 370.61675,-290.50000 C 369.76298,-293.09388 367.40151,-294.99999 364.52300,-295.00000 z " opacity="1.0000000" fill="url(#linearGradient10592)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(0.964447,0.000000,0.000000,0.964447,142.3115,91.52621)" d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <g transform="translate(122.0230,102.0000)"> + <path d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1 237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1 250.18322 -389.30136 z" transform="matrix(0.882630,0.000000,0.000000,0.882630,27.18078,-46.89094)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1 237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1 250.18322 -389.30136 z" transform="matrix(0.882630,0.000000,0.000000,0.882630,27.18078,-46.89094)" opacity="1.0000000" fill="url(#linearGradient10594)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - transform="translate(122.0230,102.0000)" - id="g8730"> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path8732" - sodipodi:cx="251.22179" - sodipodi:cy="-385.78790" - sodipodi:rx="6.0325046" - sodipodi:ry="6.0325046" - d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1 245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1 257.25429 -385.78790 z" - transform="matrix(0.911728,0.000000,0.000000,0.911728,21.45407,-34.76637)" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:url(#linearGradient10596);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path8734" - sodipodi:cx="251.22179" - sodipodi:cy="-385.78790" - sodipodi:rx="6.0325046" - sodipodi:ry="6.0325046" - d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1 245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1 257.25429 -385.78790 z" - transform="matrix(0.911728,0.000000,0.000000,0.911728,21.45407,-34.76637)" /> + <g transform="translate(122.0230,102.0000)"> + <path d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1 245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1 257.25429 -385.78790 z" transform="matrix(0.911728,0.000000,0.000000,0.911728,21.45407,-34.76637)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1 245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1 257.25429 -385.78790 z" transform="matrix(0.911728,0.000000,0.000000,0.911728,21.45407,-34.76637)" opacity="1.0000000" fill="url(#linearGradient10596)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - transform="translate(122.0230,102.0000)" - id="g8736"> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path8738" - sodipodi:cx="233.43362" - sodipodi:cy="-387.88715" - sodipodi:rx="4.3752232" - sodipodi:ry="4.3752232" - d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1 229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1 237.80885 -387.88715 z" - transform="matrix(1.142799,0.000000,0.000000,1.142799,-33.76771,55.27704)" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:url(#linearGradient10598);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path8740" - sodipodi:cx="233.43362" - sodipodi:cy="-387.88715" - sodipodi:rx="4.3752232" - sodipodi:ry="4.3752232" - d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1 229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1 237.80885 -387.88715 z" - transform="matrix(1.142799,0.000000,0.000000,1.142799,-33.76771,55.27704)" /> + <g transform="translate(122.0230,102.0000)"> + <path d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1 229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1 237.80885 -387.88715 z" transform="matrix(1.142799,0.000000,0.000000,1.142799,-33.76771,55.27704)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1 229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1 237.80885 -387.88715 z" transform="matrix(1.142799,0.000000,0.000000,1.142799,-33.76771,55.27704)" opacity="1.0000000" fill="url(#linearGradient10598)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - transform="translate(122.0230,102.0000)" - id="g8742"> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path8744" - sodipodi:cx="241.80843" - sodipodi:cy="-383.66660" - sodipodi:rx="6.7396116" - sodipodi:ry="6.7396116" - d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z" - transform="matrix(1.038636,0.000000,0.000000,1.038636,-9.150940,14.48994)" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:url(#linearGradient10600);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path8746" - sodipodi:cx="241.80843" - sodipodi:cy="-383.66660" - sodipodi:rx="6.7396116" - sodipodi:ry="6.7396116" - d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z" - transform="matrix(1.038636,0.000000,0.000000,1.038636,-9.150933,14.48993)" /> + <g transform="translate(122.0230,102.0000)"> + <path d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z" transform="matrix(1.038636,0.000000,0.000000,1.038636,-9.150940,14.48994)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z" transform="matrix(1.038636,0.000000,0.000000,1.038636,-9.150933,14.48993)" opacity="1.0000000" fill="url(#linearGradient10600)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - style="stroke:none" - transform="matrix(0.935028,0.000000,0.000000,0.935028,499.8484,-187.6162)" - id="g8748"> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:0.33115697;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path8750" - sodipodi:cx="-155.06250" - sodipodi:cy="-96.937500" - sodipodi:rx="3.1250000" - sodipodi:ry="3.1250000" - d="M -151.93750 -96.937500 A 3.1250000 3.1250000 0 1 1 -158.18750,-96.937500 A 3.1250000 3.1250000 0 1 1 -151.93750 -96.937500 z" - transform="matrix(1.737733,0.000000,0.000000,1.737733,110.8322,70.07649)" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:url(#linearGradient10602);fill-opacity:1.0000000;stroke:none;stroke-width:0.45224530;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path8752" - sodipodi:cx="-155.06250" - sodipodi:cy="-96.937500" - sodipodi:rx="3.1250000" - sodipodi:ry="3.1250000" - d="M -151.93750 -96.937500 A 3.1250000 3.1250000 0 1 1 -158.18750,-96.937500 A 3.1250000 3.1250000 0 1 1 -151.93750 -96.937500 z" - transform="matrix(1.737733,0.000000,0.000000,1.737733,110.8948,70.01402)" /> + <g transform="matrix(0.935028,0.000000,0.000000,0.935028,499.8484,-187.6162)" stroke="none"> + <path d="M -151.93750 -96.937500 A 3.1250000 3.1250000 0 1 1 -158.18750,-96.937500 A 3.1250000 3.1250000 0 1 1 -151.93750 -96.937500 z" transform="matrix(1.737733,0.000000,0.000000,1.737733,110.8322,70.07649)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="0.33115697" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M -151.93750 -96.937500 A 3.1250000 3.1250000 0 1 1 -158.18750,-96.937500 A 3.1250000 3.1250000 0 1 1 -151.93750 -96.937500 z" transform="matrix(1.737733,0.000000,0.000000,1.737733,110.8948,70.01402)" opacity="1.0000000" fill="url(#linearGradient10602)" fill-opacity="1.0000000" stroke="none" stroke-width="0.45224530" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - transform="translate(91.02300,162.0000)" - id="g8798"> - <path - style="fill:#c4c5c2;fill-opacity:1.0000000;stroke:#888a85;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - d="M 280.50000,-445.50000 C 278.22917,-445.50000 276.39009,-443.94972 275.78125,-441.87500 C 275.08802,-442.23883 274.33674,-442.50000 273.50000,-442.50000 C 270.74000,-442.50000 268.49999,-440.26001 268.50000,-437.50000 C 268.50000,-436.92107 268.66252,-436.39230 268.84375,-435.87500 C 267.47028,-435.10426 266.50000,-433.68600 266.50000,-432.00000 C 266.50000,-429.51600 268.51600,-427.49999 271.00000,-427.50000 C 271.17713,-427.50000 289.82287,-427.50000 290.00000,-427.50000 C 292.48399,-427.50000 294.50000,-429.51600 294.50000,-432.00000 C 294.50000,-433.68600 293.52972,-435.10426 292.15625,-435.87500 C 292.33749,-436.39229 292.50000,-436.92108 292.50000,-437.50000 C 292.50000,-440.26000 290.26000,-442.49999 287.50000,-442.50000 C 286.66326,-442.50000 285.91198,-442.23883 285.21875,-441.87500 C 284.60991,-443.94972 282.77083,-445.50000 280.50000,-445.50000 z " - id="path8800" - sodipodi:nodetypes="ccsscsssscsscc" /> - <path - style="opacity:1.0000000;fill:url(#linearGradient10604);fill-opacity:1.0000000;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - d="M 280.50000,-445.00000 C 278.31028,-445.00000 276.77640,-443.66423 276.10445,-441.15648 C 275.43599,-441.50010 274.55686,-441.98983 273.75000,-441.98983 C 271.03349,-441.98983 268.99486,-440.05101 268.99487,-437.44429 C 268.99487,-436.89752 269.26208,-436.11085 269.43683,-435.62228 C 268.11240,-434.89433 267.00000,-433.73178 267.00000,-432.24973 C 267.00000,-429.90368 268.54617,-427.99964 271.33928,-427.99964 C 271.51009,-427.99964 289.48992,-427.99964 289.66072,-427.99964 C 292.43173,-427.99964 294.00000,-429.90368 294.00000,-432.24973 C 294.00000,-433.84210 292.88760,-434.91642 291.56317,-435.64437 C 291.73793,-436.13293 292.02724,-436.89753 292.02724,-437.44429 C 292.02724,-440.05100 289.91143,-442.01192 287.25001,-442.01193 C 286.44314,-442.01193 285.60820,-441.52219 284.93974,-441.17857 C 284.29089,-443.60011 282.68973,-445.00000 280.50000,-445.00000 z " - id="path8802" - sodipodi:nodetypes="ccsscsssscsscc" /> - <g - id="g8804"> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path8806" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path8808" - style="opacity:1.0000000;fill:url(#linearGradient10606);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> + <g transform="translate(91.02300,162.0000)"> + <path d="M 280.50000,-445.50000 C 278.22917,-445.50000 276.39009,-443.94972 275.78125,-441.87500 C 275.08802,-442.23883 274.33674,-442.50000 273.50000,-442.50000 C 270.74000,-442.50000 268.49999,-440.26001 268.50000,-437.50000 C 268.50000,-436.92107 268.66252,-436.39230 268.84375,-435.87500 C 267.47028,-435.10426 266.50000,-433.68600 266.50000,-432.00000 C 266.50000,-429.51600 268.51600,-427.49999 271.00000,-427.50000 C 271.17713,-427.50000 289.82287,-427.50000 290.00000,-427.50000 C 292.48399,-427.50000 294.50000,-429.51600 294.50000,-432.00000 C 294.50000,-433.68600 293.52972,-435.10426 292.15625,-435.87500 C 292.33749,-436.39229 292.50000,-436.92108 292.50000,-437.50000 C 292.50000,-440.26000 290.26000,-442.49999 287.50000,-442.50000 C 286.66326,-442.50000 285.91198,-442.23883 285.21875,-441.87500 C 284.60991,-443.94972 282.77083,-445.50000 280.50000,-445.50000 z " fill="#c4c5c2" fill-opacity="1.0000000" stroke="#888a85" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 280.50000,-445.00000 C 278.31028,-445.00000 276.77640,-443.66423 276.10445,-441.15648 C 275.43599,-441.50010 274.55686,-441.98983 273.75000,-441.98983 C 271.03349,-441.98983 268.99486,-440.05101 268.99487,-437.44429 C 268.99487,-436.89752 269.26208,-436.11085 269.43683,-435.62228 C 268.11240,-434.89433 267.00000,-433.73178 267.00000,-432.24973 C 267.00000,-429.90368 268.54617,-427.99964 271.33928,-427.99964 C 271.51009,-427.99964 289.48992,-427.99964 289.66072,-427.99964 C 292.43173,-427.99964 294.00000,-429.90368 294.00000,-432.24973 C 294.00000,-433.84210 292.88760,-434.91642 291.56317,-435.64437 C 291.73793,-436.13293 292.02724,-436.89753 292.02724,-437.44429 C 292.02724,-440.05100 289.91143,-442.01192 287.25001,-442.01193 C 286.44314,-442.01193 285.60820,-441.52219 284.93974,-441.17857 C 284.29089,-443.60011 282.68973,-445.00000 280.50000,-445.00000 z " opacity="1.0000000" fill="url(#linearGradient10604)" fill-opacity="1.0000000" stroke="none" stroke-width="0.99999958" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <g> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="url(#linearGradient10606)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <rect - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="rect8810" - width="20.000000" - height="9.0000000" - x="271.00000" - y="-438.00000" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path8812" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830195,-35.68869)" /> - <g - id="g8814"> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19811,24.86321)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path8816" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19818,24.86331)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path8818" - style="opacity:1.0000000;fill:url(#linearGradient10608);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> + <rect width="20.000000" height="9.0000000" x="271.00000" y="-438.00000" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830195,-35.68869)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <g> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19811,24.86321)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19818,24.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="url(#linearGradient10608)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - id="g8820"> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path8822" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path8824" - style="opacity:1.0000000;fill:url(#linearGradient10610);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> + <g> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="url(#linearGradient10610)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - id="g8826" - transform="translate(-1.000000,0.000000)"> - <path - id="path8828" - d="M 280.46875,-440.96875 C 276.88937,-440.96875 274.00000,-438.04812 274.00000,-434.46875 C 274.00000,-432.09807 275.34943,-430.13096 277.25000,-429.00000 L 283.71875,-429.00000 C 285.61932,-430.13096 286.96875,-432.12931 286.96875,-434.50000 C 286.96875,-438.07938 284.04812,-440.96875 280.46875,-440.96875 z " - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <path - id="path8830" - d="M 280.50000,-441.00000 C 276.91200,-441.00000 274.00000,-438.08799 274.00000,-434.50000 C 274.00000,-432.12360 275.34485,-430.13368 277.25000,-429.00000 L 283.75000,-429.00000 C 285.65515,-430.13368 287.00000,-432.12360 287.00000,-434.50000 C 287.00000,-438.08800 284.08800,-440.99999 280.50000,-441.00000 z " - style="opacity:1.0000000;fill:url(#linearGradient10612);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> + <g transform="translate(-1.000000,0.000000)"> + <path d="M 280.46875,-440.96875 C 276.88937,-440.96875 274.00000,-438.04812 274.00000,-434.46875 C 274.00000,-432.09807 275.34943,-430.13096 277.25000,-429.00000 L 283.71875,-429.00000 C 285.61932,-430.13096 286.96875,-432.12931 286.96875,-434.50000 C 286.96875,-438.07938 284.04812,-440.96875 280.46875,-440.96875 z " opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 280.50000,-441.00000 C 276.91200,-441.00000 274.00000,-438.08799 274.00000,-434.50000 C 274.00000,-432.12360 275.34485,-430.13368 277.25000,-429.00000 L 283.75000,-429.00000 C 285.65515,-430.13368 287.00000,-432.12360 287.00000,-434.50000 C 287.00000,-438.08800 284.08800,-440.99999 280.50000,-441.00000 z " opacity="1.0000000" fill="url(#linearGradient10612)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:url(#linearGradient10614);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path8832" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830296,-35.68884)" /> - <path - style="fill:#888a85;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" - d="M 292.95640,-437.33396 C 292.95487,-434.64940 289.68714,-433.62001 289.68714,-433.62001 C 289.68714,-433.62001 292.03588,-435.24596 292.02399,-437.32502 C 292.02399,-437.32502 292.95640,-437.33396 292.95640,-437.33396 z " - id="path8834" - sodipodi:nodetypes="ccss" /> - <g - id="g8836" - transform="matrix(1.142857,0.000000,0.000000,1.142857,-28.57139,67.00008)"> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path8838" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path8840" - style="opacity:1.0000000;fill:url(#linearGradient10616);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830296,-35.68884)" opacity="1.0000000" fill="url(#linearGradient10614)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 292.95640,-437.33396 C 292.95487,-434.64940 289.68714,-433.62001 289.68714,-433.62001 C 289.68714,-433.62001 292.03588,-435.24596 292.02399,-437.32502 C 292.02399,-437.32502 292.95640,-437.33396 292.95640,-437.33396 z " fill="#888a85" fill-opacity="1.0000000" fill-rule="evenodd" stroke="none" stroke-width="1.0000000px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1.0000000"/> + <g transform="matrix(1.142857,0.000000,0.000000,1.142857,-28.57139,67.00008)"> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="url(#linearGradient10616)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> </g> - <g - transform="translate(76.02041,158.0000)" - id="g8754"> - <path - style="fill:#c4c5c2;fill-opacity:1.0000000;stroke:#888a85;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - d="M 280.50000,-445.50000 C 278.22917,-445.50000 276.39009,-443.94972 275.78125,-441.87500 C 275.08802,-442.23883 274.33674,-442.50000 273.50000,-442.50000 C 270.74000,-442.50000 268.49999,-440.26001 268.50000,-437.50000 C 268.50000,-436.92107 268.66252,-436.39230 268.84375,-435.87500 C 267.47028,-435.10426 266.50000,-433.68600 266.50000,-432.00000 C 266.50000,-429.51600 268.51600,-427.49999 271.00000,-427.50000 C 271.17713,-427.50000 289.82287,-427.50000 290.00000,-427.50000 C 292.48399,-427.50000 294.50000,-429.51600 294.50000,-432.00000 C 294.50000,-433.68600 293.52972,-435.10426 292.15625,-435.87500 C 292.33749,-436.39229 292.50000,-436.92108 292.50000,-437.50000 C 292.50000,-440.26000 290.26000,-442.49999 287.50000,-442.50000 C 286.66326,-442.50000 285.91198,-442.23883 285.21875,-441.87500 C 284.60991,-443.94972 282.77083,-445.50000 280.50000,-445.50000 z " - id="path8756" - sodipodi:nodetypes="ccsscsssscsscc" /> - <path - style="opacity:1.0000000;fill:url(#linearGradient10618);fill-opacity:1.0000000;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - d="M 280.50000,-445.00000 C 278.31028,-445.00000 276.77640,-443.66423 276.10445,-441.15648 C 275.43599,-441.50010 274.55686,-441.98983 273.75000,-441.98983 C 271.03349,-441.98983 268.99486,-440.05101 268.99487,-437.44429 C 268.99487,-436.89752 269.26208,-436.11085 269.43683,-435.62228 C 268.11240,-434.89433 267.00000,-433.73178 267.00000,-432.24973 C 267.00000,-429.90368 268.54617,-427.99964 271.33928,-427.99964 C 271.51009,-427.99964 289.48992,-427.99964 289.66072,-427.99964 C 292.43173,-427.99964 294.00000,-429.90368 294.00000,-432.24973 C 294.00000,-433.84210 292.88760,-434.91642 291.56317,-435.64437 C 291.73793,-436.13293 292.02724,-436.89753 292.02724,-437.44429 C 292.02724,-440.05100 289.91143,-442.01192 287.25001,-442.01193 C 286.44314,-442.01193 285.60820,-441.52219 284.93974,-441.17857 C 284.29089,-443.60011 282.68973,-445.00000 280.50000,-445.00000 z " - id="path8758" - sodipodi:nodetypes="ccsscsssscsscc" /> - <g - id="g8760"> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path8762" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path8764" - style="opacity:1.0000000;fill:url(#linearGradient10620);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> + <g transform="translate(76.02041,158.0000)"> + <path d="M 280.50000,-445.50000 C 278.22917,-445.50000 276.39009,-443.94972 275.78125,-441.87500 C 275.08802,-442.23883 274.33674,-442.50000 273.50000,-442.50000 C 270.74000,-442.50000 268.49999,-440.26001 268.50000,-437.50000 C 268.50000,-436.92107 268.66252,-436.39230 268.84375,-435.87500 C 267.47028,-435.10426 266.50000,-433.68600 266.50000,-432.00000 C 266.50000,-429.51600 268.51600,-427.49999 271.00000,-427.50000 C 271.17713,-427.50000 289.82287,-427.50000 290.00000,-427.50000 C 292.48399,-427.50000 294.50000,-429.51600 294.50000,-432.00000 C 294.50000,-433.68600 293.52972,-435.10426 292.15625,-435.87500 C 292.33749,-436.39229 292.50000,-436.92108 292.50000,-437.50000 C 292.50000,-440.26000 290.26000,-442.49999 287.50000,-442.50000 C 286.66326,-442.50000 285.91198,-442.23883 285.21875,-441.87500 C 284.60991,-443.94972 282.77083,-445.50000 280.50000,-445.50000 z " fill="#c4c5c2" fill-opacity="1.0000000" stroke="#888a85" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 280.50000,-445.00000 C 278.31028,-445.00000 276.77640,-443.66423 276.10445,-441.15648 C 275.43599,-441.50010 274.55686,-441.98983 273.75000,-441.98983 C 271.03349,-441.98983 268.99486,-440.05101 268.99487,-437.44429 C 268.99487,-436.89752 269.26208,-436.11085 269.43683,-435.62228 C 268.11240,-434.89433 267.00000,-433.73178 267.00000,-432.24973 C 267.00000,-429.90368 268.54617,-427.99964 271.33928,-427.99964 C 271.51009,-427.99964 289.48992,-427.99964 289.66072,-427.99964 C 292.43173,-427.99964 294.00000,-429.90368 294.00000,-432.24973 C 294.00000,-433.84210 292.88760,-434.91642 291.56317,-435.64437 C 291.73793,-436.13293 292.02724,-436.89753 292.02724,-437.44429 C 292.02724,-440.05100 289.91143,-442.01192 287.25001,-442.01193 C 286.44314,-442.01193 285.60820,-441.52219 284.93974,-441.17857 C 284.29089,-443.60011 282.68973,-445.00000 280.50000,-445.00000 z " opacity="1.0000000" fill="url(#linearGradient10618)" fill-opacity="1.0000000" stroke="none" stroke-width="0.99999958" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <g> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="url(#linearGradient10620)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <rect - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="rect8766" - width="20.000000" - height="9.0000000" - x="271.00000" - y="-438.00000" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path8768" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830195,-35.68869)" /> - <g - id="g8770"> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19811,24.86321)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path8772" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19818,24.86331)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path8774" - style="opacity:1.0000000;fill:url(#linearGradient10622);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> + <rect width="20.000000" height="9.0000000" x="271.00000" y="-438.00000" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830195,-35.68869)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <g> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19811,24.86321)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19818,24.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="url(#linearGradient10622)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - id="g8776"> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path8778" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path8780" - style="opacity:1.0000000;fill:url(#linearGradient10624);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> + <g> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="url(#linearGradient10624)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - id="g8782" - transform="translate(-1.000000,0.000000)"> - <path - id="path8784" - d="M 280.46875,-440.96875 C 276.88937,-440.96875 274.00000,-438.04812 274.00000,-434.46875 C 274.00000,-432.09807 275.34943,-430.13096 277.25000,-429.00000 L 283.71875,-429.00000 C 285.61932,-430.13096 286.96875,-432.12931 286.96875,-434.50000 C 286.96875,-438.07938 284.04812,-440.96875 280.46875,-440.96875 z " - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <path - id="path8786" - d="M 280.50000,-441.00000 C 276.91200,-441.00000 274.00000,-438.08799 274.00000,-434.50000 C 274.00000,-432.12360 275.34485,-430.13368 277.25000,-429.00000 L 283.75000,-429.00000 C 285.65515,-430.13368 287.00000,-432.12360 287.00000,-434.50000 C 287.00000,-438.08800 284.08800,-440.99999 280.50000,-441.00000 z " - style="opacity:1.0000000;fill:url(#linearGradient10626);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> + <g transform="translate(-1.000000,0.000000)"> + <path d="M 280.46875,-440.96875 C 276.88937,-440.96875 274.00000,-438.04812 274.00000,-434.46875 C 274.00000,-432.09807 275.34943,-430.13096 277.25000,-429.00000 L 283.71875,-429.00000 C 285.61932,-430.13096 286.96875,-432.12931 286.96875,-434.50000 C 286.96875,-438.07938 284.04812,-440.96875 280.46875,-440.96875 z " opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 280.50000,-441.00000 C 276.91200,-441.00000 274.00000,-438.08799 274.00000,-434.50000 C 274.00000,-432.12360 275.34485,-430.13368 277.25000,-429.00000 L 283.75000,-429.00000 C 285.65515,-430.13368 287.00000,-432.12360 287.00000,-434.50000 C 287.00000,-438.08800 284.08800,-440.99999 280.50000,-441.00000 z " opacity="1.0000000" fill="url(#linearGradient10626)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:url(#linearGradient10628);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path8788" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830296,-35.68884)" /> - <path - style="fill:#888a85;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" - d="M 292.95640,-437.33396 C 292.95487,-434.64940 289.68714,-433.62001 289.68714,-433.62001 C 289.68714,-433.62001 292.03588,-435.24596 292.02399,-437.32502 C 292.02399,-437.32502 292.95640,-437.33396 292.95640,-437.33396 z " - id="path8790" - sodipodi:nodetypes="ccss" /> - <g - id="g8792" - transform="matrix(1.142857,0.000000,0.000000,1.142857,-28.57139,67.00008)"> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path8794" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path8796" - style="opacity:1.0000000;fill:url(#linearGradient10630);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830296,-35.68884)" opacity="1.0000000" fill="url(#linearGradient10628)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 292.95640,-437.33396 C 292.95487,-434.64940 289.68714,-433.62001 289.68714,-433.62001 C 289.68714,-433.62001 292.03588,-435.24596 292.02399,-437.32502 C 292.02399,-437.32502 292.95640,-437.33396 292.95640,-437.33396 z " fill="#888a85" fill-opacity="1.0000000" fill-rule="evenodd" stroke="none" stroke-width="1.0000000px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1.0000000"/> + <g transform="matrix(1.142857,0.000000,0.000000,1.142857,-28.57139,67.00008)"> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="url(#linearGradient10630)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> </g> </g> - <g - id="g12157" - transform="translate(-163.0077,222.0147)"> - <path - transform="matrix(0.685520,0.000000,0.000000,0.685520,151.7017,27.15827)" - d="M 31.819805 -316.77872 A 2.2097087 2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087 2.2097087 0 1 1 31.819805 -316.77872 z" - sodipodi:ry="2.2097087" - sodipodi:rx="2.2097087" - sodipodi:cy="-316.77872" - sodipodi:cx="29.610096" - id="path12159" - style="opacity:1.0000000;fill:#ffffff;fill-opacity:1.0000000;stroke:#729fcf;stroke-width:1.4587468;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(0.915572,0.000000,0.000000,0.915587,152.4091,103.5577)" - d="M 31.819805 -316.77872 A 2.2097087 2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087 2.2097087 0 1 1 31.819805 -316.77872 z" - sodipodi:ry="2.2097087" - sodipodi:rx="2.2097087" - sodipodi:cy="-316.77872" - sodipodi:cx="29.610096" - id="path12161" - style="opacity:1.0000000;fill:#ffffff;fill-opacity:1.0000000;stroke:#729fcf;stroke-width:1.0922043;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(0.672406,0.000000,0.000000,0.683742,153.0708,34.62149)" - d="M 31.819805 -316.77872 A 2.2097087 2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087 2.2097087 0 1 1 31.819805 -316.77872 z" - sodipodi:ry="2.2097087" - sodipodi:rx="2.2097087" - sodipodi:cy="-316.77872" - sodipodi:cx="29.610096" - id="path12163" - style="opacity:1.0000000;fill:#ffffff;fill-opacity:1.0000000;stroke:#729fcf;stroke-width:1.4748161;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(0.682300,0.000000,0.000000,0.680269,181.7970,30.49471)" - d="M 31.819805 -316.77872 A 2.2097087 2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087 2.2097087 0 1 1 31.819805 -316.77872 z" - sodipodi:ry="2.2097087" - sodipodi:rx="2.2097087" - sodipodi:cy="-316.77872" - sodipodi:cx="29.610096" - id="path12165" - style="opacity:1.0000000;fill:#ffffff;fill-opacity:1.0000000;stroke:#729fcf;stroke-width:1.4678179;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.107132,0.000000,0.000000,1.117168,157.2177,164.9217)" - d="M 31.819805 -316.77872 A 2.2097087 2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087 2.2097087 0 1 1 31.819805 -316.77872 z" - sodipodi:ry="2.2097087" - sodipodi:rx="2.2097087" - sodipodi:cy="-316.77872" - sodipodi:cx="29.610096" - id="path12167" - style="opacity:1.0000000;fill:#ffffff;fill-opacity:1.0000000;stroke:#729fcf;stroke-width:0.89916825;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.127592,0.000000,0.000000,1.051830,161.6119,151.3731)" - d="M 31.819805 -316.77872 A 2.2097087 2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087 2.2097087 0 1 1 31.819805 -316.77872 z" - sodipodi:ry="2.2097087" - sodipodi:rx="2.2097087" - sodipodi:cy="-316.77872" - sodipodi:cx="29.610096" - id="path12169" - style="opacity:1.0000000;fill:#ffffff;fill-opacity:1.0000000;stroke:#729fcf;stroke-width:0.91822928;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(0.685519,0.000000,0.000000,0.680487,164.6869,34.56369)" - d="M 31.819805 -316.77872 A 2.2097087 2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087 2.2097087 0 1 1 31.819805 -316.77872 z" - sodipodi:ry="2.2097087" - sodipodi:rx="2.2097087" - sodipodi:cy="-316.77872" - sodipodi:cx="29.610096" - id="path12171" - style="opacity:1.0000000;fill:#ffffff;fill-opacity:1.0000000;stroke:#729fcf;stroke-width:1.4641328;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> + <g transform="translate(-163.0077,222.0147)"> + <path transform="matrix(0.685520,0.000000,0.000000,0.685520,151.7017,27.15827)" d="M 31.819805 -316.77872 A 2.2097087 2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087 2.2097087 0 1 1 31.819805 -316.77872 z" opacity="1.0000000" fill="#ffffff" fill-opacity="1.0000000" stroke="#729fcf" stroke-width="1.4587468" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(0.915572,0.000000,0.000000,0.915587,152.4091,103.5577)" d="M 31.819805 -316.77872 A 2.2097087 2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087 2.2097087 0 1 1 31.819805 -316.77872 z" opacity="1.0000000" fill="#ffffff" fill-opacity="1.0000000" stroke="#729fcf" stroke-width="1.0922043" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(0.672406,0.000000,0.000000,0.683742,153.0708,34.62149)" d="M 31.819805 -316.77872 A 2.2097087 2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087 2.2097087 0 1 1 31.819805 -316.77872 z" opacity="1.0000000" fill="#ffffff" fill-opacity="1.0000000" stroke="#729fcf" stroke-width="1.4748161" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(0.682300,0.000000,0.000000,0.680269,181.7970,30.49471)" d="M 31.819805 -316.77872 A 2.2097087 2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087 2.2097087 0 1 1 31.819805 -316.77872 z" opacity="1.0000000" fill="#ffffff" fill-opacity="1.0000000" stroke="#729fcf" stroke-width="1.4678179" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.107132,0.000000,0.000000,1.117168,157.2177,164.9217)" d="M 31.819805 -316.77872 A 2.2097087 2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087 2.2097087 0 1 1 31.819805 -316.77872 z" opacity="1.0000000" fill="#ffffff" fill-opacity="1.0000000" stroke="#729fcf" stroke-width="0.89916825" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.127592,0.000000,0.000000,1.051830,161.6119,151.3731)" d="M 31.819805 -316.77872 A 2.2097087 2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087 2.2097087 0 1 1 31.819805 -316.77872 z" opacity="1.0000000" fill="#ffffff" fill-opacity="1.0000000" stroke="#729fcf" stroke-width="0.91822928" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(0.685519,0.000000,0.000000,0.680487,164.6869,34.56369)" d="M 31.819805 -316.77872 A 2.2097087 2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087 2.2097087 0 1 1 31.819805 -316.77872 z" opacity="1.0000000" fill="#ffffff" fill-opacity="1.0000000" stroke="#729fcf" stroke-width="1.4641328" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> </g> </svg> diff --git a/demos/embedded/weatherinfo/icons/weather-storm.svg b/demos/embedded/weatherinfo/icons/weather-storm.svg index 4d8bfec..1ad47ab 100644 --- a/demos/embedded/weatherinfo/icons/weather-storm.svg +++ b/demos/embedded/weatherinfo/icons/weather-storm.svg @@ -1,3851 +1,94 @@ <?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="48px" - height="48px" - id="svg1306" - sodipodi:version="0.32" - inkscape:version="0.46" - sodipodi:docbase="/home/rcollier/Work/Novell/Tango/weather" - sodipodi:docname="weather-storm.svg" - inkscape:output_extension="org.inkscape.output.svg.inkscape"> - <defs - id="defs1308"> - <inkscape:perspective - sodipodi:type="inkscape:persp3d" - inkscape:vp_x="0 : 24 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_z="48 : 24 : 1" - inkscape:persp3d-origin="24 : 16 : 1" - id="perspective488" /> - <linearGradient - inkscape:collect="always" - id="linearGradient8397"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop8400" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop8402" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8397" - id="linearGradient13503" - gradientUnits="userSpaceOnUse" - x1="238.00478" - y1="-388.47476" - x2="245.65462" - y2="-382.64539" /> - <linearGradient - inkscape:collect="always" - id="linearGradient8315"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop8317" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop8319" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8315" - id="linearGradient13501" - gradientUnits="userSpaceOnUse" - x1="230.87598" - y1="-390.43951" - x2="235.25652" - y2="-386.95901" /> - <linearGradient - inkscape:collect="always" - id="linearGradient8381"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop8383" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop8385" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8381" - id="linearGradient13499" - gradientUnits="userSpaceOnUse" - x1="246.74042" - y1="-391.31381" - x2="252.69785" - y2="-385.35165" /> - <linearGradient - inkscape:collect="always" - id="linearGradient8331"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop8333" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop8335" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8331" - id="linearGradient13497" - gradientUnits="userSpaceOnUse" - x1="240.07379" - y1="-393.40720" - x2="245.82706" - y2="-388.55029" /> - <linearGradient - inkscape:collect="always" - id="linearGradient8302"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop8304" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop8306" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8302" - id="linearGradient13495" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(69.00000,155.0000)" - x1="228.50261" - y1="-392.30591" - x2="266.36395" - y2="-379.26862" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient13143" - gradientUnits="userSpaceOnUse" - x1="284.80219" - y1="-441.23294" - x2="288.89954" - y2="-436.83109" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6549" - id="linearGradient13141" - gradientUnits="userSpaceOnUse" - x1="286.66589" - y1="-439.48358" - x2="289.76562" - y2="-436.70703" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6527" - id="linearGradient13139" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-35.00007,207.0001)" - x1="275.94193" - y1="-437.10501" - x2="279.97546" - y2="-431.91833" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient13137" - gradientUnits="userSpaceOnUse" - x1="285.94086" - y1="-439.93900" - x2="289.39124" - y2="-436.44290" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6513" - id="linearGradient13135" - gradientUnits="userSpaceOnUse" - x1="286.51172" - y1="-441.29074" - x2="289.85379" - y2="-436.14453" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6497" - id="linearGradient13133" - gradientUnits="userSpaceOnUse" - x1="287.51730" - y1="-439.75281" - x2="289.67633" - y2="-436.32199" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6470" - id="linearGradient13131" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-34.00007,207.0001)" - x1="271.02170" - y1="-441.05182" - x2="285.02859" - y2="-431.96991" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8874" - id="linearGradient11195" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(14.15871,7.082841)" - x1="-190.47688" - y1="-332.51181" - x2="-196.19046" - y2="-328.53433" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8904" - id="linearGradient11193" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(13.80516,2.840199)" - x1="-191.28896" - y1="-328.07861" - x2="-192.41396" - y2="-315.32861" /> - <linearGradient - inkscape:collect="always" - id="linearGradient8874"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop8876" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop8878" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8874" - id="linearGradient11191" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(14.15871,7.082841)" - x1="-190.47688" - y1="-332.51181" - x2="-196.19046" - y2="-328.53433" /> - <linearGradient - inkscape:collect="always" - id="linearGradient8904"> - <stop - style="stop-color:#fcaf3e;stop-opacity:1;" - offset="0" - id="stop8906" /> - <stop - style="stop-color:#fcaf3e;stop-opacity:0;" - offset="1" - id="stop8908" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8904" - id="linearGradient11189" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(13.80516,2.840199)" - x1="-191.28896" - y1="-328.07861" - x2="-192.41396" - y2="-315.32861" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient5123" - id="radialGradient13211" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.930946,6.185702e-16,-2.842711e-16,0.448244,245.3644,184.9256)" - cx="-229.75000" - cy="-343.95554" - fx="-229.75000" - fy="-343.95554" - r="14.501380" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient13157" - gradientUnits="userSpaceOnUse" - x1="284.80219" - y1="-441.23294" - x2="288.89954" - y2="-436.83109" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6549"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6551" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6553" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6549" - id="linearGradient13155" - gradientUnits="userSpaceOnUse" - x1="286.66589" - y1="-439.48358" - x2="289.76562" - y2="-436.70703" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6527"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6530" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6532" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6527" - id="linearGradient13153" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-35.00007,207.0001)" - x1="275.94193" - y1="-437.10501" - x2="279.97546" - y2="-431.91833" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6538"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6540" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6542" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient13151" - gradientUnits="userSpaceOnUse" - x1="285.94086" - y1="-439.93900" - x2="289.39124" - y2="-436.44290" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6513"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6515" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6517" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6513" - id="linearGradient13149" - gradientUnits="userSpaceOnUse" - x1="286.51172" - y1="-441.29074" - x2="289.85379" - y2="-436.14453" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6497"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6499" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6501" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6497" - id="linearGradient13147" - gradientUnits="userSpaceOnUse" - x1="287.51730" - y1="-439.75281" - x2="289.67633" - y2="-436.32199" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6470"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6472" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6474" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6470" - id="linearGradient13145" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-34.00007,207.0001)" - x1="271.02170" - y1="-441.05182" - x2="285.02859" - y2="-431.96991" /> - <linearGradient - inkscape:collect="always" - id="linearGradient5123"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop5125" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop5127" /> - </linearGradient> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient5123" - id="radialGradient13068" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.930946,6.185702e-16,-2.842711e-16,0.448244,229.9269,180.9261)" - cx="-229.75000" - cy="-343.95554" - fx="-229.75000" - fy="-343.95554" - r="14.501380" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6840"> - <stop - style="stop-color:#ad7fa8;stop-opacity:1;" - offset="0" - id="stop6842" /> - <stop - style="stop-color:#ad7fa8;stop-opacity:0;" - offset="1" - id="stop6844" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient6828"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6830" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6832" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient6537"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6539" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6541" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient2298"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop2300" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop2302" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient3347"> - <stop - style="stop-color:#edd400;stop-opacity:1;" - offset="0" - id="stop3349" /> - <stop - style="stop-color:#edd400;stop-opacity:0;" - offset="1" - id="stop3351" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient2527"> - <stop - style="stop-color:#fcaf3e;stop-opacity:1;" - offset="0" - id="stop2529" /> - <stop - style="stop-color:#fcaf3e;stop-opacity:0;" - offset="1" - id="stop2531" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient2500"> - <stop - style="stop-color:#fce94f;stop-opacity:1;" - offset="0" - id="stop2502" /> - <stop - style="stop-color:#fce94f;stop-opacity:0;" - offset="1" - id="stop2504" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient2392"> - <stop - style="stop-color:#eeeeec;stop-opacity:1;" - offset="0" - id="stop2394" /> - <stop - style="stop-color:#eeeeec;stop-opacity:0;" - offset="1" - id="stop2396" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient2254"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop2256" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop2258" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2263" - gradientUnits="userSpaceOnUse" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" - gradientTransform="translate(-1.608757,3.097272)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2267" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(3.555020,0.968578)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2271" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(9.263651,3.495228)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2275" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(8.497184,-2.330824)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2279" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(14.46340,2.014073)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2283" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2287" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2291" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2295" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2299" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2303" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(1.707748,-5.784024)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2311" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2350" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(16.14002,24.66420)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2352" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-0.932144,25.87240)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2354" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(5.356636,23.86870)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2356" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(11.19027,26.52035)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2358" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(10.30638,19.27251)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2360" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,0.229156,30.76299)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2362" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,16.67145,27.22746)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2364" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,17.05272,31.47010)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2366" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-4.010744,24.96040)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2368" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,8.185476,29.52556)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2370" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(4.207586,21.30544)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2372" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.12415,32.08882)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2392" - id="linearGradient2398" - x1="6.6651416" - y1="13.802798" - x2="41.403877" - y2="13.802798" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2426" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(14.46340,2.014073)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2428" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(8.497184,-2.330824)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2430" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-1.608757,3.097272)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2432" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(3.555020,0.968578)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2434" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(9.263651,3.495228)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2436" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2438" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2440" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2442" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2444" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2446" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2392" - id="linearGradient2448" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" - x1="6.6651416" - y1="13.802798" - x2="41.403877" - y2="13.802798" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2392" - id="linearGradient2451" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,4.378541,10.65407)" - x1="6.6651416" - y1="13.802798" - x2="41.403877" - y2="13.802798" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2457" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2460" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2463" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2469" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2472" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(12.51365,8.745228)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2475" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(6.805020,6.218578)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2478" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(1.641243,8.347272)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2483" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(0.842481,-3.998086)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2500" - id="linearGradient2506" - x1="37.000000" - y1="-21.750000" - x2="53.750000" - y2="9.0000000" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2500" - id="linearGradient2509" - gradientUnits="userSpaceOnUse" - x1="37.000000" - y1="-21.750000" - x2="53.750000" - y2="9.0000000" - gradientTransform="matrix(0.889091,0.000000,0.000000,0.617886,-4.771368,39.81402)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2500" - id="linearGradient2513" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.605509,0.000000,0.000000,0.710542,-0.224971,42.19500)" - x1="38.857941" - y1="-18.407482" - x2="53.750000" - y2="9.0000000" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2500" - id="linearGradient2517" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.414169,0.000000,0.000000,0.778853,-1.910724,36.87850)" - x1="37.000000" - y1="-21.750000" - x2="53.750000" - y2="9.0000000" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2527" - id="linearGradient2533" - x1="-25.137094" - y1="-1.2491118" - x2="-35.652866" - y2="-24.884460" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2537" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(17.33814,3.415985)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2541" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(13.40064,1.353485)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2555" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-7.499805,1.708617)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2563" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-0.726830,2.481141)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3347" - id="linearGradient3353" - x1="23.303862" - y1="29.115711" - x2="29.750000" - y2="46.092930" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3366" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(13.40064,1.353485)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3368" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(1.641243,8.347272)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3370" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(6.805020,6.218578)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3372" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(12.51365,8.745228)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3374" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3376" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3378" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3380" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3383" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3386" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3389" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3392" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3395" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(3.674812,3.088370)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3398" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-2.033818,0.561720)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3401" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-7.197595,2.690414)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3405" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(4.561802,-4.303373)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - gradientUnits="userSpaceOnUse" - y2="-4.4493785" - x2="-34.700153" - y1="-37.550461" - x1="-27.006643" - id="linearGradient2916" - xlink:href="#linearGradient2298" - inkscape:collect="always" /> - <linearGradient - y2="-24.884460" - x2="-35.652866" - y1="-1.2491118" - x1="-25.137094" - gradientUnits="userSpaceOnUse" - id="linearGradient2914" - xlink:href="#linearGradient2527" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(57.97693,-10.56876)" - gradientUnits="userSpaceOnUse" - id="linearGradient2912" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,123.1162,-5.446357)" - gradientUnits="userSpaceOnUse" - id="linearGradient2910" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)" - gradientUnits="userSpaceOnUse" - id="linearGradient2908" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)" - gradientUnits="userSpaceOnUse" - id="linearGradient2906" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)" - gradientUnits="userSpaceOnUse" - id="linearGradient2904" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)" - gradientUnits="userSpaceOnUse" - id="linearGradient2902" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(3.674812,3.088370)" - gradientUnits="userSpaceOnUse" - id="linearGradient2900" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-2.033818,0.561720)" - gradientUnits="userSpaceOnUse" - id="linearGradient2898" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-7.197595,2.690414)" - gradientUnits="userSpaceOnUse" - id="linearGradient2896" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="-24.884460" - x2="-35.652866" - y1="-1.2491118" - x1="-25.137094" - gradientUnits="userSpaceOnUse" - id="linearGradient2894" - xlink:href="#linearGradient2527" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,79.36909,-3.193747)" - gradientUnits="userSpaceOnUse" - id="linearGradient2892" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,56.25514,-12.39388)" - gradientUnits="userSpaceOnUse" - id="linearGradient2890" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(88.49344,-9.697877)" - gradientUnits="userSpaceOnUse" - id="linearGradient2888" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(4.561802,-4.303373)" - gradientUnits="userSpaceOnUse" - id="linearGradient2886" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-7.197595,2.690414)" - gradientUnits="userSpaceOnUse" - id="linearGradient2884" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-2.033818,0.561720)" - gradientUnits="userSpaceOnUse" - id="linearGradient2882" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(3.674812,3.088370)" - gradientUnits="userSpaceOnUse" - id="linearGradient2880" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)" - gradientUnits="userSpaceOnUse" - id="linearGradient2878" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)" - gradientUnits="userSpaceOnUse" - id="linearGradient2876" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)" - gradientUnits="userSpaceOnUse" - id="linearGradient2874" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)" - gradientUnits="userSpaceOnUse" - id="linearGradient2872" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)" - gradientUnits="userSpaceOnUse" - id="linearGradient2870" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)" - gradientUnits="userSpaceOnUse" - id="linearGradient2868" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)" - gradientUnits="userSpaceOnUse" - id="linearGradient2866" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)" - gradientUnits="userSpaceOnUse" - id="linearGradient2864" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(12.51365,8.745228)" - gradientUnits="userSpaceOnUse" - id="linearGradient2862" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(6.805020,6.218578)" - gradientUnits="userSpaceOnUse" - id="linearGradient2860" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(1.641243,8.347272)" - gradientUnits="userSpaceOnUse" - id="linearGradient2858" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(13.40064,1.353485)" - gradientUnits="userSpaceOnUse" - id="linearGradient2856" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientUnits="userSpaceOnUse" - y2="46.092930" - x2="29.750000" - y1="29.115711" - x1="23.303862" - id="linearGradient2854" - xlink:href="#linearGradient3347" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-0.726830,2.481141)" - gradientUnits="userSpaceOnUse" - id="linearGradient2852" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-7.499805,1.708617)" - gradientUnits="userSpaceOnUse" - id="linearGradient2850" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(13.40064,1.353485)" - gradientUnits="userSpaceOnUse" - id="linearGradient2848" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(17.33814,3.415985)" - gradientUnits="userSpaceOnUse" - id="linearGradient2846" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientUnits="userSpaceOnUse" - y2="-24.884460" - x2="-35.652866" - y1="-1.2491118" - x1="-25.137094" - id="linearGradient2844" - xlink:href="#linearGradient2527" - inkscape:collect="always" /> - <linearGradient - y2="9.0000000" - x2="53.750000" - y1="-21.750000" - x1="37.000000" - gradientTransform="matrix(0.414169,0.000000,0.000000,0.778853,-1.910724,36.87850)" - gradientUnits="userSpaceOnUse" - id="linearGradient2842" - xlink:href="#linearGradient2500" - inkscape:collect="always" /> - <linearGradient - y2="9.0000000" - x2="53.750000" - y1="-18.407482" - x1="38.857941" - gradientTransform="matrix(0.605509,0.000000,0.000000,0.710542,-0.224971,42.19500)" - gradientUnits="userSpaceOnUse" - id="linearGradient2840" - xlink:href="#linearGradient2500" - inkscape:collect="always" /> - <linearGradient - gradientTransform="matrix(0.889091,0.000000,0.000000,0.617886,-4.771368,39.81402)" - y2="9.0000000" - x2="53.750000" - y1="-21.750000" - x1="37.000000" - gradientUnits="userSpaceOnUse" - id="linearGradient2838" - xlink:href="#linearGradient2500" - inkscape:collect="always" /> - <linearGradient - gradientUnits="userSpaceOnUse" - y2="9.0000000" - x2="53.750000" - y1="-21.750000" - x1="37.000000" - id="linearGradient2836" - xlink:href="#linearGradient2500" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(0.842481,-3.998086)" - gradientUnits="userSpaceOnUse" - id="linearGradient2834" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(1.641243,8.347272)" - gradientUnits="userSpaceOnUse" - id="linearGradient2832" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(6.805020,6.218578)" - gradientUnits="userSpaceOnUse" - id="linearGradient2830" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(12.51365,8.745228)" - gradientUnits="userSpaceOnUse" - id="linearGradient2828" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)" - gradientUnits="userSpaceOnUse" - id="linearGradient2826" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)" - gradientUnits="userSpaceOnUse" - id="linearGradient2824" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)" - gradientUnits="userSpaceOnUse" - id="linearGradient2822" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)" - gradientUnits="userSpaceOnUse" - id="linearGradient2820" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="13.802798" - x2="41.403877" - y1="13.802798" - x1="6.6651416" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,4.378541,10.65407)" - gradientUnits="userSpaceOnUse" - id="linearGradient2818" - xlink:href="#linearGradient2392" - inkscape:collect="always" /> - <linearGradient - y2="13.802798" - x2="41.403877" - y1="13.802798" - x1="6.6651416" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" - gradientUnits="userSpaceOnUse" - id="linearGradient2816" - xlink:href="#linearGradient2392" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)" - gradientUnits="userSpaceOnUse" - id="linearGradient2814" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)" - gradientUnits="userSpaceOnUse" - id="linearGradient2812" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)" - gradientUnits="userSpaceOnUse" - id="linearGradient2810" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)" - gradientUnits="userSpaceOnUse" - id="linearGradient2808" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)" - gradientUnits="userSpaceOnUse" - id="linearGradient2806" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)" - gradientUnits="userSpaceOnUse" - id="linearGradient2804" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(9.263651,3.495228)" - gradientUnits="userSpaceOnUse" - id="linearGradient2802" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(3.555020,0.968578)" - gradientUnits="userSpaceOnUse" - id="linearGradient2800" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-1.608757,3.097272)" - gradientUnits="userSpaceOnUse" - id="linearGradient2798" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(8.497184,-2.330824)" - gradientUnits="userSpaceOnUse" - id="linearGradient2796" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(14.46340,2.014073)" - gradientUnits="userSpaceOnUse" - id="linearGradient2794" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" - gradientUnits="userSpaceOnUse" - y2="13.802798" - x2="41.403877" - y1="13.802798" - x1="6.6651416" - id="linearGradient2792" - xlink:href="#linearGradient2392" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.12415,32.08882)" - gradientUnits="userSpaceOnUse" - id="linearGradient2790" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(4.207586,21.30544)" - gradientUnits="userSpaceOnUse" - id="linearGradient2788" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,8.185476,29.52556)" - gradientUnits="userSpaceOnUse" - id="linearGradient2786" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-4.010744,24.96040)" - gradientUnits="userSpaceOnUse" - id="linearGradient2784" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,17.05272,31.47010)" - gradientUnits="userSpaceOnUse" - id="linearGradient2782" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,16.67145,27.22746)" - gradientUnits="userSpaceOnUse" - id="linearGradient2780" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,0.229156,30.76299)" - gradientUnits="userSpaceOnUse" - id="linearGradient2778" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(10.30638,19.27251)" - gradientUnits="userSpaceOnUse" - id="linearGradient2776" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(11.19027,26.52035)" - gradientUnits="userSpaceOnUse" - id="linearGradient2774" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(5.356636,23.86870)" - gradientUnits="userSpaceOnUse" - id="linearGradient2772" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-0.932144,25.87240)" - gradientUnits="userSpaceOnUse" - id="linearGradient2770" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(16.14002,24.66420)" - gradientUnits="userSpaceOnUse" - id="linearGradient2768" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)" - gradientUnits="userSpaceOnUse" - id="linearGradient2766" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(1.707748,-5.784024)" - gradientUnits="userSpaceOnUse" - id="linearGradient2764" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)" - gradientUnits="userSpaceOnUse" - id="linearGradient2762" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)" - gradientUnits="userSpaceOnUse" - id="linearGradient2760" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)" - gradientUnits="userSpaceOnUse" - id="linearGradient2758" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)" - gradientUnits="userSpaceOnUse" - id="linearGradient2756" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)" - gradientUnits="userSpaceOnUse" - id="linearGradient2754" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(14.46340,2.014073)" - gradientUnits="userSpaceOnUse" - id="linearGradient2752" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(8.497184,-2.330824)" - gradientUnits="userSpaceOnUse" - id="linearGradient2750" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(9.263651,3.495228)" - gradientUnits="userSpaceOnUse" - id="linearGradient2748" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(3.555020,0.968578)" - gradientUnits="userSpaceOnUse" - id="linearGradient2746" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientTransform="translate(-1.608757,3.097272)" - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientUnits="userSpaceOnUse" - id="linearGradient2744" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientUnits="userSpaceOnUse" - y2="-4.4493785" - x2="-34.700153" - y1="-37.550461" - x1="-27.006643" - id="linearGradient2304" - xlink:href="#linearGradient2298" - inkscape:collect="always" /> - <linearGradient - y2="-24.884460" - x2="-35.652866" - y1="-1.2491118" - x1="-25.137094" - gradientUnits="userSpaceOnUse" - id="linearGradient1557" - xlink:href="#linearGradient2527" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(57.97693,-10.56876)" - gradientUnits="userSpaceOnUse" - id="linearGradient1538" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,123.1162,-5.446357)" - gradientUnits="userSpaceOnUse" - id="linearGradient1536" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)" - gradientUnits="userSpaceOnUse" - id="linearGradient1534" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)" - gradientUnits="userSpaceOnUse" - id="linearGradient1532" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)" - gradientUnits="userSpaceOnUse" - id="linearGradient1530" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)" - gradientUnits="userSpaceOnUse" - id="linearGradient1528" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(3.674812,3.088370)" - gradientUnits="userSpaceOnUse" - id="linearGradient1526" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-2.033818,0.561720)" - gradientUnits="userSpaceOnUse" - id="linearGradient1524" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-7.197595,2.690414)" - gradientUnits="userSpaceOnUse" - id="linearGradient1522" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="-24.884460" - x2="-35.652866" - y1="-1.2491118" - x1="-25.137094" - gradientUnits="userSpaceOnUse" - id="linearGradient1520" - xlink:href="#linearGradient2527" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,79.36909,-3.193747)" - gradientUnits="userSpaceOnUse" - id="linearGradient1518" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,56.25514,-12.39388)" - gradientUnits="userSpaceOnUse" - id="linearGradient1516" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(88.49344,-9.697877)" - gradientUnits="userSpaceOnUse" - id="linearGradient1514" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(4.561802,-4.303373)" - gradientUnits="userSpaceOnUse" - id="linearGradient5957" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-7.197595,2.690414)" - gradientUnits="userSpaceOnUse" - id="linearGradient5955" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-2.033818,0.561720)" - gradientUnits="userSpaceOnUse" - id="linearGradient5953" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(3.674812,3.088370)" - gradientUnits="userSpaceOnUse" - id="linearGradient5951" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)" - gradientUnits="userSpaceOnUse" - id="linearGradient5949" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)" - gradientUnits="userSpaceOnUse" - id="linearGradient5947" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)" - gradientUnits="userSpaceOnUse" - id="linearGradient5945" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)" - gradientUnits="userSpaceOnUse" - id="linearGradient5943" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)" - gradientUnits="userSpaceOnUse" - id="linearGradient5941" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)" - gradientUnits="userSpaceOnUse" - id="linearGradient5939" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)" - gradientUnits="userSpaceOnUse" - id="linearGradient5937" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)" - gradientUnits="userSpaceOnUse" - id="linearGradient5935" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(12.51365,8.745228)" - gradientUnits="userSpaceOnUse" - id="linearGradient5933" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(6.805020,6.218578)" - gradientUnits="userSpaceOnUse" - id="linearGradient5931" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(1.641243,8.347272)" - gradientUnits="userSpaceOnUse" - id="linearGradient5929" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(13.40064,1.353485)" - gradientUnits="userSpaceOnUse" - id="linearGradient5927" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientUnits="userSpaceOnUse" - y2="46.092930" - x2="29.750000" - y1="29.115711" - x1="23.303862" - id="linearGradient5925" - xlink:href="#linearGradient3347" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-0.726830,2.481141)" - gradientUnits="userSpaceOnUse" - id="linearGradient5923" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-7.499805,1.708617)" - gradientUnits="userSpaceOnUse" - id="linearGradient5921" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(13.40064,1.353485)" - gradientUnits="userSpaceOnUse" - id="linearGradient5919" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(17.33814,3.415985)" - gradientUnits="userSpaceOnUse" - id="linearGradient5917" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientUnits="userSpaceOnUse" - y2="-24.884460" - x2="-35.652866" - y1="-1.2491118" - x1="-25.137094" - id="linearGradient5915" - xlink:href="#linearGradient2527" - inkscape:collect="always" /> - <linearGradient - y2="9.0000000" - x2="53.750000" - y1="-21.750000" - x1="37.000000" - gradientTransform="matrix(0.414169,0.000000,0.000000,0.778853,-1.910724,36.87850)" - gradientUnits="userSpaceOnUse" - id="linearGradient5913" - xlink:href="#linearGradient2500" - inkscape:collect="always" /> - <linearGradient - y2="9.0000000" - x2="53.750000" - y1="-18.407482" - x1="38.857941" - gradientTransform="matrix(0.605509,0.000000,0.000000,0.710542,-0.224971,42.19500)" - gradientUnits="userSpaceOnUse" - id="linearGradient5911" - xlink:href="#linearGradient2500" - inkscape:collect="always" /> - <linearGradient - gradientTransform="matrix(0.889091,0.000000,0.000000,0.617886,-4.771368,39.81402)" - y2="9.0000000" - x2="53.750000" - y1="-21.750000" - x1="37.000000" - gradientUnits="userSpaceOnUse" - id="linearGradient5909" - xlink:href="#linearGradient2500" - inkscape:collect="always" /> - <linearGradient - gradientUnits="userSpaceOnUse" - y2="9.0000000" - x2="53.750000" - y1="-21.750000" - x1="37.000000" - id="linearGradient5907" - xlink:href="#linearGradient2500" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(0.842481,-3.998086)" - gradientUnits="userSpaceOnUse" - id="linearGradient5905" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(1.641243,8.347272)" - gradientUnits="userSpaceOnUse" - id="linearGradient5903" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(6.805020,6.218578)" - gradientUnits="userSpaceOnUse" - id="linearGradient5901" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(12.51365,8.745228)" - gradientUnits="userSpaceOnUse" - id="linearGradient5899" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)" - gradientUnits="userSpaceOnUse" - id="linearGradient5897" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)" - gradientUnits="userSpaceOnUse" - id="linearGradient5895" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)" - gradientUnits="userSpaceOnUse" - id="linearGradient5893" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)" - gradientUnits="userSpaceOnUse" - id="linearGradient5891" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="13.802798" - x2="41.403877" - y1="13.802798" - x1="6.6651416" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,4.378541,10.65407)" - gradientUnits="userSpaceOnUse" - id="linearGradient5889" - xlink:href="#linearGradient2392" - inkscape:collect="always" /> - <linearGradient - y2="13.802798" - x2="41.403877" - y1="13.802798" - x1="6.6651416" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" - gradientUnits="userSpaceOnUse" - id="linearGradient5887" - xlink:href="#linearGradient2392" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)" - gradientUnits="userSpaceOnUse" - id="linearGradient5885" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)" - gradientUnits="userSpaceOnUse" - id="linearGradient5883" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)" - gradientUnits="userSpaceOnUse" - id="linearGradient5881" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)" - gradientUnits="userSpaceOnUse" - id="linearGradient5879" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)" - gradientUnits="userSpaceOnUse" - id="linearGradient5877" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)" - gradientUnits="userSpaceOnUse" - id="linearGradient5875" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(9.263651,3.495228)" - gradientUnits="userSpaceOnUse" - id="linearGradient5873" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(3.555020,0.968578)" - gradientUnits="userSpaceOnUse" - id="linearGradient5871" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-1.608757,3.097272)" - gradientUnits="userSpaceOnUse" - id="linearGradient5869" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(8.497184,-2.330824)" - gradientUnits="userSpaceOnUse" - id="linearGradient5867" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(14.46340,2.014073)" - gradientUnits="userSpaceOnUse" - id="linearGradient5865" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" - gradientUnits="userSpaceOnUse" - y2="13.802798" - x2="41.403877" - y1="13.802798" - x1="6.6651416" - id="linearGradient5863" - xlink:href="#linearGradient2392" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.12415,32.08882)" - gradientUnits="userSpaceOnUse" - id="linearGradient5861" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(4.207586,21.30544)" - gradientUnits="userSpaceOnUse" - id="linearGradient5859" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,8.185476,29.52556)" - gradientUnits="userSpaceOnUse" - id="linearGradient5857" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-4.010744,24.96040)" - gradientUnits="userSpaceOnUse" - id="linearGradient5855" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,17.05272,31.47010)" - gradientUnits="userSpaceOnUse" - id="linearGradient5853" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,16.67145,27.22746)" - gradientUnits="userSpaceOnUse" - id="linearGradient5851" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,0.229156,30.76299)" - gradientUnits="userSpaceOnUse" - id="linearGradient5849" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(10.30638,19.27251)" - gradientUnits="userSpaceOnUse" - id="linearGradient5847" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(11.19027,26.52035)" - gradientUnits="userSpaceOnUse" - id="linearGradient5845" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(5.356636,23.86870)" - gradientUnits="userSpaceOnUse" - id="linearGradient5843" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-0.932144,25.87240)" - gradientUnits="userSpaceOnUse" - id="linearGradient5841" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(16.14002,24.66420)" - gradientUnits="userSpaceOnUse" - id="linearGradient5839" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)" - gradientUnits="userSpaceOnUse" - id="linearGradient5837" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(1.707748,-5.784024)" - gradientUnits="userSpaceOnUse" - id="linearGradient5835" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)" - gradientUnits="userSpaceOnUse" - id="linearGradient5833" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)" - gradientUnits="userSpaceOnUse" - id="linearGradient5831" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)" - gradientUnits="userSpaceOnUse" - id="linearGradient5829" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)" - gradientUnits="userSpaceOnUse" - id="linearGradient5827" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)" - gradientUnits="userSpaceOnUse" - id="linearGradient5825" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(14.46340,2.014073)" - gradientUnits="userSpaceOnUse" - id="linearGradient5823" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(8.497184,-2.330824)" - gradientUnits="userSpaceOnUse" - id="linearGradient5821" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(9.263651,3.495228)" - gradientUnits="userSpaceOnUse" - id="linearGradient5819" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(3.555020,0.968578)" - gradientUnits="userSpaceOnUse" - id="linearGradient5817" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientTransform="translate(-1.608757,3.097272)" - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientUnits="userSpaceOnUse" - id="linearGradient5815" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6098" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-9.002513,11.93373)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6101" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.13675,17.05613)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6118" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,12.38965,19.30874)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6121" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-10.72430,10.10861)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6124" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(21.51400,12.80461)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6179" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-7.197595,2.690414)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6181" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-2.033818,0.561720)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6183" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(3.674812,3.088370)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6185" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6187" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6189" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6191" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2527" - id="linearGradient6193" - gradientUnits="userSpaceOnUse" - x1="-25.137094" - y1="-1.2491118" - x2="-35.652866" - y2="-24.884460" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6196" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,2.209129,10.83861)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6199" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-9.862093,6.148450)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6202" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,10.70137,12.90816)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6205" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-4.372193,11.95105)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6208" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(5.088919,7.833409)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6211" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-0.619711,5.306759)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6214" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-5.783488,7.435453)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6242" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-5.783488,7.435453)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6244" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-0.619711,5.306759)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6246" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(5.088919,7.833409)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6248" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,10.70137,12.90816)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6250" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-9.862093,6.148450)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6252" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,2.209129,10.83861)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6254" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-9.002513,11.93373)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6257" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-0.297112,4.275205)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6260" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,10.91453,3.180085)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6263" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-1.156692,-1.510075)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6266" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,19.40677,5.249635)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6269" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(13.79432,0.174884)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6272" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(8.085690,-2.351766)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6275" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(2.921913,-0.223072)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6311" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(21.51400,12.80461)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6313" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-10.72430,10.10861)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6315" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,12.38965,19.30874)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6317" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-1.156692,-1.510075)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6319" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.13675,17.05613)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6321" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-5.783488,7.435453)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6323" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-0.619711,5.306759)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6325" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(5.088919,7.833409)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6327" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,10.70137,12.90816)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6329" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-9.862093,6.148450)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6331" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,2.209129,10.83861)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6333" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-9.002513,11.93373)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6335" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(2.921913,-0.223072)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6337" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(8.085690,-2.351766)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6339" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(13.79432,0.174884)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6341" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,19.40677,5.249635)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6343" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,10.91453,3.180085)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6537" - id="linearGradient6543" - x1="27.320963" - y1="44.228481" - x2="52.328316" - y2="44.228481" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.526962,0.000000,-2.763717e-17,0.972572,16.13182,0.843286)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6537" - id="linearGradient6547" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.526962,0.000000,-4.388782e-16,0.972572,25.91493,0.633642)" - x1="27.320963" - y1="44.228481" - x2="52.328316" - y2="44.228481" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6537" - id="linearGradient6551" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.526962,0.000000,-4.388782e-16,0.972572,36.25638,0.633643)" - x1="27.320963" - y1="44.228481" - x2="45.115814" - y2="44.228455" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6537" - id="linearGradient6559" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.526962,0.000000,-2.332577e-16,0.972572,16.13182,0.843286)" - x1="27.320963" - y1="44.228481" - x2="52.328316" - y2="44.228481" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6537" - id="linearGradient6561" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.526962,0.000000,-6.444987e-16,0.972572,25.91493,0.633642)" - x1="27.320963" - y1="44.228481" - x2="52.328316" - y2="44.228481" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6537" - id="linearGradient6563" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.526962,0.000000,-6.444987e-16,0.972572,36.25638,0.633643)" - x1="27.320963" - y1="44.228481" - x2="45.115814" - y2="44.228455" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6537" - id="linearGradient6566" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.577744,0.000000,-6.388715e-16,1.006703,39.04124,-0.702889)" - x1="27.320963" - y1="44.228481" - x2="45.115814" - y2="44.228455" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6537" - id="linearGradient6569" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.577744,0.000000,-6.388715e-16,1.006703,27.70322,-0.702890)" - x1="27.320963" - y1="44.228481" - x2="52.328316" - y2="44.228481" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6537" - id="linearGradient6572" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.577744,0.000000,-1.880005e-16,1.006703,16.97734,-0.485889)" - x1="27.320963" - y1="44.228481" - x2="52.328316" - y2="44.228481" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6576" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.132431,0.000000,0.000000,1.016132,10.54485,-4.728138)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6579" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.853605,0.000000,0.000000,1.016132,19.23518,-2.625202)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6582" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,13.49182,-7.781819)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6585" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,7.650036,-10.34923)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6588" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,2.365814,-8.186195)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6599" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.999079,0.000000,0.000000,1.016132,56.82188,9.371753)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6603" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.496116,0.000000,0.000000,1.282841,-1.807925,-9.493960)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6606" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.314274,0.000000,0.000000,1.016132,12.05438,11.66070)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6609" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.496116,0.000000,0.000000,1.282841,-11.59870,2.312158)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6612" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,21.39156,5.051653)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6618" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,16.09471,2.948843)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6622" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,11.32174,9.047633)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6624" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-5.783488,7.435453)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6626" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-0.619711,5.306759)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6628" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(5.088919,7.833409)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6630" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,10.70137,12.90816)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6632" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-9.862093,6.148450)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6634" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,2.209129,10.83861)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6636" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-9.002513,11.93373)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient6828" - id="radialGradient6834" - cx="15.147860" - cy="23.822156" - fx="15.147860" - fy="23.822156" - r="12.852140" - gradientTransform="matrix(0.654874,0.000000,0.000000,0.398574,2.663540,12.14676)" - gradientUnits="userSpaceOnUse" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient6840" - id="radialGradient6846" - cx="32.583473" - cy="25.240442" - fx="32.583473" - fy="25.240442" - r="8.4165270" - gradientTransform="matrix(1.000000,0.000000,0.000000,0.503823,-15.00000,6.042836)" - gradientUnits="userSpaceOnUse" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient6828" - id="radialGradient6852" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.654874,0.000000,0.000000,0.398574,44.33646,16.14676)" - cx="15.147860" - cy="23.822156" - fx="15.147860" - fy="23.822156" - r="12.852140" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient6840" - id="radialGradient6854" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-1.000000,0.000000,0.000000,0.503823,62.00000,10.04284)" - cx="32.583473" - cy="25.240442" - fx="32.583473" - fy="25.240442" - r="8.4165270" /> +<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="48px" height="48px" id="svg1306"> + <defs id="defs1308"> + <linearGradient id="linearGradient8397"> + <stop offset="0" id="stop8400" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop8402" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient8397" id="linearGradient13503" gradientUnits="userSpaceOnUse" x1="238.00478" y1="-388.47476" x2="245.65462" y2="-382.64539"/> + <linearGradient id="linearGradient8315"> + <stop offset="0" id="stop8317" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop8319" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient8315" id="linearGradient13501" gradientUnits="userSpaceOnUse" x1="230.87598" y1="-390.43951" x2="235.25652" y2="-386.95901"/> + <linearGradient id="linearGradient8381"> + <stop offset="0" id="stop8383" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop8385" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient8381" id="linearGradient13499" gradientUnits="userSpaceOnUse" x1="246.74042" y1="-391.31381" x2="252.69785" y2="-385.35165"/> + <linearGradient id="linearGradient8331"> + <stop offset="0" id="stop8333" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop8335" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient8331" id="linearGradient13497" gradientUnits="userSpaceOnUse" x1="240.07379" y1="-393.40720" x2="245.82706" y2="-388.55029"/> + <linearGradient id="linearGradient8302"> + <stop offset="0" id="stop8304" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop8306" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient8302" id="linearGradient13495" gradientUnits="userSpaceOnUse" gradientTransform="translate(69.00000,155.0000)" x1="228.50261" y1="-392.30591" x2="266.36395" y2="-379.26862"/> + <linearGradient xlink:href="#linearGradient6538" id="linearGradient13143" gradientUnits="userSpaceOnUse" x1="284.80219" y1="-441.23294" x2="288.89954" y2="-436.83109"/> + <linearGradient xlink:href="#linearGradient6549" id="linearGradient13141" gradientUnits="userSpaceOnUse" x1="286.66589" y1="-439.48358" x2="289.76562" y2="-436.70703"/> + <linearGradient xlink:href="#linearGradient6527" id="linearGradient13139" gradientUnits="userSpaceOnUse" gradientTransform="translate(-35.00007,207.0001)" x1="275.94193" y1="-437.10501" x2="279.97546" y2="-431.91833"/> + <linearGradient xlink:href="#linearGradient6538" id="linearGradient13137" gradientUnits="userSpaceOnUse" x1="285.94086" y1="-439.93900" x2="289.39124" y2="-436.44290"/> + <linearGradient xlink:href="#linearGradient6513" id="linearGradient13135" gradientUnits="userSpaceOnUse" x1="286.51172" y1="-441.29074" x2="289.85379" y2="-436.14453"/> + <linearGradient xlink:href="#linearGradient6497" id="linearGradient13133" gradientUnits="userSpaceOnUse" x1="287.51730" y1="-439.75281" x2="289.67633" y2="-436.32199"/> + <linearGradient xlink:href="#linearGradient6470" id="linearGradient13131" gradientUnits="userSpaceOnUse" gradientTransform="translate(-34.00007,207.0001)" x1="271.02170" y1="-441.05182" x2="285.02859" y2="-431.96991"/> + <linearGradient xlink:href="#linearGradient8874" id="linearGradient11195" gradientUnits="userSpaceOnUse" gradientTransform="translate(14.15871,7.082841)" x1="-190.47688" y1="-332.51181" x2="-196.19046" y2="-328.53433"/> + <linearGradient xlink:href="#linearGradient8904" id="linearGradient11193" gradientUnits="userSpaceOnUse" gradientTransform="translate(13.80516,2.840199)" x1="-191.28896" y1="-328.07861" x2="-192.41396" y2="-315.32861"/> + <linearGradient id="linearGradient8874"> + <stop offset="0" id="stop8876" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop8878" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient8874" id="linearGradient11191" gradientUnits="userSpaceOnUse" gradientTransform="translate(14.15871,7.082841)" x1="-190.47688" y1="-332.51181" x2="-196.19046" y2="-328.53433"/> + <linearGradient id="linearGradient8904"> + <stop offset="0" id="stop8906" stop-color="#fcaf3e" stop-opacity="1"/> + <stop offset="1" id="stop8908" stop-color="#fcaf3e" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient8904" id="linearGradient11189" gradientUnits="userSpaceOnUse" gradientTransform="translate(13.80516,2.840199)" x1="-191.28896" y1="-328.07861" x2="-192.41396" y2="-315.32861"/> + <radialGradient xlink:href="#linearGradient5123" id="radialGradient13211" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.930946,6.185702e-16,-2.842711e-16,0.448244,245.3644,184.9256)" cx="-229.75000" cy="-343.95554" fx="-229.75000" fy="-343.95554" r="14.501380"/> + <linearGradient xlink:href="#linearGradient6538" id="linearGradient13157" gradientUnits="userSpaceOnUse" x1="284.80219" y1="-441.23294" x2="288.89954" y2="-436.83109"/> + <linearGradient id="linearGradient6549"> + <stop offset="0" id="stop6551" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6553" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient6549" id="linearGradient13155" gradientUnits="userSpaceOnUse" x1="286.66589" y1="-439.48358" x2="289.76562" y2="-436.70703"/> + <linearGradient id="linearGradient6527"> + <stop offset="0" id="stop6530" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6532" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient6527" id="linearGradient13153" gradientUnits="userSpaceOnUse" gradientTransform="translate(-35.00007,207.0001)" x1="275.94193" y1="-437.10501" x2="279.97546" y2="-431.91833"/> + <linearGradient id="linearGradient6538"> + <stop offset="0" id="stop6540" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6542" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient6538" id="linearGradient13151" gradientUnits="userSpaceOnUse" x1="285.94086" y1="-439.93900" x2="289.39124" y2="-436.44290"/> + <linearGradient id="linearGradient6513"> + <stop offset="0" id="stop6515" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6517" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient6513" id="linearGradient13149" gradientUnits="userSpaceOnUse" x1="286.51172" y1="-441.29074" x2="289.85379" y2="-436.14453"/> + <linearGradient id="linearGradient6497"> + <stop offset="0" id="stop6499" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6501" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient6497" id="linearGradient13147" gradientUnits="userSpaceOnUse" x1="287.51730" y1="-439.75281" x2="289.67633" y2="-436.32199"/> + <linearGradient id="linearGradient6470"> + <stop offset="0" id="stop6472" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6474" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient6470" id="linearGradient13145" gradientUnits="userSpaceOnUse" gradientTransform="translate(-34.00007,207.0001)" x1="271.02170" y1="-441.05182" x2="285.02859" y2="-431.96991"/> + <linearGradient id="linearGradient5123"> + <stop offset="0" id="stop5125" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop5127" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <radialGradient xlink:href="#linearGradient5123" id="radialGradient13068" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.930946,6.185702e-16,-2.842711e-16,0.448244,229.9269,180.9261)" cx="-229.75000" cy="-343.95554" fx="-229.75000" fy="-343.95554" r="14.501380"/> </defs> - <sodipodi:namedview - id="base" - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1.0" - inkscape:pageopacity="0.0" - inkscape:pageshadow="2" - inkscape:zoom="11.313708" - inkscape:cx="19.667589" - inkscape:cy="18.541776" - inkscape:current-layer="layer1" - showgrid="true" - inkscape:grid-bbox="true" - inkscape:document-units="px" - inkscape:window-width="1200" - inkscape:window-height="704" - inkscape:window-x="186" - inkscape:window-y="144" - inkscape:showpageshadow="false" /> - <metadata - id="metadata1311"> + + <metadata id="metadata1311"> <rdf:RDF> - <cc:Work - rdf:about=""> + <cc:Work rdf:about=""> <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> <dc:title>weather-storm</dc:title> <dc:date>January 2006</dc:date> <dc:creator> @@ -3866,443 +109,82 @@ <rdf:li>notify</rdf:li> </rdf:Bag> </dc:subject> - <cc:license - rdf:resource="http://creativecommons.org/licenses/publicdomain/" /> + <cc:license rdf:resource="http://creativecommons.org/licenses/publicdomain/"/> </cc:Work> - <cc:License - rdf:about="http://creativecommons.org/licenses/publicdomain/"> - <cc:permits - rdf:resource="http://creativecommons.org/ns#Reproduction" /> - <cc:permits - rdf:resource="http://creativecommons.org/ns#Distribution" /> - <cc:permits - rdf:resource="http://creativecommons.org/ns#DerivativeWorks" /> + <cc:License rdf:about="http://creativecommons.org/licenses/publicdomain/"> + <cc:permits rdf:resource="http://creativecommons.org/ns#Reproduction"/> + <cc:permits rdf:resource="http://creativecommons.org/ns#Distribution"/> + <cc:permits rdf:resource="http://creativecommons.org/ns#DerivativeWorks"/> </cc:License> </rdf:RDF> </metadata> - <g - id="layer1" - inkscape:label="Layer 1" - inkscape:groupmode="layer"> - <g - id="g12825" - transform="translate(-287.0204,244.9995)"> - <path - id="path12827" - d="M 311.50000,-242.99998 C 308.72758,-242.99998 306.39177,-241.42627 305.09375,-239.18748 C 304.14939,-239.66252 303.12856,-239.99998 302.00000,-239.99998 C 298.13600,-239.99998 295.00000,-236.86398 295.00000,-232.99998 C 295.00000,-229.13598 298.13600,-225.99998 302.00000,-225.99998 C 304.41967,-225.99998 306.43009,-227.31930 307.68750,-229.18748 C 308.82170,-228.49786 310.07648,-227.99998 311.50000,-227.99998 C 312.41312,-227.99998 313.25295,-228.23200 314.06250,-228.53123 C 314.57244,-227.66350 315.24162,-226.95151 316.06250,-226.37498 C 316.05526,-226.24460 316.00000,-226.13216 316.00000,-225.99998 C 316.00000,-222.13598 319.13599,-218.99998 323.00000,-218.99998 C 326.86400,-218.99998 330.00000,-222.13598 330.00000,-225.99998 C 330.00000,-228.36967 328.74102,-230.35832 326.93750,-231.62498 C 326.94474,-231.75536 327.00000,-231.86780 327.00000,-231.99998 C 327.00000,-235.86398 323.86401,-238.99998 320.00000,-238.99998 C 319.37730,-238.99998 318.82481,-238.77779 318.25000,-238.62498 C 317.05547,-241.18382 314.50866,-242.99998 311.50000,-242.99998 z " - style="opacity:1.0000000;fill:#555753;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <path - id="path12829" - d="M 311.50000,-241.99998 C 308.71952,-241.99998 306.36549,-240.23813 305.43750,-237.78123 C 304.45208,-238.49067 303.30607,-238.99998 302.00000,-238.99998 C 298.68800,-238.99998 296.00000,-236.31198 296.00000,-232.99998 C 296.00000,-229.68798 298.68800,-226.99998 302.00000,-226.99998 C 304.42775,-226.99998 306.49324,-228.45556 307.43750,-230.53123 C 308.55826,-229.61367 309.93964,-228.99998 311.50000,-228.99998 C 312.57454,-228.99998 313.54428,-229.31894 314.43750,-229.78123 C 314.83590,-228.78147 315.53864,-227.99491 316.37500,-227.34373 C 316.19499,-226.74811 316.00000,-226.15408 316.00000,-225.49998 C 316.00000,-221.91198 318.91200,-218.99998 322.50000,-218.99998 C 326.08800,-218.99998 329.00000,-221.91198 329.00000,-225.49998 C 329.00000,-227.86077 327.66567,-229.83017 325.78125,-230.96873 C 325.84384,-231.31596 326.00000,-231.63481 326.00000,-231.99998 C 326.00000,-235.31198 323.31200,-237.99998 320.00000,-237.99998 C 319.14702,-237.99998 318.32870,-237.82130 317.59375,-237.49998 C 316.73998,-240.09386 314.37851,-241.99997 311.50000,-241.99998 z " - style="opacity:1.0000000;fill:url(#linearGradient13495);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <path - transform="matrix(0.964447,0.000000,0.000000,0.964447,89.28852,144.5262)" - d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z" - sodipodi:ry="6.7396116" - sodipodi:rx="6.7396116" - sodipodi:cy="-383.66660" - sodipodi:cx="241.80843" - id="path12831" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <g - id="g12833"> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path12835" - sodipodi:cx="243.95184" - sodipodi:cy="-389.30136" - sodipodi:rx="6.2313786" - sodipodi:ry="6.2313786" - d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1 237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1 250.18322 -389.30136 z" - transform="matrix(0.882630,0.000000,0.000000,0.882630,96.18078,108.1091)" /> - <path - sodipodi:type="arc" - style="opacity:0.49444440;fill:url(#linearGradient13497);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path12837" - sodipodi:cx="243.95184" - sodipodi:cy="-389.30136" - sodipodi:rx="6.2313786" - sodipodi:ry="6.2313786" - d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1 237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1 250.18322 -389.30136 z" - transform="matrix(0.882630,0.000000,0.000000,0.882630,96.18078,108.1091)" /> + <g id="layer1"> + <g transform="translate(-287.0204,244.9995)"> + <path d="M 311.50000,-242.99998 C 308.72758,-242.99998 306.39177,-241.42627 305.09375,-239.18748 C 304.14939,-239.66252 303.12856,-239.99998 302.00000,-239.99998 C 298.13600,-239.99998 295.00000,-236.86398 295.00000,-232.99998 C 295.00000,-229.13598 298.13600,-225.99998 302.00000,-225.99998 C 304.41967,-225.99998 306.43009,-227.31930 307.68750,-229.18748 C 308.82170,-228.49786 310.07648,-227.99998 311.50000,-227.99998 C 312.41312,-227.99998 313.25295,-228.23200 314.06250,-228.53123 C 314.57244,-227.66350 315.24162,-226.95151 316.06250,-226.37498 C 316.05526,-226.24460 316.00000,-226.13216 316.00000,-225.99998 C 316.00000,-222.13598 319.13599,-218.99998 323.00000,-218.99998 C 326.86400,-218.99998 330.00000,-222.13598 330.00000,-225.99998 C 330.00000,-228.36967 328.74102,-230.35832 326.93750,-231.62498 C 326.94474,-231.75536 327.00000,-231.86780 327.00000,-231.99998 C 327.00000,-235.86398 323.86401,-238.99998 320.00000,-238.99998 C 319.37730,-238.99998 318.82481,-238.77779 318.25000,-238.62498 C 317.05547,-241.18382 314.50866,-242.99998 311.50000,-242.99998 z " opacity="1.0000000" fill="#555753" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 311.50000,-241.99998 C 308.71952,-241.99998 306.36549,-240.23813 305.43750,-237.78123 C 304.45208,-238.49067 303.30607,-238.99998 302.00000,-238.99998 C 298.68800,-238.99998 296.00000,-236.31198 296.00000,-232.99998 C 296.00000,-229.68798 298.68800,-226.99998 302.00000,-226.99998 C 304.42775,-226.99998 306.49324,-228.45556 307.43750,-230.53123 C 308.55826,-229.61367 309.93964,-228.99998 311.50000,-228.99998 C 312.57454,-228.99998 313.54428,-229.31894 314.43750,-229.78123 C 314.83590,-228.78147 315.53864,-227.99491 316.37500,-227.34373 C 316.19499,-226.74811 316.00000,-226.15408 316.00000,-225.49998 C 316.00000,-221.91198 318.91200,-218.99998 322.50000,-218.99998 C 326.08800,-218.99998 329.00000,-221.91198 329.00000,-225.49998 C 329.00000,-227.86077 327.66567,-229.83017 325.78125,-230.96873 C 325.84384,-231.31596 326.00000,-231.63481 326.00000,-231.99998 C 326.00000,-235.31198 323.31200,-237.99998 320.00000,-237.99998 C 319.14702,-237.99998 318.32870,-237.82130 317.59375,-237.49998 C 316.73998,-240.09386 314.37851,-241.99997 311.50000,-241.99998 z " opacity="1.0000000" fill="url(#linearGradient13495)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(0.964447,0.000000,0.000000,0.964447,89.28852,144.5262)" d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <g> + <path d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1 237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1 250.18322 -389.30136 z" transform="matrix(0.882630,0.000000,0.000000,0.882630,96.18078,108.1091)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1 237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1 250.18322 -389.30136 z" transform="matrix(0.882630,0.000000,0.000000,0.882630,96.18078,108.1091)" opacity="0.49444440" fill="url(#linearGradient13497)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - id="g12839"> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path12841" - sodipodi:cx="251.22179" - sodipodi:cy="-385.78790" - sodipodi:rx="6.0325046" - sodipodi:ry="6.0325046" - d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1 245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1 257.25429 -385.78790 z" - transform="matrix(0.911728,0.000000,0.000000,0.911728,90.45407,120.2336)" /> - <path - sodipodi:type="arc" - style="opacity:0.49444440;fill:url(#linearGradient13499);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path12843" - sodipodi:cx="251.22179" - sodipodi:cy="-385.78790" - sodipodi:rx="6.0325046" - sodipodi:ry="6.0325046" - d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1 245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1 257.25429 -385.78790 z" - transform="matrix(0.911728,0.000000,0.000000,0.911728,90.45407,120.2336)" /> + <g> + <path d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1 245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1 257.25429 -385.78790 z" transform="matrix(0.911728,0.000000,0.000000,0.911728,90.45407,120.2336)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1 245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1 257.25429 -385.78790 z" transform="matrix(0.911728,0.000000,0.000000,0.911728,90.45407,120.2336)" opacity="0.49444440" fill="url(#linearGradient13499)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - id="g12845"> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path12847" - sodipodi:cx="233.43362" - sodipodi:cy="-387.88715" - sodipodi:rx="4.3752232" - sodipodi:ry="4.3752232" - d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1 229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1 237.80885 -387.88715 z" - transform="matrix(1.142799,0.000000,0.000000,1.142799,35.23229,210.2770)" /> - <path - sodipodi:type="arc" - style="opacity:0.49444440;fill:url(#linearGradient13501);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path12849" - sodipodi:cx="233.43362" - sodipodi:cy="-387.88715" - sodipodi:rx="4.3752232" - sodipodi:ry="4.3752232" - d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1 229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1 237.80885 -387.88715 z" - transform="matrix(1.142799,0.000000,0.000000,1.142799,35.23229,210.2770)" /> + <g> + <path d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1 229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1 237.80885 -387.88715 z" transform="matrix(1.142799,0.000000,0.000000,1.142799,35.23229,210.2770)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1 229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1 237.80885 -387.88715 z" transform="matrix(1.142799,0.000000,0.000000,1.142799,35.23229,210.2770)" opacity="0.49444440" fill="url(#linearGradient13501)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - id="g12851"> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path12853" - sodipodi:cx="241.80843" - sodipodi:cy="-383.66660" - sodipodi:rx="6.7396116" - sodipodi:ry="6.7396116" - d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z" - transform="matrix(1.038636,0.000000,0.000000,1.038636,59.84906,169.4899)" /> - <path - sodipodi:type="arc" - style="opacity:0.49444440;fill:url(#linearGradient13503);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path12855" - sodipodi:cx="241.80843" - sodipodi:cy="-383.66660" - sodipodi:rx="6.7396116" - sodipodi:ry="6.7396116" - d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z" - transform="matrix(1.038636,0.000000,0.000000,1.038636,59.84907,169.4899)" /> + <g> + <path d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z" transform="matrix(1.038636,0.000000,0.000000,1.038636,59.84906,169.4899)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z" transform="matrix(1.038636,0.000000,0.000000,1.038636,59.84907,169.4899)" opacity="0.49444440" fill="url(#linearGradient13503)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> </g> - <g - id="g11177" - transform="translate(208.8564,357.8851)"> - <path - sodipodi:nodetypes="cccccccc" - id="path11179" - d="M -173.24571,-327.59122 L -176.37021,-323.31202 L -172.59078,-323.31202 C -172.59078,-323.31202 -175.29396,-318.78622 -180.16632,-310.38562 C -178.07014,-318.33294 -177.21353,-321.35581 -177.21353,-321.35581 L -182.37682,-321.35581 L -178.33401,-327.59122 L -173.24571,-327.59122 z " - style="fill:#edd400;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient11189);stroke-width:1.0000006px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" /> - <path - sodipodi:nodetypes="cccccccc" - id="path11181" - d="M -173.75946,-327.84461 L -177.50268,-322.68152 L -173.54648,-322.85830 C -173.54648,-322.85830 -173.68639,-322.39837 -178.55875,-313.99777 C -176.46257,-321.94509 -176.48985,-321.96275 -176.48985,-321.96275 L -181.38797,-321.87436 L -177.69871,-327.57944 L -173.75946,-327.84461 z " - style="opacity:1.0000000;fill:url(#linearGradient11191);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000006px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" /> + <g transform="translate(208.8564,357.8851)"> + <path d="M -173.24571,-327.59122 L -176.37021,-323.31202 L -172.59078,-323.31202 C -172.59078,-323.31202 -175.29396,-318.78622 -180.16632,-310.38562 C -178.07014,-318.33294 -177.21353,-321.35581 -177.21353,-321.35581 L -182.37682,-321.35581 L -178.33401,-327.59122 L -173.24571,-327.59122 z " fill="#edd400" fill-opacity="1.0000000" fill-rule="evenodd" stroke="url(#linearGradient11189)" stroke-width="1.0000006px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1.0000000"/> + <path d="M -173.75946,-327.84461 L -177.50268,-322.68152 L -173.54648,-322.85830 C -173.54648,-322.85830 -173.68639,-322.39837 -178.55875,-313.99777 C -176.46257,-321.94509 -176.48985,-321.96275 -176.48985,-321.96275 L -181.38797,-321.87436 L -177.69871,-327.57944 L -173.75946,-327.84461 z " opacity="1.0000000" fill="url(#linearGradient11191)" fill-opacity="1.0000000" fill-rule="evenodd" stroke="none" stroke-width="1.0000006px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1.0000000"/> </g> - <g - id="g12857" - transform="translate(-215.0060,252.9994)"> - <path - sodipodi:nodetypes="ccsscsssscsscc" - id="path12859" - d="M 246.49993,-238.49993 C 244.22910,-238.49993 242.39002,-236.94965 241.78118,-234.87493 C 241.08795,-235.23876 240.33667,-235.49993 239.49993,-235.49993 C 236.73993,-235.49993 234.49992,-233.25994 234.49993,-230.49993 C 234.49993,-229.92100 234.66245,-229.39223 234.84368,-228.87493 C 233.47021,-228.10419 232.49993,-226.68593 232.49993,-224.99993 C 232.49993,-222.51593 234.51593,-220.49992 236.99993,-220.49993 C 237.17706,-220.49993 255.82280,-220.49993 255.99993,-220.49993 C 258.48392,-220.49993 260.49993,-222.51593 260.49993,-224.99993 C 260.49993,-226.68593 259.52965,-228.10419 258.15618,-228.87493 C 258.33742,-229.39222 258.49993,-229.92101 258.49993,-230.49993 C 258.49993,-233.25993 256.25993,-235.49992 253.49993,-235.49993 C 252.66319,-235.49993 251.91191,-235.23876 251.21868,-234.87493 C 250.60984,-236.94965 248.77076,-238.49993 246.49993,-238.49993 z " - style="fill:#888a85;fill-opacity:1.0000000;stroke:#555753;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <path - sodipodi:nodetypes="ccsscsssscsscc" - id="path12861" - d="M 246.49993,-237.99993 C 244.31021,-237.99993 242.77633,-236.66416 242.10438,-234.15641 C 241.43592,-234.50003 240.55679,-234.98976 239.74993,-234.98976 C 237.03342,-234.98976 234.99479,-233.05094 234.99480,-230.44422 C 234.99480,-229.89745 235.26201,-229.11078 235.43676,-228.62221 C 234.11233,-227.89426 232.99993,-226.73171 232.99993,-225.24966 C 232.99993,-222.90361 234.54610,-220.99957 237.33921,-220.99957 C 237.51002,-220.99957 255.48985,-220.99957 255.66065,-220.99957 C 258.43166,-220.99957 259.99993,-222.90361 259.99993,-225.24966 C 259.99993,-226.84203 258.88753,-227.91635 257.56310,-228.64430 C 257.73786,-229.13286 258.02717,-229.89746 258.02717,-230.44422 C 258.02717,-233.05093 255.91136,-235.01185 253.24994,-235.01186 C 252.44307,-235.01186 251.60813,-234.52212 250.93967,-234.17850 C 250.29082,-236.60004 248.68966,-237.99993 246.49993,-237.99993 z " - style="opacity:1.0000000;fill:url(#linearGradient13131);fill-opacity:1.0000000;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path12863" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path12865" - style="opacity:0.47777775;fill:url(#linearGradient13133);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <rect - y="-230.99992" - x="236.99994" - height="9.0000000" - width="20.000000" - id="rect12867" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <path - transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16987,171.3114)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path12869" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19818,231.8633)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path12871" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19825,231.8634)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path12873" - style="opacity:0.47777775;fill:url(#linearGradient13135);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path12875" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path12877" - style="opacity:0.47777775;fill:url(#linearGradient13137);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - id="path12879" - d="M 245.46868,-233.96868 C 241.88930,-233.96868 238.99993,-231.04805 238.99993,-227.46868 C 238.99993,-225.09800 240.34936,-223.13089 242.24993,-221.99993 L 248.71868,-221.99993 C 250.61925,-223.13089 251.96868,-225.12924 251.96868,-227.49993 C 251.96868,-231.07931 249.04805,-233.96868 245.46868,-233.96868 z " - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <path - id="path12881" - d="M 245.49993,-233.99993 C 241.91193,-233.99993 238.99993,-231.08792 238.99993,-227.49993 C 238.99993,-225.12353 240.34478,-223.13361 242.24993,-221.99993 L 248.74993,-221.99993 C 250.65508,-223.13361 251.99993,-225.12353 251.99993,-227.49993 C 251.99993,-231.08793 249.08793,-233.99992 245.49993,-233.99993 z " - style="opacity:0.47777775;fill:url(#linearGradient13139);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <path - transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16977,171.3113)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path12883" - style="opacity:0.47777775;fill:url(#linearGradient13141);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - sodipodi:nodetypes="ccss" - id="path12885" - d="M 258.95633,-230.33389 C 258.95480,-227.64933 255.68707,-226.61994 255.68707,-226.61994 C 255.68707,-226.61994 258.03581,-228.24589 258.02392,-230.32495 C 258.02392,-230.32495 258.95633,-230.33389 258.95633,-230.33389 z " - style="fill:#555753;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" /> - <path - transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path12887" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path12889" - style="opacity:0.47777775;fill:url(#linearGradient13143);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> + <g transform="translate(-215.0060,252.9994)"> + <path d="M 246.49993,-238.49993 C 244.22910,-238.49993 242.39002,-236.94965 241.78118,-234.87493 C 241.08795,-235.23876 240.33667,-235.49993 239.49993,-235.49993 C 236.73993,-235.49993 234.49992,-233.25994 234.49993,-230.49993 C 234.49993,-229.92100 234.66245,-229.39223 234.84368,-228.87493 C 233.47021,-228.10419 232.49993,-226.68593 232.49993,-224.99993 C 232.49993,-222.51593 234.51593,-220.49992 236.99993,-220.49993 C 237.17706,-220.49993 255.82280,-220.49993 255.99993,-220.49993 C 258.48392,-220.49993 260.49993,-222.51593 260.49993,-224.99993 C 260.49993,-226.68593 259.52965,-228.10419 258.15618,-228.87493 C 258.33742,-229.39222 258.49993,-229.92101 258.49993,-230.49993 C 258.49993,-233.25993 256.25993,-235.49992 253.49993,-235.49993 C 252.66319,-235.49993 251.91191,-235.23876 251.21868,-234.87493 C 250.60984,-236.94965 248.77076,-238.49993 246.49993,-238.49993 z " fill="#888a85" fill-opacity="1.0000000" stroke="#555753" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 246.49993,-237.99993 C 244.31021,-237.99993 242.77633,-236.66416 242.10438,-234.15641 C 241.43592,-234.50003 240.55679,-234.98976 239.74993,-234.98976 C 237.03342,-234.98976 234.99479,-233.05094 234.99480,-230.44422 C 234.99480,-229.89745 235.26201,-229.11078 235.43676,-228.62221 C 234.11233,-227.89426 232.99993,-226.73171 232.99993,-225.24966 C 232.99993,-222.90361 234.54610,-220.99957 237.33921,-220.99957 C 237.51002,-220.99957 255.48985,-220.99957 255.66065,-220.99957 C 258.43166,-220.99957 259.99993,-222.90361 259.99993,-225.24966 C 259.99993,-226.84203 258.88753,-227.91635 257.56310,-228.64430 C 257.73786,-229.13286 258.02717,-229.89746 258.02717,-230.44422 C 258.02717,-233.05093 255.91136,-235.01185 253.24994,-235.01186 C 252.44307,-235.01186 251.60813,-234.52212 250.93967,-234.17850 C 250.29082,-236.60004 248.68966,-237.99993 246.49993,-237.99993 z " opacity="1.0000000" fill="url(#linearGradient13131)" fill-opacity="1.0000000" stroke="none" stroke-width="0.99999958" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="0.47777775" fill="url(#linearGradient13133)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <rect y="-230.99992" x="236.99994" height="9.0000000" width="20.000000" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16987,171.3114)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19818,231.8633)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19825,231.8634)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="0.47777775" fill="url(#linearGradient13135)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="0.47777775" fill="url(#linearGradient13137)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 245.46868,-233.96868 C 241.88930,-233.96868 238.99993,-231.04805 238.99993,-227.46868 C 238.99993,-225.09800 240.34936,-223.13089 242.24993,-221.99993 L 248.71868,-221.99993 C 250.61925,-223.13089 251.96868,-225.12924 251.96868,-227.49993 C 251.96868,-231.07931 249.04805,-233.96868 245.46868,-233.96868 z " opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 245.49993,-233.99993 C 241.91193,-233.99993 238.99993,-231.08792 238.99993,-227.49993 C 238.99993,-225.12353 240.34478,-223.13361 242.24993,-221.99993 L 248.74993,-221.99993 C 250.65508,-223.13361 251.99993,-225.12353 251.99993,-227.49993 C 251.99993,-231.08793 249.08793,-233.99992 245.49993,-233.99993 z " opacity="0.47777775" fill="url(#linearGradient13139)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16977,171.3113)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="0.47777775" fill="url(#linearGradient13141)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 258.95633,-230.33389 C 258.95480,-227.64933 255.68707,-226.61994 255.68707,-226.61994 C 255.68707,-226.61994 258.03581,-228.24589 258.02392,-230.32495 C 258.02392,-230.32495 258.95633,-230.33389 258.95633,-230.33389 z " fill="#555753" fill-opacity="1.0000000" fill-rule="evenodd" stroke="none" stroke-width="1.0000000px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1.0000000"/> + <path transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="0.47777775" fill="url(#linearGradient13143)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - id="g11183" - transform="translate(192.8564,354.8851)"> - <path - sodipodi:nodetypes="cccccccc" - id="path11185" - d="M -173.24571,-327.59122 L -176.37021,-323.31202 L -172.59078,-323.31202 C -172.59078,-323.31202 -175.29396,-318.78622 -180.16632,-310.38562 C -178.07014,-318.33294 -177.21353,-321.35581 -177.21353,-321.35581 L -182.37682,-321.35581 L -178.33401,-327.59122 L -173.24571,-327.59122 z " - style="fill:#edd400;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient11193);stroke-width:1.0000006px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" /> - <path - sodipodi:nodetypes="cccccccc" - id="path11187" - d="M -173.75946,-327.84461 L -177.50268,-322.68152 L -173.54648,-322.85830 C -173.54648,-322.85830 -173.68639,-322.39837 -178.55875,-313.99777 C -176.46257,-321.94509 -176.48985,-321.96275 -176.48985,-321.96275 L -181.38797,-321.87436 L -177.69871,-327.57944 L -173.75946,-327.84461 z " - style="opacity:1.0000000;fill:url(#linearGradient11195);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000006px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" /> + <g transform="translate(192.8564,354.8851)"> + <path d="M -173.24571,-327.59122 L -176.37021,-323.31202 L -172.59078,-323.31202 C -172.59078,-323.31202 -175.29396,-318.78622 -180.16632,-310.38562 C -178.07014,-318.33294 -177.21353,-321.35581 -177.21353,-321.35581 L -182.37682,-321.35581 L -178.33401,-327.59122 L -173.24571,-327.59122 z " fill="#edd400" fill-opacity="1.0000000" fill-rule="evenodd" stroke="url(#linearGradient11193)" stroke-width="1.0000006px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1.0000000"/> + <path d="M -173.75946,-327.84461 L -177.50268,-322.68152 L -173.54648,-322.85830 C -173.54648,-322.85830 -173.68639,-322.39837 -178.55875,-313.99777 C -176.46257,-321.94509 -176.48985,-321.96275 -176.48985,-321.96275 L -181.38797,-321.87436 L -177.69871,-327.57944 L -173.75946,-327.84461 z " opacity="1.0000000" fill="url(#linearGradient11195)" fill-opacity="1.0000000" fill-rule="evenodd" stroke="none" stroke-width="1.0000006px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1.0000000"/> </g> - <path - style="opacity:1.0000000;fill:url(#radialGradient13211);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000004;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000" - d="M 31.626355,14.999520 C 29.626255,14.999520 27.940775,16.079020 27.095785,17.614460 C 26.500875,17.392550 25.851145,17.261090 25.169835,17.261090 C 22.339625,17.261090 20.052305,19.379260 20.052305,21.978590 C 20.052305,22.432340 20.196835,22.835420 20.327445,23.250720 C 18.945125,24.115990 17.979615,25.504290 17.979615,27.155450 C 17.979615,29.808280 18.631235,32.148800 23.207195,31.961300 C 23.252315,31.959450 40.658675,32.058280 40.907605,31.943270 C 43.992815,32.169220 44.979615,29.497540 44.979615,27.243810 C 44.979615,25.543300 44.142675,24.193960 42.670345,23.366220 C 42.718305,23.107660 42.631785,22.815030 42.631785,22.543970 C 42.631785,19.944650 40.326135,17.826480 37.495915,17.826480 C 37.102425,17.826480 36.763515,17.961300 36.395375,18.038500 C 35.656915,16.270380 33.810365,14.999520 31.626355,14.999520 z " - id="path13209" - sodipodi:nodetypes="ccsscsscscsscc" /> - <g - id="g12891" - transform="translate(-230.0203,248.9834)"> - <path - sodipodi:nodetypes="ccsscsssscsscc" - id="path12893" - d="M 246.49993,-238.49993 C 244.22910,-238.49993 242.39002,-236.94965 241.78118,-234.87493 C 241.08795,-235.23876 240.33667,-235.49993 239.49993,-235.49993 C 236.73993,-235.49993 234.49992,-233.25994 234.49993,-230.49993 C 234.49993,-229.92100 234.66245,-229.39223 234.84368,-228.87493 C 233.47021,-228.10419 232.49993,-226.68593 232.49993,-224.99993 C 232.49993,-222.51593 234.51593,-220.49992 236.99993,-220.49993 C 237.17706,-220.49993 255.82280,-220.49993 255.99993,-220.49993 C 258.48392,-220.49993 260.49993,-222.51593 260.49993,-224.99993 C 260.49993,-226.68593 259.52965,-228.10419 258.15618,-228.87493 C 258.33742,-229.39222 258.49993,-229.92101 258.49993,-230.49993 C 258.49993,-233.25993 256.25993,-235.49992 253.49993,-235.49993 C 252.66319,-235.49993 251.91191,-235.23876 251.21868,-234.87493 C 250.60984,-236.94965 248.77076,-238.49993 246.49993,-238.49993 z " - style="fill:#888a85;fill-opacity:1.0000000;stroke:#555753;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <path - sodipodi:nodetypes="ccsscsssscsscc" - id="path12895" - d="M 246.49993,-237.99993 C 244.31021,-237.99993 242.77633,-236.66416 242.10438,-234.15641 C 241.43592,-234.50003 240.55679,-234.98976 239.74993,-234.98976 C 237.03342,-234.98976 234.99479,-233.05094 234.99480,-230.44422 C 234.99480,-229.89745 235.26201,-229.11078 235.43676,-228.62221 C 234.11233,-227.89426 232.99993,-226.73171 232.99993,-225.24966 C 232.99993,-222.90361 234.54610,-220.99957 237.33921,-220.99957 C 237.51002,-220.99957 255.48985,-220.99957 255.66065,-220.99957 C 258.43166,-220.99957 259.99993,-222.90361 259.99993,-225.24966 C 259.99993,-226.84203 258.88753,-227.91635 257.56310,-228.64430 C 257.73786,-229.13286 258.02717,-229.89746 258.02717,-230.44422 C 258.02717,-233.05093 255.91136,-235.01185 253.24994,-235.01186 C 252.44307,-235.01186 251.60813,-234.52212 250.93967,-234.17850 C 250.29082,-236.60004 248.68966,-237.99993 246.49993,-237.99993 z " - style="opacity:1.0000000;fill:url(#linearGradient13145);fill-opacity:1.0000000;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path12897" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path12899" - style="opacity:0.47777775;fill:url(#linearGradient13147);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <rect - y="-230.99992" - x="236.99994" - height="9.0000000" - width="20.000000" - id="rect12901" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <path - transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16987,171.3114)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path12903" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19818,231.8633)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path12905" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19825,231.8634)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path12907" - style="opacity:0.47777775;fill:url(#linearGradient13149);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path12909" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path12911" - style="opacity:0.47777775;fill:url(#linearGradient13151);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - id="path12913" - d="M 245.46868,-233.96868 C 241.88930,-233.96868 238.99993,-231.04805 238.99993,-227.46868 C 238.99993,-225.09800 240.34936,-223.13089 242.24993,-221.99993 L 248.71868,-221.99993 C 250.61925,-223.13089 251.96868,-225.12924 251.96868,-227.49993 C 251.96868,-231.07931 249.04805,-233.96868 245.46868,-233.96868 z " - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <path - id="path12915" - d="M 245.49993,-233.99993 C 241.91193,-233.99993 238.99993,-231.08792 238.99993,-227.49993 C 238.99993,-225.12353 240.34478,-223.13361 242.24993,-221.99993 L 248.74993,-221.99993 C 250.65508,-223.13361 251.99993,-225.12353 251.99993,-227.49993 C 251.99993,-231.08793 249.08793,-233.99992 245.49993,-233.99993 z " - style="opacity:0.47777775;fill:url(#linearGradient13153);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <path - transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16977,171.3113)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path12917" - style="opacity:0.47777775;fill:url(#linearGradient13155);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - sodipodi:nodetypes="ccss" - id="path12919" - d="M 258.95633,-230.33389 C 258.95480,-227.64933 255.68707,-226.61994 255.68707,-226.61994 C 255.68707,-226.61994 258.03581,-228.24589 258.02392,-230.32495 C 258.02392,-230.32495 258.95633,-230.33389 258.95633,-230.33389 z " - style="fill:#555753;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" /> - <path - transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path12921" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path12923" - style="opacity:0.47777775;fill:url(#linearGradient13157);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> + <path d="M 31.626355,14.999520 C 29.626255,14.999520 27.940775,16.079020 27.095785,17.614460 C 26.500875,17.392550 25.851145,17.261090 25.169835,17.261090 C 22.339625,17.261090 20.052305,19.379260 20.052305,21.978590 C 20.052305,22.432340 20.196835,22.835420 20.327445,23.250720 C 18.945125,24.115990 17.979615,25.504290 17.979615,27.155450 C 17.979615,29.808280 18.631235,32.148800 23.207195,31.961300 C 23.252315,31.959450 40.658675,32.058280 40.907605,31.943270 C 43.992815,32.169220 44.979615,29.497540 44.979615,27.243810 C 44.979615,25.543300 44.142675,24.193960 42.670345,23.366220 C 42.718305,23.107660 42.631785,22.815030 42.631785,22.543970 C 42.631785,19.944650 40.326135,17.826480 37.495915,17.826480 C 37.102425,17.826480 36.763515,17.961300 36.395375,18.038500 C 35.656915,16.270380 33.810365,14.999520 31.626355,14.999520 z " opacity="1.0000000" fill="url(#radialGradient13211)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000004" stroke-linejoin="round" stroke-miterlimit="4.0000000" stroke-dasharray="none" stroke-opacity="1.0000000"/> + <g transform="translate(-230.0203,248.9834)"> + <path d="M 246.49993,-238.49993 C 244.22910,-238.49993 242.39002,-236.94965 241.78118,-234.87493 C 241.08795,-235.23876 240.33667,-235.49993 239.49993,-235.49993 C 236.73993,-235.49993 234.49992,-233.25994 234.49993,-230.49993 C 234.49993,-229.92100 234.66245,-229.39223 234.84368,-228.87493 C 233.47021,-228.10419 232.49993,-226.68593 232.49993,-224.99993 C 232.49993,-222.51593 234.51593,-220.49992 236.99993,-220.49993 C 237.17706,-220.49993 255.82280,-220.49993 255.99993,-220.49993 C 258.48392,-220.49993 260.49993,-222.51593 260.49993,-224.99993 C 260.49993,-226.68593 259.52965,-228.10419 258.15618,-228.87493 C 258.33742,-229.39222 258.49993,-229.92101 258.49993,-230.49993 C 258.49993,-233.25993 256.25993,-235.49992 253.49993,-235.49993 C 252.66319,-235.49993 251.91191,-235.23876 251.21868,-234.87493 C 250.60984,-236.94965 248.77076,-238.49993 246.49993,-238.49993 z " fill="#888a85" fill-opacity="1.0000000" stroke="#555753" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 246.49993,-237.99993 C 244.31021,-237.99993 242.77633,-236.66416 242.10438,-234.15641 C 241.43592,-234.50003 240.55679,-234.98976 239.74993,-234.98976 C 237.03342,-234.98976 234.99479,-233.05094 234.99480,-230.44422 C 234.99480,-229.89745 235.26201,-229.11078 235.43676,-228.62221 C 234.11233,-227.89426 232.99993,-226.73171 232.99993,-225.24966 C 232.99993,-222.90361 234.54610,-220.99957 237.33921,-220.99957 C 237.51002,-220.99957 255.48985,-220.99957 255.66065,-220.99957 C 258.43166,-220.99957 259.99993,-222.90361 259.99993,-225.24966 C 259.99993,-226.84203 258.88753,-227.91635 257.56310,-228.64430 C 257.73786,-229.13286 258.02717,-229.89746 258.02717,-230.44422 C 258.02717,-233.05093 255.91136,-235.01185 253.24994,-235.01186 C 252.44307,-235.01186 251.60813,-234.52212 250.93967,-234.17850 C 250.29082,-236.60004 248.68966,-237.99993 246.49993,-237.99993 z " opacity="1.0000000" fill="url(#linearGradient13145)" fill-opacity="1.0000000" stroke="none" stroke-width="0.99999958" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="0.47777775" fill="url(#linearGradient13147)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <rect y="-230.99992" x="236.99994" height="9.0000000" width="20.000000" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16987,171.3114)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19818,231.8633)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19825,231.8634)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="0.47777775" fill="url(#linearGradient13149)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="0.47777775" fill="url(#linearGradient13151)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 245.46868,-233.96868 C 241.88930,-233.96868 238.99993,-231.04805 238.99993,-227.46868 C 238.99993,-225.09800 240.34936,-223.13089 242.24993,-221.99993 L 248.71868,-221.99993 C 250.61925,-223.13089 251.96868,-225.12924 251.96868,-227.49993 C 251.96868,-231.07931 249.04805,-233.96868 245.46868,-233.96868 z " opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 245.49993,-233.99993 C 241.91193,-233.99993 238.99993,-231.08792 238.99993,-227.49993 C 238.99993,-225.12353 240.34478,-223.13361 242.24993,-221.99993 L 248.74993,-221.99993 C 250.65508,-223.13361 251.99993,-225.12353 251.99993,-227.49993 C 251.99993,-231.08793 249.08793,-233.99992 245.49993,-233.99993 z " opacity="0.47777775" fill="url(#linearGradient13153)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16977,171.3113)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="0.47777775" fill="url(#linearGradient13155)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 258.95633,-230.33389 C 258.95480,-227.64933 255.68707,-226.61994 255.68707,-226.61994 C 255.68707,-226.61994 258.03581,-228.24589 258.02392,-230.32495 C 258.02392,-230.32495 258.95633,-230.33389 258.95633,-230.33389 z " fill="#555753" fill-opacity="1.0000000" fill-rule="evenodd" stroke="none" stroke-width="1.0000000px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1.0000000"/> + <path transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="0.47777775" fill="url(#linearGradient13157)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <path - style="opacity:1.0000000;fill:url(#radialGradient13068);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000004;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000" - d="M 16.188855,11.000000 C 14.188755,11.000000 12.503275,12.079500 11.658285,13.614940 C 11.063375,13.393030 10.413645,13.261570 9.7323346,13.261570 C 6.9021246,13.261570 4.6148046,15.379740 4.6148046,17.979070 C 4.6148046,18.432820 4.7593346,18.835900 4.8899446,19.251200 C 3.5076246,20.116470 2.5421146,21.504770 2.5421146,23.155930 C 2.5421146,25.808760 3.1937346,28.149280 7.7696946,27.961780 C 7.8148146,27.959930 25.221175,28.058760 25.470105,27.943750 C 28.555315,28.169700 29.542115,25.498020 29.542115,23.244290 C 29.542115,21.543780 28.705175,20.194440 27.232845,19.366700 C 27.280805,19.108140 27.194285,18.815510 27.194285,18.544450 C 27.194285,15.945130 24.888635,13.826960 22.058415,13.826960 C 21.664925,13.826960 21.326015,13.961780 20.957875,14.038980 C 20.219415,12.270860 18.372865,11.000000 16.188855,11.000000 z " - id="path11418" - sodipodi:nodetypes="ccsscsscscsscc" /> + <path d="M 16.188855,11.000000 C 14.188755,11.000000 12.503275,12.079500 11.658285,13.614940 C 11.063375,13.393030 10.413645,13.261570 9.7323346,13.261570 C 6.9021246,13.261570 4.6148046,15.379740 4.6148046,17.979070 C 4.6148046,18.432820 4.7593346,18.835900 4.8899446,19.251200 C 3.5076246,20.116470 2.5421146,21.504770 2.5421146,23.155930 C 2.5421146,25.808760 3.1937346,28.149280 7.7696946,27.961780 C 7.8148146,27.959930 25.221175,28.058760 25.470105,27.943750 C 28.555315,28.169700 29.542115,25.498020 29.542115,23.244290 C 29.542115,21.543780 28.705175,20.194440 27.232845,19.366700 C 27.280805,19.108140 27.194285,18.815510 27.194285,18.544450 C 27.194285,15.945130 24.888635,13.826960 22.058415,13.826960 C 21.664925,13.826960 21.326015,13.961780 20.957875,14.038980 C 20.219415,12.270860 18.372865,11.000000 16.188855,11.000000 z " opacity="1.0000000" fill="url(#radialGradient13068)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000004" stroke-linejoin="round" stroke-miterlimit="4.0000000" stroke-dasharray="none" stroke-opacity="1.0000000"/> </g> </svg> diff --git a/demos/embedded/weatherinfo/icons/weather-sunny-very-few-clouds.svg b/demos/embedded/weatherinfo/icons/weather-sunny-very-few-clouds.svg index 93b0009..a27d30a 100644 --- a/demos/embedded/weatherinfo/icons/weather-sunny-very-few-clouds.svg +++ b/demos/embedded/weatherinfo/icons/weather-sunny-very-few-clouds.svg @@ -1,337 +1,63 @@ <?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="48px" - height="48px" - id="svg1306" - sodipodi:version="0.32" - inkscape:version="0.46" - sodipodi:docbase="/home/garrett/Source/tango-icon-theme/scalable/status" - sodipodi:docname="weather-sunny-very-few-clouds.svg" - inkscape:output_extension="org.inkscape.output.svg.inkscape"> - <defs - id="defs1308"> - <inkscape:perspective - sodipodi:type="inkscape:persp3d" - inkscape:vp_x="0 : 24 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_z="48 : 24 : 1" - inkscape:persp3d-origin="24 : 16 : 1" - id="perspective27908" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient6724" - gradientUnits="userSpaceOnUse" - x1="284.80219" - y1="-441.23294" - x2="288.89954" - y2="-436.83109" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6549" - id="linearGradient6722" - gradientUnits="userSpaceOnUse" - x1="286.66589" - y1="-439.48358" - x2="289.76562" - y2="-436.70703" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6527" - id="linearGradient6720" - gradientUnits="userSpaceOnUse" - x1="275.94193" - y1="-437.10501" - x2="279.97546" - y2="-431.91833" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient6718" - gradientUnits="userSpaceOnUse" - x1="285.94086" - y1="-439.93900" - x2="289.39124" - y2="-436.44290" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6513" - id="linearGradient6716" - gradientUnits="userSpaceOnUse" - x1="286.51172" - y1="-441.29074" - x2="289.85379" - y2="-436.14453" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6497" - id="linearGradient6714" - gradientUnits="userSpaceOnUse" - x1="287.51730" - y1="-439.75281" - x2="289.67633" - y2="-436.32199" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6470" - id="linearGradient6712" - gradientUnits="userSpaceOnUse" - x1="271.02170" - y1="-441.05182" - x2="285.02859" - y2="-431.96991" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient6839" - gradientUnits="userSpaceOnUse" - x1="284.80219" - y1="-441.23294" - x2="288.89954" - y2="-436.83109" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6549"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6551" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6553" /> +<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="48px" height="48px" id="svg1306"> + <defs id="defs1308"> + <linearGradient xlink:href="#linearGradient6538" id="linearGradient6839" gradientUnits="userSpaceOnUse" x1="284.80219" y1="-441.23294" x2="288.89954" y2="-436.83109"/> + <linearGradient id="linearGradient6549"> + <stop offset="0" id="stop6551" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6553" stop-color="#ffffff" stop-opacity="0"/> </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6549" - id="linearGradient6837" - gradientUnits="userSpaceOnUse" - x1="286.66589" - y1="-439.48358" - x2="289.76562" - y2="-436.70703" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6527"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6530" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6532" /> + <linearGradient xlink:href="#linearGradient6549" id="linearGradient6837" gradientUnits="userSpaceOnUse" x1="286.66589" y1="-439.48358" x2="289.76562" y2="-436.70703"/> + <linearGradient id="linearGradient6527"> + <stop offset="0" id="stop6530" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6532" stop-color="#ffffff" stop-opacity="0"/> </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6527" - id="linearGradient6835" - gradientUnits="userSpaceOnUse" - x1="275.94193" - y1="-437.10501" - x2="279.97546" - y2="-431.91833" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6538"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6540" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6542" /> + <linearGradient xlink:href="#linearGradient6527" id="linearGradient6835" gradientUnits="userSpaceOnUse" x1="275.94193" y1="-437.10501" x2="279.97546" y2="-431.91833"/> + <linearGradient id="linearGradient6538"> + <stop offset="0" id="stop6540" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6542" stop-color="#ffffff" stop-opacity="0"/> </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient6833" - gradientUnits="userSpaceOnUse" - x1="285.94086" - y1="-439.93900" - x2="289.39124" - y2="-436.44290" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6513"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6515" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6517" /> + <linearGradient xlink:href="#linearGradient6538" id="linearGradient6833" gradientUnits="userSpaceOnUse" x1="285.94086" y1="-439.93900" x2="289.39124" y2="-436.44290"/> + <linearGradient id="linearGradient6513"> + <stop offset="0" id="stop6515" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6517" stop-color="#ffffff" stop-opacity="0"/> </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6513" - id="linearGradient6831" - gradientUnits="userSpaceOnUse" - x1="286.51172" - y1="-441.29074" - x2="289.85379" - y2="-436.14453" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6497"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6499" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6501" /> + <linearGradient xlink:href="#linearGradient6513" id="linearGradient6831" gradientUnits="userSpaceOnUse" x1="286.51172" y1="-441.29074" x2="289.85379" y2="-436.14453"/> + <linearGradient id="linearGradient6497"> + <stop offset="0" id="stop6499" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6501" stop-color="#ffffff" stop-opacity="0"/> </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6497" - id="linearGradient6829" - gradientUnits="userSpaceOnUse" - x1="287.51730" - y1="-439.75281" - x2="289.67633" - y2="-436.32199" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6470"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6472" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6474" /> + <linearGradient xlink:href="#linearGradient6497" id="linearGradient6829" gradientUnits="userSpaceOnUse" x1="287.51730" y1="-439.75281" x2="289.67633" y2="-436.32199"/> + <linearGradient id="linearGradient6470"> + <stop offset="0" id="stop6472" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6474" stop-color="#ffffff" stop-opacity="0"/> </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6470" - id="linearGradient6827" - gradientUnits="userSpaceOnUse" - x1="271.02170" - y1="-441.05182" - x2="285.02859" - y2="-431.96991" /> - <linearGradient - id="linearGradient4083"> - <stop - id="stop4085" - offset="0" - style="stop-color:#ffffff;stop-opacity:0;" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="0.75" - id="stop4089" /> - <stop - id="stop4087" - offset="1" - style="stop-color:#ffffff;stop-opacity:1;" /> + <linearGradient xlink:href="#linearGradient6470" id="linearGradient6827" gradientUnits="userSpaceOnUse" x1="271.02170" y1="-441.05182" x2="285.02859" y2="-431.96991"/> + <linearGradient id="linearGradient4083"> + <stop id="stop4085" offset="0" stop-color="#ffffff" stop-opacity="0"/> + <stop offset="0.75" id="stop4089" stop-color="#ffffff" stop-opacity="0"/> + <stop id="stop4087" offset="1" stop-color="#ffffff" stop-opacity="1"/> </linearGradient> - <linearGradient - id="linearGradient4032"> - <stop - id="stop4034" - offset="0" - style="stop-color:#fff7c2;stop-opacity:0.63829786" /> - <stop - style="stop-color:#fcaf3e;stop-opacity:0.18348624;" - offset="0.59394139" - id="stop4036" /> - <stop - id="stop4038" - offset="0.83850551" - style="stop-color:#fcaf3e;stop-opacity:0.50458717;" /> - <stop - id="stop4040" - offset="1" - style="stop-color:#fcaf3e;stop-opacity:1;" /> + <linearGradient id="linearGradient4032"> + <stop id="stop4034" offset="0" stop-color="#fff7c2" stop-opacity="0.63829786"/> + <stop offset="0.59394139" id="stop4036" stop-color="#fcaf3e" stop-opacity="0.18348624"/> + <stop id="stop4038" offset="0.83850551" stop-color="#fcaf3e" stop-opacity="0.50458717"/> + <stop id="stop4040" offset="1" stop-color="#fcaf3e" stop-opacity="1"/> </linearGradient> - <linearGradient - id="linearGradient4026"> - <stop - id="stop4028" - offset="0" - style="stop-color:#fff9c6;stop-opacity:1" /> - <stop - style="stop-color:#fff28c;stop-opacity:1;" - offset="0.54166669" - id="stop4042" /> - <stop - id="stop4030" - offset="1" - style="stop-color:#ffea85;stop-opacity:1;" /> + <linearGradient id="linearGradient4026"> + <stop id="stop4028" offset="0" stop-color="#fff9c6" stop-opacity="1"/> + <stop offset="0.54166669" id="stop4042" stop-color="#fff28c" stop-opacity="1"/> + <stop id="stop4030" offset="1" stop-color="#ffea85" stop-opacity="1"/> </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient4026" - id="linearGradient3168" - gradientUnits="userSpaceOnUse" - x1="-28.968945" - y1="-25.326815" - x2="-37.19698" - y2="-9.5590506" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient4032" - id="radialGradient4020" - cx="-33.519073" - cy="-22.113297" - fx="-33.519073" - fy="-22.113297" - r="9.5" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.487739,1.292402,-1.10267,0.497242,-41.77393,32.41492)" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient4083" - id="radialGradient4081" - cx="23.99999" - cy="23.381506" - fx="23.99999" - fy="23.381506" - r="19.141981" - gradientTransform="matrix(1.006701,2.235326e-16,-2.23715e-16,1.007522,-0.160816,0.426981)" - gradientUnits="userSpaceOnUse" /> + <linearGradient xlink:href="#linearGradient4026" id="linearGradient3168" gradientUnits="userSpaceOnUse" x1="-28.968945" y1="-25.326815" x2="-37.19698" y2="-9.5590506"/> + <radialGradient xlink:href="#linearGradient4032" id="radialGradient4020" cx="-33.519073" cy="-22.113297" fx="-33.519073" fy="-22.113297" r="9.5" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.487739,1.292402,-1.10267,0.497242,-41.77393,32.41492)"/> + <radialGradient xlink:href="#linearGradient4083" id="radialGradient4081" cx="23.99999" cy="23.381506" fx="23.99999" fy="23.381506" r="19.141981" gradientTransform="matrix(1.006701,2.235326e-16,-2.23715e-16,1.007522,-0.160816,0.426981)" gradientUnits="userSpaceOnUse"/> </defs> - <sodipodi:namedview - id="base" - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1.0" - inkscape:pageopacity="0.0" - inkscape:pageshadow="2" - inkscape:zoom="16.270833" - inkscape:cx="24" - inkscape:cy="24" - inkscape:current-layer="layer1" - showgrid="true" - inkscape:grid-bbox="true" - inkscape:document-units="px" - inkscape:window-width="982" - inkscape:window-height="965" - inkscape:window-x="1280" - inkscape:window-y="28" - inkscape:showpageshadow="false" /> - <metadata - id="metadata1311"> + + <metadata id="metadata1311"> <rdf:RDF> - <cc:Work - rdf:about=""> + <cc:Work rdf:about=""> <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> <dc:title>weather-clear</dc:title> <dc:date>January 2006</dc:date> <dc:creator> @@ -352,241 +78,63 @@ <rdf:li>notification</rdf:li> </rdf:Bag> </dc:subject> - <cc:license - rdf:resource="http://creativecommons.org/licenses/by-sa/2.0/" /> + <cc:license rdf:resource="http://creativecommons.org/licenses/by-sa/2.0/"/> <dc:contributor> <cc:Agent> <dc:title>Garrett LeSage</dc:title> </cc:Agent> </dc:contributor> </cc:Work> - <cc:License - rdf:about="http://creativecommons.org/licenses/by-sa/2.0/"> - <cc:permits - rdf:resource="http://web.resource.org/cc/Reproduction" /> - <cc:permits - rdf:resource="http://web.resource.org/cc/Distribution" /> - <cc:requires - rdf:resource="http://web.resource.org/cc/Notice" /> - <cc:requires - rdf:resource="http://web.resource.org/cc/Attribution" /> - <cc:permits - rdf:resource="http://web.resource.org/cc/DerivativeWorks" /> - <cc:requires - rdf:resource="http://web.resource.org/cc/ShareAlike" /> + <cc:License rdf:about="http://creativecommons.org/licenses/by-sa/2.0/"> + <cc:permits rdf:resource="http://web.resource.org/cc/Reproduction"/> + <cc:permits rdf:resource="http://web.resource.org/cc/Distribution"/> + <cc:requires rdf:resource="http://web.resource.org/cc/Notice"/> + <cc:requires rdf:resource="http://web.resource.org/cc/Attribution"/> + <cc:permits rdf:resource="http://web.resource.org/cc/DerivativeWorks"/> + <cc:requires rdf:resource="http://web.resource.org/cc/ShareAlike"/> </cc:License> </rdf:RDF> </metadata> - <g - id="layer1" - inkscape:label="Layer 1" - inkscape:groupmode="layer"> - <g - id="g3936"> - <g - style="opacity:0.7" - id="g4091"> - <path - style="fill:#fce94f;fill-opacity:1;stroke:#fcaf3e;stroke-width:0.73732895;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="M 24 2.5 L 21.625 9.1875 C 22.399034 9.0641318 23.191406 9 24 9 C 24.808594 9 25.600966 9.0641317 26.375 9.1875 L 24 2.5 z M 8.8125 8.78125 L 11.84375 15.21875 C 12.779034 13.928569 13.928569 12.779034 15.21875 11.84375 L 8.8125 8.78125 z M 39.21875 8.78125 L 32.78125 11.84375 C 34.071431 12.779034 35.220966 13.928569 36.15625 15.21875 L 39.21875 8.78125 z M 9.1875 21.59375 L 2.5 23.96875 L 9.1875 26.34375 C 9.0673373 25.57952 9 24.797813 9 24 C 9 23.180625 9.0608858 22.377571 9.1875 21.59375 z M 38.8125 21.625 C 38.935868 22.399034 39 23.191406 39 24 C 39 24.808594 38.935868 25.600966 38.8125 26.375 L 45.5 24 L 38.8125 21.625 z M 11.84375 32.78125 L 8.8125 39.1875 L 15.21875 36.15625 C 13.928569 35.220966 12.779034 34.071431 11.84375 32.78125 z M 36.15625 32.78125 C 35.229789 34.05926 34.087617 35.194799 32.8125 36.125 L 39.21875 39.1875 L 36.15625 32.78125 z M 21.625 38.8125 L 24 45.5 L 26.375 38.8125 C 25.600966 38.935868 24.808594 39 24 39 C 23.191406 39 22.399034 38.935868 21.625 38.8125 z " - id="path7492" /> - <path - style="fill:none;fill-opacity:1;stroke:url(#radialGradient4081);stroke-width:0.84646249;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="M 24 5.25 L 22.65625 9.0625 C 23.098888 9.0231486 23.547187 9 24 9 C 24.452813 9 24.901112 9.0231486 25.34375 9.0625 L 24 5.25 z M 10.78125 10.75 L 12.5 14.375 C 13.071538 13.694089 13.724004 13.038745 14.40625 12.46875 L 10.78125 10.75 z M 37.25 10.75 L 33.625 12.46875 C 34.304675 13.038189 34.961811 13.695325 35.53125 14.375 L 37.25 10.75 z M 9.0625 22.625 L 5.28125 23.96875 L 9.0625 25.3125 C 9.024981 24.880146 9 24.442031 9 24 C 9 23.536406 9.0212735 23.077908 9.0625 22.625 z M 38.9375 22.65625 C 38.976851 23.098888 39 23.547187 39 24 C 39 24.452813 38.976851 24.901112 38.9375 25.34375 L 42.71875 24 L 38.9375 22.65625 z M 35.53125 33.59375 C 34.958293 34.27954 34.309985 34.957363 33.625 35.53125 L 37.25 37.25 L 35.53125 33.59375 z M 12.5 33.625 L 10.78125 37.21875 L 14.375 35.5 C 13.702932 34.935884 13.064116 34.297068 12.5 33.625 z M 22.65625 38.9375 L 24 42.71875 L 25.34375 38.9375 C 24.901112 38.976851 24.452813 39 24 39 C 23.547187 39 23.098888 38.976851 22.65625 38.9375 z " - id="path7494" /> + <g id="layer1"> + <g> + <g opacity="0.7"> + <path d="M 24 2.5 L 21.625 9.1875 C 22.399034 9.0641318 23.191406 9 24 9 C 24.808594 9 25.600966 9.0641317 26.375 9.1875 L 24 2.5 z M 8.8125 8.78125 L 11.84375 15.21875 C 12.779034 13.928569 13.928569 12.779034 15.21875 11.84375 L 8.8125 8.78125 z M 39.21875 8.78125 L 32.78125 11.84375 C 34.071431 12.779034 35.220966 13.928569 36.15625 15.21875 L 39.21875 8.78125 z M 9.1875 21.59375 L 2.5 23.96875 L 9.1875 26.34375 C 9.0673373 25.57952 9 24.797813 9 24 C 9 23.180625 9.0608858 22.377571 9.1875 21.59375 z M 38.8125 21.625 C 38.935868 22.399034 39 23.191406 39 24 C 39 24.808594 38.935868 25.600966 38.8125 26.375 L 45.5 24 L 38.8125 21.625 z M 11.84375 32.78125 L 8.8125 39.1875 L 15.21875 36.15625 C 13.928569 35.220966 12.779034 34.071431 11.84375 32.78125 z M 36.15625 32.78125 C 35.229789 34.05926 34.087617 35.194799 32.8125 36.125 L 39.21875 39.1875 L 36.15625 32.78125 z M 21.625 38.8125 L 24 45.5 L 26.375 38.8125 C 25.600966 38.935868 24.808594 39 24 39 C 23.191406 39 22.399034 38.935868 21.625 38.8125 z " fill="#fce94f" fill-opacity="1" stroke="#fcaf3e" stroke-width="0.73732895" stroke-linecap="square" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-opacity="1"/> + <path d="M 24 5.25 L 22.65625 9.0625 C 23.098888 9.0231486 23.547187 9 24 9 C 24.452813 9 24.901112 9.0231486 25.34375 9.0625 L 24 5.25 z M 10.78125 10.75 L 12.5 14.375 C 13.071538 13.694089 13.724004 13.038745 14.40625 12.46875 L 10.78125 10.75 z M 37.25 10.75 L 33.625 12.46875 C 34.304675 13.038189 34.961811 13.695325 35.53125 14.375 L 37.25 10.75 z M 9.0625 22.625 L 5.28125 23.96875 L 9.0625 25.3125 C 9.024981 24.880146 9 24.442031 9 24 C 9 23.536406 9.0212735 23.077908 9.0625 22.625 z M 38.9375 22.65625 C 38.976851 23.098888 39 23.547187 39 24 C 39 24.452813 38.976851 24.901112 38.9375 25.34375 L 42.71875 24 L 38.9375 22.65625 z M 35.53125 33.59375 C 34.958293 34.27954 34.309985 34.957363 33.625 35.53125 L 37.25 37.25 L 35.53125 33.59375 z M 12.5 33.625 L 10.78125 37.21875 L 14.375 35.5 C 13.702932 34.935884 13.064116 34.297068 12.5 33.625 z M 22.65625 38.9375 L 24 42.71875 L 25.34375 38.9375 C 24.901112 38.976851 24.452813 39 24 39 C 23.547187 39 23.098888 38.976851 22.65625 38.9375 z " fill="none" fill-opacity="1" stroke="url(#radialGradient4081)" stroke-width="0.84646249" stroke-linecap="square" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-opacity="1"/> </g> - <g - id="g4046"> - <g - id="g3931"> - <path - inkscape:r_cy="true" - inkscape:r_cx="true" - transform="matrix(0.778062,-1.061285,1.061287,0.778062,67.47952,3.641324)" - d="M -22.5 -17.5 A 9.5 9.5 0 1 1 -41.5,-17.5 A 9.5 9.5 0 1 1 -22.5 -17.5 z" - sodipodi:ry="9.5" - sodipodi:rx="9.5" - sodipodi:cy="-17.5" - sodipodi:cx="-32" - id="path7498" - style="fill:#ffee54;fill-opacity:1;stroke:#fcaf3e;stroke-width:0.75991178;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - sodipodi:type="arc" /> - <path - inkscape:r_cy="true" - inkscape:r_cx="true" - transform="matrix(1.244257,-0.167707,0.216642,1.251844,67.61648,40.527)" - d="M -22.5 -17.5 A 9.5 9.5 0 1 1 -41.5,-17.5 A 9.5 9.5 0 1 1 -22.5 -17.5 z" - sodipodi:ry="9.5" - sodipodi:rx="9.5" - sodipodi:cy="-17.5" - sodipodi:cx="-32" - id="path7500" - style="fill:url(#radialGradient4020);fill-opacity:1;stroke:none;stroke-width:1.01737845;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - sodipodi:type="arc" /> - <path - inkscape:r_cy="true" - inkscape:r_cx="true" - transform="matrix(0.715791,-0.976349,0.97635,0.715792,64.00044,5.269544)" - d="M -22.5 -17.5 A 9.5 9.5 0 1 1 -41.5,-17.5 A 9.5 9.5 0 1 1 -22.5 -17.5 z" - sodipodi:ry="9.5" - sodipodi:rx="9.5" - sodipodi:cy="-17.5" - sodipodi:cx="-32" - id="path7502" - style="fill:none;fill-opacity:1;stroke:url(#linearGradient3168);stroke-width:0.82601947;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - sodipodi:type="arc" /> + <g> + <g> + <path transform="matrix(0.778062,-1.061285,1.061287,0.778062,67.47952,3.641324)" d="M -22.5 -17.5 A 9.5 9.5 0 1 1 -41.5,-17.5 A 9.5 9.5 0 1 1 -22.5 -17.5 z" fill="#ffee54" fill-opacity="1" stroke="#fcaf3e" stroke-width="0.75991178" stroke-linecap="square" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-opacity="1"/> + <path transform="matrix(1.244257,-0.167707,0.216642,1.251844,67.61648,40.527)" d="M -22.5 -17.5 A 9.5 9.5 0 1 1 -41.5,-17.5 A 9.5 9.5 0 1 1 -22.5 -17.5 z" fill="url(#radialGradient4020)" fill-opacity="1" stroke="none" stroke-width="1.01737845" stroke-linecap="square" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-opacity="1"/> + <path transform="matrix(0.715791,-0.976349,0.97635,0.715792,64.00044,5.269544)" d="M -22.5 -17.5 A 9.5 9.5 0 1 1 -41.5,-17.5 A 9.5 9.5 0 1 1 -22.5 -17.5 z" fill="none" fill-opacity="1" stroke="url(#linearGradient3168)" stroke-width="0.82601947" stroke-linecap="square" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-opacity="1"/> </g> </g> </g> - <g - id="g6783" - transform="translate(-263.99,459.9855)"> - <path - sodipodi:nodetypes="ccsscsssscsscc" - id="path6785" - d="M 280.50000,-445.50000 C 278.22917,-445.50000 276.39009,-443.94972 275.78125,-441.87500 C 275.08802,-442.23883 274.33674,-442.50000 273.50000,-442.50000 C 270.74000,-442.50000 268.49999,-440.26001 268.50000,-437.50000 C 268.50000,-436.92107 268.66252,-436.39230 268.84375,-435.87500 C 267.47028,-435.10426 266.50000,-433.68600 266.50000,-432.00000 C 266.50000,-429.51600 268.51600,-427.49999 271.00000,-427.50000 C 271.17713,-427.50000 289.82287,-427.50000 290.00000,-427.50000 C 292.48399,-427.50000 294.50000,-429.51600 294.50000,-432.00000 C 294.50000,-433.68600 293.52972,-435.10426 292.15625,-435.87500 C 292.33749,-436.39229 292.50000,-436.92108 292.50000,-437.50000 C 292.50000,-440.26000 290.26000,-442.49999 287.50000,-442.50000 C 286.66326,-442.50000 285.91198,-442.23883 285.21875,-441.87500 C 284.60991,-443.94972 282.77083,-445.50000 280.50000,-445.50000 z " - style="fill:#c4c5c2;fill-opacity:1.0000000;stroke:#888a85;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <path - sodipodi:nodetypes="ccsscsssscsscc" - id="path6787" - d="M 280.50000,-445.00000 C 278.31028,-445.00000 276.77640,-443.66423 276.10445,-441.15648 C 275.43599,-441.50010 274.55686,-441.98983 273.75000,-441.98983 C 271.03349,-441.98983 268.99486,-440.05101 268.99487,-437.44429 C 268.99487,-436.89752 269.26208,-436.11085 269.43683,-435.62228 C 268.11240,-434.89433 267.00000,-433.73178 267.00000,-432.24973 C 267.00000,-429.90368 268.54617,-427.99964 271.33928,-427.99964 C 271.51009,-427.99964 289.48992,-427.99964 289.66072,-427.99964 C 292.43173,-427.99964 294.00000,-429.90368 294.00000,-432.24973 C 294.00000,-433.84210 292.88760,-434.91642 291.56317,-435.64437 C 291.73793,-436.13293 292.02724,-436.89753 292.02724,-437.44429 C 292.02724,-440.05100 289.91143,-442.01192 287.25001,-442.01193 C 286.44314,-442.01193 285.60820,-441.52219 284.93974,-441.17857 C 284.29089,-443.60011 282.68973,-445.00000 280.50000,-445.00000 z " - style="opacity:1.0000000;fill:url(#linearGradient6827);fill-opacity:1.0000000;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <g - id="g6789"> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path6791" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:url(#linearGradient6829);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path6793" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" /> + <g transform="translate(-263.99,459.9855)"> + <path d="M 280.50000,-445.50000 C 278.22917,-445.50000 276.39009,-443.94972 275.78125,-441.87500 C 275.08802,-442.23883 274.33674,-442.50000 273.50000,-442.50000 C 270.74000,-442.50000 268.49999,-440.26001 268.50000,-437.50000 C 268.50000,-436.92107 268.66252,-436.39230 268.84375,-435.87500 C 267.47028,-435.10426 266.50000,-433.68600 266.50000,-432.00000 C 266.50000,-429.51600 268.51600,-427.49999 271.00000,-427.50000 C 271.17713,-427.50000 289.82287,-427.50000 290.00000,-427.50000 C 292.48399,-427.50000 294.50000,-429.51600 294.50000,-432.00000 C 294.50000,-433.68600 293.52972,-435.10426 292.15625,-435.87500 C 292.33749,-436.39229 292.50000,-436.92108 292.50000,-437.50000 C 292.50000,-440.26000 290.26000,-442.49999 287.50000,-442.50000 C 286.66326,-442.50000 285.91198,-442.23883 285.21875,-441.87500 C 284.60991,-443.94972 282.77083,-445.50000 280.50000,-445.50000 z " fill="#c4c5c2" fill-opacity="1.0000000" stroke="#888a85" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 280.50000,-445.00000 C 278.31028,-445.00000 276.77640,-443.66423 276.10445,-441.15648 C 275.43599,-441.50010 274.55686,-441.98983 273.75000,-441.98983 C 271.03349,-441.98983 268.99486,-440.05101 268.99487,-437.44429 C 268.99487,-436.89752 269.26208,-436.11085 269.43683,-435.62228 C 268.11240,-434.89433 267.00000,-433.73178 267.00000,-432.24973 C 267.00000,-429.90368 268.54617,-427.99964 271.33928,-427.99964 C 271.51009,-427.99964 289.48992,-427.99964 289.66072,-427.99964 C 292.43173,-427.99964 294.00000,-429.90368 294.00000,-432.24973 C 294.00000,-433.84210 292.88760,-434.91642 291.56317,-435.64437 C 291.73793,-436.13293 292.02724,-436.89753 292.02724,-437.44429 C 292.02724,-440.05100 289.91143,-442.01192 287.25001,-442.01193 C 286.44314,-442.01193 285.60820,-441.52219 284.93974,-441.17857 C 284.29089,-443.60011 282.68973,-445.00000 280.50000,-445.00000 z " opacity="1.0000000" fill="url(#linearGradient6827)" fill-opacity="1.0000000" stroke="none" stroke-width="0.99999958" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <g> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" opacity="1.0000000" fill="url(#linearGradient6829)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <rect - y="-438.00000" - x="271.00000" - height="9.0000000" - width="20.000000" - id="rect6795" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <path - transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830195,-35.68869)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path6797" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <g - id="g6799"> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path6801" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19811,24.86321)" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:url(#linearGradient6831);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path6803" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19818,24.86331)" /> + <rect y="-438.00000" x="271.00000" height="9.0000000" width="20.000000" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830195,-35.68869)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <g> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19811,24.86321)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19818,24.86331)" opacity="1.0000000" fill="url(#linearGradient6831)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - id="g6805"> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path6807" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:url(#linearGradient6833);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path6809" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" /> + <g> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" opacity="1.0000000" fill="url(#linearGradient6833)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - transform="translate(-1.000000,0.000000)" - id="g6811"> - <path - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - d="M 280.46875,-440.96875 C 276.88937,-440.96875 274.00000,-438.04812 274.00000,-434.46875 C 274.00000,-432.09807 275.34943,-430.13096 277.25000,-429.00000 L 283.71875,-429.00000 C 285.61932,-430.13096 286.96875,-432.12931 286.96875,-434.50000 C 286.96875,-438.07938 284.04812,-440.96875 280.46875,-440.96875 z " - id="path6813" /> - <path - style="opacity:1.0000000;fill:url(#linearGradient6835);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - d="M 280.50000,-441.00000 C 276.91200,-441.00000 274.00000,-438.08799 274.00000,-434.50000 C 274.00000,-432.12360 275.34485,-430.13368 277.25000,-429.00000 L 283.75000,-429.00000 C 285.65515,-430.13368 287.00000,-432.12360 287.00000,-434.50000 C 287.00000,-438.08800 284.08800,-440.99999 280.50000,-441.00000 z " - id="path6815" /> + <g transform="translate(-1.000000,0.000000)"> + <path d="M 280.46875,-440.96875 C 276.88937,-440.96875 274.00000,-438.04812 274.00000,-434.46875 C 274.00000,-432.09807 275.34943,-430.13096 277.25000,-429.00000 L 283.71875,-429.00000 C 285.61932,-430.13096 286.96875,-432.12931 286.96875,-434.50000 C 286.96875,-438.07938 284.04812,-440.96875 280.46875,-440.96875 z " opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 280.50000,-441.00000 C 276.91200,-441.00000 274.00000,-438.08799 274.00000,-434.50000 C 274.00000,-432.12360 275.34485,-430.13368 277.25000,-429.00000 L 283.75000,-429.00000 C 285.65515,-430.13368 287.00000,-432.12360 287.00000,-434.50000 C 287.00000,-438.08800 284.08800,-440.99999 280.50000,-441.00000 z " opacity="1.0000000" fill="url(#linearGradient6835)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <path - transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830296,-35.68884)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path6817" - style="opacity:1.0000000;fill:url(#linearGradient6837);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - sodipodi:nodetypes="ccss" - id="path6819" - d="M 292.95640,-437.33396 C 292.95487,-434.64940 289.68714,-433.62001 289.68714,-433.62001 C 289.68714,-433.62001 292.03588,-435.24596 292.02399,-437.32502 C 292.02399,-437.32502 292.95640,-437.33396 292.95640,-437.33396 z " - style="fill:#888a85;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" /> - <g - transform="matrix(1.142857,0.000000,0.000000,1.142857,-28.57139,67.00008)" - id="g6821"> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path6823" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:url(#linearGradient6839);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path6825" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" /> + <path transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830296,-35.68884)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="url(#linearGradient6837)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 292.95640,-437.33396 C 292.95487,-434.64940 289.68714,-433.62001 289.68714,-433.62001 C 289.68714,-433.62001 292.03588,-435.24596 292.02399,-437.32502 C 292.02399,-437.32502 292.95640,-437.33396 292.95640,-437.33396 z " fill="#888a85" fill-opacity="1.0000000" fill-rule="evenodd" stroke="none" stroke-width="1.0000000px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1.0000000"/> + <g transform="matrix(1.142857,0.000000,0.000000,1.142857,-28.57139,67.00008)"> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" opacity="1.0000000" fill="url(#linearGradient6839)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> </g> </g> diff --git a/demos/embedded/weatherinfo/icons/weather-sunny.svg b/demos/embedded/weatherinfo/icons/weather-sunny.svg index 0360ac7..248199c 100644 --- a/demos/embedded/weatherinfo/icons/weather-sunny.svg +++ b/demos/embedded/weatherinfo/icons/weather-sunny.svg @@ -1,1225 +1,32 @@ <?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="48px" - height="48px" - id="svg1306" - sodipodi:version="0.32" - inkscape:version="0.46" - sodipodi:docbase="/home/garrett/Source/tango-icon-theme/scalable/status" - sodipodi:docname="weather-sunny.svg" - inkscape:output_extension="org.inkscape.output.svg.inkscape"> - <defs - id="defs1308"> - <inkscape:perspective - sodipodi:type="inkscape:persp3d" - inkscape:vp_x="0 : 24 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_z="48 : 24 : 1" - inkscape:persp3d-origin="24 : 16 : 1" - id="perspective37214" /> - <linearGradient - id="linearGradient4083"> - <stop - id="stop4085" - offset="0" - style="stop-color:#ffffff;stop-opacity:0;" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="0.75" - id="stop4089" /> - <stop - id="stop4087" - offset="1" - style="stop-color:#ffffff;stop-opacity:1;" /> +<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="48px" height="48px" id="svg1306"> + <defs id="defs1308"> + <linearGradient id="linearGradient4083"> + <stop id="stop4085" offset="0" stop-color="#ffffff" stop-opacity="0"/> + <stop offset="0.75" id="stop4089" stop-color="#ffffff" stop-opacity="0"/> + <stop id="stop4087" offset="1" stop-color="#ffffff" stop-opacity="1"/> </linearGradient> - <linearGradient - id="linearGradient4032"> - <stop - id="stop4034" - offset="0" - style="stop-color:#fff7c2;stop-opacity:0.63829786" /> - <stop - style="stop-color:#fcaf3e;stop-opacity:0.18348624;" - offset="0.59394139" - id="stop4036" /> - <stop - id="stop4038" - offset="0.83850551" - style="stop-color:#fcaf3e;stop-opacity:0.50458717;" /> - <stop - id="stop4040" - offset="1" - style="stop-color:#fcaf3e;stop-opacity:1;" /> + <linearGradient id="linearGradient4032"> + <stop id="stop4034" offset="0" stop-color="#fff7c2" stop-opacity="0.63829786"/> + <stop offset="0.59394139" id="stop4036" stop-color="#fcaf3e" stop-opacity="0.18348624"/> + <stop id="stop4038" offset="0.83850551" stop-color="#fcaf3e" stop-opacity="0.50458717"/> + <stop id="stop4040" offset="1" stop-color="#fcaf3e" stop-opacity="1"/> </linearGradient> - <linearGradient - id="linearGradient4026"> - <stop - id="stop4028" - offset="0" - style="stop-color:#fff9c6;stop-opacity:1" /> - <stop - style="stop-color:#fff28c;stop-opacity:1;" - offset="0.54166669" - id="stop4042" /> - <stop - id="stop4030" - offset="1" - style="stop-color:#ffea85;stop-opacity:1;" /> + <linearGradient id="linearGradient4026"> + <stop id="stop4028" offset="0" stop-color="#fff9c6" stop-opacity="1"/> + <stop offset="0.54166669" id="stop4042" stop-color="#fff28c" stop-opacity="1"/> + <stop id="stop4030" offset="1" stop-color="#ffea85" stop-opacity="1"/> </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2298" - id="linearGradient7748" - gradientUnits="userSpaceOnUse" - x1="-27.006643" - y1="-37.550461" - x2="-34.700153" - y2="-4.4493785" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2527" - id="linearGradient7746" - gradientUnits="userSpaceOnUse" - x1="-25.137094" - y1="-1.2491118" - x2="-35.652866" - y2="-24.884460" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3478" - id="linearGradient7744" - gradientUnits="userSpaceOnUse" - x1="11.149398" - y1="-43.997444" - x2="4.9625983" - y2="-8.3080902" /> - <linearGradient - inkscape:collect="always" - id="linearGradient4829"> - <stop - style="stop-color:#000000;stop-opacity:1;" - offset="0" - id="stop4831" /> - <stop - style="stop-color:#000000;stop-opacity:0;" - offset="1" - id="stop4833" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient3478"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop3480" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop3482" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient2298"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop2300" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop2302" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient3347"> - <stop - style="stop-color:#edd400;stop-opacity:1;" - offset="0" - id="stop3349" /> - <stop - style="stop-color:#edd400;stop-opacity:0;" - offset="1" - id="stop3351" /> - </linearGradient> - <linearGradient - id="linearGradient2527"> - <stop - style="stop-color:#fcaf3e;stop-opacity:0;" - offset="0" - id="stop2529" /> - <stop - id="stop4022" - offset="0.66644967" - style="stop-color:#fcaf3e;stop-opacity:0.17431192;" /> - <stop - style="stop-color:#fcaf3e;stop-opacity:0.55963302;" - offset="0.86458337" - id="stop4024" /> - <stop - style="stop-color:#fcaf3e;stop-opacity:1;" - offset="1" - id="stop2531" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient2500"> - <stop - style="stop-color:#fce94f;stop-opacity:1;" - offset="0" - id="stop2502" /> - <stop - style="stop-color:#fce94f;stop-opacity:0;" - offset="1" - id="stop2504" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient2392"> - <stop - style="stop-color:#eeeeec;stop-opacity:1;" - offset="0" - id="stop2394" /> - <stop - style="stop-color:#eeeeec;stop-opacity:0;" - offset="1" - id="stop2396" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient2254"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop2256" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop2258" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2263" - gradientUnits="userSpaceOnUse" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" - gradientTransform="translate(-1.608757,3.097272)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2267" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(3.555020,0.968578)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2271" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(9.263651,3.495228)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2275" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(8.497184,-2.330824)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2279" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(14.46340,2.014073)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2283" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2287" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2291" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2295" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2299" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2303" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(1.707748,-5.784024)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2311" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2350" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(16.14002,24.66420)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2352" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-0.932144,25.87240)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2354" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(5.356636,23.86870)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2356" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(11.19027,26.52035)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2358" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(10.30638,19.27251)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2360" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,0.229156,30.76299)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2362" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,16.67145,27.22746)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2364" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,17.05272,31.47010)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2366" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-4.010744,24.96040)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2368" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,8.185476,29.52556)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2370" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(4.207586,21.30544)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2372" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.12415,32.08882)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2392" - id="linearGradient2398" - x1="6.6651416" - y1="13.802798" - x2="41.403877" - y2="13.802798" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2426" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(14.46340,2.014073)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2428" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(8.497184,-2.330824)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2430" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-1.608757,3.097272)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2432" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(3.555020,0.968578)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2434" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(9.263651,3.495228)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2436" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2438" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2440" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2442" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2444" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2446" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2392" - id="linearGradient2448" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" - x1="6.6651416" - y1="13.802798" - x2="41.403877" - y2="13.802798" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2392" - id="linearGradient2451" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,4.378541,10.65407)" - x1="6.6651416" - y1="13.802798" - x2="41.403877" - y2="13.802798" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2457" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2460" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2463" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2469" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2472" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(12.51365,8.745228)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2475" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(6.805020,6.218578)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2478" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(1.641243,8.347272)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2483" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(0.842481,-3.998086)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2500" - id="linearGradient2506" - x1="37.000000" - y1="-21.750000" - x2="53.750000" - y2="9.0000000" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2500" - id="linearGradient2509" - gradientUnits="userSpaceOnUse" - x1="37.000000" - y1="-21.750000" - x2="53.750000" - y2="9.0000000" - gradientTransform="matrix(0.889091,0.000000,0.000000,0.617886,-4.771368,39.81402)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2500" - id="linearGradient2513" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.605509,0.000000,0.000000,0.710542,-0.224971,42.19500)" - x1="38.857941" - y1="-18.407482" - x2="53.750000" - y2="9.0000000" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2500" - id="linearGradient2517" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.414169,0.000000,0.000000,0.778853,-1.910724,36.87850)" - x1="37.000000" - y1="-21.750000" - x2="53.750000" - y2="9.0000000" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2527" - id="linearGradient2533" - x1="-25.137094" - y1="-1.2491118" - x2="-35.652866" - y2="-24.884460" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2537" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(17.33814,3.415985)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2541" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(13.40064,1.353485)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2555" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-7.499805,1.708617)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2563" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-0.726830,2.481141)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3347" - id="linearGradient3353" - x1="23.303862" - y1="29.115711" - x2="29.750000" - y2="46.092930" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3366" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(13.40064,1.353485)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3368" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(1.641243,8.347272)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3370" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(6.805020,6.218578)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3372" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(12.51365,8.745228)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3374" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3376" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3378" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3380" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3383" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3386" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3389" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3392" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3395" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(3.674812,3.088370)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3398" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-2.033818,0.561720)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3401" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-7.197595,2.690414)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3405" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(4.561802,-4.303373)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient1514" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(88.49344,-9.697877)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient1516" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,56.25514,-12.39388)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient1518" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,79.36909,-3.193747)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2527" - id="linearGradient1520" - gradientUnits="userSpaceOnUse" - x1="-25.137094" - y1="-1.2491118" - x2="-35.652866" - y2="-24.884460" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient1522" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-7.197595,2.690414)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient1524" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-2.033818,0.561720)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient1526" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(3.674812,3.088370)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient1528" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient1530" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient1532" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient1534" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient1536" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,123.1162,-5.446357)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient1538" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(57.97693,-10.56876)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2527" - id="linearGradient1557" - gradientUnits="userSpaceOnUse" - x1="-25.137094" - y1="-1.2491118" - x2="-35.652866" - y2="-24.884460" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient4829" - id="radialGradient4835" - cx="-35.001785" - cy="-1.1439217" - fx="-35.001785" - fy="-1.1439217" - r="17.500893" - gradientTransform="matrix(1.000000,0.000000,0.000000,0.565657,-5.564992e-15,-0.496855)" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2298" - id="linearGradient1427" - gradientUnits="userSpaceOnUse" - x1="-27.006643" - y1="-37.550461" - x2="-34.700153" - y2="-4.4493785" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3478" - id="linearGradient1431" - gradientUnits="userSpaceOnUse" - x1="11.149398" - y1="-43.997444" - x2="4.9625983" - y2="-8.3080902" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3478" - id="linearGradient14128" - gradientUnits="userSpaceOnUse" - x1="11.149398" - y1="-43.997444" - x2="4.9625983" - y2="-8.3080902" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2527" - id="linearGradient14130" - gradientUnits="userSpaceOnUse" - x1="-25.137094" - y1="-1.2491118" - x2="-35.652866" - y2="-24.884460" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2298" - id="linearGradient14132" - gradientUnits="userSpaceOnUse" - x1="-27.006643" - y1="-37.550461" - x2="-34.700153" - y2="-4.4493785" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2527" - id="linearGradient3151" - gradientUnits="userSpaceOnUse" - x1="-25.137094" - y1="-1.2491118" - x2="-35.652866" - y2="-24.884460" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2298" - id="linearGradient3153" - gradientUnits="userSpaceOnUse" - x1="-27.006643" - y1="-37.550461" - x2="-34.700153" - y2="-4.4493785" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3478" - id="linearGradient3155" - gradientUnits="userSpaceOnUse" - x1="11.149398" - y1="-43.997444" - x2="4.9625983" - y2="-8.3080902" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3478" - id="linearGradient3161" - gradientUnits="userSpaceOnUse" - x1="11.149398" - y1="-43.997444" - x2="4.9625983" - y2="-8.3080902" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient4026" - id="linearGradient3168" - gradientUnits="userSpaceOnUse" - x1="-28.968945" - y1="-25.326815" - x2="-37.19698" - y2="-9.5590506" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient4032" - id="radialGradient4020" - cx="-33.519073" - cy="-22.113297" - fx="-33.519073" - fy="-22.113297" - r="9.5" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.487739,1.292402,-1.10267,0.497242,-41.77393,32.41492)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3478" - id="linearGradient4057" - gradientUnits="userSpaceOnUse" - x1="11.149398" - y1="-43.997444" - x2="4.9625983" - y2="-8.3080902" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient4083" - id="radialGradient4081" - cx="23.99999" - cy="23.381506" - fx="23.99999" - fy="23.381506" - r="19.141981" - gradientTransform="matrix(1.006701,2.235326e-16,-2.23715e-16,1.007522,-0.160816,0.426981)" - gradientUnits="userSpaceOnUse" /> + <linearGradient xlink:href="#linearGradient4026" id="linearGradient3168" gradientUnits="userSpaceOnUse" x1="-28.968945" y1="-25.326815" x2="-37.19698" y2="-9.5590506"/> + <radialGradient xlink:href="#linearGradient4032" id="radialGradient4020" cx="-33.519073" cy="-22.113297" fx="-33.519073" fy="-22.113297" r="9.5" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.487739,1.292402,-1.10267,0.497242,-41.77393,32.41492)"/> + <radialGradient xlink:href="#linearGradient4083" id="radialGradient4081" cx="23.99999" cy="23.381506" fx="23.99999" fy="23.381506" r="19.141981" gradientTransform="matrix(1.006701,2.235326e-16,-2.23715e-16,1.007522,-0.160816,0.426981)" gradientUnits="userSpaceOnUse"/> </defs> - <sodipodi:namedview - id="base" - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1.0" - inkscape:pageopacity="0.0" - inkscape:pageshadow="2" - inkscape:zoom="10.54135" - inkscape:cx="23.386176" - inkscape:cy="24.950603" - inkscape:current-layer="layer1" - showgrid="true" - inkscape:grid-bbox="true" - inkscape:document-units="px" - inkscape:window-width="1013" - inkscape:window-height="965" - inkscape:window-x="0" - inkscape:window-y="0" - inkscape:showpageshadow="false" /> - <metadata - id="metadata1311"> + + <metadata id="metadata1311"> <rdf:RDF> - <cc:Work - rdf:about=""> + <cc:Work rdf:about=""> <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> <dc:title>weather-clear</dc:title> <dc:date>January 2006</dc:date> <dc:creator> @@ -1240,89 +47,34 @@ <rdf:li>notification</rdf:li> </rdf:Bag> </dc:subject> - <cc:license - rdf:resource="http://creativecommons.org/licenses/by-sa/2.0/" /> + <cc:license rdf:resource="http://creativecommons.org/licenses/by-sa/2.0/"/> <dc:contributor> <cc:Agent> <dc:title>Garrett LeSage</dc:title> </cc:Agent> </dc:contributor> </cc:Work> - <cc:License - rdf:about="http://creativecommons.org/licenses/by-sa/2.0/"> - <cc:permits - rdf:resource="http://web.resource.org/cc/Reproduction" /> - <cc:permits - rdf:resource="http://web.resource.org/cc/Distribution" /> - <cc:requires - rdf:resource="http://web.resource.org/cc/Notice" /> - <cc:requires - rdf:resource="http://web.resource.org/cc/Attribution" /> - <cc:permits - rdf:resource="http://web.resource.org/cc/DerivativeWorks" /> - <cc:requires - rdf:resource="http://web.resource.org/cc/ShareAlike" /> + <cc:License rdf:about="http://creativecommons.org/licenses/by-sa/2.0/"> + <cc:permits rdf:resource="http://web.resource.org/cc/Reproduction"/> + <cc:permits rdf:resource="http://web.resource.org/cc/Distribution"/> + <cc:requires rdf:resource="http://web.resource.org/cc/Notice"/> + <cc:requires rdf:resource="http://web.resource.org/cc/Attribution"/> + <cc:permits rdf:resource="http://web.resource.org/cc/DerivativeWorks"/> + <cc:requires rdf:resource="http://web.resource.org/cc/ShareAlike"/> </cc:License> </rdf:RDF> </metadata> - <g - id="layer1" - inkscape:label="Layer 1" - inkscape:groupmode="layer"> - <g - id="g3936"> - <g - style="opacity:0.7" - id="g4091"> - <path - style="fill:#fce94f;fill-opacity:1;stroke:#fcaf3e;stroke-width:0.73732895;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="M 24 2.5 L 21.625 9.1875 C 22.399034 9.0641318 23.191406 9 24 9 C 24.808594 9 25.600966 9.0641317 26.375 9.1875 L 24 2.5 z M 8.8125 8.78125 L 11.84375 15.21875 C 12.779034 13.928569 13.928569 12.779034 15.21875 11.84375 L 8.8125 8.78125 z M 39.21875 8.78125 L 32.78125 11.84375 C 34.071431 12.779034 35.220966 13.928569 36.15625 15.21875 L 39.21875 8.78125 z M 9.1875 21.59375 L 2.5 23.96875 L 9.1875 26.34375 C 9.0673373 25.57952 9 24.797813 9 24 C 9 23.180625 9.0608858 22.377571 9.1875 21.59375 z M 38.8125 21.625 C 38.935868 22.399034 39 23.191406 39 24 C 39 24.808594 38.935868 25.600966 38.8125 26.375 L 45.5 24 L 38.8125 21.625 z M 11.84375 32.78125 L 8.8125 39.1875 L 15.21875 36.15625 C 13.928569 35.220966 12.779034 34.071431 11.84375 32.78125 z M 36.15625 32.78125 C 35.229789 34.05926 34.087617 35.194799 32.8125 36.125 L 39.21875 39.1875 L 36.15625 32.78125 z M 21.625 38.8125 L 24 45.5 L 26.375 38.8125 C 25.600966 38.935868 24.808594 39 24 39 C 23.191406 39 22.399034 38.935868 21.625 38.8125 z " - id="path7492" /> - <path - style="fill:none;fill-opacity:1;stroke:url(#radialGradient4081);stroke-width:0.84646249;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="M 24 5.25 L 22.65625 9.0625 C 23.098888 9.0231486 23.547187 9 24 9 C 24.452813 9 24.901112 9.0231486 25.34375 9.0625 L 24 5.25 z M 10.78125 10.75 L 12.5 14.375 C 13.071538 13.694089 13.724004 13.038745 14.40625 12.46875 L 10.78125 10.75 z M 37.25 10.75 L 33.625 12.46875 C 34.304675 13.038189 34.961811 13.695325 35.53125 14.375 L 37.25 10.75 z M 9.0625 22.625 L 5.28125 23.96875 L 9.0625 25.3125 C 9.024981 24.880146 9 24.442031 9 24 C 9 23.536406 9.0212735 23.077908 9.0625 22.625 z M 38.9375 22.65625 C 38.976851 23.098888 39 23.547187 39 24 C 39 24.452813 38.976851 24.901112 38.9375 25.34375 L 42.71875 24 L 38.9375 22.65625 z M 35.53125 33.59375 C 34.958293 34.27954 34.309985 34.957363 33.625 35.53125 L 37.25 37.25 L 35.53125 33.59375 z M 12.5 33.625 L 10.78125 37.21875 L 14.375 35.5 C 13.702932 34.935884 13.064116 34.297068 12.5 33.625 z M 22.65625 38.9375 L 24 42.71875 L 25.34375 38.9375 C 24.901112 38.976851 24.452813 39 24 39 C 23.547187 39 23.098888 38.976851 22.65625 38.9375 z " - id="path7494" /> + <g id="layer1"> + <g> + <g opacity="0.7"> + <path d="M 24 2.5 L 21.625 9.1875 C 22.399034 9.0641318 23.191406 9 24 9 C 24.808594 9 25.600966 9.0641317 26.375 9.1875 L 24 2.5 z M 8.8125 8.78125 L 11.84375 15.21875 C 12.779034 13.928569 13.928569 12.779034 15.21875 11.84375 L 8.8125 8.78125 z M 39.21875 8.78125 L 32.78125 11.84375 C 34.071431 12.779034 35.220966 13.928569 36.15625 15.21875 L 39.21875 8.78125 z M 9.1875 21.59375 L 2.5 23.96875 L 9.1875 26.34375 C 9.0673373 25.57952 9 24.797813 9 24 C 9 23.180625 9.0608858 22.377571 9.1875 21.59375 z M 38.8125 21.625 C 38.935868 22.399034 39 23.191406 39 24 C 39 24.808594 38.935868 25.600966 38.8125 26.375 L 45.5 24 L 38.8125 21.625 z M 11.84375 32.78125 L 8.8125 39.1875 L 15.21875 36.15625 C 13.928569 35.220966 12.779034 34.071431 11.84375 32.78125 z M 36.15625 32.78125 C 35.229789 34.05926 34.087617 35.194799 32.8125 36.125 L 39.21875 39.1875 L 36.15625 32.78125 z M 21.625 38.8125 L 24 45.5 L 26.375 38.8125 C 25.600966 38.935868 24.808594 39 24 39 C 23.191406 39 22.399034 38.935868 21.625 38.8125 z " fill="#fce94f" fill-opacity="1" stroke="#fcaf3e" stroke-width="0.73732895" stroke-linecap="square" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-opacity="1"/> + <path d="M 24 5.25 L 22.65625 9.0625 C 23.098888 9.0231486 23.547187 9 24 9 C 24.452813 9 24.901112 9.0231486 25.34375 9.0625 L 24 5.25 z M 10.78125 10.75 L 12.5 14.375 C 13.071538 13.694089 13.724004 13.038745 14.40625 12.46875 L 10.78125 10.75 z M 37.25 10.75 L 33.625 12.46875 C 34.304675 13.038189 34.961811 13.695325 35.53125 14.375 L 37.25 10.75 z M 9.0625 22.625 L 5.28125 23.96875 L 9.0625 25.3125 C 9.024981 24.880146 9 24.442031 9 24 C 9 23.536406 9.0212735 23.077908 9.0625 22.625 z M 38.9375 22.65625 C 38.976851 23.098888 39 23.547187 39 24 C 39 24.452813 38.976851 24.901112 38.9375 25.34375 L 42.71875 24 L 38.9375 22.65625 z M 35.53125 33.59375 C 34.958293 34.27954 34.309985 34.957363 33.625 35.53125 L 37.25 37.25 L 35.53125 33.59375 z M 12.5 33.625 L 10.78125 37.21875 L 14.375 35.5 C 13.702932 34.935884 13.064116 34.297068 12.5 33.625 z M 22.65625 38.9375 L 24 42.71875 L 25.34375 38.9375 C 24.901112 38.976851 24.452813 39 24 39 C 23.547187 39 23.098888 38.976851 22.65625 38.9375 z " fill="none" fill-opacity="1" stroke="url(#radialGradient4081)" stroke-width="0.84646249" stroke-linecap="square" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-opacity="1"/> </g> - <g - id="g4046"> - <g - id="g3931"> - <path - inkscape:r_cy="true" - inkscape:r_cx="true" - transform="matrix(0.778062,-1.061285,1.061287,0.778062,67.47952,3.641324)" - d="M -22.5 -17.5 A 9.5 9.5 0 1 1 -41.5,-17.5 A 9.5 9.5 0 1 1 -22.5 -17.5 z" - sodipodi:ry="9.5" - sodipodi:rx="9.5" - sodipodi:cy="-17.5" - sodipodi:cx="-32" - id="path7498" - style="fill:#ffee54;fill-opacity:1;stroke:#fcaf3e;stroke-width:0.75991178;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - sodipodi:type="arc" /> - <path - inkscape:r_cy="true" - inkscape:r_cx="true" - transform="matrix(1.244257,-0.167707,0.216642,1.251844,67.61648,40.527)" - d="M -22.5 -17.5 A 9.5 9.5 0 1 1 -41.5,-17.5 A 9.5 9.5 0 1 1 -22.5 -17.5 z" - sodipodi:ry="9.5" - sodipodi:rx="9.5" - sodipodi:cy="-17.5" - sodipodi:cx="-32" - id="path7500" - style="fill:url(#radialGradient4020);fill-opacity:1;stroke:none;stroke-width:1.01737845;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - sodipodi:type="arc" /> - <path - inkscape:r_cy="true" - inkscape:r_cx="true" - transform="matrix(0.715791,-0.976349,0.97635,0.715792,64.00044,5.269544)" - d="M -22.5 -17.5 A 9.5 9.5 0 1 1 -41.5,-17.5 A 9.5 9.5 0 1 1 -22.5 -17.5 z" - sodipodi:ry="9.5" - sodipodi:rx="9.5" - sodipodi:cy="-17.5" - sodipodi:cx="-32" - id="path7502" - style="fill:none;fill-opacity:1;stroke:url(#linearGradient3168);stroke-width:0.82601947;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - sodipodi:type="arc" /> + <g> + <g> + <path transform="matrix(0.778062,-1.061285,1.061287,0.778062,67.47952,3.641324)" d="M -22.5 -17.5 A 9.5 9.5 0 1 1 -41.5,-17.5 A 9.5 9.5 0 1 1 -22.5 -17.5 z" fill="#ffee54" fill-opacity="1" stroke="#fcaf3e" stroke-width="0.75991178" stroke-linecap="square" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-opacity="1"/> + <path transform="matrix(1.244257,-0.167707,0.216642,1.251844,67.61648,40.527)" d="M -22.5 -17.5 A 9.5 9.5 0 1 1 -41.5,-17.5 A 9.5 9.5 0 1 1 -22.5 -17.5 z" fill="url(#radialGradient4020)" fill-opacity="1" stroke="none" stroke-width="1.01737845" stroke-linecap="square" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-opacity="1"/> + <path transform="matrix(0.715791,-0.976349,0.97635,0.715792,64.00044,5.269544)" d="M -22.5 -17.5 A 9.5 9.5 0 1 1 -41.5,-17.5 A 9.5 9.5 0 1 1 -22.5 -17.5 z" fill="none" fill-opacity="1" stroke="url(#linearGradient3168)" stroke-width="0.82601947" stroke-linecap="square" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-opacity="1"/> </g> </g> </g> diff --git a/demos/embedded/weatherinfo/icons/weather-thundershower.svg b/demos/embedded/weatherinfo/icons/weather-thundershower.svg index 406abfa..e1c2286 100644 --- a/demos/embedded/weatherinfo/icons/weather-thundershower.svg +++ b/demos/embedded/weatherinfo/icons/weather-thundershower.svg @@ -1,4064 +1,108 @@ <?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="48px" - height="48px" - id="svg1306" - sodipodi:version="0.32" - inkscape:version="0.46" - sodipodi:docbase="/home/rcollier/Work/Novell/Tango/weather" - sodipodi:docname="weather-thundershower.svg" - inkscape:output_extension="org.inkscape.output.svg.inkscape"> - <defs - id="defs1308"> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient5358" - id="linearGradient12225" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)" - x1="6.8942904" - y1="-359.82382" - x2="27.400387" - y2="-381.30222" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient5346" - id="radialGradient12223" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)" - cx="21.920311" - cy="-382.96454" - fx="21.920311" - fy="-382.96454" - r="21.743534" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient5358" - id="linearGradient12213" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)" - x1="6.8942904" - y1="-359.82382" - x2="27.400387" - y2="-381.30222" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient5346" - id="radialGradient12211" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)" - cx="21.920311" - cy="-382.96454" - fx="21.920311" - fy="-382.96454" - r="21.743534" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient5358" - id="linearGradient12253" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)" - x1="6.8942904" - y1="-359.82382" - x2="27.400387" - y2="-381.30222" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient5346" - id="radialGradient12251" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)" - cx="21.920311" - cy="-382.96454" - fx="21.920311" - fy="-382.96454" - r="21.743534" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient5358" - id="linearGradient12249" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)" - x1="6.8942904" - y1="-359.82382" - x2="27.400387" - y2="-381.30222" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient5346" - id="radialGradient12247" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)" - cx="21.920311" - cy="-382.96454" - fx="21.920311" - fy="-382.96454" - r="21.743534" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient5358" - id="linearGradient12201" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)" - x1="6.8942904" - y1="-359.82382" - x2="27.400387" - y2="-381.30222" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient5346" - id="radialGradient12199" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)" - cx="21.920311" - cy="-382.96454" - fx="21.920311" - fy="-382.96454" - r="21.743534" /> - <linearGradient - inkscape:collect="always" - id="linearGradient5358"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop5360" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop5362" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient5358" - id="linearGradient12237" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)" - x1="6.8942904" - y1="-359.82382" - x2="27.400387" - y2="-381.30222" /> - <linearGradient - inkscape:collect="always" - id="linearGradient5346"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop5348" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop5350" /> - </linearGradient> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient5346" - id="radialGradient12235" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)" - cx="21.920311" - cy="-382.96454" - fx="21.920311" - fy="-382.96454" - r="21.743534" /> - <inkscape:perspective - sodipodi:type="inkscape:persp3d" - inkscape:vp_x="0 : 24 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_z="48 : 24 : 1" - inkscape:persp3d-origin="24 : 16 : 1" - id="perspective22454" /> - <linearGradient - inkscape:collect="always" - id="linearGradient8397"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop8400" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop8402" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8397" - id="linearGradient13503" - gradientUnits="userSpaceOnUse" - x1="238.00478" - y1="-388.47476" - x2="245.65462" - y2="-382.64539" /> - <linearGradient - inkscape:collect="always" - id="linearGradient8315"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop8317" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop8319" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8315" - id="linearGradient13501" - gradientUnits="userSpaceOnUse" - x1="230.87598" - y1="-390.43951" - x2="235.25652" - y2="-386.95901" /> - <linearGradient - inkscape:collect="always" - id="linearGradient8381"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop8383" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop8385" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8381" - id="linearGradient13499" - gradientUnits="userSpaceOnUse" - x1="246.74042" - y1="-391.31381" - x2="252.69785" - y2="-385.35165" /> - <linearGradient - inkscape:collect="always" - id="linearGradient8331"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop8333" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop8335" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8331" - id="linearGradient13497" - gradientUnits="userSpaceOnUse" - x1="240.07379" - y1="-393.40720" - x2="245.82706" - y2="-388.55029" /> - <linearGradient - inkscape:collect="always" - id="linearGradient8302"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop8304" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop8306" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8302" - id="linearGradient13495" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(69.00000,155.0000)" - x1="228.50261" - y1="-392.30591" - x2="266.36395" - y2="-379.26862" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient13143" - gradientUnits="userSpaceOnUse" - x1="284.80219" - y1="-441.23294" - x2="288.89954" - y2="-436.83109" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6549" - id="linearGradient13141" - gradientUnits="userSpaceOnUse" - x1="286.66589" - y1="-439.48358" - x2="289.76562" - y2="-436.70703" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6527" - id="linearGradient13139" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-35.00007,207.0001)" - x1="275.94193" - y1="-437.10501" - x2="279.97546" - y2="-431.91833" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient13137" - gradientUnits="userSpaceOnUse" - x1="285.94086" - y1="-439.93900" - x2="289.39124" - y2="-436.44290" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6513" - id="linearGradient13135" - gradientUnits="userSpaceOnUse" - x1="286.51172" - y1="-441.29074" - x2="289.85379" - y2="-436.14453" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6497" - id="linearGradient13133" - gradientUnits="userSpaceOnUse" - x1="287.51730" - y1="-439.75281" - x2="289.67633" - y2="-436.32199" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6470" - id="linearGradient13131" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-34.00007,207.0001)" - x1="271.02170" - y1="-441.05182" - x2="285.02859" - y2="-431.96991" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8874" - id="linearGradient11195" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(14.15871,7.082841)" - x1="-190.47688" - y1="-332.51181" - x2="-196.19046" - y2="-328.53433" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8904" - id="linearGradient11193" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(13.80516,2.840199)" - x1="-191.28896" - y1="-328.07861" - x2="-192.41396" - y2="-315.32861" /> - <linearGradient - inkscape:collect="always" - id="linearGradient8874"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop8876" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop8878" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8874" - id="linearGradient11191" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(14.15871,7.082841)" - x1="-190.47688" - y1="-332.51181" - x2="-196.19046" - y2="-328.53433" /> - <linearGradient - inkscape:collect="always" - id="linearGradient8904"> - <stop - style="stop-color:#fcaf3e;stop-opacity:1;" - offset="0" - id="stop8906" /> - <stop - style="stop-color:#fcaf3e;stop-opacity:0;" - offset="1" - id="stop8908" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8904" - id="linearGradient11189" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(13.80516,2.840199)" - x1="-191.28896" - y1="-328.07861" - x2="-192.41396" - y2="-315.32861" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient5123" - id="radialGradient13211" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.930946,6.185702e-16,-2.842711e-16,0.448244,245.3644,184.9256)" - cx="-229.75000" - cy="-343.95554" - fx="-229.75000" - fy="-343.95554" - r="14.501380" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient13157" - gradientUnits="userSpaceOnUse" - x1="284.80219" - y1="-441.23294" - x2="288.89954" - y2="-436.83109" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6549"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6551" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6553" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6549" - id="linearGradient13155" - gradientUnits="userSpaceOnUse" - x1="286.66589" - y1="-439.48358" - x2="289.76562" - y2="-436.70703" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6527"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6530" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6532" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6527" - id="linearGradient13153" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-35.00007,207.0001)" - x1="275.94193" - y1="-437.10501" - x2="279.97546" - y2="-431.91833" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6538"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6540" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6542" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient13151" - gradientUnits="userSpaceOnUse" - x1="285.94086" - y1="-439.93900" - x2="289.39124" - y2="-436.44290" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6513"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6515" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6517" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6513" - id="linearGradient13149" - gradientUnits="userSpaceOnUse" - x1="286.51172" - y1="-441.29074" - x2="289.85379" - y2="-436.14453" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6497"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6499" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6501" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6497" - id="linearGradient13147" - gradientUnits="userSpaceOnUse" - x1="287.51730" - y1="-439.75281" - x2="289.67633" - y2="-436.32199" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6470"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6472" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6474" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6470" - id="linearGradient13145" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-34.00007,207.0001)" - x1="271.02170" - y1="-441.05182" - x2="285.02859" - y2="-431.96991" /> - <linearGradient - inkscape:collect="always" - id="linearGradient5123"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop5125" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop5127" /> - </linearGradient> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient5123" - id="radialGradient13068" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.930946,6.185702e-16,-2.842711e-16,0.448244,229.9269,180.9261)" - cx="-229.75000" - cy="-343.95554" - fx="-229.75000" - fy="-343.95554" - r="14.501380" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6840"> - <stop - style="stop-color:#ad7fa8;stop-opacity:1;" - offset="0" - id="stop6842" /> - <stop - style="stop-color:#ad7fa8;stop-opacity:0;" - offset="1" - id="stop6844" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient6828"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6830" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6832" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient6537"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6539" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6541" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient2298"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop2300" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop2302" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient3347"> - <stop - style="stop-color:#edd400;stop-opacity:1;" - offset="0" - id="stop3349" /> - <stop - style="stop-color:#edd400;stop-opacity:0;" - offset="1" - id="stop3351" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient2527"> - <stop - style="stop-color:#fcaf3e;stop-opacity:1;" - offset="0" - id="stop2529" /> - <stop - style="stop-color:#fcaf3e;stop-opacity:0;" - offset="1" - id="stop2531" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient2500"> - <stop - style="stop-color:#fce94f;stop-opacity:1;" - offset="0" - id="stop2502" /> - <stop - style="stop-color:#fce94f;stop-opacity:0;" - offset="1" - id="stop2504" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient2392"> - <stop - style="stop-color:#eeeeec;stop-opacity:1;" - offset="0" - id="stop2394" /> - <stop - style="stop-color:#eeeeec;stop-opacity:0;" - offset="1" - id="stop2396" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient2254"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop2256" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop2258" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2263" - gradientUnits="userSpaceOnUse" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" - gradientTransform="translate(-1.608757,3.097272)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2267" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(3.555020,0.968578)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2271" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(9.263651,3.495228)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2275" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(8.497184,-2.330824)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2279" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(14.46340,2.014073)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2283" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2287" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2291" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2295" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2299" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2303" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(1.707748,-5.784024)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2311" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2350" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(16.14002,24.66420)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2352" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-0.932144,25.87240)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2354" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(5.356636,23.86870)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2356" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(11.19027,26.52035)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2358" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(10.30638,19.27251)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2360" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,0.229156,30.76299)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2362" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,16.67145,27.22746)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2364" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,17.05272,31.47010)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2366" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-4.010744,24.96040)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2368" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,8.185476,29.52556)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2370" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(4.207586,21.30544)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2372" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.12415,32.08882)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2392" - id="linearGradient2398" - x1="6.6651416" - y1="13.802798" - x2="41.403877" - y2="13.802798" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2426" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(14.46340,2.014073)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2428" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(8.497184,-2.330824)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2430" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-1.608757,3.097272)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2432" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(3.555020,0.968578)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2434" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(9.263651,3.495228)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2436" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2438" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2440" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2442" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2444" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2446" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2392" - id="linearGradient2448" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" - x1="6.6651416" - y1="13.802798" - x2="41.403877" - y2="13.802798" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2392" - id="linearGradient2451" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,4.378541,10.65407)" - x1="6.6651416" - y1="13.802798" - x2="41.403877" - y2="13.802798" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2457" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2460" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2463" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2469" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2472" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(12.51365,8.745228)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2475" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(6.805020,6.218578)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2478" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(1.641243,8.347272)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2483" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(0.842481,-3.998086)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2500" - id="linearGradient2506" - x1="37.000000" - y1="-21.750000" - x2="53.750000" - y2="9.0000000" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2500" - id="linearGradient2509" - gradientUnits="userSpaceOnUse" - x1="37.000000" - y1="-21.750000" - x2="53.750000" - y2="9.0000000" - gradientTransform="matrix(0.889091,0.000000,0.000000,0.617886,-4.771368,39.81402)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2500" - id="linearGradient2513" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.605509,0.000000,0.000000,0.710542,-0.224971,42.19500)" - x1="38.857941" - y1="-18.407482" - x2="53.750000" - y2="9.0000000" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2500" - id="linearGradient2517" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.414169,0.000000,0.000000,0.778853,-1.910724,36.87850)" - x1="37.000000" - y1="-21.750000" - x2="53.750000" - y2="9.0000000" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2527" - id="linearGradient2533" - x1="-25.137094" - y1="-1.2491118" - x2="-35.652866" - y2="-24.884460" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2537" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(17.33814,3.415985)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2541" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(13.40064,1.353485)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2555" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-7.499805,1.708617)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2563" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-0.726830,2.481141)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3347" - id="linearGradient3353" - x1="23.303862" - y1="29.115711" - x2="29.750000" - y2="46.092930" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3366" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(13.40064,1.353485)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3368" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(1.641243,8.347272)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3370" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(6.805020,6.218578)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3372" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(12.51365,8.745228)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3374" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3376" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3378" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3380" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3383" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3386" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3389" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3392" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3395" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(3.674812,3.088370)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3398" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-2.033818,0.561720)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3401" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-7.197595,2.690414)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3405" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(4.561802,-4.303373)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - gradientUnits="userSpaceOnUse" - y2="-4.4493785" - x2="-34.700153" - y1="-37.550461" - x1="-27.006643" - id="linearGradient2916" - xlink:href="#linearGradient2298" - inkscape:collect="always" /> - <linearGradient - y2="-24.884460" - x2="-35.652866" - y1="-1.2491118" - x1="-25.137094" - gradientUnits="userSpaceOnUse" - id="linearGradient2914" - xlink:href="#linearGradient2527" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(57.97693,-10.56876)" - gradientUnits="userSpaceOnUse" - id="linearGradient2912" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,123.1162,-5.446357)" - gradientUnits="userSpaceOnUse" - id="linearGradient2910" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)" - gradientUnits="userSpaceOnUse" - id="linearGradient2908" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)" - gradientUnits="userSpaceOnUse" - id="linearGradient2906" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)" - gradientUnits="userSpaceOnUse" - id="linearGradient2904" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)" - gradientUnits="userSpaceOnUse" - id="linearGradient2902" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(3.674812,3.088370)" - gradientUnits="userSpaceOnUse" - id="linearGradient2900" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-2.033818,0.561720)" - gradientUnits="userSpaceOnUse" - id="linearGradient2898" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-7.197595,2.690414)" - gradientUnits="userSpaceOnUse" - id="linearGradient2896" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="-24.884460" - x2="-35.652866" - y1="-1.2491118" - x1="-25.137094" - gradientUnits="userSpaceOnUse" - id="linearGradient2894" - xlink:href="#linearGradient2527" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,79.36909,-3.193747)" - gradientUnits="userSpaceOnUse" - id="linearGradient2892" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,56.25514,-12.39388)" - gradientUnits="userSpaceOnUse" - id="linearGradient2890" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(88.49344,-9.697877)" - gradientUnits="userSpaceOnUse" - id="linearGradient2888" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(4.561802,-4.303373)" - gradientUnits="userSpaceOnUse" - id="linearGradient2886" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-7.197595,2.690414)" - gradientUnits="userSpaceOnUse" - id="linearGradient2884" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-2.033818,0.561720)" - gradientUnits="userSpaceOnUse" - id="linearGradient2882" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(3.674812,3.088370)" - gradientUnits="userSpaceOnUse" - id="linearGradient2880" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)" - gradientUnits="userSpaceOnUse" - id="linearGradient2878" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)" - gradientUnits="userSpaceOnUse" - id="linearGradient2876" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)" - gradientUnits="userSpaceOnUse" - id="linearGradient2874" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)" - gradientUnits="userSpaceOnUse" - id="linearGradient2872" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)" - gradientUnits="userSpaceOnUse" - id="linearGradient2870" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)" - gradientUnits="userSpaceOnUse" - id="linearGradient2868" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)" - gradientUnits="userSpaceOnUse" - id="linearGradient2866" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)" - gradientUnits="userSpaceOnUse" - id="linearGradient2864" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(12.51365,8.745228)" - gradientUnits="userSpaceOnUse" - id="linearGradient2862" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(6.805020,6.218578)" - gradientUnits="userSpaceOnUse" - id="linearGradient2860" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(1.641243,8.347272)" - gradientUnits="userSpaceOnUse" - id="linearGradient2858" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(13.40064,1.353485)" - gradientUnits="userSpaceOnUse" - id="linearGradient2856" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientUnits="userSpaceOnUse" - y2="46.092930" - x2="29.750000" - y1="29.115711" - x1="23.303862" - id="linearGradient2854" - xlink:href="#linearGradient3347" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-0.726830,2.481141)" - gradientUnits="userSpaceOnUse" - id="linearGradient2852" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-7.499805,1.708617)" - gradientUnits="userSpaceOnUse" - id="linearGradient2850" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(13.40064,1.353485)" - gradientUnits="userSpaceOnUse" - id="linearGradient2848" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(17.33814,3.415985)" - gradientUnits="userSpaceOnUse" - id="linearGradient2846" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientUnits="userSpaceOnUse" - y2="-24.884460" - x2="-35.652866" - y1="-1.2491118" - x1="-25.137094" - id="linearGradient2844" - xlink:href="#linearGradient2527" - inkscape:collect="always" /> - <linearGradient - y2="9.0000000" - x2="53.750000" - y1="-21.750000" - x1="37.000000" - gradientTransform="matrix(0.414169,0.000000,0.000000,0.778853,-1.910724,36.87850)" - gradientUnits="userSpaceOnUse" - id="linearGradient2842" - xlink:href="#linearGradient2500" - inkscape:collect="always" /> - <linearGradient - y2="9.0000000" - x2="53.750000" - y1="-18.407482" - x1="38.857941" - gradientTransform="matrix(0.605509,0.000000,0.000000,0.710542,-0.224971,42.19500)" - gradientUnits="userSpaceOnUse" - id="linearGradient2840" - xlink:href="#linearGradient2500" - inkscape:collect="always" /> - <linearGradient - gradientTransform="matrix(0.889091,0.000000,0.000000,0.617886,-4.771368,39.81402)" - y2="9.0000000" - x2="53.750000" - y1="-21.750000" - x1="37.000000" - gradientUnits="userSpaceOnUse" - id="linearGradient2838" - xlink:href="#linearGradient2500" - inkscape:collect="always" /> - <linearGradient - gradientUnits="userSpaceOnUse" - y2="9.0000000" - x2="53.750000" - y1="-21.750000" - x1="37.000000" - id="linearGradient2836" - xlink:href="#linearGradient2500" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(0.842481,-3.998086)" - gradientUnits="userSpaceOnUse" - id="linearGradient2834" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(1.641243,8.347272)" - gradientUnits="userSpaceOnUse" - id="linearGradient2832" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(6.805020,6.218578)" - gradientUnits="userSpaceOnUse" - id="linearGradient2830" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(12.51365,8.745228)" - gradientUnits="userSpaceOnUse" - id="linearGradient2828" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)" - gradientUnits="userSpaceOnUse" - id="linearGradient2826" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)" - gradientUnits="userSpaceOnUse" - id="linearGradient2824" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)" - gradientUnits="userSpaceOnUse" - id="linearGradient2822" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)" - gradientUnits="userSpaceOnUse" - id="linearGradient2820" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="13.802798" - x2="41.403877" - y1="13.802798" - x1="6.6651416" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,4.378541,10.65407)" - gradientUnits="userSpaceOnUse" - id="linearGradient2818" - xlink:href="#linearGradient2392" - inkscape:collect="always" /> - <linearGradient - y2="13.802798" - x2="41.403877" - y1="13.802798" - x1="6.6651416" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" - gradientUnits="userSpaceOnUse" - id="linearGradient2816" - xlink:href="#linearGradient2392" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)" - gradientUnits="userSpaceOnUse" - id="linearGradient2814" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)" - gradientUnits="userSpaceOnUse" - id="linearGradient2812" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)" - gradientUnits="userSpaceOnUse" - id="linearGradient2810" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)" - gradientUnits="userSpaceOnUse" - id="linearGradient2808" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)" - gradientUnits="userSpaceOnUse" - id="linearGradient2806" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)" - gradientUnits="userSpaceOnUse" - id="linearGradient2804" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(9.263651,3.495228)" - gradientUnits="userSpaceOnUse" - id="linearGradient2802" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(3.555020,0.968578)" - gradientUnits="userSpaceOnUse" - id="linearGradient2800" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-1.608757,3.097272)" - gradientUnits="userSpaceOnUse" - id="linearGradient2798" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(8.497184,-2.330824)" - gradientUnits="userSpaceOnUse" - id="linearGradient2796" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(14.46340,2.014073)" - gradientUnits="userSpaceOnUse" - id="linearGradient2794" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" - gradientUnits="userSpaceOnUse" - y2="13.802798" - x2="41.403877" - y1="13.802798" - x1="6.6651416" - id="linearGradient2792" - xlink:href="#linearGradient2392" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.12415,32.08882)" - gradientUnits="userSpaceOnUse" - id="linearGradient2790" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(4.207586,21.30544)" - gradientUnits="userSpaceOnUse" - id="linearGradient2788" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,8.185476,29.52556)" - gradientUnits="userSpaceOnUse" - id="linearGradient2786" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-4.010744,24.96040)" - gradientUnits="userSpaceOnUse" - id="linearGradient2784" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,17.05272,31.47010)" - gradientUnits="userSpaceOnUse" - id="linearGradient2782" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,16.67145,27.22746)" - gradientUnits="userSpaceOnUse" - id="linearGradient2780" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,0.229156,30.76299)" - gradientUnits="userSpaceOnUse" - id="linearGradient2778" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(10.30638,19.27251)" - gradientUnits="userSpaceOnUse" - id="linearGradient2776" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(11.19027,26.52035)" - gradientUnits="userSpaceOnUse" - id="linearGradient2774" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(5.356636,23.86870)" - gradientUnits="userSpaceOnUse" - id="linearGradient2772" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-0.932144,25.87240)" - gradientUnits="userSpaceOnUse" - id="linearGradient2770" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(16.14002,24.66420)" - gradientUnits="userSpaceOnUse" - id="linearGradient2768" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)" - gradientUnits="userSpaceOnUse" - id="linearGradient2766" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(1.707748,-5.784024)" - gradientUnits="userSpaceOnUse" - id="linearGradient2764" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)" - gradientUnits="userSpaceOnUse" - id="linearGradient2762" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)" - gradientUnits="userSpaceOnUse" - id="linearGradient2760" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)" - gradientUnits="userSpaceOnUse" - id="linearGradient2758" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)" - gradientUnits="userSpaceOnUse" - id="linearGradient2756" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)" - gradientUnits="userSpaceOnUse" - id="linearGradient2754" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(14.46340,2.014073)" - gradientUnits="userSpaceOnUse" - id="linearGradient2752" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(8.497184,-2.330824)" - gradientUnits="userSpaceOnUse" - id="linearGradient2750" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(9.263651,3.495228)" - gradientUnits="userSpaceOnUse" - id="linearGradient2748" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(3.555020,0.968578)" - gradientUnits="userSpaceOnUse" - id="linearGradient2746" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientTransform="translate(-1.608757,3.097272)" - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientUnits="userSpaceOnUse" - id="linearGradient2744" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientUnits="userSpaceOnUse" - y2="-4.4493785" - x2="-34.700153" - y1="-37.550461" - x1="-27.006643" - id="linearGradient2304" - xlink:href="#linearGradient2298" - inkscape:collect="always" /> - <linearGradient - y2="-24.884460" - x2="-35.652866" - y1="-1.2491118" - x1="-25.137094" - gradientUnits="userSpaceOnUse" - id="linearGradient1557" - xlink:href="#linearGradient2527" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(57.97693,-10.56876)" - gradientUnits="userSpaceOnUse" - id="linearGradient1538" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,123.1162,-5.446357)" - gradientUnits="userSpaceOnUse" - id="linearGradient1536" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)" - gradientUnits="userSpaceOnUse" - id="linearGradient1534" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)" - gradientUnits="userSpaceOnUse" - id="linearGradient1532" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)" - gradientUnits="userSpaceOnUse" - id="linearGradient1530" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)" - gradientUnits="userSpaceOnUse" - id="linearGradient1528" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(3.674812,3.088370)" - gradientUnits="userSpaceOnUse" - id="linearGradient1526" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-2.033818,0.561720)" - gradientUnits="userSpaceOnUse" - id="linearGradient1524" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-7.197595,2.690414)" - gradientUnits="userSpaceOnUse" - id="linearGradient1522" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="-24.884460" - x2="-35.652866" - y1="-1.2491118" - x1="-25.137094" - gradientUnits="userSpaceOnUse" - id="linearGradient1520" - xlink:href="#linearGradient2527" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,79.36909,-3.193747)" - gradientUnits="userSpaceOnUse" - id="linearGradient1518" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,56.25514,-12.39388)" - gradientUnits="userSpaceOnUse" - id="linearGradient1516" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(88.49344,-9.697877)" - gradientUnits="userSpaceOnUse" - id="linearGradient1514" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(4.561802,-4.303373)" - gradientUnits="userSpaceOnUse" - id="linearGradient5957" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-7.197595,2.690414)" - gradientUnits="userSpaceOnUse" - id="linearGradient5955" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-2.033818,0.561720)" - gradientUnits="userSpaceOnUse" - id="linearGradient5953" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(3.674812,3.088370)" - gradientUnits="userSpaceOnUse" - id="linearGradient5951" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)" - gradientUnits="userSpaceOnUse" - id="linearGradient5949" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)" - gradientUnits="userSpaceOnUse" - id="linearGradient5947" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)" - gradientUnits="userSpaceOnUse" - id="linearGradient5945" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)" - gradientUnits="userSpaceOnUse" - id="linearGradient5943" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)" - gradientUnits="userSpaceOnUse" - id="linearGradient5941" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)" - gradientUnits="userSpaceOnUse" - id="linearGradient5939" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)" - gradientUnits="userSpaceOnUse" - id="linearGradient5937" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)" - gradientUnits="userSpaceOnUse" - id="linearGradient5935" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(12.51365,8.745228)" - gradientUnits="userSpaceOnUse" - id="linearGradient5933" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(6.805020,6.218578)" - gradientUnits="userSpaceOnUse" - id="linearGradient5931" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(1.641243,8.347272)" - gradientUnits="userSpaceOnUse" - id="linearGradient5929" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(13.40064,1.353485)" - gradientUnits="userSpaceOnUse" - id="linearGradient5927" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientUnits="userSpaceOnUse" - y2="46.092930" - x2="29.750000" - y1="29.115711" - x1="23.303862" - id="linearGradient5925" - xlink:href="#linearGradient3347" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-0.726830,2.481141)" - gradientUnits="userSpaceOnUse" - id="linearGradient5923" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-7.499805,1.708617)" - gradientUnits="userSpaceOnUse" - id="linearGradient5921" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(13.40064,1.353485)" - gradientUnits="userSpaceOnUse" - id="linearGradient5919" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(17.33814,3.415985)" - gradientUnits="userSpaceOnUse" - id="linearGradient5917" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientUnits="userSpaceOnUse" - y2="-24.884460" - x2="-35.652866" - y1="-1.2491118" - x1="-25.137094" - id="linearGradient5915" - xlink:href="#linearGradient2527" - inkscape:collect="always" /> - <linearGradient - y2="9.0000000" - x2="53.750000" - y1="-21.750000" - x1="37.000000" - gradientTransform="matrix(0.414169,0.000000,0.000000,0.778853,-1.910724,36.87850)" - gradientUnits="userSpaceOnUse" - id="linearGradient5913" - xlink:href="#linearGradient2500" - inkscape:collect="always" /> - <linearGradient - y2="9.0000000" - x2="53.750000" - y1="-18.407482" - x1="38.857941" - gradientTransform="matrix(0.605509,0.000000,0.000000,0.710542,-0.224971,42.19500)" - gradientUnits="userSpaceOnUse" - id="linearGradient5911" - xlink:href="#linearGradient2500" - inkscape:collect="always" /> - <linearGradient - gradientTransform="matrix(0.889091,0.000000,0.000000,0.617886,-4.771368,39.81402)" - y2="9.0000000" - x2="53.750000" - y1="-21.750000" - x1="37.000000" - gradientUnits="userSpaceOnUse" - id="linearGradient5909" - xlink:href="#linearGradient2500" - inkscape:collect="always" /> - <linearGradient - gradientUnits="userSpaceOnUse" - y2="9.0000000" - x2="53.750000" - y1="-21.750000" - x1="37.000000" - id="linearGradient5907" - xlink:href="#linearGradient2500" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(0.842481,-3.998086)" - gradientUnits="userSpaceOnUse" - id="linearGradient5905" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(1.641243,8.347272)" - gradientUnits="userSpaceOnUse" - id="linearGradient5903" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(6.805020,6.218578)" - gradientUnits="userSpaceOnUse" - id="linearGradient5901" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(12.51365,8.745228)" - gradientUnits="userSpaceOnUse" - id="linearGradient5899" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)" - gradientUnits="userSpaceOnUse" - id="linearGradient5897" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)" - gradientUnits="userSpaceOnUse" - id="linearGradient5895" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)" - gradientUnits="userSpaceOnUse" - id="linearGradient5893" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)" - gradientUnits="userSpaceOnUse" - id="linearGradient5891" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="13.802798" - x2="41.403877" - y1="13.802798" - x1="6.6651416" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,4.378541,10.65407)" - gradientUnits="userSpaceOnUse" - id="linearGradient5889" - xlink:href="#linearGradient2392" - inkscape:collect="always" /> - <linearGradient - y2="13.802798" - x2="41.403877" - y1="13.802798" - x1="6.6651416" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" - gradientUnits="userSpaceOnUse" - id="linearGradient5887" - xlink:href="#linearGradient2392" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)" - gradientUnits="userSpaceOnUse" - id="linearGradient5885" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)" - gradientUnits="userSpaceOnUse" - id="linearGradient5883" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)" - gradientUnits="userSpaceOnUse" - id="linearGradient5881" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)" - gradientUnits="userSpaceOnUse" - id="linearGradient5879" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)" - gradientUnits="userSpaceOnUse" - id="linearGradient5877" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)" - gradientUnits="userSpaceOnUse" - id="linearGradient5875" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(9.263651,3.495228)" - gradientUnits="userSpaceOnUse" - id="linearGradient5873" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(3.555020,0.968578)" - gradientUnits="userSpaceOnUse" - id="linearGradient5871" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-1.608757,3.097272)" - gradientUnits="userSpaceOnUse" - id="linearGradient5869" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(8.497184,-2.330824)" - gradientUnits="userSpaceOnUse" - id="linearGradient5867" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(14.46340,2.014073)" - gradientUnits="userSpaceOnUse" - id="linearGradient5865" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" - gradientUnits="userSpaceOnUse" - y2="13.802798" - x2="41.403877" - y1="13.802798" - x1="6.6651416" - id="linearGradient5863" - xlink:href="#linearGradient2392" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.12415,32.08882)" - gradientUnits="userSpaceOnUse" - id="linearGradient5861" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(4.207586,21.30544)" - gradientUnits="userSpaceOnUse" - id="linearGradient5859" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,8.185476,29.52556)" - gradientUnits="userSpaceOnUse" - id="linearGradient5857" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-4.010744,24.96040)" - gradientUnits="userSpaceOnUse" - id="linearGradient5855" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,17.05272,31.47010)" - gradientUnits="userSpaceOnUse" - id="linearGradient5853" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,16.67145,27.22746)" - gradientUnits="userSpaceOnUse" - id="linearGradient5851" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,0.229156,30.76299)" - gradientUnits="userSpaceOnUse" - id="linearGradient5849" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(10.30638,19.27251)" - gradientUnits="userSpaceOnUse" - id="linearGradient5847" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(11.19027,26.52035)" - gradientUnits="userSpaceOnUse" - id="linearGradient5845" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(5.356636,23.86870)" - gradientUnits="userSpaceOnUse" - id="linearGradient5843" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-0.932144,25.87240)" - gradientUnits="userSpaceOnUse" - id="linearGradient5841" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(16.14002,24.66420)" - gradientUnits="userSpaceOnUse" - id="linearGradient5839" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)" - gradientUnits="userSpaceOnUse" - id="linearGradient5837" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(1.707748,-5.784024)" - gradientUnits="userSpaceOnUse" - id="linearGradient5835" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)" - gradientUnits="userSpaceOnUse" - id="linearGradient5833" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)" - gradientUnits="userSpaceOnUse" - id="linearGradient5831" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)" - gradientUnits="userSpaceOnUse" - id="linearGradient5829" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)" - gradientUnits="userSpaceOnUse" - id="linearGradient5827" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)" - gradientUnits="userSpaceOnUse" - id="linearGradient5825" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(14.46340,2.014073)" - gradientUnits="userSpaceOnUse" - id="linearGradient5823" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(8.497184,-2.330824)" - gradientUnits="userSpaceOnUse" - id="linearGradient5821" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(9.263651,3.495228)" - gradientUnits="userSpaceOnUse" - id="linearGradient5819" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(3.555020,0.968578)" - gradientUnits="userSpaceOnUse" - id="linearGradient5817" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientTransform="translate(-1.608757,3.097272)" - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientUnits="userSpaceOnUse" - id="linearGradient5815" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6098" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-9.002513,11.93373)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6101" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.13675,17.05613)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6118" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,12.38965,19.30874)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6121" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-10.72430,10.10861)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6124" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(21.51400,12.80461)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6179" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-7.197595,2.690414)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6181" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-2.033818,0.561720)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6183" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(3.674812,3.088370)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6185" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6187" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6189" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6191" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2527" - id="linearGradient6193" - gradientUnits="userSpaceOnUse" - x1="-25.137094" - y1="-1.2491118" - x2="-35.652866" - y2="-24.884460" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6196" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,2.209129,10.83861)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6199" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-9.862093,6.148450)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6202" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,10.70137,12.90816)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6205" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-4.372193,11.95105)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6208" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(5.088919,7.833409)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6211" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-0.619711,5.306759)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6214" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-5.783488,7.435453)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6242" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-5.783488,7.435453)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6244" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-0.619711,5.306759)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6246" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(5.088919,7.833409)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6248" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,10.70137,12.90816)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6250" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-9.862093,6.148450)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6252" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,2.209129,10.83861)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6254" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-9.002513,11.93373)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6257" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-0.297112,4.275205)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6260" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,10.91453,3.180085)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6263" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-1.156692,-1.510075)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6266" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,19.40677,5.249635)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6269" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(13.79432,0.174884)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6272" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(8.085690,-2.351766)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6275" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(2.921913,-0.223072)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6311" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(21.51400,12.80461)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6313" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-10.72430,10.10861)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6315" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,12.38965,19.30874)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6317" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-1.156692,-1.510075)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6319" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.13675,17.05613)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6321" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-5.783488,7.435453)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6323" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-0.619711,5.306759)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6325" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(5.088919,7.833409)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6327" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,10.70137,12.90816)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6329" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-9.862093,6.148450)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6331" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,2.209129,10.83861)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6333" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-9.002513,11.93373)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6335" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(2.921913,-0.223072)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6337" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(8.085690,-2.351766)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6339" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(13.79432,0.174884)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6341" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,19.40677,5.249635)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6343" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,10.91453,3.180085)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6537" - id="linearGradient6543" - x1="27.320963" - y1="44.228481" - x2="52.328316" - y2="44.228481" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.526962,0.000000,-2.763717e-17,0.972572,16.13182,0.843286)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6537" - id="linearGradient6547" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.526962,0.000000,-4.388782e-16,0.972572,25.91493,0.633642)" - x1="27.320963" - y1="44.228481" - x2="52.328316" - y2="44.228481" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6537" - id="linearGradient6551" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.526962,0.000000,-4.388782e-16,0.972572,36.25638,0.633643)" - x1="27.320963" - y1="44.228481" - x2="45.115814" - y2="44.228455" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6537" - id="linearGradient6559" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.526962,0.000000,-2.332577e-16,0.972572,16.13182,0.843286)" - x1="27.320963" - y1="44.228481" - x2="52.328316" - y2="44.228481" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6537" - id="linearGradient6561" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.526962,0.000000,-6.444987e-16,0.972572,25.91493,0.633642)" - x1="27.320963" - y1="44.228481" - x2="52.328316" - y2="44.228481" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6537" - id="linearGradient6563" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.526962,0.000000,-6.444987e-16,0.972572,36.25638,0.633643)" - x1="27.320963" - y1="44.228481" - x2="45.115814" - y2="44.228455" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6537" - id="linearGradient6566" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.577744,0.000000,-6.388715e-16,1.006703,39.04124,-0.702889)" - x1="27.320963" - y1="44.228481" - x2="45.115814" - y2="44.228455" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6537" - id="linearGradient6569" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.577744,0.000000,-6.388715e-16,1.006703,27.70322,-0.702890)" - x1="27.320963" - y1="44.228481" - x2="52.328316" - y2="44.228481" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6537" - id="linearGradient6572" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.577744,0.000000,-1.880005e-16,1.006703,16.97734,-0.485889)" - x1="27.320963" - y1="44.228481" - x2="52.328316" - y2="44.228481" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6576" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.132431,0.000000,0.000000,1.016132,10.54485,-4.728138)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6579" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.853605,0.000000,0.000000,1.016132,19.23518,-2.625202)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6582" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,13.49182,-7.781819)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6585" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,7.650036,-10.34923)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6588" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,2.365814,-8.186195)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6599" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.999079,0.000000,0.000000,1.016132,56.82188,9.371753)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6603" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.496116,0.000000,0.000000,1.282841,-1.807925,-9.493960)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6606" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.314274,0.000000,0.000000,1.016132,12.05438,11.66070)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6609" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.496116,0.000000,0.000000,1.282841,-11.59870,2.312158)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6612" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,21.39156,5.051653)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6618" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,16.09471,2.948843)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6622" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,11.32174,9.047633)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6624" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-5.783488,7.435453)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6626" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-0.619711,5.306759)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6628" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(5.088919,7.833409)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6630" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,10.70137,12.90816)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6632" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-9.862093,6.148450)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6634" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,2.209129,10.83861)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6636" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-9.002513,11.93373)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient6828" - id="radialGradient6834" - cx="15.147860" - cy="23.822156" - fx="15.147860" - fy="23.822156" - r="12.852140" - gradientTransform="matrix(0.654874,0.000000,0.000000,0.398574,2.663540,12.14676)" - gradientUnits="userSpaceOnUse" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient6840" - id="radialGradient6846" - cx="32.583473" - cy="25.240442" - fx="32.583473" - fy="25.240442" - r="8.4165270" - gradientTransform="matrix(1.000000,0.000000,0.000000,0.503823,-15.00000,6.042836)" - gradientUnits="userSpaceOnUse" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient6828" - id="radialGradient6852" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.654874,0.000000,0.000000,0.398574,44.33646,16.14676)" - cx="15.147860" - cy="23.822156" - fx="15.147860" - fy="23.822156" - r="12.852140" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient6840" - id="radialGradient6854" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-1.000000,0.000000,0.000000,0.503823,62.00000,10.04284)" - cx="32.583473" - cy="25.240442" - fx="32.583473" - fy="25.240442" - r="8.4165270" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient5346" - id="radialGradient23739" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)" - cx="21.920311" - cy="-382.96454" - fx="21.920311" - fy="-382.96454" - r="21.743534" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient5358" - id="linearGradient23741" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)" - x1="6.8942904" - y1="-359.82382" - x2="27.400387" - y2="-381.30222" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient5346" - id="radialGradient23743" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)" - cx="21.920311" - cy="-382.96454" - fx="21.920311" - fy="-382.96454" - r="21.743534" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient5358" - id="linearGradient23745" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)" - x1="6.8942904" - y1="-359.82382" - x2="27.400387" - y2="-381.30222" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient5346" - id="radialGradient23747" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)" - cx="21.920311" - cy="-382.96454" - fx="21.920311" - fy="-382.96454" - r="21.743534" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient5358" - id="linearGradient23749" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)" - x1="6.8942904" - y1="-359.82382" - x2="27.400387" - y2="-381.30222" /> +<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="48px" height="48px" id="svg1306"> + <defs id="defs1308"> + <linearGradient id="linearGradient5358"> + <stop offset="0" id="stop5360" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop5362" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient id="linearGradient5346"> + <stop offset="0" id="stop5348" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop5350" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient id="linearGradient8397"> + <stop offset="0" id="stop8400" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop8402" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient8397" id="linearGradient13503" gradientUnits="userSpaceOnUse" x1="238.00478" y1="-388.47476" x2="245.65462" y2="-382.64539"/> + <linearGradient id="linearGradient8315"> + <stop offset="0" id="stop8317" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop8319" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient8315" id="linearGradient13501" gradientUnits="userSpaceOnUse" x1="230.87598" y1="-390.43951" x2="235.25652" y2="-386.95901"/> + <linearGradient id="linearGradient8381"> + <stop offset="0" id="stop8383" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop8385" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient8381" id="linearGradient13499" gradientUnits="userSpaceOnUse" x1="246.74042" y1="-391.31381" x2="252.69785" y2="-385.35165"/> + <linearGradient id="linearGradient8331"> + <stop offset="0" id="stop8333" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop8335" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient8331" id="linearGradient13497" gradientUnits="userSpaceOnUse" x1="240.07379" y1="-393.40720" x2="245.82706" y2="-388.55029"/> + <linearGradient id="linearGradient8302"> + <stop offset="0" id="stop8304" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop8306" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient8302" id="linearGradient13495" gradientUnits="userSpaceOnUse" gradientTransform="translate(69.00000,155.0000)" x1="228.50261" y1="-392.30591" x2="266.36395" y2="-379.26862"/> + <linearGradient xlink:href="#linearGradient6538" id="linearGradient13143" gradientUnits="userSpaceOnUse" x1="284.80219" y1="-441.23294" x2="288.89954" y2="-436.83109"/> + <linearGradient xlink:href="#linearGradient6549" id="linearGradient13141" gradientUnits="userSpaceOnUse" x1="286.66589" y1="-439.48358" x2="289.76562" y2="-436.70703"/> + <linearGradient xlink:href="#linearGradient6527" id="linearGradient13139" gradientUnits="userSpaceOnUse" gradientTransform="translate(-35.00007,207.0001)" x1="275.94193" y1="-437.10501" x2="279.97546" y2="-431.91833"/> + <linearGradient xlink:href="#linearGradient6538" id="linearGradient13137" gradientUnits="userSpaceOnUse" x1="285.94086" y1="-439.93900" x2="289.39124" y2="-436.44290"/> + <linearGradient xlink:href="#linearGradient6513" id="linearGradient13135" gradientUnits="userSpaceOnUse" x1="286.51172" y1="-441.29074" x2="289.85379" y2="-436.14453"/> + <linearGradient xlink:href="#linearGradient6497" id="linearGradient13133" gradientUnits="userSpaceOnUse" x1="287.51730" y1="-439.75281" x2="289.67633" y2="-436.32199"/> + <linearGradient xlink:href="#linearGradient6470" id="linearGradient13131" gradientUnits="userSpaceOnUse" gradientTransform="translate(-34.00007,207.0001)" x1="271.02170" y1="-441.05182" x2="285.02859" y2="-431.96991"/> + <linearGradient xlink:href="#linearGradient8874" id="linearGradient11195" gradientUnits="userSpaceOnUse" gradientTransform="translate(14.15871,7.082841)" x1="-190.47688" y1="-332.51181" x2="-196.19046" y2="-328.53433"/> + <linearGradient xlink:href="#linearGradient8904" id="linearGradient11193" gradientUnits="userSpaceOnUse" gradientTransform="translate(13.80516,2.840199)" x1="-191.28896" y1="-328.07861" x2="-192.41396" y2="-315.32861"/> + <linearGradient id="linearGradient8874"> + <stop offset="0" id="stop8876" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop8878" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient8874" id="linearGradient11191" gradientUnits="userSpaceOnUse" gradientTransform="translate(14.15871,7.082841)" x1="-190.47688" y1="-332.51181" x2="-196.19046" y2="-328.53433"/> + <linearGradient id="linearGradient8904"> + <stop offset="0" id="stop8906" stop-color="#fcaf3e" stop-opacity="1"/> + <stop offset="1" id="stop8908" stop-color="#fcaf3e" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient8904" id="linearGradient11189" gradientUnits="userSpaceOnUse" gradientTransform="translate(13.80516,2.840199)" x1="-191.28896" y1="-328.07861" x2="-192.41396" y2="-315.32861"/> + <radialGradient xlink:href="#linearGradient5123" id="radialGradient13211" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.930946,6.185702e-16,-2.842711e-16,0.448244,245.3644,184.9256)" cx="-229.75000" cy="-343.95554" fx="-229.75000" fy="-343.95554" r="14.501380"/> + <linearGradient xlink:href="#linearGradient6538" id="linearGradient13157" gradientUnits="userSpaceOnUse" x1="284.80219" y1="-441.23294" x2="288.89954" y2="-436.83109"/> + <linearGradient id="linearGradient6549"> + <stop offset="0" id="stop6551" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6553" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient6549" id="linearGradient13155" gradientUnits="userSpaceOnUse" x1="286.66589" y1="-439.48358" x2="289.76562" y2="-436.70703"/> + <linearGradient id="linearGradient6527"> + <stop offset="0" id="stop6530" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6532" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient6527" id="linearGradient13153" gradientUnits="userSpaceOnUse" gradientTransform="translate(-35.00007,207.0001)" x1="275.94193" y1="-437.10501" x2="279.97546" y2="-431.91833"/> + <linearGradient id="linearGradient6538"> + <stop offset="0" id="stop6540" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6542" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient6538" id="linearGradient13151" gradientUnits="userSpaceOnUse" x1="285.94086" y1="-439.93900" x2="289.39124" y2="-436.44290"/> + <linearGradient id="linearGradient6513"> + <stop offset="0" id="stop6515" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6517" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient6513" id="linearGradient13149" gradientUnits="userSpaceOnUse" x1="286.51172" y1="-441.29074" x2="289.85379" y2="-436.14453"/> + <linearGradient id="linearGradient6497"> + <stop offset="0" id="stop6499" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6501" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient6497" id="linearGradient13147" gradientUnits="userSpaceOnUse" x1="287.51730" y1="-439.75281" x2="289.67633" y2="-436.32199"/> + <linearGradient id="linearGradient6470"> + <stop offset="0" id="stop6472" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6474" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient6470" id="linearGradient13145" gradientUnits="userSpaceOnUse" gradientTransform="translate(-34.00007,207.0001)" x1="271.02170" y1="-441.05182" x2="285.02859" y2="-431.96991"/> + <linearGradient id="linearGradient5123"> + <stop offset="0" id="stop5125" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop5127" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <radialGradient xlink:href="#linearGradient5123" id="radialGradient13068" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.930946,6.185702e-16,-2.842711e-16,0.448244,229.9269,180.9261)" cx="-229.75000" cy="-343.95554" fx="-229.75000" fy="-343.95554" r="14.501380"/> + <radialGradient xlink:href="#linearGradient5346" id="radialGradient23739" gradientUnits="userSpaceOnUse" gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)" cx="21.920311" cy="-382.96454" fx="21.920311" fy="-382.96454" r="21.743534"/> + <linearGradient xlink:href="#linearGradient5358" id="linearGradient23741" gradientUnits="userSpaceOnUse" gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)" x1="6.8942904" y1="-359.82382" x2="27.400387" y2="-381.30222"/> + <radialGradient xlink:href="#linearGradient5346" id="radialGradient23743" gradientUnits="userSpaceOnUse" gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)" cx="21.920311" cy="-382.96454" fx="21.920311" fy="-382.96454" r="21.743534"/> + <linearGradient xlink:href="#linearGradient5358" id="linearGradient23745" gradientUnits="userSpaceOnUse" gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)" x1="6.8942904" y1="-359.82382" x2="27.400387" y2="-381.30222"/> + <radialGradient xlink:href="#linearGradient5346" id="radialGradient23747" gradientUnits="userSpaceOnUse" gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)" cx="21.920311" cy="-382.96454" fx="21.920311" fy="-382.96454" r="21.743534"/> + <linearGradient xlink:href="#linearGradient5358" id="linearGradient23749" gradientUnits="userSpaceOnUse" gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)" x1="6.8942904" y1="-359.82382" x2="27.400387" y2="-381.30222"/> </defs> - <sodipodi:namedview - id="base" - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1.0" - inkscape:pageopacity="0.0" - inkscape:pageshadow="2" - inkscape:zoom="1" - inkscape:cx="24" - inkscape:cy="24" - inkscape:current-layer="layer1" - showgrid="true" - inkscape:grid-bbox="true" - inkscape:document-units="px" - inkscape:window-width="982" - inkscape:window-height="965" - inkscape:window-x="1280" - inkscape:window-y="28" - inkscape:showpageshadow="false" /> - <metadata - id="metadata1311"> + + <metadata id="metadata1311"> <rdf:RDF> - <cc:Work - rdf:about=""> + <cc:Work rdf:about=""> <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> <dc:title>weather-storm</dc:title> <dc:date>January 2006</dc:date> <dc:creator> @@ -4079,508 +123,101 @@ <rdf:li>notify</rdf:li> </rdf:Bag> </dc:subject> - <cc:license - rdf:resource="http://creativecommons.org/licenses/by-sa/2.0/" /> + <cc:license rdf:resource="http://creativecommons.org/licenses/by-sa/2.0/"/> </cc:Work> - <cc:License - rdf:about="http://creativecommons.org/licenses/by-sa/2.0/"> - <cc:permits - rdf:resource="http://web.resource.org/cc/Reproduction" /> - <cc:permits - rdf:resource="http://web.resource.org/cc/Distribution" /> - <cc:requires - rdf:resource="http://web.resource.org/cc/Notice" /> - <cc:requires - rdf:resource="http://web.resource.org/cc/Attribution" /> - <cc:permits - rdf:resource="http://web.resource.org/cc/DerivativeWorks" /> - <cc:requires - rdf:resource="http://web.resource.org/cc/ShareAlike" /> + <cc:License rdf:about="http://creativecommons.org/licenses/by-sa/2.0/"> + <cc:permits rdf:resource="http://web.resource.org/cc/Reproduction"/> + <cc:permits rdf:resource="http://web.resource.org/cc/Distribution"/> + <cc:requires rdf:resource="http://web.resource.org/cc/Notice"/> + <cc:requires rdf:resource="http://web.resource.org/cc/Attribution"/> + <cc:permits rdf:resource="http://web.resource.org/cc/DerivativeWorks"/> + <cc:requires rdf:resource="http://web.resource.org/cc/ShareAlike"/> </cc:License> </rdf:RDF> </metadata> - <g - id="layer1" - inkscape:label="Layer 1" - inkscape:groupmode="layer"> - <g - id="g15505"> - <g - transform="translate(-287.0204,244.9995)" - id="g12825"> - <path - style="opacity:1.0000000;fill:#555753;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - d="M 311.50000,-242.99998 C 308.72758,-242.99998 306.39177,-241.42627 305.09375,-239.18748 C 304.14939,-239.66252 303.12856,-239.99998 302.00000,-239.99998 C 298.13600,-239.99998 295.00000,-236.86398 295.00000,-232.99998 C 295.00000,-229.13598 298.13600,-225.99998 302.00000,-225.99998 C 304.41967,-225.99998 306.43009,-227.31930 307.68750,-229.18748 C 308.82170,-228.49786 310.07648,-227.99998 311.50000,-227.99998 C 312.41312,-227.99998 313.25295,-228.23200 314.06250,-228.53123 C 314.57244,-227.66350 315.24162,-226.95151 316.06250,-226.37498 C 316.05526,-226.24460 316.00000,-226.13216 316.00000,-225.99998 C 316.00000,-222.13598 319.13599,-218.99998 323.00000,-218.99998 C 326.86400,-218.99998 330.00000,-222.13598 330.00000,-225.99998 C 330.00000,-228.36967 328.74102,-230.35832 326.93750,-231.62498 C 326.94474,-231.75536 327.00000,-231.86780 327.00000,-231.99998 C 327.00000,-235.86398 323.86401,-238.99998 320.00000,-238.99998 C 319.37730,-238.99998 318.82481,-238.77779 318.25000,-238.62498 C 317.05547,-241.18382 314.50866,-242.99998 311.50000,-242.99998 z " - id="path12827" /> - <path - style="opacity:1.0000000;fill:url(#linearGradient13495);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - d="M 311.50000,-241.99998 C 308.71952,-241.99998 306.36549,-240.23813 305.43750,-237.78123 C 304.45208,-238.49067 303.30607,-238.99998 302.00000,-238.99998 C 298.68800,-238.99998 296.00000,-236.31198 296.00000,-232.99998 C 296.00000,-229.68798 298.68800,-226.99998 302.00000,-226.99998 C 304.42775,-226.99998 306.49324,-228.45556 307.43750,-230.53123 C 308.55826,-229.61367 309.93964,-228.99998 311.50000,-228.99998 C 312.57454,-228.99998 313.54428,-229.31894 314.43750,-229.78123 C 314.83590,-228.78147 315.53864,-227.99491 316.37500,-227.34373 C 316.19499,-226.74811 316.00000,-226.15408 316.00000,-225.49998 C 316.00000,-221.91198 318.91200,-218.99998 322.50000,-218.99998 C 326.08800,-218.99998 329.00000,-221.91198 329.00000,-225.49998 C 329.00000,-227.86077 327.66567,-229.83017 325.78125,-230.96873 C 325.84384,-231.31596 326.00000,-231.63481 326.00000,-231.99998 C 326.00000,-235.31198 323.31200,-237.99998 320.00000,-237.99998 C 319.14702,-237.99998 318.32870,-237.82130 317.59375,-237.49998 C 316.73998,-240.09386 314.37851,-241.99997 311.50000,-241.99998 z " - id="path12829" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path12831" - sodipodi:cx="241.80843" - sodipodi:cy="-383.66660" - sodipodi:rx="6.7396116" - sodipodi:ry="6.7396116" - d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z" - transform="matrix(0.964447,0.000000,0.000000,0.964447,89.28852,144.5262)" /> - <g - id="g12833"> - <path - transform="matrix(0.882630,0.000000,0.000000,0.882630,96.18078,108.1091)" - d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1 237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1 250.18322 -389.30136 z" - sodipodi:ry="6.2313786" - sodipodi:rx="6.2313786" - sodipodi:cy="-389.30136" - sodipodi:cx="243.95184" - id="path12835" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(0.882630,0.000000,0.000000,0.882630,96.18078,108.1091)" - d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1 237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1 250.18322 -389.30136 z" - sodipodi:ry="6.2313786" - sodipodi:rx="6.2313786" - sodipodi:cy="-389.30136" - sodipodi:cx="243.95184" - id="path12837" - style="opacity:0.49444440;fill:url(#linearGradient13497);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> + <g id="layer1"> + <g> + <g transform="translate(-287.0204,244.9995)"> + <path d="M 311.50000,-242.99998 C 308.72758,-242.99998 306.39177,-241.42627 305.09375,-239.18748 C 304.14939,-239.66252 303.12856,-239.99998 302.00000,-239.99998 C 298.13600,-239.99998 295.00000,-236.86398 295.00000,-232.99998 C 295.00000,-229.13598 298.13600,-225.99998 302.00000,-225.99998 C 304.41967,-225.99998 306.43009,-227.31930 307.68750,-229.18748 C 308.82170,-228.49786 310.07648,-227.99998 311.50000,-227.99998 C 312.41312,-227.99998 313.25295,-228.23200 314.06250,-228.53123 C 314.57244,-227.66350 315.24162,-226.95151 316.06250,-226.37498 C 316.05526,-226.24460 316.00000,-226.13216 316.00000,-225.99998 C 316.00000,-222.13598 319.13599,-218.99998 323.00000,-218.99998 C 326.86400,-218.99998 330.00000,-222.13598 330.00000,-225.99998 C 330.00000,-228.36967 328.74102,-230.35832 326.93750,-231.62498 C 326.94474,-231.75536 327.00000,-231.86780 327.00000,-231.99998 C 327.00000,-235.86398 323.86401,-238.99998 320.00000,-238.99998 C 319.37730,-238.99998 318.82481,-238.77779 318.25000,-238.62498 C 317.05547,-241.18382 314.50866,-242.99998 311.50000,-242.99998 z " opacity="1.0000000" fill="#555753" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 311.50000,-241.99998 C 308.71952,-241.99998 306.36549,-240.23813 305.43750,-237.78123 C 304.45208,-238.49067 303.30607,-238.99998 302.00000,-238.99998 C 298.68800,-238.99998 296.00000,-236.31198 296.00000,-232.99998 C 296.00000,-229.68798 298.68800,-226.99998 302.00000,-226.99998 C 304.42775,-226.99998 306.49324,-228.45556 307.43750,-230.53123 C 308.55826,-229.61367 309.93964,-228.99998 311.50000,-228.99998 C 312.57454,-228.99998 313.54428,-229.31894 314.43750,-229.78123 C 314.83590,-228.78147 315.53864,-227.99491 316.37500,-227.34373 C 316.19499,-226.74811 316.00000,-226.15408 316.00000,-225.49998 C 316.00000,-221.91198 318.91200,-218.99998 322.50000,-218.99998 C 326.08800,-218.99998 329.00000,-221.91198 329.00000,-225.49998 C 329.00000,-227.86077 327.66567,-229.83017 325.78125,-230.96873 C 325.84384,-231.31596 326.00000,-231.63481 326.00000,-231.99998 C 326.00000,-235.31198 323.31200,-237.99998 320.00000,-237.99998 C 319.14702,-237.99998 318.32870,-237.82130 317.59375,-237.49998 C 316.73998,-240.09386 314.37851,-241.99997 311.50000,-241.99998 z " opacity="1.0000000" fill="url(#linearGradient13495)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z" transform="matrix(0.964447,0.000000,0.000000,0.964447,89.28852,144.5262)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <g> + <path transform="matrix(0.882630,0.000000,0.000000,0.882630,96.18078,108.1091)" d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1 237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1 250.18322 -389.30136 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(0.882630,0.000000,0.000000,0.882630,96.18078,108.1091)" d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1 237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1 250.18322 -389.30136 z" opacity="0.49444440" fill="url(#linearGradient13497)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - id="g12839"> - <path - transform="matrix(0.911728,0.000000,0.000000,0.911728,90.45407,120.2336)" - d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1 245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1 257.25429 -385.78790 z" - sodipodi:ry="6.0325046" - sodipodi:rx="6.0325046" - sodipodi:cy="-385.78790" - sodipodi:cx="251.22179" - id="path12841" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(0.911728,0.000000,0.000000,0.911728,90.45407,120.2336)" - d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1 245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1 257.25429 -385.78790 z" - sodipodi:ry="6.0325046" - sodipodi:rx="6.0325046" - sodipodi:cy="-385.78790" - sodipodi:cx="251.22179" - id="path12843" - style="opacity:0.49444440;fill:url(#linearGradient13499);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> + <g> + <path transform="matrix(0.911728,0.000000,0.000000,0.911728,90.45407,120.2336)" d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1 245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1 257.25429 -385.78790 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(0.911728,0.000000,0.000000,0.911728,90.45407,120.2336)" d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1 245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1 257.25429 -385.78790 z" opacity="0.49444440" fill="url(#linearGradient13499)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - id="g12845"> - <path - transform="matrix(1.142799,0.000000,0.000000,1.142799,35.23229,210.2770)" - d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1 229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1 237.80885 -387.88715 z" - sodipodi:ry="4.3752232" - sodipodi:rx="4.3752232" - sodipodi:cy="-387.88715" - sodipodi:cx="233.43362" - id="path12847" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.142799,0.000000,0.000000,1.142799,35.23229,210.2770)" - d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1 229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1 237.80885 -387.88715 z" - sodipodi:ry="4.3752232" - sodipodi:rx="4.3752232" - sodipodi:cy="-387.88715" - sodipodi:cx="233.43362" - id="path12849" - style="opacity:0.49444440;fill:url(#linearGradient13501);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> + <g> + <path transform="matrix(1.142799,0.000000,0.000000,1.142799,35.23229,210.2770)" d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1 229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1 237.80885 -387.88715 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.142799,0.000000,0.000000,1.142799,35.23229,210.2770)" d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1 229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1 237.80885 -387.88715 z" opacity="0.49444440" fill="url(#linearGradient13501)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - id="g12851"> - <path - transform="matrix(1.038636,0.000000,0.000000,1.038636,59.84906,169.4899)" - d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z" - sodipodi:ry="6.7396116" - sodipodi:rx="6.7396116" - sodipodi:cy="-383.66660" - sodipodi:cx="241.80843" - id="path12853" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.038636,0.000000,0.000000,1.038636,59.84907,169.4899)" - d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z" - sodipodi:ry="6.7396116" - sodipodi:rx="6.7396116" - sodipodi:cy="-383.66660" - sodipodi:cx="241.80843" - id="path12855" - style="opacity:0.49444440;fill:url(#linearGradient13503);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> + <g> + <path transform="matrix(1.038636,0.000000,0.000000,1.038636,59.84906,169.4899)" d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.038636,0.000000,0.000000,1.038636,59.84907,169.4899)" d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z" opacity="0.49444440" fill="url(#linearGradient13503)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> </g> - <g - transform="translate(208.8564,357.8851)" - id="g11177"> - <path - style="fill:#edd400;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient11189);stroke-width:1.0000006px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" - d="M -173.24571,-327.59122 L -176.37021,-323.31202 L -172.59078,-323.31202 C -172.59078,-323.31202 -175.29396,-318.78622 -180.16632,-310.38562 C -178.07014,-318.33294 -177.21353,-321.35581 -177.21353,-321.35581 L -182.37682,-321.35581 L -178.33401,-327.59122 L -173.24571,-327.59122 z " - id="path11179" - sodipodi:nodetypes="cccccccc" /> - <path - style="opacity:1.0000000;fill:url(#linearGradient11191);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000006px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" - d="M -173.75946,-327.84461 L -177.50268,-322.68152 L -173.54648,-322.85830 C -173.54648,-322.85830 -173.68639,-322.39837 -178.55875,-313.99777 C -176.46257,-321.94509 -176.48985,-321.96275 -176.48985,-321.96275 L -181.38797,-321.87436 L -177.69871,-327.57944 L -173.75946,-327.84461 z " - id="path11181" - sodipodi:nodetypes="cccccccc" /> + <g transform="translate(208.8564,357.8851)"> + <path d="M -173.24571,-327.59122 L -176.37021,-323.31202 L -172.59078,-323.31202 C -172.59078,-323.31202 -175.29396,-318.78622 -180.16632,-310.38562 C -178.07014,-318.33294 -177.21353,-321.35581 -177.21353,-321.35581 L -182.37682,-321.35581 L -178.33401,-327.59122 L -173.24571,-327.59122 z " fill="#edd400" fill-opacity="1.0000000" fill-rule="evenodd" stroke="url(#linearGradient11189)" stroke-width="1.0000006px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1.0000000"/> + <path d="M -173.75946,-327.84461 L -177.50268,-322.68152 L -173.54648,-322.85830 C -173.54648,-322.85830 -173.68639,-322.39837 -178.55875,-313.99777 C -176.46257,-321.94509 -176.48985,-321.96275 -176.48985,-321.96275 L -181.38797,-321.87436 L -177.69871,-327.57944 L -173.75946,-327.84461 z " opacity="1.0000000" fill="url(#linearGradient11191)" fill-opacity="1.0000000" fill-rule="evenodd" stroke="none" stroke-width="1.0000006px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1.0000000"/> </g> - <g - transform="translate(-215.0060,252.9994)" - id="g12857"> - <path - style="fill:#888a85;fill-opacity:1.0000000;stroke:#555753;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - d="M 246.49993,-238.49993 C 244.22910,-238.49993 242.39002,-236.94965 241.78118,-234.87493 C 241.08795,-235.23876 240.33667,-235.49993 239.49993,-235.49993 C 236.73993,-235.49993 234.49992,-233.25994 234.49993,-230.49993 C 234.49993,-229.92100 234.66245,-229.39223 234.84368,-228.87493 C 233.47021,-228.10419 232.49993,-226.68593 232.49993,-224.99993 C 232.49993,-222.51593 234.51593,-220.49992 236.99993,-220.49993 C 237.17706,-220.49993 255.82280,-220.49993 255.99993,-220.49993 C 258.48392,-220.49993 260.49993,-222.51593 260.49993,-224.99993 C 260.49993,-226.68593 259.52965,-228.10419 258.15618,-228.87493 C 258.33742,-229.39222 258.49993,-229.92101 258.49993,-230.49993 C 258.49993,-233.25993 256.25993,-235.49992 253.49993,-235.49993 C 252.66319,-235.49993 251.91191,-235.23876 251.21868,-234.87493 C 250.60984,-236.94965 248.77076,-238.49993 246.49993,-238.49993 z " - id="path12859" - sodipodi:nodetypes="ccsscsssscsscc" /> - <path - style="opacity:1.0000000;fill:url(#linearGradient13131);fill-opacity:1.0000000;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - d="M 246.49993,-237.99993 C 244.31021,-237.99993 242.77633,-236.66416 242.10438,-234.15641 C 241.43592,-234.50003 240.55679,-234.98976 239.74993,-234.98976 C 237.03342,-234.98976 234.99479,-233.05094 234.99480,-230.44422 C 234.99480,-229.89745 235.26201,-229.11078 235.43676,-228.62221 C 234.11233,-227.89426 232.99993,-226.73171 232.99993,-225.24966 C 232.99993,-222.90361 234.54610,-220.99957 237.33921,-220.99957 C 237.51002,-220.99957 255.48985,-220.99957 255.66065,-220.99957 C 258.43166,-220.99957 259.99993,-222.90361 259.99993,-225.24966 C 259.99993,-226.84203 258.88753,-227.91635 257.56310,-228.64430 C 257.73786,-229.13286 258.02717,-229.89746 258.02717,-230.44422 C 258.02717,-233.05093 255.91136,-235.01185 253.24994,-235.01186 C 252.44307,-235.01186 251.60813,-234.52212 250.93967,-234.17850 C 250.29082,-236.60004 248.68966,-237.99993 246.49993,-237.99993 z " - id="path12861" - sodipodi:nodetypes="ccsscsssscsscc" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path12863" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" /> - <path - sodipodi:type="arc" - style="opacity:0.47777775;fill:url(#linearGradient13133);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path12865" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" /> - <rect - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="rect12867" - width="20.000000" - height="9.0000000" - x="236.99994" - y="-230.99992" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path12869" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16987,171.3114)" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path12871" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19818,231.8633)" /> - <path - sodipodi:type="arc" - style="opacity:0.47777775;fill:url(#linearGradient13135);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path12873" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19825,231.8634)" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path12875" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" /> - <path - sodipodi:type="arc" - style="opacity:0.47777775;fill:url(#linearGradient13137);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path12877" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" /> - <path - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - d="M 245.46868,-233.96868 C 241.88930,-233.96868 238.99993,-231.04805 238.99993,-227.46868 C 238.99993,-225.09800 240.34936,-223.13089 242.24993,-221.99993 L 248.71868,-221.99993 C 250.61925,-223.13089 251.96868,-225.12924 251.96868,-227.49993 C 251.96868,-231.07931 249.04805,-233.96868 245.46868,-233.96868 z " - id="path12879" /> - <path - style="opacity:0.47777775;fill:url(#linearGradient13139);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - d="M 245.49993,-233.99993 C 241.91193,-233.99993 238.99993,-231.08792 238.99993,-227.49993 C 238.99993,-225.12353 240.34478,-223.13361 242.24993,-221.99993 L 248.74993,-221.99993 C 250.65508,-223.13361 251.99993,-225.12353 251.99993,-227.49993 C 251.99993,-231.08793 249.08793,-233.99992 245.49993,-233.99993 z " - id="path12881" /> - <path - sodipodi:type="arc" - style="opacity:0.47777775;fill:url(#linearGradient13141);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path12883" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16977,171.3113)" /> - <path - style="fill:#555753;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" - d="M 258.95633,-230.33389 C 258.95480,-227.64933 255.68707,-226.61994 255.68707,-226.61994 C 255.68707,-226.61994 258.03581,-228.24589 258.02392,-230.32495 C 258.02392,-230.32495 258.95633,-230.33389 258.95633,-230.33389 z " - id="path12885" - sodipodi:nodetypes="ccss" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path12887" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" /> - <path - sodipodi:type="arc" - style="opacity:0.47777775;fill:url(#linearGradient13143);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path12889" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" /> + <g transform="translate(-215.0060,252.9994)"> + <path d="M 246.49993,-238.49993 C 244.22910,-238.49993 242.39002,-236.94965 241.78118,-234.87493 C 241.08795,-235.23876 240.33667,-235.49993 239.49993,-235.49993 C 236.73993,-235.49993 234.49992,-233.25994 234.49993,-230.49993 C 234.49993,-229.92100 234.66245,-229.39223 234.84368,-228.87493 C 233.47021,-228.10419 232.49993,-226.68593 232.49993,-224.99993 C 232.49993,-222.51593 234.51593,-220.49992 236.99993,-220.49993 C 237.17706,-220.49993 255.82280,-220.49993 255.99993,-220.49993 C 258.48392,-220.49993 260.49993,-222.51593 260.49993,-224.99993 C 260.49993,-226.68593 259.52965,-228.10419 258.15618,-228.87493 C 258.33742,-229.39222 258.49993,-229.92101 258.49993,-230.49993 C 258.49993,-233.25993 256.25993,-235.49992 253.49993,-235.49993 C 252.66319,-235.49993 251.91191,-235.23876 251.21868,-234.87493 C 250.60984,-236.94965 248.77076,-238.49993 246.49993,-238.49993 z " fill="#888a85" fill-opacity="1.0000000" stroke="#555753" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 246.49993,-237.99993 C 244.31021,-237.99993 242.77633,-236.66416 242.10438,-234.15641 C 241.43592,-234.50003 240.55679,-234.98976 239.74993,-234.98976 C 237.03342,-234.98976 234.99479,-233.05094 234.99480,-230.44422 C 234.99480,-229.89745 235.26201,-229.11078 235.43676,-228.62221 C 234.11233,-227.89426 232.99993,-226.73171 232.99993,-225.24966 C 232.99993,-222.90361 234.54610,-220.99957 237.33921,-220.99957 C 237.51002,-220.99957 255.48985,-220.99957 255.66065,-220.99957 C 258.43166,-220.99957 259.99993,-222.90361 259.99993,-225.24966 C 259.99993,-226.84203 258.88753,-227.91635 257.56310,-228.64430 C 257.73786,-229.13286 258.02717,-229.89746 258.02717,-230.44422 C 258.02717,-233.05093 255.91136,-235.01185 253.24994,-235.01186 C 252.44307,-235.01186 251.60813,-234.52212 250.93967,-234.17850 C 250.29082,-236.60004 248.68966,-237.99993 246.49993,-237.99993 z " opacity="1.0000000" fill="url(#linearGradient13131)" fill-opacity="1.0000000" stroke="none" stroke-width="0.99999958" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" opacity="0.47777775" fill="url(#linearGradient13133)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <rect width="20.000000" height="9.0000000" x="236.99994" y="-230.99992" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16987,171.3114)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19818,231.8633)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19825,231.8634)" opacity="0.47777775" fill="url(#linearGradient13135)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" opacity="0.47777775" fill="url(#linearGradient13137)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 245.46868,-233.96868 C 241.88930,-233.96868 238.99993,-231.04805 238.99993,-227.46868 C 238.99993,-225.09800 240.34936,-223.13089 242.24993,-221.99993 L 248.71868,-221.99993 C 250.61925,-223.13089 251.96868,-225.12924 251.96868,-227.49993 C 251.96868,-231.07931 249.04805,-233.96868 245.46868,-233.96868 z " opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 245.49993,-233.99993 C 241.91193,-233.99993 238.99993,-231.08792 238.99993,-227.49993 C 238.99993,-225.12353 240.34478,-223.13361 242.24993,-221.99993 L 248.74993,-221.99993 C 250.65508,-223.13361 251.99993,-225.12353 251.99993,-227.49993 C 251.99993,-231.08793 249.08793,-233.99992 245.49993,-233.99993 z " opacity="0.47777775" fill="url(#linearGradient13139)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16977,171.3113)" opacity="0.47777775" fill="url(#linearGradient13141)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 258.95633,-230.33389 C 258.95480,-227.64933 255.68707,-226.61994 255.68707,-226.61994 C 255.68707,-226.61994 258.03581,-228.24589 258.02392,-230.32495 C 258.02392,-230.32495 258.95633,-230.33389 258.95633,-230.33389 z " fill="#555753" fill-opacity="1.0000000" fill-rule="evenodd" stroke="none" stroke-width="1.0000000px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" opacity="0.47777775" fill="url(#linearGradient13143)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - transform="translate(192.8564,354.8851)" - id="g11183"> - <path - style="fill:#edd400;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient11193);stroke-width:1.0000006px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" - d="M -173.24571,-327.59122 L -176.37021,-323.31202 L -172.59078,-323.31202 C -172.59078,-323.31202 -175.29396,-318.78622 -180.16632,-310.38562 C -178.07014,-318.33294 -177.21353,-321.35581 -177.21353,-321.35581 L -182.37682,-321.35581 L -178.33401,-327.59122 L -173.24571,-327.59122 z " - id="path11185" - sodipodi:nodetypes="cccccccc" /> - <path - style="opacity:1.0000000;fill:url(#linearGradient11195);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000006px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" - d="M -173.75946,-327.84461 L -177.50268,-322.68152 L -173.54648,-322.85830 C -173.54648,-322.85830 -173.68639,-322.39837 -178.55875,-313.99777 C -176.46257,-321.94509 -176.48985,-321.96275 -176.48985,-321.96275 L -181.38797,-321.87436 L -177.69871,-327.57944 L -173.75946,-327.84461 z " - id="path11187" - sodipodi:nodetypes="cccccccc" /> + <g transform="translate(192.8564,354.8851)"> + <path d="M -173.24571,-327.59122 L -176.37021,-323.31202 L -172.59078,-323.31202 C -172.59078,-323.31202 -175.29396,-318.78622 -180.16632,-310.38562 C -178.07014,-318.33294 -177.21353,-321.35581 -177.21353,-321.35581 L -182.37682,-321.35581 L -178.33401,-327.59122 L -173.24571,-327.59122 z " fill="#edd400" fill-opacity="1.0000000" fill-rule="evenodd" stroke="url(#linearGradient11193)" stroke-width="1.0000006px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1.0000000"/> + <path d="M -173.75946,-327.84461 L -177.50268,-322.68152 L -173.54648,-322.85830 C -173.54648,-322.85830 -173.68639,-322.39837 -178.55875,-313.99777 C -176.46257,-321.94509 -176.48985,-321.96275 -176.48985,-321.96275 L -181.38797,-321.87436 L -177.69871,-327.57944 L -173.75946,-327.84461 z " opacity="1.0000000" fill="url(#linearGradient11195)" fill-opacity="1.0000000" fill-rule="evenodd" stroke="none" stroke-width="1.0000006px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1.0000000"/> </g> - <path - sodipodi:nodetypes="ccsscsscscsscc" - id="path13209" - d="M 31.626355,14.999520 C 29.626255,14.999520 27.940775,16.079020 27.095785,17.614460 C 26.500875,17.392550 25.851145,17.261090 25.169835,17.261090 C 22.339625,17.261090 20.052305,19.379260 20.052305,21.978590 C 20.052305,22.432340 20.196835,22.835420 20.327445,23.250720 C 18.945125,24.115990 17.979615,25.504290 17.979615,27.155450 C 17.979615,29.808280 18.631235,32.148800 23.207195,31.961300 C 23.252315,31.959450 40.658675,32.058280 40.907605,31.943270 C 43.992815,32.169220 44.979615,29.497540 44.979615,27.243810 C 44.979615,25.543300 44.142675,24.193960 42.670345,23.366220 C 42.718305,23.107660 42.631785,22.815030 42.631785,22.543970 C 42.631785,19.944650 40.326135,17.826480 37.495915,17.826480 C 37.102425,17.826480 36.763515,17.961300 36.395375,18.038500 C 35.656915,16.270380 33.810365,14.999520 31.626355,14.999520 z " - style="opacity:1.0000000;fill:url(#radialGradient13211);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000004;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000" /> - <g - transform="translate(-230.0203,248.9834)" - id="g12891"> - <path - style="fill:#888a85;fill-opacity:1.0000000;stroke:#555753;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - d="M 246.49993,-238.49993 C 244.22910,-238.49993 242.39002,-236.94965 241.78118,-234.87493 C 241.08795,-235.23876 240.33667,-235.49993 239.49993,-235.49993 C 236.73993,-235.49993 234.49992,-233.25994 234.49993,-230.49993 C 234.49993,-229.92100 234.66245,-229.39223 234.84368,-228.87493 C 233.47021,-228.10419 232.49993,-226.68593 232.49993,-224.99993 C 232.49993,-222.51593 234.51593,-220.49992 236.99993,-220.49993 C 237.17706,-220.49993 255.82280,-220.49993 255.99993,-220.49993 C 258.48392,-220.49993 260.49993,-222.51593 260.49993,-224.99993 C 260.49993,-226.68593 259.52965,-228.10419 258.15618,-228.87493 C 258.33742,-229.39222 258.49993,-229.92101 258.49993,-230.49993 C 258.49993,-233.25993 256.25993,-235.49992 253.49993,-235.49993 C 252.66319,-235.49993 251.91191,-235.23876 251.21868,-234.87493 C 250.60984,-236.94965 248.77076,-238.49993 246.49993,-238.49993 z " - id="path12893" - sodipodi:nodetypes="ccsscsssscsscc" /> - <path - style="opacity:1.0000000;fill:url(#linearGradient13145);fill-opacity:1.0000000;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - d="M 246.49993,-237.99993 C 244.31021,-237.99993 242.77633,-236.66416 242.10438,-234.15641 C 241.43592,-234.50003 240.55679,-234.98976 239.74993,-234.98976 C 237.03342,-234.98976 234.99479,-233.05094 234.99480,-230.44422 C 234.99480,-229.89745 235.26201,-229.11078 235.43676,-228.62221 C 234.11233,-227.89426 232.99993,-226.73171 232.99993,-225.24966 C 232.99993,-222.90361 234.54610,-220.99957 237.33921,-220.99957 C 237.51002,-220.99957 255.48985,-220.99957 255.66065,-220.99957 C 258.43166,-220.99957 259.99993,-222.90361 259.99993,-225.24966 C 259.99993,-226.84203 258.88753,-227.91635 257.56310,-228.64430 C 257.73786,-229.13286 258.02717,-229.89746 258.02717,-230.44422 C 258.02717,-233.05093 255.91136,-235.01185 253.24994,-235.01186 C 252.44307,-235.01186 251.60813,-234.52212 250.93967,-234.17850 C 250.29082,-236.60004 248.68966,-237.99993 246.49993,-237.99993 z " - id="path12895" - sodipodi:nodetypes="ccsscsssscsscc" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path12897" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" /> - <path - sodipodi:type="arc" - style="opacity:0.47777775;fill:url(#linearGradient13147);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path12899" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" /> - <rect - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="rect12901" - width="20.000000" - height="9.0000000" - x="236.99994" - y="-230.99992" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path12903" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16987,171.3114)" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path12905" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19818,231.8633)" /> - <path - sodipodi:type="arc" - style="opacity:0.47777775;fill:url(#linearGradient13149);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path12907" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19825,231.8634)" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path12909" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" /> - <path - sodipodi:type="arc" - style="opacity:0.47777775;fill:url(#linearGradient13151);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path12911" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" /> - <path - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - d="M 245.46868,-233.96868 C 241.88930,-233.96868 238.99993,-231.04805 238.99993,-227.46868 C 238.99993,-225.09800 240.34936,-223.13089 242.24993,-221.99993 L 248.71868,-221.99993 C 250.61925,-223.13089 251.96868,-225.12924 251.96868,-227.49993 C 251.96868,-231.07931 249.04805,-233.96868 245.46868,-233.96868 z " - id="path12913" /> - <path - style="opacity:0.47777775;fill:url(#linearGradient13153);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - d="M 245.49993,-233.99993 C 241.91193,-233.99993 238.99993,-231.08792 238.99993,-227.49993 C 238.99993,-225.12353 240.34478,-223.13361 242.24993,-221.99993 L 248.74993,-221.99993 C 250.65508,-223.13361 251.99993,-225.12353 251.99993,-227.49993 C 251.99993,-231.08793 249.08793,-233.99992 245.49993,-233.99993 z " - id="path12915" /> - <path - sodipodi:type="arc" - style="opacity:0.47777775;fill:url(#linearGradient13155);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path12917" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16977,171.3113)" /> - <path - style="fill:#555753;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" - d="M 258.95633,-230.33389 C 258.95480,-227.64933 255.68707,-226.61994 255.68707,-226.61994 C 255.68707,-226.61994 258.03581,-228.24589 258.02392,-230.32495 C 258.02392,-230.32495 258.95633,-230.33389 258.95633,-230.33389 z " - id="path12919" - sodipodi:nodetypes="ccss" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path12921" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" /> - <path - sodipodi:type="arc" - style="opacity:0.47777775;fill:url(#linearGradient13157);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path12923" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" /> + <path d="M 31.626355,14.999520 C 29.626255,14.999520 27.940775,16.079020 27.095785,17.614460 C 26.500875,17.392550 25.851145,17.261090 25.169835,17.261090 C 22.339625,17.261090 20.052305,19.379260 20.052305,21.978590 C 20.052305,22.432340 20.196835,22.835420 20.327445,23.250720 C 18.945125,24.115990 17.979615,25.504290 17.979615,27.155450 C 17.979615,29.808280 18.631235,32.148800 23.207195,31.961300 C 23.252315,31.959450 40.658675,32.058280 40.907605,31.943270 C 43.992815,32.169220 44.979615,29.497540 44.979615,27.243810 C 44.979615,25.543300 44.142675,24.193960 42.670345,23.366220 C 42.718305,23.107660 42.631785,22.815030 42.631785,22.543970 C 42.631785,19.944650 40.326135,17.826480 37.495915,17.826480 C 37.102425,17.826480 36.763515,17.961300 36.395375,18.038500 C 35.656915,16.270380 33.810365,14.999520 31.626355,14.999520 z " opacity="1.0000000" fill="url(#radialGradient13211)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000004" stroke-linejoin="round" stroke-miterlimit="4.0000000" stroke-dasharray="none" stroke-opacity="1.0000000"/> + <g transform="translate(-230.0203,248.9834)"> + <path d="M 246.49993,-238.49993 C 244.22910,-238.49993 242.39002,-236.94965 241.78118,-234.87493 C 241.08795,-235.23876 240.33667,-235.49993 239.49993,-235.49993 C 236.73993,-235.49993 234.49992,-233.25994 234.49993,-230.49993 C 234.49993,-229.92100 234.66245,-229.39223 234.84368,-228.87493 C 233.47021,-228.10419 232.49993,-226.68593 232.49993,-224.99993 C 232.49993,-222.51593 234.51593,-220.49992 236.99993,-220.49993 C 237.17706,-220.49993 255.82280,-220.49993 255.99993,-220.49993 C 258.48392,-220.49993 260.49993,-222.51593 260.49993,-224.99993 C 260.49993,-226.68593 259.52965,-228.10419 258.15618,-228.87493 C 258.33742,-229.39222 258.49993,-229.92101 258.49993,-230.49993 C 258.49993,-233.25993 256.25993,-235.49992 253.49993,-235.49993 C 252.66319,-235.49993 251.91191,-235.23876 251.21868,-234.87493 C 250.60984,-236.94965 248.77076,-238.49993 246.49993,-238.49993 z " fill="#888a85" fill-opacity="1.0000000" stroke="#555753" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 246.49993,-237.99993 C 244.31021,-237.99993 242.77633,-236.66416 242.10438,-234.15641 C 241.43592,-234.50003 240.55679,-234.98976 239.74993,-234.98976 C 237.03342,-234.98976 234.99479,-233.05094 234.99480,-230.44422 C 234.99480,-229.89745 235.26201,-229.11078 235.43676,-228.62221 C 234.11233,-227.89426 232.99993,-226.73171 232.99993,-225.24966 C 232.99993,-222.90361 234.54610,-220.99957 237.33921,-220.99957 C 237.51002,-220.99957 255.48985,-220.99957 255.66065,-220.99957 C 258.43166,-220.99957 259.99993,-222.90361 259.99993,-225.24966 C 259.99993,-226.84203 258.88753,-227.91635 257.56310,-228.64430 C 257.73786,-229.13286 258.02717,-229.89746 258.02717,-230.44422 C 258.02717,-233.05093 255.91136,-235.01185 253.24994,-235.01186 C 252.44307,-235.01186 251.60813,-234.52212 250.93967,-234.17850 C 250.29082,-236.60004 248.68966,-237.99993 246.49993,-237.99993 z " opacity="1.0000000" fill="url(#linearGradient13145)" fill-opacity="1.0000000" stroke="none" stroke-width="0.99999958" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" opacity="0.47777775" fill="url(#linearGradient13147)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <rect width="20.000000" height="9.0000000" x="236.99994" y="-230.99992" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16987,171.3114)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19818,231.8633)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19825,231.8634)" opacity="0.47777775" fill="url(#linearGradient13149)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" opacity="0.47777775" fill="url(#linearGradient13151)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 245.46868,-233.96868 C 241.88930,-233.96868 238.99993,-231.04805 238.99993,-227.46868 C 238.99993,-225.09800 240.34936,-223.13089 242.24993,-221.99993 L 248.71868,-221.99993 C 250.61925,-223.13089 251.96868,-225.12924 251.96868,-227.49993 C 251.96868,-231.07931 249.04805,-233.96868 245.46868,-233.96868 z " opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 245.49993,-233.99993 C 241.91193,-233.99993 238.99993,-231.08792 238.99993,-227.49993 C 238.99993,-225.12353 240.34478,-223.13361 242.24993,-221.99993 L 248.74993,-221.99993 C 250.65508,-223.13361 251.99993,-225.12353 251.99993,-227.49993 C 251.99993,-231.08793 249.08793,-233.99992 245.49993,-233.99993 z " opacity="0.47777775" fill="url(#linearGradient13153)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16977,171.3113)" opacity="0.47777775" fill="url(#linearGradient13155)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 258.95633,-230.33389 C 258.95480,-227.64933 255.68707,-226.61994 255.68707,-226.61994 C 255.68707,-226.61994 258.03581,-228.24589 258.02392,-230.32495 C 258.02392,-230.32495 258.95633,-230.33389 258.95633,-230.33389 z " fill="#555753" fill-opacity="1.0000000" fill-rule="evenodd" stroke="none" stroke-width="1.0000000px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" opacity="0.47777775" fill="url(#linearGradient13157)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <path - sodipodi:nodetypes="ccsscsscscsscc" - id="path11418" - d="M 16.188855,11.000000 C 14.188755,11.000000 12.503275,12.079500 11.658285,13.614940 C 11.063375,13.393030 10.413645,13.261570 9.7323346,13.261570 C 6.9021246,13.261570 4.6148046,15.379740 4.6148046,17.979070 C 4.6148046,18.432820 4.7593346,18.835900 4.8899446,19.251200 C 3.5076246,20.116470 2.5421146,21.504770 2.5421146,23.155930 C 2.5421146,25.808760 3.1937346,28.149280 7.7696946,27.961780 C 7.8148146,27.959930 25.221175,28.058760 25.470105,27.943750 C 28.555315,28.169700 29.542115,25.498020 29.542115,23.244290 C 29.542115,21.543780 28.705175,20.194440 27.232845,19.366700 C 27.280805,19.108140 27.194285,18.815510 27.194285,18.544450 C 27.194285,15.945130 24.888635,13.826960 22.058415,13.826960 C 21.664925,13.826960 21.326015,13.961780 20.957875,14.038980 C 20.219415,12.270860 18.372865,11.000000 16.188855,11.000000 z " - style="opacity:1.0000000;fill:url(#radialGradient13068);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000004;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000" /> - <g - transform="translate(-212.91035,271.43)" - id="g12227"> - <path - style="fill:#729fcf;fill-opacity:1;stroke:#204a87;stroke-width:1.07456863;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - d="M 231.62587,-228.77086 C 230.58662,-229.36665 230.23015,-230.68774 230.83016,-231.71967 C 232.16166,-233.80243 233.93524,-233.26584 234.84231,-235.46138 C 236.10323,-234.12777 235.63545,-227.21367 231.62587,-228.77086 z" - id="path12229" - sodipodi:nodetypes="cccc" /> - <path - style="opacity:0.46111109;fill:url(#radialGradient23739);fill-opacity:1;stroke:none;stroke-width:1.07457018;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1" - d="M 234.31017,-229.9035 C 233.82059,-229.03976 232.73502,-228.74348 231.88703,-229.24216 C 231.03903,-229.74084 230.74816,-230.84657 231.23774,-231.71031 C 231.72733,-232.57405 233.84374,-232.16235 234.58388,-234 C 235.43187,-233.50133 234.79976,-230.76724 234.31017,-229.9035 z" - id="path12231" - sodipodi:nodetypes="csscc" /> - <path - style="opacity:1;fill:url(#linearGradient23741);fill-opacity:1;stroke:none;stroke-width:1.07457018;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1" - d="M 233.02237,-229 C 228.40776,-230.07384 233.25985,-233.71939 234,-232.92154 C 230.4176,-231.55118 233.02237,-229 233.02237,-229 z" - id="path12233" - sodipodi:nodetypes="ccc" /> + <path d="M 16.188855,11.000000 C 14.188755,11.000000 12.503275,12.079500 11.658285,13.614940 C 11.063375,13.393030 10.413645,13.261570 9.7323346,13.261570 C 6.9021246,13.261570 4.6148046,15.379740 4.6148046,17.979070 C 4.6148046,18.432820 4.7593346,18.835900 4.8899446,19.251200 C 3.5076246,20.116470 2.5421146,21.504770 2.5421146,23.155930 C 2.5421146,25.808760 3.1937346,28.149280 7.7696946,27.961780 C 7.8148146,27.959930 25.221175,28.058760 25.470105,27.943750 C 28.555315,28.169700 29.542115,25.498020 29.542115,23.244290 C 29.542115,21.543780 28.705175,20.194440 27.232845,19.366700 C 27.280805,19.108140 27.194285,18.815510 27.194285,18.544450 C 27.194285,15.945130 24.888635,13.826960 22.058415,13.826960 C 21.664925,13.826960 21.326015,13.961780 20.957875,14.038980 C 20.219415,12.270860 18.372865,11.000000 16.188855,11.000000 z " opacity="1.0000000" fill="url(#radialGradient13068)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000004" stroke-linejoin="round" stroke-miterlimit="4.0000000" stroke-dasharray="none" stroke-opacity="1.0000000"/> + <g transform="translate(-212.91035,271.43)"> + <path d="M 231.62587,-228.77086 C 230.58662,-229.36665 230.23015,-230.68774 230.83016,-231.71967 C 232.16166,-233.80243 233.93524,-233.26584 234.84231,-235.46138 C 236.10323,-234.12777 235.63545,-227.21367 231.62587,-228.77086 z" fill="#729fcf" fill-opacity="1" stroke="#204a87" stroke-width="1.07456863" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 234.31017,-229.9035 C 233.82059,-229.03976 232.73502,-228.74348 231.88703,-229.24216 C 231.03903,-229.74084 230.74816,-230.84657 231.23774,-231.71031 C 231.72733,-232.57405 233.84374,-232.16235 234.58388,-234 C 235.43187,-233.50133 234.79976,-230.76724 234.31017,-229.9035 z" opacity="0.46111109" fill="url(#radialGradient23739)" fill-opacity="1" stroke="none" stroke-width="1.07457018" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 233.02237,-229 C 228.40776,-230.07384 233.25985,-233.71939 234,-232.92154 C 230.4176,-231.55118 233.02237,-229 233.02237,-229 z" opacity="1" fill="url(#linearGradient23741)" fill-opacity="1" stroke="none" stroke-width="1.07457018" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0" stroke-dashoffset="0" stroke-opacity="1"/> </g> - <g - transform="translate(-193.78094,269.3383)" - id="g12239"> - <path - style="fill:#729fcf;fill-opacity:1;stroke:#204a87;stroke-width:1.07456863;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - d="M 231.62587,-228.77086 C 230.58662,-229.36665 230.23015,-230.68774 230.83016,-231.71967 C 232.16166,-233.80243 233.93524,-233.26584 234.84231,-235.46138 C 236.10323,-234.12777 235.63545,-227.21367 231.62587,-228.77086 z" - id="path12241" - sodipodi:nodetypes="cccc" /> - <path - style="opacity:0.46111109;fill:url(#radialGradient23743);fill-opacity:1;stroke:none;stroke-width:1.07457018;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1" - d="M 234.31017,-229.9035 C 233.82059,-229.03976 232.73502,-228.74348 231.88703,-229.24216 C 231.03903,-229.74084 230.74816,-230.84657 231.23774,-231.71031 C 231.72733,-232.57405 233.84374,-232.16235 234.58388,-234 C 235.43187,-233.50133 234.79976,-230.76724 234.31017,-229.9035 z" - id="path12243" - sodipodi:nodetypes="csscc" /> - <path - style="opacity:1;fill:url(#linearGradient23745);fill-opacity:1;stroke:none;stroke-width:1.07457018;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1" - d="M 233.02237,-229 C 228.40776,-230.07384 233.25985,-233.71939 234,-232.92154 C 230.4176,-231.55118 233.02237,-229 233.02237,-229 z" - id="path12245" - sodipodi:nodetypes="ccc" /> + <g transform="translate(-193.78094,269.3383)"> + <path d="M 231.62587,-228.77086 C 230.58662,-229.36665 230.23015,-230.68774 230.83016,-231.71967 C 232.16166,-233.80243 233.93524,-233.26584 234.84231,-235.46138 C 236.10323,-234.12777 235.63545,-227.21367 231.62587,-228.77086 z" fill="#729fcf" fill-opacity="1" stroke="#204a87" stroke-width="1.07456863" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 234.31017,-229.9035 C 233.82059,-229.03976 232.73502,-228.74348 231.88703,-229.24216 C 231.03903,-229.74084 230.74816,-230.84657 231.23774,-231.71031 C 231.72733,-232.57405 233.84374,-232.16235 234.58388,-234 C 235.43187,-233.50133 234.79976,-230.76724 234.31017,-229.9035 z" opacity="0.46111109" fill="url(#radialGradient23743)" fill-opacity="1" stroke="none" stroke-width="1.07457018" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 233.02237,-229 C 228.40776,-230.07384 233.25985,-233.71939 234,-232.92154 C 230.4176,-231.55118 233.02237,-229 233.02237,-229 z" opacity="1" fill="url(#linearGradient23745)" fill-opacity="1" stroke="none" stroke-width="1.07457018" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0" stroke-dashoffset="0" stroke-opacity="1"/> </g> - <g - transform="translate(-225.96722,264.58414)" - id="g12186"> - <path - style="fill:#729fcf;fill-opacity:1;stroke:#204a87;stroke-width:1.07456863;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - d="M 231.62587,-228.77086 C 230.58662,-229.36665 230.23015,-230.68774 230.83016,-231.71967 C 232.16166,-233.80243 233.93524,-233.26584 234.84231,-235.46138 C 236.10323,-234.12777 235.63545,-227.21367 231.62587,-228.77086 z" - id="path6059" - sodipodi:nodetypes="cccc" /> - <path - style="opacity:0.46111109;fill:url(#radialGradient23747);fill-opacity:1;stroke:none;stroke-width:1.07457018;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1" - d="M 234.31017,-229.9035 C 233.82059,-229.03976 232.73502,-228.74348 231.88703,-229.24216 C 231.03903,-229.74084 230.74816,-230.84657 231.23774,-231.71031 C 231.72733,-232.57405 233.84374,-232.16235 234.58388,-234 C 235.43187,-233.50133 234.79976,-230.76724 234.31017,-229.9035 z" - id="path6061" - sodipodi:nodetypes="csscc" /> - <path - style="opacity:1;fill:url(#linearGradient23749);fill-opacity:1;stroke:none;stroke-width:1.07457018;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1" - d="M 233.02237,-229 C 228.40776,-230.07384 233.25985,-233.71939 234,-232.92154 C 230.4176,-231.55118 233.02237,-229 233.02237,-229 z" - id="path6063" - sodipodi:nodetypes="ccc" /> + <g transform="translate(-225.96722,264.58414)"> + <path d="M 231.62587,-228.77086 C 230.58662,-229.36665 230.23015,-230.68774 230.83016,-231.71967 C 232.16166,-233.80243 233.93524,-233.26584 234.84231,-235.46138 C 236.10323,-234.12777 235.63545,-227.21367 231.62587,-228.77086 z" fill="#729fcf" fill-opacity="1" stroke="#204a87" stroke-width="1.07456863" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 234.31017,-229.9035 C 233.82059,-229.03976 232.73502,-228.74348 231.88703,-229.24216 C 231.03903,-229.74084 230.74816,-230.84657 231.23774,-231.71031 C 231.72733,-232.57405 233.84374,-232.16235 234.58388,-234 C 235.43187,-233.50133 234.79976,-230.76724 234.31017,-229.9035 z" opacity="0.46111109" fill="url(#radialGradient23747)" fill-opacity="1" stroke="none" stroke-width="1.07457018" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 233.02237,-229 C 228.40776,-230.07384 233.25985,-233.71939 234,-232.92154 C 230.4176,-231.55118 233.02237,-229 233.02237,-229 z" opacity="1" fill="url(#linearGradient23749)" fill-opacity="1" stroke="none" stroke-width="1.07457018" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0" stroke-dashoffset="0" stroke-opacity="1"/> </g> </g> </g> diff --git a/dist/changes-4.6.0 b/dist/changes-4.6.0 index 7f723da..ba2b051 100644 --- a/dist/changes-4.6.0 +++ b/dist/changes-4.6.0 @@ -35,6 +35,9 @@ information about a particular change. * Added QVariant::toFloat() and QVariant::toReal() * Added QVariant(float) constructor + - Qt::escape + * now escape the double quote (") + **************************************************************************** * Platform Specific Changes * **************************************************************************** diff --git a/examples/script/customclass/bytearrayclass.cpp b/examples/script/customclass/bytearrayclass.cpp index 7291b97..bce69e4 100644 --- a/examples/script/customclass/bytearrayclass.cpp +++ b/examples/script/customclass/bytearrayclass.cpp @@ -72,18 +72,6 @@ private: int m_last; }; -static qint32 toArrayIndex(const QString &str) -{ - QByteArray bytes = str.toUtf8(); - char *eptr; - quint32 pos = strtoul(bytes.constData(), &eptr, 10); - if ((eptr == bytes.constData() + bytes.size()) - && (QByteArray::number(pos) == bytes)) { - return pos; - } - return -1; -} - //! [0] ByteArrayClass::ByteArrayClass(QScriptEngine *engine) : QObject(engine), QScriptClass(engine) @@ -120,8 +108,9 @@ QScriptClass::QueryFlags ByteArrayClass::queryProperty(const QScriptValue &objec if (name == length) { return flags; } else { - qint32 pos = toArrayIndex(name); - if (pos == -1) + bool isArrayIndex; + qint32 pos = name.toArrayIndex(&isArrayIndex); + if (!isArrayIndex) return 0; *id = pos; if ((flags & HandlesReadAccess) && (pos >= ba->size())) diff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.prf index 3f84f42..1be6d9b 100644 --- a/mkspecs/features/qt_functions.prf +++ b/mkspecs/features/qt_functions.prf @@ -54,6 +54,10 @@ defineTest(qtAddLibrary) { # Needed for #include <QtXmlPatterns/QtXmlPatterns> because relative inclusion problem in toolchain INCLUDEPATH *= $$QMAKE_INCDIR_QT/QtXmlPatterns } + isEqual(LIB_NAME, QtXmlPatterns) { + # Needed for #include <QtXmlPatterns/QtXmlPatterns> because relative inclusion problem in toolchain + INCLUDEPATH *= $$QMAKE_INCDIR_QT/QtNetwork + } } isEmpty(LINKAGE) { if(!debug_and_release|build_pass):CONFIG(debug, debug|release) { diff --git a/src/3rdparty/phonon/ds9/iodevicereader.cpp b/src/3rdparty/phonon/ds9/iodevicereader.cpp index e0c505c..695af59 100644 --- a/src/3rdparty/phonon/ds9/iodevicereader.cpp +++ b/src/3rdparty/phonon/ds9/iodevicereader.cpp @@ -36,17 +36,20 @@ namespace Phonon //these mediatypes define a stream, its type will be autodetected by DirectShow static QVector<AM_MEDIA_TYPE> getMediaTypes() { - AM_MEDIA_TYPE mt = { MEDIATYPE_Stream, MEDIASUBTYPE_NULL, TRUE, FALSE, 1, GUID_NULL, 0, 0, 0}; + //the order here is important because otherwise, + //directshow might not be able to detect the stream type correctly + + AM_MEDIA_TYPE mt = { MEDIATYPE_Stream, MEDIASUBTYPE_Avi, TRUE, FALSE, 1, GUID_NULL, 0, 0, 0}; QVector<AM_MEDIA_TYPE> ret; - //normal auto-detect stream - ret << mt; //AVI stream - mt.subtype = MEDIASUBTYPE_Avi; ret << mt; //WAVE stream mt.subtype = MEDIASUBTYPE_WAVE; ret << mt; + //normal auto-detect stream (must be at the end!) + mt.subtype = MEDIASUBTYPE_NULL; + ret << mt; return ret; } diff --git a/src/3rdparty/webkit/WebCore/WebCore.pro b/src/3rdparty/webkit/WebCore/WebCore.pro index a835fc7..d633a7a 100644 --- a/src/3rdparty/webkit/WebCore/WebCore.pro +++ b/src/3rdparty/webkit/WebCore/WebCore.pro @@ -3376,3 +3376,18 @@ CONFIG(QTDIR_build):isEqual(QT_MAJOR_VERSION, 4):greaterThan(QT_MINOR_VERSION, 4 plugins/win/PaintHooks.asm } } + +# Temporary workaround to pick up the DEF file from the same place as all the others +symbian { + shared { + contains(MMP_RULES, defBlock) { + MMP_RULES -= defBlock + + MMP_RULES += "$${LITERAL_HASH}ifdef WINSCW" \ + "DEFFILE ../../../s60installs/bwins/$${TARGET}.def" \ + "$${LITERAL_HASH}elif defined EABI" \ + "DEFFILE ../../../s60installs/eabi/$${TARGET}.def" \ + "$${LITERAL_HASH}endif" + } + } +} diff --git a/src/corelib/animation/qabstractanimation.cpp b/src/corelib/animation/qabstractanimation.cpp index f83c2a1..a4c7e29 100644 --- a/src/corelib/animation/qabstractanimation.cpp +++ b/src/corelib/animation/qabstractanimation.cpp @@ -157,19 +157,7 @@ #ifndef QT_NO_ANIMATION #define DEFAULT_TIMER_INTERVAL 16 - -#ifdef Q_WS_WIN - /// Fix for Qt 4.7 - //on windows if you're currently dragging a widget an inner eventloop was started by the system - //to make sure that this timer is getting fired, we need to make sure to use the system timers - //that will send a WM_TIMER event. We do that by settings the timer interval to 11 - //It is 16 because QEventDispatcherWin32Private::registerTimer specifically checks if the interval - //is greater than 11 to determine if it should use a system timer (or the multimedia timer). -#define STARTSTOP_TIMER_DELAY 16 -#else #define STARTSTOP_TIMER_DELAY 0 -#endif - QT_BEGIN_NAMESPACE @@ -194,15 +182,10 @@ QUnifiedTimer *QUnifiedTimer::instance() return inst; } -void QUnifiedTimer::ensureTimerUpdate(QAbstractAnimation *animation) +void QUnifiedTimer::ensureTimerUpdate() { - if (isPauseTimerActive) { + if (isPauseTimerActive) updateAnimationsTime(); - } else { - // this code is needed when ensureTimerUpdate is called from setState because we update - // the currentTime when an animation starts running (otherwise we could remove it) - animation->setCurrentTime(animation->currentTime()); - } } void QUnifiedTimer::updateAnimationsTime() @@ -381,7 +364,7 @@ void QAbstractAnimationPrivate::setState(QAbstractAnimation::State newState) case QAbstractAnimation::Paused: if (hasRegisteredTimer) // currentTime needs to be updated if pauseTimer is active - QUnifiedTimer::instance()->ensureTimerUpdate(q); + QUnifiedTimer::instance()->ensureTimerUpdate(); if (!guard) return; //here we're sure that we were in running state before and that the @@ -395,9 +378,11 @@ void QAbstractAnimationPrivate::setState(QAbstractAnimation::State newState) // this ensures that the value is updated now that the animation is running if (oldState == QAbstractAnimation::Stopped) { - if (isTopLevel) + if (isTopLevel) { // currentTime needs to be updated if pauseTimer is active - QUnifiedTimer::instance()->ensureTimerUpdate(q); + QUnifiedTimer::instance()->ensureTimerUpdate(); + q->setCurrentTime(totalCurrentTime); + } } } break; @@ -558,7 +543,7 @@ void QAbstractAnimation::setDirection(Direction direction) // the commands order below is important: first we need to setCurrentTime with the old direction, // then update the direction on this and all children and finally restart the pauseTimer if needed if (d->hasRegisteredTimer) - QUnifiedTimer::instance()->ensureTimerUpdate(this); + QUnifiedTimer::instance()->ensureTimerUpdate(); d->direction = direction; updateDirection(direction); diff --git a/src/corelib/animation/qabstractanimation.h b/src/corelib/animation/qabstractanimation.h index 50b07d7..3d608b6 100644 --- a/src/corelib/animation/qabstractanimation.h +++ b/src/corelib/animation/qabstractanimation.h @@ -59,6 +59,8 @@ class QAbstractAnimationPrivate; class Q_CORE_EXPORT QAbstractAnimation : public QObject { Q_OBJECT + Q_ENUMS(State) + Q_ENUMS(Direction) Q_PROPERTY(State state READ state NOTIFY stateChanged) Q_PROPERTY(int loopCount READ loopCount WRITE setLoopCount) Q_PROPERTY(int currentTime READ currentTime WRITE setCurrentTime) diff --git a/src/corelib/animation/qabstractanimation_p.h b/src/corelib/animation/qabstractanimation_p.h index bef0499..f989bce 100644 --- a/src/corelib/animation/qabstractanimation_p.h +++ b/src/corelib/animation/qabstractanimation_p.h @@ -142,7 +142,7 @@ public: this is used for updating the currentTime of all animations in case the pause timer is active or, otherwise, only of the animation passed as parameter. */ - void ensureTimerUpdate(QAbstractAnimation *animation); + void ensureTimerUpdate(); /* this will evaluate the need of restarting the pause timer in case there is still diff --git a/src/corelib/global/qnamespace.h b/src/corelib/global/qnamespace.h index 2b62c6b..aeaca54 100644 --- a/src/corelib/global/qnamespace.h +++ b/src/corelib/global/qnamespace.h @@ -909,12 +909,10 @@ public: Key_Dead_Horn = 0x01001262, // multimedia/internet keys - ignored by default - see QKeyEvent c'tor - Key_Back = 0x01000061, Key_Forward = 0x01000062, Key_Stop = 0x01000063, Key_Refresh = 0x01000064, - Key_VolumeDown = 0x01000070, Key_VolumeMute = 0x01000071, Key_VolumeUp = 0x01000072, @@ -923,7 +921,6 @@ public: Key_BassDown = 0x01000075, Key_TrebleUp = 0x01000076, Key_TrebleDown = 0x01000077, - Key_MediaPlay = 0x01000080, Key_MediaStop = 0x01000081, Key_MediaPrevious = 0x01000082, @@ -932,13 +929,11 @@ public: #endif Key_MediaNext = 0x01000083, Key_MediaRecord = 0x01000084, - Key_HomePage = 0x01000090, Key_Favorites = 0x01000091, Key_Search = 0x01000092, Key_Standby = 0x01000093, Key_OpenUrl = 0x01000094, - Key_LaunchMail = 0x010000a0, Key_LaunchMedia = 0x010000a1, Key_Launch0 = 0x010000a2, @@ -957,6 +952,98 @@ public: Key_LaunchD = 0x010000af, Key_LaunchE = 0x010000b0, Key_LaunchF = 0x010000b1, + Key_MonBrightnessUp = 0x010000b2, + Key_MonBrightnessDown = 0x010000b3, + Key_KeyboardLightOnOff = 0x010000b4, + Key_KeyboardBrightnessUp = 0x010000b5, + Key_KeyboardBrightnessDown = 0x010000b6, + Key_PowerOff = 0x010000b7, + Key_WakeUp = 0x010000b8, + Key_Eject = 0x010000b9, + Key_ScreenSaver = 0x010000ba, + Key_WWW = 0x010000bb, + Key_Memo = 0x010000bc, + Key_LightBulb = 0x010000bd, + Key_Shop = 0x010000be, + Key_History = 0x010000bf, + Key_AddFavorite = 0x010000c0, + Key_HotLinks = 0x010000c1, + Key_BrightnessAdjust = 0x010000c2, + Key_Finance = 0x010000c3, + Key_Community = 0x010000c4, + Key_AudioRewind = 0x010000c5, + Key_BackForward = 0x010000c6, + Key_ApplicationLeft = 0x010000c7, + Key_ApplicationRight = 0x010000c8, + Key_Book = 0x010000c9, + Key_CD = 0x010000ca, + Key_Calculator = 0x010000cb, + Key_ToDoList = 0x010000cc, + Key_ClearGrab = 0x010000cd, + Key_Close = 0x010000ce, + Key_Copy = 0x010000cf, + Key_Cut = 0x010000d0, + Key_Display = 0x010000d1, + Key_DOS = 0x010000d2, + Key_Documents = 0x010000d3, + Key_Excel = 0x010000d4, + Key_Explorer = 0x010000d5, + Key_Game = 0x010000d6, + Key_Go = 0x010000d7, + Key_iTouch = 0x010000d8, + Key_LogOff = 0x010000d9, + Key_Market = 0x010000da, + Key_Meeting = 0x010000db, + Key_MenuKB = 0x010000dc, + Key_MenuPB = 0x010000dd, + Key_MySites = 0x010000de, + Key_News = 0x010000df, + Key_OfficeHome = 0x010000e0, + Key_Option = 0x010000e1, + Key_Paste = 0x010000e2, + Key_Phone = 0x010000e3, + Key_Calendar = 0x010000e4, + Key_Reply = 0x010000e5, + Key_Reload = 0x010000e6, + Key_RotateWindows = 0x010000e7, + Key_RotationPB = 0x010000e8, + Key_RotationKB = 0x010000e9, + Key_Save = 0x010000ea, + Key_Send = 0x010000eb, + Key_Spell = 0x010000ec, + Key_SplitScreen = 0x010000ed, + Key_Support = 0x010000ee, + Key_TaskPane = 0x010000ef, + Key_Terminal = 0x010000f0, + Key_Tools = 0x010000f1, + Key_Travel = 0x010000f2, + Key_Video = 0x010000f3, + Key_Word = 0x010000f4, + Key_Xfer = 0x010000f5, + Key_ZoomIn = 0x010000f6, + Key_ZoomOut = 0x010000f7, + Key_Away = 0x010000f8, + Key_Messenger = 0x010000f9, + Key_WebCam = 0x010000fa, + Key_MailForward = 0x010000fb, + Key_Pictures = 0x010000fc, + Key_Music = 0x010000fd, + Key_Battery = 0x010000fe, + Key_Bluetooth = 0x010000ff, + Key_WLAN = 0x01000100, + Key_UWB = 0x01000101, + Key_AudioForward = 0x01000102, + Key_AudioRepeat = 0x01000103, + Key_AudioRandomPlay = 0x01000104, + Key_Subtitle = 0x01000105, + Key_AudioCycleTrack = 0x01000106, + Key_Time = 0x01000107, + Key_Hibernate = 0x01000108, + Key_View = 0x01000109, + Key_TopMenu = 0x0100010a, + Key_PowerDown = 0x0100010b, + Key_Suspend = 0x0100010c, + Key_ContrastAdjust = 0x0100010d, Key_MediaLast = 0x0100ffff, diff --git a/src/corelib/global/qnamespace.qdoc b/src/corelib/global/qnamespace.qdoc index 5f9d01d..4e369c9 100644 --- a/src/corelib/global/qnamespace.qdoc +++ b/src/corelib/global/qnamespace.qdoc @@ -1609,6 +1609,98 @@ \value Key_LaunchD \value Key_LaunchE \value Key_LaunchF + \value Key_MonBrightnessUp + \value Key_MonBrightnessDown + \value Key_KeyboardLightOnOff + \value Key_KeyboardBrightnessUp + \value Key_KeyboardBrightnessDown + \value Key_PowerOff + \value Key_WakeUp + \value Key_Eject + \value Key_ScreenSaver + \value Key_WWW + \value Key_Memo + \value Key_LightBulb + \value Key_Shop + \value Key_History + \value Key_AddFavorite + \value Key_HotLinks + \value Key_BrightnessAdjust + \value Key_Finance + \value Key_Community + \value Key_AudioRewind + \value Key_BackForward + \value Key_ApplicationLeft + \value Key_ApplicationRight + \value Key_Book + \value Key_CD + \value Key_Calculator + \value Key_ToDoList + \value Key_ClearGrab + \value Key_Close + \value Key_Copy + \value Key_Cut + \value Key_Display + \value Key_DOS + \value Key_Documents + \value Key_Excel + \value Key_Explorer + \value Key_Game + \value Key_Go + \value Key_iTouch + \value Key_LogOff + \value Key_Market + \value Key_Meeting + \value Key_MenuKB + \value Key_MenuPB + \value Key_MySites + \value Key_News + \value Key_OfficeHome + \value Key_Option + \value Key_Paste + \value Key_Phone + \value Key_Calendar + \value Key_Reply + \value Key_Reload + \value Key_RotateWindows + \value Key_RotationPB + \value Key_RotationKB + \value Key_Save + \value Key_Send + \value Key_Spell + \value Key_SplitScreen + \value Key_Support + \value Key_TaskPane + \value Key_Terminal + \value Key_Tools + \value Key_Travel + \value Key_Video + \value Key_Word + \value Key_Xfer + \value Key_ZoomIn + \value Key_ZoomOut + \value Key_Away + \value Key_Messenger + \value Key_WebCam + \value Key_MailForward + \value Key_Pictures + \value Key_Music + \value Key_Battery + \value Key_Bluetooth + \value Key_WLAN + \value Key_UWB + \value Key_AudioForward + \value Key_AudioRepeat + \value Key_AudioRandomPlay + \value Key_Subtitle + \value Key_AudioCycleTrack + \value Key_Time + \value Key_Hibernate + \value Key_View + \value Key_TopMenu + \value Key_PowerDown + \value Key_Suspend + \value Key_ContrastAdjust \value Key_MediaLast \value Key_unknown @@ -2509,7 +2601,7 @@ \value DisplayRole The key data to be rendered in the form of text. (QString) \value DecorationRole The data to be rendered as a decoration in the form - of an icon. (QColor) + of an icon. (QColor, QIcon or QPixmap) \value EditRole The data in a form suitable for editing in an editor. (QString) \value ToolTipRole The data displayed in the item's tooltip. (QString) diff --git a/src/corelib/io/qfsfileengine.cpp b/src/corelib/io/qfsfileengine.cpp index fb096a7..b69a5e5 100644 --- a/src/corelib/io/qfsfileengine.cpp +++ b/src/corelib/io/qfsfileengine.cpp @@ -76,6 +76,16 @@ QT_BEGIN_NAMESPACE # endif #endif +#ifdef Q_OS_SYMBIAN + // Using default 4k block in symbian is highly inefficient due to + // the fact that each file operation requires slow IPC calls, so + // use somewhat larger block size. +# define FDFH_BLOCK_SIZE 16384 +#else + // Read/write in blocks of 4k to avoid platform limitations (Windows + // commonly bails out if you read or write too large blocks at once). +# define FDFH_BLOCK_SIZE 4096 +#endif /*! \class QFSFileEngine \brief The QFSFileEngine class implements Qt's default file engine. @@ -160,11 +170,11 @@ QString QFSFileEnginePrivate::canonicalized(const QString &path) if ( #ifdef Q_OS_SYMBIAN // Symbian doesn't support directory symlinks, so do not check for link unless we - // are handling the last path element. This not only slightly improves performance, + // are handling the last path element. This not only slightly improves performance, // but also saves us from lot of unnecessary platform security check failures // when dealing with files under *:/private directories. separatorPos == -1 && -#endif +#endif !nonSymlinks.contains(prefix)) { fi.setFile(prefix); if (fi.isSymLink()) { @@ -628,14 +638,12 @@ qint64 QFSFileEnginePrivate::readFdFh(char *data, qint64 len) qint64 read = 0; int retry = 0; - // Read in blocks of 4k to avoid platform limitations (Windows - // commonly bails out if you read or write too large blocks at once). qint64 bytesToRead; do { if (retry == 1) retry = 2; - bytesToRead = qMin<qint64>(4096, len - read); + bytesToRead = qMin<qint64>(FDFH_BLOCK_SIZE, len - read); do { readBytes = fread(data + read, 1, size_t(bytesToRead), fh); } while (readBytes == 0 && !feof(fh) && errno == EINTR); @@ -666,10 +674,8 @@ qint64 QFSFileEnginePrivate::readFdFh(char *data, qint64 len) qint64 read = 0; errno = 0; - // Read in blocks of 4k to avoid platform limitations (Windows - // commonly bails out if you read or write too large blocks at once). do { - qint64 bytesToRead = qMin<qint64>(4096, len - read); + qint64 bytesToRead = qMin<qint64>(FDFH_BLOCK_SIZE, len - read); do { result = QT_READ(fd, data + read, int(bytesToRead)); } while (result == -1 && errno == EINTR); @@ -770,9 +776,7 @@ qint64 QFSFileEnginePrivate::writeFdFh(const char *data, qint64 len) qint64 written = 0; do { - // Write blocks of 4k to avoid platform limitations (Windows commonly - // bails out if you read or write too large blocks at once). - qint64 bytesToWrite = qMin<qint64>(4096, len - written); + qint64 bytesToWrite = qMin<qint64>(FDFH_BLOCK_SIZE, len - written); if (fh) { do { // Buffered stdlib mode. @@ -903,7 +907,7 @@ bool QFSFileEngine::supportsExtension(Extension extension) const /*! \fn QString QFSFileEngine::currentPath(const QString &fileName) For Unix, returns the current working directory for the file engine. - + For Windows, returns the canonicalized form of the current path used by the file engine for the drive specified by \a fileName. On Windows, each drive has its own current directory, so a different diff --git a/src/corelib/kernel/qeventdispatcher_win.cpp b/src/corelib/kernel/qeventdispatcher_win.cpp index 1e6402f..d13e1d1 100644 --- a/src/corelib/kernel/qeventdispatcher_win.cpp +++ b/src/corelib/kernel/qeventdispatcher_win.cpp @@ -64,6 +64,15 @@ extern uint qGlobalPostedEventsCount(); # define TIME_KILL_SYNCHRONOUS 0x0100 #endif +#ifndef QS_RAWINPUT +# define QS_RAWINPUT 0x0400 +#endif + +enum { + WM_QT_SOCKETNOTIFIER = WM_USER, + WM_QT_SENDPOSTEDEVENTS = WM_USER + 1 +}; + #if defined(Q_OS_WINCE) QT_BEGIN_INCLUDE_NAMESPACE #include <winsock.h> @@ -327,6 +336,11 @@ public: // internal window handle used for socketnotifiers/timers/etc HWND internalHwnd; + // for controlling when to send posted events + QAtomicInt serialNumber; + int lastSerialNumber; + QAtomicInt wakeUps; + // timers WinTimerVec timerVec; WinTimerDict timerDict; @@ -340,9 +354,6 @@ public: QSNDict sn_except; void doWsaAsyncSelect(int socket); - // event notifier - QWinEventNotifier wakeUpNotifier; - QList<QWinEventNotifier *> winEventNotifierList; void activateEventNotifier(QWinEventNotifier * wen); @@ -351,19 +362,13 @@ public: }; QEventDispatcherWin32Private::QEventDispatcherWin32Private() - : threadId(GetCurrentThreadId()), interrupt(false), internalHwnd(0) + : threadId(GetCurrentThreadId()), interrupt(false), internalHwnd(0), serialNumber(0), lastSerialNumber(0), wakeUps(0) { resolveTimerAPI(); - - wakeUpNotifier.setHandle(CreateEvent(0, FALSE, FALSE, 0)); - if (!wakeUpNotifier.handle()) - qWarning("QEventDispatcher: Creating QEventDispatcherWin32Private wakeup event failed"); } QEventDispatcherWin32Private::~QEventDispatcherWin32Private() { - wakeUpNotifier.setEnabled(false); - CloseHandle(wakeUpNotifier.handle()); if (internalHwnd) DestroyWindow(internalHwnd); QString className = QLatin1String("QEventDispatcherWin32_Internal_Widget") + QString::number(quintptr(qt_internal_proc)); @@ -408,22 +413,35 @@ void WINAPI CALLBACK qt_fast_timer_proc(uint timerId, uint /*reserved*/, DWORD_P LRESULT CALLBACK qt_internal_proc(HWND hwnd, UINT message, WPARAM wp, LPARAM lp) { - if (message == WM_NCCREATE) { - return true; - } else if (message == WM_USER) { + if (message == WM_NCCREATE) + return true; - // socket notifier message - MSG msg; - msg.hwnd = hwnd; - msg.message = message; - msg.wParam = wp; - msg.lParam = lp; + MSG msg; + msg.hwnd = hwnd; + msg.message = message; + msg.wParam = wp; + msg.lParam = lp; + QCoreApplication *app = QCoreApplication::instance(); + long result; + if (!app) { + if (message == WM_TIMER) + KillTimer(hwnd, wp); + return 0; + } else if (app->filterEvent(&msg, &result)) { + return result; + } - QCoreApplication *app = QCoreApplication::instance(); - long result; - if (app && app->filterEvent(&msg, &result)) - return result; +#ifdef GWLP_USERDATA + QEventDispatcherWin32 *q = (QEventDispatcherWin32 *) GetWindowLongPtr(hwnd, GWLP_USERDATA); +#else + QEventDispatcherWin32 *q = (QEventDispatcherWin32 *) GetWindowLong(hwnd, GWL_USERDATA); +#endif + QEventDispatcherWin32Private *d = 0; + if (q != 0) + d = q->d_func(); + if (message == WM_QT_SOCKETNOTIFIER) { + // socket notifier message int type = -1; switch (WSAGETSELECTEVENT(lp)) { case FD_READ: @@ -440,56 +458,50 @@ LRESULT CALLBACK qt_internal_proc(HWND hwnd, UINT message, WPARAM wp, LPARAM lp) break; } if (type >= 0) { - - #ifdef GWLP_USERDATA - QEventDispatcherWin32 *eventDispatcher = - (QEventDispatcherWin32 *) GetWindowLongPtr(hwnd, GWLP_USERDATA); - #else - QEventDispatcherWin32 *eventDispatcher = - (QEventDispatcherWin32 *) GetWindowLong(hwnd, GWL_USERDATA); - #endif - if (eventDispatcher) { - QEventDispatcherWin32Private *d = eventDispatcher->d_func(); - QSNDict *sn_vec[3] = { &d->sn_read, &d->sn_write, &d->sn_except }; - QSNDict *dict = sn_vec[type]; - - QSockNot *sn = dict ? dict->value(wp) : 0; - if (sn) { - QEvent event(QEvent::SockAct); - QCoreApplication::sendEvent(sn->obj, &event); - } + Q_ASSERT(d != 0); + QSNDict *sn_vec[3] = { &d->sn_read, &d->sn_write, &d->sn_except }; + QSNDict *dict = sn_vec[type]; + + QSockNot *sn = dict ? dict->value(wp) : 0; + if (sn) { + QEvent event(QEvent::SockAct); + QCoreApplication::sendEvent(sn->obj, &event); } } return 0; - - } else if (message == WM_TIMER) { - - MSG msg; - msg.hwnd = hwnd; - msg.message = message; - msg.wParam = wp; - msg.lParam = lp; - - QCoreApplication *app = QCoreApplication::instance(); - Q_ASSERT_X(app, "qt_interal_proc", "Timer fired, but no QCoreApplication"); - if (!app) { - KillTimer(hwnd, wp); - return 0; + } else if (message == WM_TIMER) { + if (wp == ~0u) { + KillTimer(d->internalHwnd, wp); + int localSerialNumber = d->serialNumber; + (void) d->wakeUps.fetchAndStoreRelease(0); + if (localSerialNumber != d->lastSerialNumber) { + PostMessage(d->internalHwnd, WM_QT_SENDPOSTEDEVENTS, 0, 0); + } + } else { + Q_ASSERT(d != 0); + d->sendTimerEvent(wp); + } + return 0; + } else if (message == WM_QT_SENDPOSTEDEVENTS) { + int localSerialNumber = d->serialNumber; + + if (GetQueueStatus(QS_INPUT | QS_RAWINPUT | QS_TIMER) != 0) { + // delay the next pass of sendPostedEvents() until we get the special + // WM_TIMER, which allows all pending Windows messages to be processed + SetTimer(d->internalHwnd, ~0u, 0, 0); + } else { + // nothing pending in the queue, let sendPostedEvents go through + d->wakeUps.fetchAndStoreRelease(0); } - long result; - if (app->filterEvent(&msg, &result)) - return result; - - QEventDispatcherWin32 *eventDispatcher = - qobject_cast<QEventDispatcherWin32 *>(QAbstractEventDispatcher::instance()); - Q_ASSERT(eventDispatcher != 0); - QEventDispatcherWin32Private *d = eventDispatcher->d_func(); - d->sendTimerEvent(wp); + if (localSerialNumber != d->lastSerialNumber) { + d->lastSerialNumber = localSerialNumber; + QCoreApplicationPrivate::sendPostedEvents(0, 0, d->threadData); + } return 0; } - return DefWindowProc(hwnd, message, wp, lp); + return DefWindowProc(hwnd, message, wp, lp); } static HWND qt_create_internal_window(const QEventDispatcherWin32 *eventDispatcher) @@ -538,11 +550,6 @@ void QEventDispatcherWin32Private::registerTimer(WinTimerInfo *t) Q_Q(QEventDispatcherWin32); int ok = 0; - - //in the animation api, we delay the start of the animation - //for the dock widgets, we need to use a system timer because dragging a native window - //makes Windows start its own event loop. - //So if this threshold changes, please change STARTSTOP_TIMER_DELAY in qabstractanimation.cpp accordingly. if (t->interval > 15 || !t->interval || !qtimeSetEvent) { ok = 1; if (!t->interval) // optimization for single-shot-zero-timer @@ -608,7 +615,7 @@ void QEventDispatcherWin32Private::doWsaAsyncSelect(int socket) sn_event |= FD_OOB; // BoundsChecker may emit a warning for WSAAsyncSelect when sn_event == 0 // This is a BoundsChecker bug and not a Qt bug - WSAAsyncSelect(socket, internalHwnd, sn_event ? WM_USER : 0, sn_event); + WSAAsyncSelect(socket, internalHwnd, sn_event ? WM_QT_SOCKETNOTIFIER : 0, sn_event); } void QEventDispatcherWin32::createInternalHwnd() @@ -630,6 +637,9 @@ void QEventDispatcherWin32::createInternalHwnd() // start all normal timers for (int i = 0; i < d->timerVec.count(); ++i) d->registerTimer(d->timerVec.at(i)); + + // trigger a call to sendPostedEvents() + wakeUp(); } QEventDispatcherWin32::QEventDispatcherWin32(QObject *parent) @@ -653,9 +663,9 @@ bool QEventDispatcherWin32::processEvents(QEventLoop::ProcessEventsFlags flags) bool canWait; bool retVal = false; + bool seenWM_QT_SENDPOSTEDEVENTS = false; + bool needWM_QT_SENDPOSTEDEVENTS = false; do { - QCoreApplicationPrivate::sendPostedEvents(0, 0, d->threadData); - DWORD waitRet = 0; HANDLE pHandles[MAXIMUM_WAIT_OBJECTS - 1]; QVarLengthArray<MSG> processedTimers; @@ -689,7 +699,7 @@ bool QEventDispatcherWin32::processEvents(QEventLoop::ProcessEventsFlags flags) d->queuedUserInputEvents.append(msg); } if (haveMessage && (flags & QEventLoop::ExcludeSocketNotifiers) - && (msg.message == WM_USER && msg.hwnd == d->internalHwnd)) { + && (msg.message == WM_QT_SOCKETNOTIFIER && msg.hwnd == d->internalHwnd)) { // queue socket events for later processing haveMessage = false; d->queuedSocketEvents.append(msg); @@ -706,7 +716,13 @@ bool QEventDispatcherWin32::processEvents(QEventLoop::ProcessEventsFlags flags) } } if (haveMessage) { - if (msg.message == WM_TIMER) { + if (msg.message == WM_QT_SENDPOSTEDEVENTS && !(flags & QEventLoop::EventLoopExec)) { + if (seenWM_QT_SENDPOSTEDEVENTS) { + needWM_QT_SENDPOSTEDEVENTS = true; + continue; + } + seenWM_QT_SENDPOSTEDEVENTS = true; + } else if (msg.message == WM_TIMER) { // avoid live-lock by keeping track of the timers we've already sent bool found = false; for (int i = 0; !found && i < processedTimers.count(); ++i) { @@ -736,9 +752,7 @@ bool QEventDispatcherWin32::processEvents(QEventLoop::ProcessEventsFlags flags) } // still nothing - wait for message or signalled objects - QThreadData *data = d->threadData; canWait = (!retVal - && data->canWait && !d->interrupt && (flags & QEventLoop::WaitForMoreEvents)); if (canWait) { @@ -757,6 +771,9 @@ bool QEventDispatcherWin32::processEvents(QEventLoop::ProcessEventsFlags flags) } } while (canWait); + if (needWM_QT_SENDPOSTEDEVENTS) + PostMessage(d->internalHwnd, WM_QT_SENDPOSTEDEVENTS, 0, 0); + return retVal; } @@ -990,7 +1007,11 @@ void QEventDispatcherWin32::activateEventNotifiers() void QEventDispatcherWin32::wakeUp() { Q_D(QEventDispatcherWin32); - SetEvent(d->wakeUpNotifier.handle()); + d->serialNumber.ref(); + if (d->internalHwnd && d->wakeUps.testAndSetAcquire(0, 1)) { + // post a WM_QT_SENDPOSTEDEVENTS to this thread if there isn't one already pending + PostMessage(d->internalHwnd, WM_QT_SENDPOSTEDEVENTS, 0, 0); + } } void QEventDispatcherWin32::interrupt() @@ -1003,13 +1024,8 @@ void QEventDispatcherWin32::interrupt() void QEventDispatcherWin32::flush() { } - void QEventDispatcherWin32::startingUp() -{ - Q_D(QEventDispatcherWin32); - - if (d->wakeUpNotifier.handle()) d->wakeUpNotifier.setEnabled(true); -} +{ } void QEventDispatcherWin32::closingDown() { diff --git a/src/corelib/kernel/qobject.cpp b/src/corelib/kernel/qobject.cpp index 7be19b3..5303975 100644 --- a/src/corelib/kernel/qobject.cpp +++ b/src/corelib/kernel/qobject.cpp @@ -835,14 +835,7 @@ QObject::QObject(QObjectPrivate &dd, QObject *parent) QObject::~QObject() { Q_D(QObject); - if (d->wasDeleted) { -#if defined(QT_DEBUG) - qWarning("QObject: Double deletion detected"); -#endif - return; - } d->wasDeleted = true; - d->blockSig = 0; // unblock signals so we always emit destroyed() if (!d->isWidget) { diff --git a/src/corelib/kernel/qvariant.h b/src/corelib/kernel/qvariant.h index eb4fb56..3c10788 100644 --- a/src/corelib/kernel/qvariant.h +++ b/src/corelib/kernel/qvariant.h @@ -456,10 +456,11 @@ template <typename T> inline void qVariantSetValue(QVariant &v, const T &t) { //if possible we reuse the current QVariant private - const int type = qMetaTypeId<T>(reinterpret_cast<T *>(0)); + const uint type = qMetaTypeId<T>(reinterpret_cast<T *>(0)); QVariant::Private &d = v.data_ptr(); - if (v.isDetached() && (type <= int(QVariant::Char) || type == d.type)) { + if (v.isDetached() && (type <= uint(QVariant::Char) || type == d.type)) { d.type = type; + d.is_null = false; T *old = reinterpret_cast<T*>(d.is_shared ? d.data.shared->ptr : &d.data.ptr); if (QTypeInfo<T>::isComplex) old->~T(); @@ -469,6 +470,13 @@ inline void qVariantSetValue(QVariant &v, const T &t) } } +template <> +inline void qVariantSetValue<QVariant>(QVariant &v, const QVariant &t) +{ + v = t; +} + + inline QVariant::QVariant() {} inline bool QVariant::isValid() const { return d.type != Invalid; } @@ -558,9 +566,7 @@ inline bool operator!=(const QVariant &v1, const QVariantComparisonHelper &v2) #endif #ifndef QT_MOC -#if !defined qdoc && defined Q_CC_MSVC && _MSC_VER < 1300 - -template<typename T> T qvariant_cast(const QVariant &v, T * = 0) +template<typename T> inline T qvariant_cast(const QVariant &v) { const int vid = qMetaTypeId<T>(static_cast<T *>(0)); if (vid == v.userType()) @@ -573,28 +579,12 @@ template<typename T> T qvariant_cast(const QVariant &v, T * = 0) return T(); } -template<typename T> -inline T qVariantValue(const QVariant &variant, T *t = 0) -{ return qvariant_cast<T>(variant, t); } - -template<typename T> -inline bool qVariantCanConvert(const QVariant &variant, T *t = 0) -{ - return variant.canConvert(static_cast<QVariant::Type>(qMetaTypeId<T>(t))); -} -#else - -template<typename T> T qvariant_cast(const QVariant &v) +template<> inline QVariant qvariant_cast<QVariant>(const QVariant &v) { - const int vid = qMetaTypeId<T>(static_cast<T *>(0)); + static const int vid = qRegisterMetaType<QVariant>("QVariant"); if (vid == v.userType()) - return *reinterpret_cast<const T *>(v.constData()); - if (vid < int(QMetaType::User)) { - T t; - if (qvariant_cast_helper(v, QVariant::Type(vid), &t)) - return t; - } - return T(); + return *reinterpret_cast<const QVariant *>(v.constData()); + return v; } template<typename T> @@ -608,7 +598,6 @@ inline bool qVariantCanConvert(const QVariant &variant) qMetaTypeId<T>(static_cast<T *>(0)))); } #endif -#endif Q_DECLARE_SHARED(QVariant) Q_DECLARE_TYPEINFO(QVariant, Q_MOVABLE_TYPE); diff --git a/src/corelib/statemachine/qabstractstate.cpp b/src/corelib/statemachine/qabstractstate.cpp index cf67cdd..ec5332f 100644 --- a/src/corelib/statemachine/qabstractstate.cpp +++ b/src/corelib/statemachine/qabstractstate.cpp @@ -78,8 +78,8 @@ QT_BEGIN_NAMESPACE function to perform custom processing when the state is exited. */ -QAbstractStatePrivate::QAbstractStatePrivate() - : parentState(0) +QAbstractStatePrivate::QAbstractStatePrivate(StateType type) + : stateType(type), isMachine(false), parentState(0) { } @@ -88,6 +88,11 @@ QAbstractStatePrivate *QAbstractStatePrivate::get(QAbstractState *q) return q->d_func(); } +const QAbstractStatePrivate *QAbstractStatePrivate::get(const QAbstractState *q) +{ + return q->d_func(); +} + QStateMachine *QAbstractStatePrivate::machine() const { QObject *par = parent; @@ -127,7 +132,7 @@ void QAbstractStatePrivate::emitExited() Constructs a new state with the given \a parent state. */ QAbstractState::QAbstractState(QState *parent) - : QObject(*new QAbstractStatePrivate, parent) + : QObject(*new QAbstractStatePrivate(QAbstractStatePrivate::AbstractState), parent) { } diff --git a/src/corelib/statemachine/qabstractstate_p.h b/src/corelib/statemachine/qabstractstate_p.h index cd57815..faea6b6 100644 --- a/src/corelib/statemachine/qabstractstate_p.h +++ b/src/corelib/statemachine/qabstractstate_p.h @@ -65,9 +65,17 @@ class QAbstractStatePrivate : public QObjectPrivate Q_DECLARE_PUBLIC(QAbstractState) public: - QAbstractStatePrivate(); + enum StateType { + AbstractState, + StandardState, + FinalState, + HistoryState + }; + + QAbstractStatePrivate(StateType type); static QAbstractStatePrivate *get(QAbstractState *q); + static const QAbstractStatePrivate *get(const QAbstractState *q); QStateMachine *machine() const; @@ -77,6 +85,8 @@ public: void emitEntered(); void emitExited(); + uint stateType:31; + uint isMachine:1; mutable QState *parentState; }; diff --git a/src/corelib/statemachine/qfinalstate.cpp b/src/corelib/statemachine/qfinalstate.cpp index 761eee4..d900ddd 100644 --- a/src/corelib/statemachine/qfinalstate.cpp +++ b/src/corelib/statemachine/qfinalstate.cpp @@ -92,6 +92,7 @@ public: }; QFinalStatePrivate::QFinalStatePrivate() + : QAbstractStatePrivate(FinalState) { } diff --git a/src/corelib/statemachine/qhistorystate.cpp b/src/corelib/statemachine/qhistorystate.cpp index 0c2b858..18436d3 100644 --- a/src/corelib/statemachine/qhistorystate.cpp +++ b/src/corelib/statemachine/qhistorystate.cpp @@ -120,7 +120,8 @@ QT_BEGIN_NAMESPACE */ QHistoryStatePrivate::QHistoryStatePrivate() - : defaultState(0), historyType(QHistoryState::ShallowHistory) + : QAbstractStatePrivate(HistoryState), + defaultState(0), historyType(QHistoryState::ShallowHistory) { } diff --git a/src/corelib/statemachine/qstate.cpp b/src/corelib/statemachine/qstate.cpp index bcd8364..5dc310b 100644 --- a/src/corelib/statemachine/qstate.cpp +++ b/src/corelib/statemachine/qstate.cpp @@ -124,7 +124,8 @@ QT_BEGIN_NAMESPACE */ QStatePrivate::QStatePrivate() - : errorState(0), initialState(0), childMode(QState::ExclusiveStates), + : QAbstractStatePrivate(StandardState), + errorState(0), initialState(0), childMode(QState::ExclusiveStates), childStatesListNeedsRefresh(true), transitionsListNeedsRefresh(true) { } diff --git a/src/corelib/statemachine/qstatemachine.cpp b/src/corelib/statemachine/qstatemachine.cpp index 689967a..ea5587e 100644 --- a/src/corelib/statemachine/qstatemachine.cpp +++ b/src/corelib/statemachine/qstatemachine.cpp @@ -178,6 +178,8 @@ QT_BEGIN_NAMESPACE QStateMachinePrivate::QStateMachinePrivate() { + QAbstractStatePrivate::isMachine = true; + state = NotRunning; _startState = 0; processing = false; @@ -336,7 +338,7 @@ QSet<QAbstractTransition*> QStateMachinePrivate::selectTransitions(QEvent *event if (isPreempted(state, enabledTransitions)) continue; QList<QState*> lst = properAncestors(state, rootState()->parentState()); - if (QState *grp = qobject_cast<QState*>(state)) + if (QState *grp = toStandardState(state)) lst.prepend(grp); bool found = false; for (int j = 0; (j < lst.size()) && !found; ++j) { @@ -414,7 +416,7 @@ QList<QAbstractState*> QStateMachinePrivate::exitStates(QEvent *event, const QLi qSort(statesToExit_sorted.begin(), statesToExit_sorted.end(), stateExitLessThan); for (int i = 0; i < statesToExit_sorted.size(); ++i) { QAbstractState *s = statesToExit_sorted.at(i); - if (QState *grp = qobject_cast<QState*>(s)) { + if (QState *grp = toStandardState(s)) { QList<QHistoryState*> hlst = QStatePrivate::get(grp)->historyStates(); for (int j = 0; j < hlst.size(); ++j) { QHistoryState *h = hlst.at(j); @@ -563,7 +565,7 @@ void QStateMachinePrivate::addStatesToEnter(QAbstractState *s, QState *root, QSet<QAbstractState*> &statesToEnter, QSet<QAbstractState*> &statesForDefaultEntry) { - if (QHistoryState *h = qobject_cast<QHistoryState*>(s)) { + if (QHistoryState *h = toHistoryState(s)) { QList<QAbstractState*> hconf = QHistoryStatePrivate::get(h)->configuration; if (!hconf.isEmpty()) { for (int k = 0; k < hconf.size(); ++k) { @@ -600,7 +602,7 @@ void QStateMachinePrivate::addStatesToEnter(QAbstractState *s, QState *root, } statesToEnter.insert(s); if (isParallel(s)) { - QState *grp = qobject_cast<QState*>(s); + QState *grp = toStandardState(s); QList<QAbstractState*> lst = QStatePrivate::get(grp)->childStates(); for (int i = 0; i < lst.size(); ++i) { QAbstractState *child = lst.at(i); @@ -608,7 +610,7 @@ void QStateMachinePrivate::addStatesToEnter(QAbstractState *s, QState *root, } } else if (isCompound(s)) { statesForDefaultEntry.insert(s); - QState *grp = qobject_cast<QState*>(s); + QState *grp = toStandardState(s); QAbstractState *initial = grp->initialState(); if (initial != 0) { Q_ASSERT(initial->machine() == q_func()); @@ -660,7 +662,7 @@ void QStateMachinePrivate::applyProperties(const QList<QAbstractTransition*> &tr QHash<QAbstractState*, QList<QPropertyAssignment> > propertyAssignmentsForState; QHash<RestorableId, QVariant> pendingRestorables = registeredRestorables; for (int i = 0; i < enteredStates.size(); ++i) { - QState *s = qobject_cast<QState*>(enteredStates.at(i)); + QState *s = toStandardState(enteredStates.at(i)); if (!s) continue; @@ -831,7 +833,7 @@ void QStateMachinePrivate::applyProperties(const QList<QAbstractTransition*> &tr // Emit polished signal for entered states that have no animated properties. for (int i = 0; i < enteredStates.size(); ++i) { - QState *s = qobject_cast<QState*>(enteredStates.at(i)); + QState *s = toStandardState(enteredStates.at(i)); if (s #ifndef QT_NO_ANIMATION && !animationsForState.contains(s) @@ -845,21 +847,21 @@ void QStateMachinePrivate::applyProperties(const QList<QAbstractTransition*> &tr bool QStateMachinePrivate::isFinal(const QAbstractState *s) { - return qobject_cast<const QFinalState*>(s) != 0; + return s && (QAbstractStatePrivate::get(s)->stateType == QAbstractStatePrivate::FinalState); } bool QStateMachinePrivate::isParallel(const QAbstractState *s) { - const QState *ss = qobject_cast<const QState*>(s); + const QState *ss = toStandardState(s); return ss && (QStatePrivate::get(ss)->childMode == QState::ParallelStates); } bool QStateMachinePrivate::isCompound(const QAbstractState *s) const { - const QState *group = qobject_cast<const QState*>(s); + const QState *group = toStandardState(s); if (!group) return false; - bool isMachine = (qobject_cast<const QStateMachine*>(group) != 0); + bool isMachine = QStatePrivate::get(group)->isMachine; // Don't treat the machine as compound if it's a sub-state of this machine if (isMachine && (group != rootState())) return false; @@ -869,11 +871,11 @@ bool QStateMachinePrivate::isCompound(const QAbstractState *s) const bool QStateMachinePrivate::isAtomic(const QAbstractState *s) const { - const QState *ss = qobject_cast<const QState*>(s); + const QState *ss = toStandardState(s); return (ss && QStatePrivate::get(ss)->childStates().isEmpty()) || isFinal(s) // Treat the machine as atomic if it's a sub-state of this machine - || (ss && (qobject_cast<const QStateMachine*>(ss) != 0) && (ss != rootState())); + || (ss && QStatePrivate::get(ss)->isMachine && (ss != rootState())); } @@ -897,10 +899,38 @@ QList<QState*> QStateMachinePrivate::properAncestors(const QAbstractState *state return result; } +QState *QStateMachinePrivate::toStandardState(QAbstractState *state) +{ + if (state && (QAbstractStatePrivate::get(state)->stateType == QAbstractStatePrivate::StandardState)) + return static_cast<QState*>(state); + return 0; +} + +const QState *QStateMachinePrivate::toStandardState(const QAbstractState *state) +{ + if (state && (QAbstractStatePrivate::get(state)->stateType == QAbstractStatePrivate::StandardState)) + return static_cast<const QState*>(state); + return 0; +} + +QFinalState *QStateMachinePrivate::toFinalState(QAbstractState *state) +{ + if (state && (QAbstractStatePrivate::get(state)->stateType == QAbstractStatePrivate::FinalState)) + return static_cast<QFinalState*>(state); + return 0; +} + +QHistoryState *QStateMachinePrivate::toHistoryState(QAbstractState *state) +{ + if (state && (QAbstractStatePrivate::get(state)->stateType == QAbstractStatePrivate::HistoryState)) + return static_cast<QHistoryState*>(state); + return 0; +} + bool QStateMachinePrivate::isInFinalState(QAbstractState* s) const { if (isCompound(s)) { - QState *grp = qobject_cast<QState*>(s); + QState *grp = toStandardState(s); QList<QAbstractState*> lst = QStatePrivate::get(grp)->childStates(); for (int i = 0; i < lst.size(); ++i) { QAbstractState *cs = lst.at(i); @@ -909,7 +939,7 @@ bool QStateMachinePrivate::isInFinalState(QAbstractState* s) const } return false; } else if (isParallel(s)) { - QState *grp = qobject_cast<QState*>(s); + QState *grp = toStandardState(s); QList<QAbstractState*> lst = QStatePrivate::get(grp)->childStates(); for (int i = 0; i < lst.size(); ++i) { QAbstractState *cs = lst.at(i); @@ -975,7 +1005,7 @@ QAbstractState *QStateMachinePrivate::findErrorState(QAbstractState *context) // Find error state recursively in parent hierarchy if not set explicitly for context state QAbstractState *errorState = 0; if (context != 0) { - QState *s = qobject_cast<QState*>(context); + QState *s = toStandardState(context); if (s != 0) errorState = s->errorState(); @@ -1100,7 +1130,7 @@ void QStateMachinePrivate::_q_animationFinished() animations.removeOne(anim); if (animations.isEmpty()) { animationsForState.erase(it); - QStatePrivate::get(qobject_cast<QState*>(state))->emitPolished(); + QStatePrivate::get(toStandardState(state))->emitPolished(); } } @@ -1388,7 +1418,7 @@ void QStateMachinePrivate::goToState(QAbstractState *targetState) if (state == Running) { QSet<QAbstractState*>::const_iterator it; for (it = configuration.constBegin(); it != configuration.constEnd(); ++it) { - sourceState = qobject_cast<QState*>(*it); + sourceState = toStandardState(*it); if (sourceState != 0) break; } @@ -1412,7 +1442,7 @@ void QStateMachinePrivate::goToState(QAbstractState *targetState) void QStateMachinePrivate::registerTransitions(QAbstractState *state) { - QState *group = qobject_cast<QState*>(state); + QState *group = toStandardState(state); if (!group) return; QList<QAbstractTransition*> transitions = QStatePrivate::get(group)->transitions(); diff --git a/src/corelib/statemachine/qstatemachine_p.h b/src/corelib/statemachine/qstatemachine_p.h index 69b727d..01c9361 100644 --- a/src/corelib/statemachine/qstatemachine_p.h +++ b/src/corelib/statemachine/qstatemachine_p.h @@ -73,6 +73,8 @@ class QSignalEventGenerator; class QSignalTransition; class QAbstractState; class QAbstractTransition; +class QFinalState; +class QHistoryState; class QState; #ifndef QT_NO_ANIMATION @@ -138,6 +140,11 @@ public: const QList<QAbstractState*> &exitedStates, const QList<QAbstractState*> &enteredStates); + static QState *toStandardState(QAbstractState *state); + static const QState *toStandardState(const QAbstractState *state); + static QFinalState *toFinalState(QAbstractState *state); + static QHistoryState *toHistoryState(QAbstractState *state); + bool isInFinalState(QAbstractState *s) const; static bool isFinal(const QAbstractState *s); static bool isParallel(const QAbstractState *s); diff --git a/src/corelib/tools/qalgorithms.h b/src/corelib/tools/qalgorithms.h index a68ce27..f70821a 100644 --- a/src/corelib/tools/qalgorithms.h +++ b/src/corelib/tools/qalgorithms.h @@ -295,23 +295,12 @@ template <typename RandomAccessIterator, typename T> Q_OUTOFLINE_TEMPLATE RandomAccessIterator qBinaryFind(RandomAccessIterator begin, RandomAccessIterator end, const T &value) { // Implementation is duplicated from QAlgorithmsPrivate. - qint64 l = 0; - qint64 r = end - begin - 1; - if (r < 0) - return end; - qint64 i = (l + r + 1) / 2; - - while (r != l) { - if (value < begin[i]) - r = i - 1; - else - l = i; - i = (l + r + 1) / 2; - } - if (begin[i] < value || value < begin[i]) + RandomAccessIterator it = qLowerBound(begin, end, value); + + if (it == end || value < *it) return end; - else - return begin + i; + + return it; } template <typename RandomAccessIterator, typename T, typename LessThan> @@ -520,23 +509,12 @@ Q_OUTOFLINE_TEMPLATE RandomAccessIterator qUpperBoundHelper(RandomAccessIterator template <typename RandomAccessIterator, typename T, typename LessThan> Q_OUTOFLINE_TEMPLATE RandomAccessIterator qBinaryFindHelper(RandomAccessIterator begin, RandomAccessIterator end, const T &value, LessThan lessThan) { - qint64 l = 0; - qint64 r = end - begin - 1; - if (r < 0) - return end; - qint64 i = (l + r + 1) / 2; - - while (r != l) { - if (lessThan(value, begin[i])) - r = i - 1; - else - l = i; - i = (l + r + 1) / 2; - } - if (lessThan(begin[i], value) || lessThan(value, begin[i])) + RandomAccessIterator it = qLowerBoundHelper(begin, end, value, lessThan); + + if (it == end || lessThan(value, *it)) return end; - else - return begin + i; + + return it; } } //namespace QAlgorithmsPrivate diff --git a/src/corelib/tools/qdatetime.cpp b/src/corelib/tools/qdatetime.cpp index 54465bb..db6435e 100644 --- a/src/corelib/tools/qdatetime.cpp +++ b/src/corelib/tools/qdatetime.cpp @@ -1855,7 +1855,7 @@ QTime QTime::currentTime() t = localtime(<ime); #endif Q_CHECK_PTR(t); - + ct.mds = MSECS_PER_HOUR * t->tm_hour + MSECS_PER_MIN * t->tm_min + 1000 * t->tm_sec + tv.tv_usec / 1000; #else @@ -3725,11 +3725,11 @@ static QDateTimePrivate::Spec utcToLocal(QDate &date, QTime &time) TTimeIntervalSeconds tTimeIntervalSecsSince1Jan1970UTC(secsSince1Jan1970UTC); TTime epochTTime; TInt err = epochTTime.Set(KUnixEpoch); + tm res; if(err == KErrNone) { TTime utcTTime = epochTTime + tTimeIntervalSecsSince1Jan1970UTC; utcTTime = utcTTime + utcOffset; TDateTime utcDateTime = utcTTime.DateTime(); - tm res; res.tm_sec = utcDateTime.Second(); res.tm_min = utcDateTime.Minute(); res.tm_hour = utcDateTime.Hour(); @@ -3816,11 +3816,11 @@ static void localToUtc(QDate &date, QTime &time, int isdst) TTimeIntervalSeconds tTimeIntervalSecsSince1Jan1970UTC(secsSince1Jan1970UTC); TTime epochTTime; TInt err = epochTTime.Set(KUnixEpoch); + tm res; if(err == KErrNone) { TTime utcTTime = epochTTime + tTimeIntervalSecsSince1Jan1970UTC; utcTTime = utcTTime + utcOffset; TDateTime utcDateTime = utcTTime.DateTime(); - tm res; res.tm_sec = utcDateTime.Second(); res.tm_min = utcDateTime.Minute(); res.tm_hour = utcDateTime.Hour(); diff --git a/src/corelib/tools/qlocale_symbian.cpp b/src/corelib/tools/qlocale_symbian.cpp index 1660e95..1273d06 100644 --- a/src/corelib/tools/qlocale_symbian.cpp +++ b/src/corelib/tools/qlocale_symbian.cpp @@ -873,9 +873,11 @@ QVariant QSystemLocale::query(QueryType type, QVariant in = QVariant()) const } case NegativeSign: case PositiveSign: + break; case AMText: + return qt_TDes2QString(TAmPmName(TAmPm(EAm))); case PMText: - break; + return qt_TDes2QString(TAmPmName(TAmPm(EPm))); default: break; } diff --git a/src/gui/dialogs/qprintdialog_win.cpp b/src/gui/dialogs/qprintdialog_win.cpp index 843c4e2..51e83ac 100644 --- a/src/gui/dialogs/qprintdialog_win.cpp +++ b/src/gui/dialogs/qprintdialog_win.cpp @@ -139,7 +139,7 @@ static void qt_win_setup_PRINTDLGEX(PRINTDLGEX *pd, QWidget *parent, if (d->ep->printToFile) pd->Flags |= PD_PRINTTOFILE; Q_ASSERT(parent != 0 && parent->testAttribute(Qt::WA_WState_Created)); - pd->hwndOwner = parent->winId(); + pd->hwndOwner = parent->window()->winId(); pd->lpPageRanges[0].nFromPage = qMax(pdlg->fromPage(), pdlg->minPage()); pd->lpPageRanges[0].nToPage = (pdlg->toPage() > 0) ? qMin(pdlg->toPage(), pdlg->maxPage()) : 1; pd->nCopies = d->ep->num_copies; diff --git a/src/gui/effects/qgraphicseffect.cpp b/src/gui/effects/qgraphicseffect.cpp index 96d35b0..3815b60 100644 --- a/src/gui/effects/qgraphicseffect.cpp +++ b/src/gui/effects/qgraphicseffect.cpp @@ -65,9 +65,6 @@ \o QGraphicsDropShadowEffect - renders a dropshadow behind the item \o QGraphicsColorizeEffect - renders the item in shades of any given color \o QGraphicsOpacityEffect - renders the item with an opacity - \o QGraphicsPixelizeEffect - pixelizes the item with any pixel size - \o QGraphicsGrayscaleEffect - renders the item in shades of gray - \o QGraphicsBloomEffect - applies a blooming / glowing effect \endlist \img graphicseffect-effects.png @@ -100,9 +97,11 @@ */ #include "qgraphicseffect_p.h" +#include <QtGui/qgraphicsitem.h> #include <QtGui/qimage.h> #include <QtGui/qpainter.h> +#include <QtGui/qpaintengine.h> #include <QtCore/qrect.h> #include <QtCore/qdebug.h> #include <private/qdrawhelper_p.h> @@ -251,17 +250,24 @@ bool QGraphicsEffectSource::isPixmap() const \sa QGraphicsEffect::draw(), boundingRect(), deviceRect() */ -QPixmap QGraphicsEffectSource::pixmap(Qt::CoordinateSystem system, QPoint *offset) const +QPixmap QGraphicsEffectSource::pixmap(Qt::CoordinateSystem system, QPoint *offset, PixmapPadMode mode) const { Q_D(const QGraphicsEffectSource); + // Shortcut, no cache for childless pixmap items... + const QGraphicsItem *item = graphicsItem(); + if (system == Qt::LogicalCoordinates && mode == NoExpandPadMode && item && isPixmap()) { + return ((QGraphicsPixmapItem *) item)->pixmap(); + } + QPixmap pm; - if (d->m_cachedSystem == system) + if (d->m_cachedSystem == system && d->m_cachedMode == mode) QPixmapCache::find(d->m_cacheKey, &pm); if (pm.isNull()) { - pm = d->pixmap(system, &d->m_cachedOffset); + pm = d->pixmap(system, &d->m_cachedOffset, mode); d->m_cachedSystem = system; + d->m_cachedMode = mode; d->invalidateCache(); d->m_cacheKey = QPixmapCache::insert(pm); @@ -353,8 +359,10 @@ void QGraphicsEffect::setEnabled(bool enable) return; d->isEnabled = enable; - if (d->source) + if (d->source) { d->source->d_func()->effectBoundingRectChanged(); + d->source->d_func()->invalidateCache(); + } emit enabledChanged(enable); } @@ -408,8 +416,10 @@ QGraphicsEffectSource *QGraphicsEffect::source() const void QGraphicsEffect::updateBoundingRect() { Q_D(QGraphicsEffect); - if (d->source) + if (d->source) { d->source->d_func()->effectBoundingRectChanged(); + d->source->d_func()->invalidateCache(); + } } /*! @@ -458,96 +468,6 @@ void QGraphicsEffect::sourceChanged(ChangeFlags flags) } /*! - \class QGraphicsGrayscaleEffect - \brief The QGraphicsGrayscaleEffect class provides a grayscale effect. - \since 4.6 - - A grayscale effect renders the source in shades of gray. - - \img graphicseffect-grayscale.png - - \sa QGraphicsDropShadowEffect, QGraphicsBlurEffect, QGraphicsPixelizeEffect, - QGraphicsColorizeEffect, QGraphicsOpacityEffect -*/ - -/*! - Constructs a new QGraphicsGrayscale instance. - The \a parent parameter is passed to QGraphicsEffect's constructor. -*/ -QGraphicsGrayscaleEffect::QGraphicsGrayscaleEffect(QObject *parent) - : QGraphicsEffect(*new QGraphicsGrayscaleEffectPrivate, parent) -{ -} - -/*! - Destroys the effect. -*/ -QGraphicsGrayscaleEffect::~QGraphicsGrayscaleEffect() -{ -} - - -/*! - \property QGraphicsGrayscaleEffect::strength - \brief the strength of the effect. - - By default, the strength is 1.0. - A strength 0.0 equals to no effect, while 1.0 means full grayscale. -*/ -qreal QGraphicsGrayscaleEffect::strength() const -{ - Q_D(const QGraphicsGrayscaleEffect); - return d->filter->strength(); -} - -void QGraphicsGrayscaleEffect::setStrength(qreal strength) -{ - Q_D(QGraphicsGrayscaleEffect); - if (qFuzzyCompare(d->filter->strength(), strength)) - return; - - d->filter->setStrength(strength); - d->opaque = !qFuzzyIsNull(strength); - update(); - emit strengthChanged(strength); -} - -/*! \fn void QGraphicsGrayscaleEffect::strengthChanged(qreal strength) - This signal is emitted whenever setStrength() changes the grayscale - strength property. \a strength contains the new strength value of - the grayscale effect. - */ - -/*! - \reimp -*/ -void QGraphicsGrayscaleEffect::draw(QPainter *painter, QGraphicsEffectSource *source) -{ - Q_D(QGraphicsGrayscaleEffect); - - if (!d->opaque) { - source->draw(painter); - return; - } - - QPoint offset; - if (source->isPixmap()) { - // No point in drawing in device coordinates (pixmap will be scaled anyways). - const QPixmap pixmap = source->pixmap(Qt::LogicalCoordinates, &offset); - d->filter->draw(painter, offset, pixmap); - return; - } - - // Draw pixmap in device coordinates to avoid pixmap scaling; - const QPixmap pixmap = source->pixmap(Qt::DeviceCoordinates, &offset); - QTransform restoreTransform = painter->worldTransform(); - painter->setWorldTransform(QTransform()); - d->filter->draw(painter, offset, pixmap); - painter->setWorldTransform(restoreTransform); - -} - -/*! \class QGraphicsColorizeEffect \brief The QGraphicsColorizeEffect class provides a colorize effect. \since 4.6 @@ -559,8 +479,7 @@ void QGraphicsGrayscaleEffect::draw(QPainter *painter, QGraphicsEffectSource *so \img graphicseffect-colorize.png - \sa QGraphicsDropShadowEffect, QGraphicsBlurEffect, QGraphicsPixelizeEffect, - QGraphicsGrayscaleEffect, QGraphicsOpacityEffect + \sa QGraphicsDropShadowEffect, QGraphicsBlurEffect, QGraphicsOpacityEffect */ /*! @@ -655,7 +574,8 @@ void QGraphicsColorizeEffect::draw(QPainter *painter, QGraphicsEffectSource *sou QPoint offset; if (source->isPixmap()) { // No point in drawing in device coordinates (pixmap will be scaled anyways). - const QPixmap pixmap = source->pixmap(Qt::LogicalCoordinates, &offset); + const QPixmap pixmap = source->pixmap(Qt::LogicalCoordinates, &offset, + QGraphicsEffectSource::NoExpandPadMode); d->filter->draw(painter, offset, pixmap); return; } @@ -669,126 +589,6 @@ void QGraphicsColorizeEffect::draw(QPainter *painter, QGraphicsEffectSource *sou } /*! - \class QGraphicsPixelizeEffect - \brief The QGraphicsPixelizeEffect class provides a pixelize effect. - \since 4.6 - - A pixelize effect renders the source in lower resolution. This effect is - useful for reducing details, like censorship. The resolution can be - modified using the setPixelSize() function. - - By default, the pixel size is 3. - - \img graphicseffect-pixelize.png - - \sa QGraphicsDropShadowEffect, QGraphicsBlurEffect, QGraphicsGrayscaleEffect, - QGraphicsColorizeEffect, QGraphicsOpacityEffect -*/ - -/*! - Constructs a new QGraphicsPixelizeEffect instance. - The \a parent parameter is passed to QGraphicsEffect's constructor. -*/ -QGraphicsPixelizeEffect::QGraphicsPixelizeEffect(QObject *parent) - : QGraphicsEffect(*new QGraphicsPixelizeEffectPrivate, parent) -{ -} - -/*! - Destroys the effect. -*/ -QGraphicsPixelizeEffect::~QGraphicsPixelizeEffect() -{ -} - -/*! - \property QGraphicsPixelizeEffect::pixelSize - \brief the size of a pixel in the effect. - - Setting the pixel size to 2 means two pixels in the source will be used to - represent one pixel. Using a bigger size results in lower resolution. - - By default, the pixel size is 3. -*/ -int QGraphicsPixelizeEffect::pixelSize() const -{ - Q_D(const QGraphicsPixelizeEffect); - return d->pixelSize; -} - -void QGraphicsPixelizeEffect::setPixelSize(int size) -{ - Q_D(QGraphicsPixelizeEffect); - if (d->pixelSize == size) - return; - - d->pixelSize = size; - update(); - emit pixelSizeChanged(size); -} - -/*! - \fn void QGraphicsPixelizeEffect::pixelSizeChanged(int size) - - This signal is emitted whenever the effect's pixel size changes. - The \a size parameter holds the effect's new pixel size. -*/ - -static inline void pixelize(QImage *image, int pixelSize) -{ - Q_ASSERT(pixelSize > 0); - Q_ASSERT(image); - int width = image->width(); - int height = image->height(); - for (int y = 0; y < height; y += pixelSize) { - int ys = qMin(height - 1, y + pixelSize / 2); - QRgb *sbuf = reinterpret_cast<QRgb*>(image->scanLine(ys)); - for (int x = 0; x < width; x += pixelSize) { - int xs = qMin(width - 1, x + pixelSize / 2); - QRgb color = sbuf[xs]; - for (int yi = 0; yi < qMin(pixelSize, height - y); ++yi) { - QRgb *buf = reinterpret_cast<QRgb*>(image->scanLine(y + yi)); - for (int xi = 0; xi < qMin(pixelSize, width - x); ++xi) - buf[x + xi] = color; - } - } - } -} - -/*! - \reimp -*/ -void QGraphicsPixelizeEffect::draw(QPainter *painter, QGraphicsEffectSource *source) -{ - Q_D(QGraphicsPixelizeEffect); - if (d->pixelSize <= 0) { - source->draw(painter); - return; - } - - QPoint offset; - if (source->isPixmap()) { - const QPixmap pixmap = source->pixmap(Qt::LogicalCoordinates, &offset); - QImage image = pixmap.toImage().convertToFormat(QImage::Format_ARGB32); - pixelize(&image, d->pixelSize); - painter->drawImage(offset, image); - return; - } - - // Draw pixmap in device coordinates to avoid pixmap scaling. - const QPixmap pixmap = source->pixmap(Qt::DeviceCoordinates, &offset); - - // pixelize routine - QImage image = pixmap.toImage().convertToFormat(QImage::Format_ARGB32); - pixelize(&image, d->pixelSize); - - QTransform restoreTransform = painter->worldTransform(); - painter->setWorldTransform(QTransform()); - painter->drawImage(offset, image); - painter->setWorldTransform(restoreTransform); -} - -/*! \class QGraphicsBlurEffect \brief The QGraphicsBlurEffect class provides a blur effect. \since 4.6 @@ -802,8 +602,7 @@ void QGraphicsPixelizeEffect::draw(QPainter *painter, QGraphicsEffectSource *sou \img graphicseffect-blur.png - \sa QGraphicsDropShadowEffect, QGraphicsPixelizeEffect, QGraphicsGrayscaleEffect, - QGraphicsColorizeEffect, QGraphicsOpacityEffect + \sa QGraphicsDropShadowEffect, QGraphicsColorizeEffect, QGraphicsOpacityEffect */ /*! @@ -833,16 +632,16 @@ QGraphicsBlurEffect::~QGraphicsBlurEffect() By default, the blur radius is 5 pixels. */ -int QGraphicsBlurEffect::blurRadius() const +qreal QGraphicsBlurEffect::blurRadius() const { Q_D(const QGraphicsBlurEffect); return d->filter->radius(); } -void QGraphicsBlurEffect::setBlurRadius(int radius) +void QGraphicsBlurEffect::setBlurRadius(qreal radius) { Q_D(QGraphicsBlurEffect); - if (d->filter->radius() == radius) + if (qFuzzyCompare(d->filter->radius(), radius)) return; d->filter->setRadius(radius); @@ -851,7 +650,7 @@ void QGraphicsBlurEffect::setBlurRadius(int radius) } /*! - \fn void QGraphicsBlurEffect::blurRadiusChanged(int radius) + \fn void QGraphicsBlurEffect::blurRadiusChanged(qreal radius) This signal is emitted whenever the effect's blur radius changes. The \a radius parameter holds the effect's new blur radius. @@ -911,9 +710,13 @@ void QGraphicsBlurEffect::draw(QPainter *painter, QGraphicsEffectSource *source) return; } + QGraphicsEffectSource::PixmapPadMode mode = QGraphicsEffectSource::ExpandToEffectRectPadMode; + if (painter->paintEngine()->type() == QPaintEngine::OpenGL2) + mode = QGraphicsEffectSource::ExpandToTransparentBorderPadMode; + // Draw pixmap in device coordinates to avoid pixmap scaling. QPoint offset; - const QPixmap pixmap = source->pixmap(Qt::DeviceCoordinates, &offset); + const QPixmap pixmap = source->pixmap(Qt::DeviceCoordinates, &offset, mode); QTransform restoreTransform = painter->worldTransform(); painter->setWorldTransform(QTransform()); d->filter->draw(painter, offset, pixmap); @@ -937,8 +740,7 @@ void QGraphicsBlurEffect::draw(QPainter *painter, QGraphicsEffectSource *source) \img graphicseffect-drop-shadow.png - \sa QGraphicsBlurEffect, QGraphicsPixelizeEffect, QGraphicsGrayscaleEffect, - QGraphicsColorizeEffect, QGraphicsOpacityEffect + \sa QGraphicsBlurEffect, QGraphicsColorizeEffect, QGraphicsOpacityEffect */ /*! @@ -988,6 +790,8 @@ void QGraphicsDropShadowEffect::setOffset(const QPointF &offset) By default, the horizontal shadow offset is 8 pixels. + + \sa yOffset(), offset() */ @@ -1018,16 +822,16 @@ void QGraphicsDropShadowEffect::setOffset(const QPointF &offset) \sa color(), offset(). */ -int QGraphicsDropShadowEffect::blurRadius() const +qreal QGraphicsDropShadowEffect::blurRadius() const { Q_D(const QGraphicsDropShadowEffect); return d->filter->blurRadius(); } -void QGraphicsDropShadowEffect::setBlurRadius(int blurRadius) +void QGraphicsDropShadowEffect::setBlurRadius(qreal blurRadius) { Q_D(QGraphicsDropShadowEffect); - if (d->filter->blurRadius() == blurRadius) + if (qFuzzyCompare(d->filter->blurRadius(), blurRadius)) return; d->filter->setBlurRadius(blurRadius); @@ -1036,7 +840,7 @@ void QGraphicsDropShadowEffect::setBlurRadius(int blurRadius) } /*! - \fn void QGraphicsDropShadowEffect::blurRadiusChanged(int blurRadius) + \fn void QGraphicsDropShadowEffect::blurRadiusChanged(qreal blurRadius) This signal is emitted whenever the effect's blur radius changes. The \a blurRadius parameter holds the effect's new blur radius. @@ -1095,9 +899,13 @@ void QGraphicsDropShadowEffect::draw(QPainter *painter, QGraphicsEffectSource *s return; } + QGraphicsEffectSource::PixmapPadMode mode = QGraphicsEffectSource::ExpandToEffectRectPadMode; + if (painter->paintEngine()->type() == QPaintEngine::OpenGL2) + mode = QGraphicsEffectSource::ExpandToTransparentBorderPadMode; + // Draw pixmap in device coordinates to avoid pixmap scaling. QPoint offset; - const QPixmap pixmap = source->pixmap(Qt::DeviceCoordinates, &offset); + const QPixmap pixmap = source->pixmap(Qt::DeviceCoordinates, &offset, mode); QTransform restoreTransform = painter->worldTransform(); painter->setWorldTransform(QTransform()); d->filter->draw(painter, offset, pixmap); @@ -1117,8 +925,7 @@ void QGraphicsDropShadowEffect::draw(QPainter *painter, QGraphicsEffectSource *s \img graphicseffect-opacity.png - \sa QGraphicsDropShadowEffect, QGraphicsBlurEffect, QGraphicsPixelizeEffect, - QGraphicsGrayscaleEffect, QGraphicsColorizeEffect + \sa QGraphicsDropShadowEffect, QGraphicsBlurEffect, QGraphicsColorizeEffect */ /*! @@ -1235,295 +1042,39 @@ void QGraphicsOpacityEffect::draw(QPainter *painter, QGraphicsEffectSource *sour return; } - painter->save(); - painter->setOpacity(d->opacity); QPoint offset; - if (source->isPixmap()) { - // No point in drawing in device coordinates (pixmap will be scaled anyways). - if (!d->hasOpacityMask) { - const QPixmap pixmap = source->pixmap(Qt::LogicalCoordinates, &offset); - painter->drawPixmap(offset, pixmap); - } else { - QRect srcBrect = source->boundingRect().toAlignedRect(); - offset = srcBrect.topLeft(); - QPixmap pixmap(srcBrect.size()); - pixmap.fill(Qt::transparent); - - QPainter pixmapPainter(&pixmap); - pixmapPainter.setRenderHints(painter->renderHints()); - pixmapPainter.translate(-offset); - source->draw(&pixmapPainter); - pixmapPainter.setCompositionMode(QPainter::CompositionMode_DestinationIn); - pixmapPainter.fillRect(srcBrect, d->opacityMask); - pixmapPainter.end(); - - painter->drawPixmap(offset, pixmap); - } - } else { - // Draw pixmap in device coordinates to avoid pixmap scaling; - if (!d->hasOpacityMask) { - const QPixmap pixmap = source->pixmap(Qt::DeviceCoordinates, &offset); - painter->setWorldTransform(QTransform()); - painter->drawPixmap(offset, pixmap); - } else { - QTransform worldTransform = painter->worldTransform(); - - // Calculate source bounding rect in logical and device coordinates. - QRectF srcBrect = source->boundingRect(); - QRect srcDeviceBrect = worldTransform.mapRect(srcBrect).toAlignedRect(); - srcDeviceBrect &= source->deviceRect(); + Qt::CoordinateSystem system = source->isPixmap() ? Qt::LogicalCoordinates : Qt::DeviceCoordinates; + QPixmap pixmap = source->pixmap(system, &offset, QGraphicsEffectSource::NoExpandPadMode); + if (pixmap.isNull()) + return; - offset = srcDeviceBrect.topLeft(); - worldTransform *= QTransform::fromTranslate(-srcDeviceBrect.x(), -srcDeviceBrect.y()); - QPixmap pixmap(srcDeviceBrect.size()); - pixmap.fill(Qt::transparent); + painter->save(); + painter->setOpacity(d->opacity); - QPainter pixmapPainter(&pixmap); - pixmapPainter.setRenderHints(painter->renderHints()); + if (d->hasOpacityMask) { + QPainter pixmapPainter(&pixmap); + pixmapPainter.setRenderHints(painter->renderHints()); + pixmapPainter.setCompositionMode(QPainter::CompositionMode_DestinationIn); + if (system == Qt::DeviceCoordinates) { + QTransform worldTransform = painter->worldTransform(); + worldTransform *= QTransform::fromTranslate(-offset.x(), -offset.y()); pixmapPainter.setWorldTransform(worldTransform); - source->draw(&pixmapPainter); - pixmapPainter.setCompositionMode(QPainter::CompositionMode_DestinationIn); - pixmapPainter.fillRect(srcBrect, d->opacityMask); - pixmapPainter.end(); - - painter->setWorldTransform(QTransform()); - painter->drawPixmap(offset, pixmap); + pixmapPainter.fillRect(source->boundingRect(), d->opacityMask); + } else { + pixmapPainter.translate(-offset); + pixmapPainter.fillRect(pixmap.rect(), d->opacityMask); } } - painter->restore(); -} - -/*! - \class QGraphicsBloomEffect - \brief The QGraphicsBloomEffect class provides a bloom/glow effect. - \since 4.6 - - A bloom/glow effect adds fringes of light around bright areas in the source. - - \img graphicseffect-bloom.png - - \sa QGraphicsDropShadowEffect, QGraphicsBlurEffect, QGraphicsPixelizeEffect, - QGraphicsGrayscaleEffect, QGraphicsColorizeEffect -*/ - -/*! - Constructs a new QGraphicsBloomEffect instance. - The \a parent parameter is passed to QGraphicsEffect's constructor. -*/ -QGraphicsBloomEffect::QGraphicsBloomEffect(QObject *parent) - : QGraphicsEffect(*new QGraphicsBloomEffectPrivate, parent) -{ - Q_D(QGraphicsBloomEffect); - for (int i = 0; i < 256; ++i) - d->colorTable[i] = qMin(i + d->brightness, 255); -} - -/*! - Destroys the effect. -*/ -QGraphicsBloomEffect::~QGraphicsBloomEffect() -{ -} - -/*! - \reimp -*/ -QRectF QGraphicsBloomEffect::boundingRectFor(const QRectF &rect) const -{ - Q_D(const QGraphicsBloomEffect); - const qreal delta = d->blurFilter.radius() * 2; - return rect.adjusted(-delta, -delta, delta, delta); -} - -/*! - \property QGraphicsBloomEffect::blurRadius - \brief the blur radius in pixels of the effect. - - Using a smaller radius results in a sharper appearance, whereas a bigger - radius results in a more blurred appearance. - - By default, the blur radius is 5 pixels. - - \sa strength(), brightness() -*/ -int QGraphicsBloomEffect::blurRadius() const -{ - Q_D(const QGraphicsBloomEffect); - return d->blurFilter.radius(); -} - -void QGraphicsBloomEffect::setBlurRadius(int radius) -{ - Q_D(QGraphicsBloomEffect); - if (d->blurFilter.radius() == radius) - return; - - d->blurFilter.setRadius(radius); - updateBoundingRect(); - emit blurRadiusChanged(radius); -} - -/*! - \fn void QGraphicsBloomEffect::blurRadiusChanged(int blurRadius) - - This signal is emitted whenever the effect's blur radius changes. - The \a blurRadius parameter holds the effect's new blur radius. -*/ - -/*! - \property QGraphicsBloomEffect::blurHint - \brief the blur hint of the effect. - - Use the Qt::PerformanceHint hint to say that you want a faster blur, - and the Qt::QualityHint hint to say that you prefer a higher quality blur. - - When animating the blur radius it's recommended to use Qt::PerformanceHint. + if (system == Qt::DeviceCoordinates) + painter->setWorldTransform(QTransform()); - By default, the blur hint is Qt::PerformanceHint. -*/ -Qt::RenderHint QGraphicsBloomEffect::blurHint() const -{ - Q_D(const QGraphicsBloomEffect); - return d->blurFilter.blurHint(); -} - -void QGraphicsBloomEffect::setBlurHint(Qt::RenderHint hint) -{ - Q_D(QGraphicsBloomEffect); - if (d->blurFilter.blurHint() == hint) - return; - - d->blurFilter.setBlurHint(hint); - emit blurHintChanged(hint); -} - -/*! - \fn void QGraphicsBloomEffect::blurHintChanged(Qt::RenderHint hint) - - This signal is emitted whenever the effect's blur hint changes. - The \a hint parameter holds the effect's new blur hint. -*/ - -/*! - \property QGraphicsBloomEffect::brightness - \brief the brightness of the glow. - - The value should be in the range of 0 to 255, where 0 is dark - and 255 is bright. - - By default, the brightness is 70. - - \sa strength(), blurRadius() -*/ -int QGraphicsBloomEffect::brightness() const -{ - Q_D(const QGraphicsBloomEffect); - return d->brightness; -} - -void QGraphicsBloomEffect::setBrightness(int brightness) -{ - Q_D(QGraphicsBloomEffect); - brightness = qBound(0, brightness, 255); - if (d->brightness == brightness) - return; - - d->brightness = brightness; - for (int i = 0; i < 256; ++i) - d->colorTable[i] = qMin(i + brightness, 255); - - update(); - emit brightnessChanged(brightness); -} - -/*! - \fn void QGraphicsBloomEffect::brightnessChanged(int brightness) - - This signal is emitted whenever the effect's brightness changes. - The \a brightness parameter holds the effect's new brightness. -*/ - -/*! - \property QGraphicsBloomEffect::strength - \brief the strength of the effect. - - A strength 0.0 equals to no effect, while 1.0 means maximum glow. - - By default, the strength is 0.7. -*/ -qreal QGraphicsBloomEffect::strength() const -{ - Q_D(const QGraphicsBloomEffect); - return d->strength; -} - -void QGraphicsBloomEffect::setStrength(qreal strength) -{ - Q_D(QGraphicsBloomEffect); - strength = qBound(qreal(0.0), strength, qreal(1.0)); - if (qFuzzyCompare(d->strength, strength)) - return; - - d->strength = strength; - update(); - emit strengthChanged(strength); -} - -/*! - \fn void QGraphicsBloomEffect::strengthChanged(qreal strength) - - This signal is emitted whenever the effect's strength changes. - The \a strength parameter holds the effect's new strength. -*/ - -extern QPixmap qt_toRasterPixmap(const QPixmap &pixmap); - -/*! - \reimp -*/ -void QGraphicsBloomEffect::draw(QPainter *painter, QGraphicsEffectSource *source) -{ - Q_D(QGraphicsBloomEffect); - if (d->strength < 0.001) { - source->draw(painter); - return; - } - - QPoint offset; - QPixmap pixmap = qt_toRasterPixmap(source->pixmap(Qt::DeviceCoordinates, &offset)); - - // Blur. - QImage overlay(pixmap.size(), QImage::Format_ARGB32_Premultiplied); - overlay.fill(0); - - QPainter blurPainter(&overlay); - d->blurFilter.draw(&blurPainter, QPointF(), pixmap); - blurPainter.end(); - - // Brighten. - const int numBits = overlay.width() * overlay.height(); - QRgb *bits = reinterpret_cast<QRgb *>(overlay.bits()); - for (int i = 0; i < numBits; ++i) { - const QRgb pixel = INV_PREMUL(bits[i]); - bits[i] = PREMUL(qRgba(d->colorTable[qRed(pixel)], d->colorTable[qGreen(pixel)], - d->colorTable[qBlue(pixel)], qAlpha(pixel))); - } - - // Composite. - QPainter compPainter(&pixmap); - compPainter.setCompositionMode(QPainter::CompositionMode_Overlay); - compPainter.setOpacity(d->strength); - compPainter.drawImage(0, 0, overlay); - compPainter.end(); - - QTransform restoreTransform = painter->worldTransform(); - painter->setWorldTransform(QTransform()); painter->drawPixmap(offset, pixmap); - painter->setWorldTransform(restoreTransform); + painter->restore(); } + QT_END_NAMESPACE diff --git a/src/gui/effects/qgraphicseffect.h b/src/gui/effects/qgraphicseffect.h index c89851e..bf18581 100644 --- a/src/gui/effects/qgraphicseffect.h +++ b/src/gui/effects/qgraphicseffect.h @@ -64,6 +64,12 @@ class Q_GUI_EXPORT QGraphicsEffectSource : public QObject { Q_OBJECT public: + enum PixmapPadMode { + NoExpandPadMode, + ExpandToTransparentBorderPadMode, + ExpandToEffectRectPadMode + }; + ~QGraphicsEffectSource(); const QGraphicsItem *graphicsItem() const; const QWidget *widget() const; @@ -75,7 +81,9 @@ public: QRectF boundingRect(Qt::CoordinateSystem coordinateSystem = Qt::LogicalCoordinates) const; QRect deviceRect() const; - QPixmap pixmap(Qt::CoordinateSystem system = Qt::LogicalCoordinates, QPoint *offset = 0) const; + QPixmap pixmap(Qt::CoordinateSystem system = Qt::LogicalCoordinates, + QPoint *offset = 0, + PixmapPadMode mode = ExpandToEffectRectPadMode) const; protected: QGraphicsEffectSource(QGraphicsEffectSourcePrivate &dd, QObject *parent = 0); @@ -141,31 +149,6 @@ private: }; Q_DECLARE_OPERATORS_FOR_FLAGS(QGraphicsEffect::ChangeFlags) -class QGraphicsGrayscaleEffectPrivate; -class Q_GUI_EXPORT QGraphicsGrayscaleEffect: public QGraphicsEffect -{ - Q_OBJECT - Q_PROPERTY(qreal strength READ strength WRITE setStrength NOTIFY strengthChanged) -public: - QGraphicsGrayscaleEffect(QObject *parent = 0); - ~QGraphicsGrayscaleEffect(); - - qreal strength() const; - -protected: - void draw(QPainter *painter, QGraphicsEffectSource *source); - -public Q_SLOTS: - void setStrength(qreal strength); - -Q_SIGNALS: - void strengthChanged(qreal strength); - -private: - Q_DECLARE_PRIVATE(QGraphicsGrayscaleEffect) - Q_DISABLE_COPY(QGraphicsGrayscaleEffect) -}; - class QGraphicsColorizeEffectPrivate; class Q_GUI_EXPORT QGraphicsColorizeEffect: public QGraphicsEffect { @@ -195,51 +178,26 @@ private: Q_DISABLE_COPY(QGraphicsColorizeEffect) }; -class QGraphicsPixelizeEffectPrivate; -class Q_GUI_EXPORT QGraphicsPixelizeEffect: public QGraphicsEffect -{ - Q_OBJECT - Q_PROPERTY(int pixelSize READ pixelSize WRITE setPixelSize NOTIFY pixelSizeChanged) -public: - QGraphicsPixelizeEffect(QObject *parent = 0); - ~QGraphicsPixelizeEffect(); - - int pixelSize() const; - -public Q_SLOTS: - void setPixelSize(int pixelSize); - -Q_SIGNALS: - void pixelSizeChanged(int pixelSize); - -protected: - void draw(QPainter *painter, QGraphicsEffectSource *source); - -private: - Q_DECLARE_PRIVATE(QGraphicsPixelizeEffect) - Q_DISABLE_COPY(QGraphicsPixelizeEffect) -}; - class QGraphicsBlurEffectPrivate; class Q_GUI_EXPORT QGraphicsBlurEffect: public QGraphicsEffect { Q_OBJECT - Q_PROPERTY(int blurRadius READ blurRadius WRITE setBlurRadius NOTIFY blurRadiusChanged) + Q_PROPERTY(qreal blurRadius READ blurRadius WRITE setBlurRadius NOTIFY blurRadiusChanged) Q_PROPERTY(Qt::RenderHint blurHint READ blurHint WRITE setBlurHint NOTIFY blurHintChanged) public: QGraphicsBlurEffect(QObject *parent = 0); ~QGraphicsBlurEffect(); QRectF boundingRectFor(const QRectF &rect) const; - int blurRadius() const; + qreal blurRadius() const; Qt::RenderHint blurHint() const; public Q_SLOTS: - void setBlurRadius(int blurRadius); + void setBlurRadius(qreal blurRadius); void setBlurHint(Qt::RenderHint hint); Q_SIGNALS: - void blurRadiusChanged(int blurRadius); + void blurRadiusChanged(qreal blurRadius); void blurHintChanged(Qt::RenderHint hint); protected: @@ -257,7 +215,7 @@ class Q_GUI_EXPORT QGraphicsDropShadowEffect: public QGraphicsEffect Q_PROPERTY(QPointF offset READ offset WRITE setOffset NOTIFY offsetChanged) Q_PROPERTY(qreal xOffset READ xOffset WRITE setXOffset NOTIFY offsetChanged) Q_PROPERTY(qreal yOffset READ yOffset WRITE setYOffset NOTIFY offsetChanged) - Q_PROPERTY(int blurRadius READ blurRadius WRITE setBlurRadius NOTIFY blurRadiusChanged) + Q_PROPERTY(qreal blurRadius READ blurRadius WRITE setBlurRadius NOTIFY blurRadiusChanged) Q_PROPERTY(QColor color READ color WRITE setColor NOTIFY colorChanged) public: QGraphicsDropShadowEffect(QObject *parent = 0); @@ -272,7 +230,7 @@ public: inline qreal yOffset() const { return offset().y(); } - int blurRadius() const; + qreal blurRadius() const; QColor color() const; public Q_SLOTS: @@ -290,12 +248,12 @@ public Q_SLOTS: inline void setYOffset(qreal dy) { setOffset(QPointF(xOffset(), dy)); } - void setBlurRadius(int blurRadius); + void setBlurRadius(qreal blurRadius); void setColor(const QColor &color); Q_SIGNALS: void offsetChanged(const QPointF &offset); - void blurRadiusChanged(int blurRadius); + void blurRadiusChanged(qreal blurRadius); void colorChanged(const QColor &color); protected: @@ -335,44 +293,6 @@ private: Q_DISABLE_COPY(QGraphicsOpacityEffect) }; -class QGraphicsBloomEffectPrivate; -class Q_GUI_EXPORT QGraphicsBloomEffect: public QGraphicsEffect -{ - Q_OBJECT - Q_PROPERTY(int blurRadius READ blurRadius WRITE setBlurRadius NOTIFY blurRadiusChanged) - Q_PROPERTY(Qt::RenderHint blurHint READ blurHint WRITE setBlurHint NOTIFY blurHintChanged) - Q_PROPERTY(int brightness READ brightness WRITE setBrightness NOTIFY brightnessChanged) - Q_PROPERTY(qreal strength READ strength WRITE setStrength NOTIFY strengthChanged) -public: - QGraphicsBloomEffect(QObject *parent = 0); - ~QGraphicsBloomEffect(); - - QRectF boundingRectFor(const QRectF &rect) const; - int blurRadius() const; - Qt::RenderHint blurHint() const; - int brightness() const; - qreal strength() const; - -public Q_SLOTS: - void setBlurRadius(int blurRadius); - void setBlurHint(Qt::RenderHint hint); - void setBrightness(int brightness); - void setStrength(qreal strength); - -Q_SIGNALS: - void blurRadiusChanged(int blurRadius); - void blurHintChanged(Qt::RenderHint hint); - void brightnessChanged(int brightness); - void strengthChanged(qreal strength); - -protected: - void draw(QPainter *painter, QGraphicsEffectSource *source); - -private: - Q_DECLARE_PRIVATE(QGraphicsBloomEffect) - Q_DISABLE_COPY(QGraphicsBloomEffect) -}; - QT_END_NAMESPACE QT_END_HEADER diff --git a/src/gui/effects/qgraphicseffect_p.h b/src/gui/effects/qgraphicseffect_p.h index fc925f2..1ed7103 100644 --- a/src/gui/effects/qgraphicseffect_p.h +++ b/src/gui/effects/qgraphicseffect_p.h @@ -66,7 +66,12 @@ class QGraphicsEffectSourcePrivate : public QObjectPrivate { Q_DECLARE_PUBLIC(QGraphicsEffectSource) public: - QGraphicsEffectSourcePrivate() : QObjectPrivate() {} + QGraphicsEffectSourcePrivate() + : QObjectPrivate() + , m_cachedSystem(Qt::DeviceCoordinates) + , m_cachedMode(QGraphicsEffectSource::ExpandToTransparentBorderPadMode) + {} + virtual ~QGraphicsEffectSourcePrivate() { invalidateCache(); } virtual void detach() = 0; virtual QRectF boundingRect(Qt::CoordinateSystem system) const = 0; @@ -77,7 +82,8 @@ public: virtual void draw(QPainter *p) = 0; virtual void update() = 0; virtual bool isPixmap() const = 0; - virtual QPixmap pixmap(Qt::CoordinateSystem system, QPoint *offset = 0) const = 0; + virtual QPixmap pixmap(Qt::CoordinateSystem system, QPoint *offset = 0, + QGraphicsEffectSource::PixmapPadMode mode = QGraphicsEffectSource::ExpandToTransparentBorderPadMode) const = 0; virtual void effectBoundingRectChanged() = 0; void invalidateCache() const { QPixmapCache::remove(m_cacheKey); } @@ -87,6 +93,7 @@ public: private: mutable Qt::CoordinateSystem m_cachedSystem; + mutable QGraphicsEffectSource::PixmapPadMode m_cachedMode; mutable QPoint m_cachedOffset; mutable QPixmapCache::Key m_cacheKey; }; @@ -118,22 +125,6 @@ public: quint32 padding : 31; // feel free to use }; -class QGraphicsGrayscaleEffectPrivate : public QGraphicsEffectPrivate -{ - Q_DECLARE_PUBLIC(QGraphicsGrayscaleEffect) -public: - QGraphicsGrayscaleEffectPrivate() - : opaque(true) - { - filter = new QPixmapColorizeFilter; - filter->setColor(Qt::black); - } - ~QGraphicsGrayscaleEffectPrivate() { delete filter; } - - QPixmapColorizeFilter *filter; - quint32 opaque : 1; - quint32 padding : 31; -}; class QGraphicsColorizeEffectPrivate : public QGraphicsEffectPrivate { @@ -151,15 +142,6 @@ public: quint32 padding : 31; }; -class QGraphicsPixelizeEffectPrivate : public QGraphicsEffectPrivate -{ - Q_DECLARE_PUBLIC(QGraphicsPixelizeEffect) -public: - QGraphicsPixelizeEffectPrivate() : pixelSize(3) {} - - int pixelSize; -}; - class QGraphicsBlurEffectPrivate : public QGraphicsEffectPrivate { Q_DECLARE_PUBLIC(QGraphicsBlurEffect) @@ -195,18 +177,6 @@ public: uint hasOpacityMask : 1; }; -class QGraphicsBloomEffectPrivate : public QGraphicsEffectPrivate -{ - Q_DECLARE_PUBLIC(QGraphicsBlurEffect) -public: - QGraphicsBloomEffectPrivate() : brightness(70), strength(qreal(0.7)) {} - - QPixmapBlurFilter blurFilter; - int colorTable[256]; - int brightness; - qreal strength; -}; - QT_END_NAMESPACE #endif // QGRAPHICSEFFECT_P_H diff --git a/src/gui/egl/egl.pri b/src/gui/egl/egl.pri index ba991bd..627d511 100644 --- a/src/gui/egl/egl.pri +++ b/src/gui/egl/egl.pri @@ -6,7 +6,7 @@ SOURCES += \ egl/qegl.cpp \ egl/qeglproperties.cpp -contains(QT_CONFIG, wince*): SOURCES += egl/qegl_wince.cpp +wince*: SOURCES += egl/qegl_wince.cpp unix { embedded { diff --git a/src/gui/egl/qeglproperties.cpp b/src/gui/egl/qeglproperties.cpp index c61e1d3..2d37edb 100644 --- a/src/gui/egl/qeglproperties.cpp +++ b/src/gui/egl/qeglproperties.cpp @@ -88,8 +88,12 @@ int QEglProperties::value(int name) const #if defined(EGL_ALPHA_MASK_SIZE) case EGL_ALPHA_MASK_SIZE: return 0; #endif +#if defined(EGL_BIND_TO_TEXTURE_RGB) case EGL_BIND_TO_TEXTURE_RGB: return EGL_DONT_CARE; +#endif +#if defined(EGL_BIND_TO_TEXTURE_RGBA) case EGL_BIND_TO_TEXTURE_RGBA: return EGL_DONT_CARE; +#endif #if defined(EGL_COLOR_BUFFER_TYPE) case EGL_COLOR_BUFFER_TYPE: return EGL_RGB_BUFFER; #endif diff --git a/src/gui/graphicsview/qgraphicsanchorlayout.cpp b/src/gui/graphicsview/qgraphicsanchorlayout.cpp index 2bed776..56d70e1 100644 --- a/src/gui/graphicsview/qgraphicsanchorlayout.cpp +++ b/src/gui/graphicsview/qgraphicsanchorlayout.cpp @@ -420,7 +420,7 @@ void QGraphicsAnchorLayout::setSpacing(qreal spacing) qreal QGraphicsAnchorLayout::horizontalSpacing() const { Q_D(const QGraphicsAnchorLayout); - return d->effectiveSpacing(QGraphicsAnchorLayoutPrivate::Horizontal); + return d->styleInfo().defaultSpacing(Qt::Horizontal); } /*! @@ -431,7 +431,7 @@ qreal QGraphicsAnchorLayout::horizontalSpacing() const qreal QGraphicsAnchorLayout::verticalSpacing() const { Q_D(const QGraphicsAnchorLayout); - return d->effectiveSpacing(QGraphicsAnchorLayoutPrivate::Vertical); + return d->styleInfo().defaultSpacing(Qt::Vertical); } /*! @@ -501,7 +501,8 @@ void QGraphicsAnchorLayout::invalidate() { Q_D(QGraphicsAnchorLayout); QGraphicsLayout::invalidate(); - d->calculateGraphCacheDirty = 1; + d->calculateGraphCacheDirty = true; + d->styleInfoDirty = true; } /*! diff --git a/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp b/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp index c424be5..41aa8aa 100644 --- a/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp +++ b/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp @@ -40,6 +40,7 @@ ****************************************************************************/ #include <QtGui/qwidget.h> +#include <QtGui/qapplication.h> #include <QtCore/qlinkedlist.h> #include <QtCore/qstack.h> @@ -141,34 +142,25 @@ static void internalSizeHints(QSizePolicy::Policy policy, *expSize = *prefSize; } -void AnchorData::refreshSizeHints(qreal effectiveSpacing) +bool AnchorData::refreshSizeHints(const QLayoutStyleInfo *styleInfo) { - const bool isInternalAnchor = from->m_item == to->m_item; - QSizePolicy::Policy policy; qreal minSizeHint; qreal prefSizeHint; qreal maxSizeHint; - if (isInternalAnchor) { - const QGraphicsAnchorLayoutPrivate::Orientation orient = - QGraphicsAnchorLayoutPrivate::edgeOrientation(from->m_edge); - const Qt::AnchorPoint centerEdge = - QGraphicsAnchorLayoutPrivate::pickEdge(Qt::AnchorHorizontalCenter, orient); - bool hasCenter = (from->m_edge == centerEdge || to->m_edge == centerEdge); - + // It is an internal anchor + if (item) { if (isLayoutAnchor) { minSize = 0; prefSize = 0; expSize = 0; maxSize = QWIDGETSIZE_MAX; - if (hasCenter) + if (isCenterAnchor) maxSize /= 2; - return; + return true; } else { - - QGraphicsLayoutItem *item = from->m_item; - if (orient == QGraphicsAnchorLayoutPrivate::Horizontal) { + if (orientation == QGraphicsAnchorLayoutPrivate::Horizontal) { policy = item->sizePolicy().horizontalPolicy(); minSizeHint = item->effectiveSizeHint(Qt::MinimumSize).width(); prefSizeHint = item->effectiveSizeHint(Qt::PreferredSize).width(); @@ -180,7 +172,7 @@ void AnchorData::refreshSizeHints(qreal effectiveSpacing) maxSizeHint = item->effectiveSizeHint(Qt::MaximumSize).height(); } - if (hasCenter) { + if (isCenterAnchor) { minSizeHint /= 2; prefSizeHint /= 2; maxSizeHint /= 2; @@ -196,7 +188,20 @@ void AnchorData::refreshSizeHints(qreal effectiveSpacing) // their effective size hints might be narrowed down due to their size policies. prefSizeHint = prefSize; } else { - prefSizeHint = effectiveSpacing; + const Qt::Orientation orient = Qt::Orientation(QGraphicsAnchorLayoutPrivate::edgeOrientation(from->m_edge) + 1); + qreal s = styleInfo->defaultSpacing(orient); + if (s < 0) { + QSizePolicy::ControlType controlTypeFrom = from->m_item->sizePolicy().controlType(); + QSizePolicy::ControlType controlTypeTo = to->m_item->sizePolicy().controlType(); + s = styleInfo->perItemSpacing(controlTypeFrom, controlTypeTo, orient); + + // ### Currently we do not support negative anchors inside the graph. + // To avoid those being created by a negative style spacing, we must + // make this test. + if (s < 0) + s = 0; + } + prefSizeHint = s; } maxSizeHint = QWIDGETSIZE_MAX; } @@ -214,6 +219,8 @@ void AnchorData::refreshSizeHints(qreal effectiveSpacing) sizeAtPreferred = prefSize; sizeAtExpanding = prefSize; sizeAtMaximum = prefSize; + + return true; } void ParallelAnchorData::updateChildrenSizes() @@ -227,26 +234,29 @@ void ParallelAnchorData::updateChildrenSizes() secondEdge->updateChildrenSizes(); } -void ParallelAnchorData::refreshSizeHints(qreal effectiveSpacing) +bool ParallelAnchorData::refreshSizeHints(const QLayoutStyleInfo *styleInfo) { - refreshSizeHints_helper(effectiveSpacing); + return refreshSizeHints_helper(styleInfo); } -void ParallelAnchorData::refreshSizeHints_helper(qreal effectiveSpacing, +bool ParallelAnchorData::refreshSizeHints_helper(const QLayoutStyleInfo *styleInfo, bool refreshChildren) { - if (refreshChildren) { - firstEdge->refreshSizeHints(effectiveSpacing); - secondEdge->refreshSizeHints(effectiveSpacing); + if (refreshChildren && (!firstEdge->refreshSizeHints(styleInfo) + || !secondEdge->refreshSizeHints(styleInfo))) { + return false; } - // ### should we warn if the parallel connection is invalid? - // e.g. 1-2-3 with 10-20-30, the minimum of the latter is - // bigger than the maximum of the former. - minSize = qMax(firstEdge->minSize, secondEdge->minSize); maxSize = qMin(firstEdge->maxSize, secondEdge->maxSize); + // This condition means that the maximum size of one anchor being simplified is smaller than + // the minimum size of the other anchor. The consequence is that there won't be a valid size + // for this parallel setup. + if (minSize > maxSize) { + return false; + } + expSize = qMax(firstEdge->expSize, secondEdge->expSize); expSize = qMin(expSize, maxSize); @@ -258,6 +268,8 @@ void ParallelAnchorData::refreshSizeHints_helper(qreal effectiveSpacing, sizeAtPreferred = prefSize; sizeAtExpanding = prefSize; sizeAtMaximum = prefSize; + + return true; } /*! @@ -362,12 +374,12 @@ void SequentialAnchorData::updateChildrenSizes() } } -void SequentialAnchorData::refreshSizeHints(qreal effectiveSpacing) +bool SequentialAnchorData::refreshSizeHints(const QLayoutStyleInfo *styleInfo) { - refreshSizeHints_helper(effectiveSpacing); + return refreshSizeHints_helper(styleInfo); } -void SequentialAnchorData::refreshSizeHints_helper(qreal effectiveSpacing, +bool SequentialAnchorData::refreshSizeHints_helper(const QLayoutStyleInfo *styleInfo, bool refreshChildren) { minSize = 0; @@ -379,8 +391,8 @@ void SequentialAnchorData::refreshSizeHints_helper(qreal effectiveSpacing, AnchorData *edge = m_edges.at(i); // If it's the case refresh children information first - if (refreshChildren) - edge->refreshSizeHints(effectiveSpacing); + if (refreshChildren && !edge->refreshSizeHints(styleInfo)) + return false; minSize += edge->minSize; prefSize += edge->prefSize; @@ -393,6 +405,8 @@ void SequentialAnchorData::refreshSizeHints_helper(qreal effectiveSpacing, sizeAtPreferred = prefSize; sizeAtExpanding = prefSize; sizeAtMaximum = prefSize; + + return true; } #ifdef QT_DEBUG @@ -458,7 +472,7 @@ QString GraphPath::toString() const #endif QGraphicsAnchorLayoutPrivate::QGraphicsAnchorLayoutPrivate() - : calculateGraphCacheDirty(1) + : calculateGraphCacheDirty(true), styleInfoDirty(true) { for (int i = 0; i < NOrientations; ++i) { for (int j = 0; j < 3; ++j) { @@ -510,18 +524,49 @@ inline static qreal checkAdd(qreal a, qreal b) } /*! - * \internal - * - * Takes the sequence of vertices described by (\a before, \a vertices, \a after) and replaces - * all anchors connected to the vertices in \a vertices with one simplified anchor between - * \a before and \a after. The simplified anchor will be a placeholder for all the previous - * anchors between \a before and \a after, and can be restored back to the anchors it is a - * placeholder for. - */ -static bool simplifySequentialChunk(Graph<AnchorVertex, AnchorData> *graph, - AnchorVertex *before, - const QVector<AnchorVertex*> &vertices, - AnchorVertex *after) + \internal + + Adds \a newAnchor to the graph \a g. + + Returns the newAnchor itself if it could be added without further changes to the graph. If a + new parallel anchor had to be created, then returns the new parallel anchor. In case the + addition is unfeasible -- because a parallel setup is not possible, returns 0. +*/ +static AnchorData *addAnchorMaybeParallel(Graph<AnchorVertex, AnchorData> *g, + AnchorData *newAnchor) +{ + bool feasible = true; + + // If already exists one anchor where newAnchor is supposed to be, we create a parallel + // anchor. + if (AnchorData *oldAnchor = g->takeEdge(newAnchor->from, newAnchor->to)) { + ParallelAnchorData *parallel = new ParallelAnchorData(oldAnchor, newAnchor); + + // At this point we can identify that the parallel anchor is not feasible, e.g. one + // anchor minimum size is bigger than the other anchor maximum size. + feasible = parallel->refreshSizeHints_helper(0, false); + newAnchor = parallel; + } + + g->createEdge(newAnchor->from, newAnchor->to, newAnchor); + return feasible ? newAnchor : 0; +} + + +/*! + \internal + + Takes the sequence of vertices described by (\a before, \a vertices, \a after) and removes + all anchors connected to the vertices in \a vertices, returning one simplified anchor between + \a before and \a after. + + Note that this function doesn't add the created anchor to the graph. This should be done by + the caller. +*/ +static AnchorData *createSequence(Graph<AnchorVertex, AnchorData> *graph, + AnchorVertex *before, + const QVector<AnchorVertex*> &vertices, + AnchorVertex *after) { AnchorData *data = graph->edgeData(before, vertices.first()); Q_ASSERT(data); @@ -546,41 +591,24 @@ static bool simplifySequentialChunk(Graph<AnchorVertex, AnchorData> *graph, qDebug("simplifying [%s] to [%s - %s]", qPrintable(strPath), qPrintable(before->toString()), qPrintable(after->toString())); #endif - SequentialAnchorData *sequence = new SequentialAnchorData; AnchorVertex *prev = before; + QVector<AnchorData *> edges; for (int i = 0; i <= orderedVertices.count(); ++i) { AnchorVertex *next = (i < orderedVertices.count()) ? orderedVertices.at(i) : after; AnchorData *ad = graph->takeEdge(prev, next); Q_ASSERT(ad); - sequence->m_edges.append(ad); + edges.append(ad); prev = next; } - sequence->setVertices(orderedVertices); + SequentialAnchorData *sequence = new SequentialAnchorData(orderedVertices, edges); sequence->from = before; sequence->to = after; sequence->refreshSizeHints_helper(0, false); - // Note that since layout 'edges' can't be simplified away from - // the graph, it's safe to assume that if there's a layout - // 'edge', it'll be in the boundaries of the sequence. - sequence->isLayoutAnchor = (sequence->m_edges.first()->isLayoutAnchor - || sequence->m_edges.last()->isLayoutAnchor); - - AnchorData *newAnchor = sequence; - if (AnchorData *oldAnchor = graph->takeEdge(before, after)) { - ParallelAnchorData *parallel = new ParallelAnchorData(oldAnchor, sequence); - parallel->isLayoutAnchor = (oldAnchor->isLayoutAnchor - || sequence->isLayoutAnchor); - parallel->refreshSizeHints_helper(0, false); - newAnchor = parallel; - } - graph->createEdge(before, after, newAnchor); - - // True if we created a parallel anchor - return newAnchor != sequence; + return sequence; } /*! @@ -617,15 +645,17 @@ static bool simplifySequentialChunk(Graph<AnchorVertex, AnchorData> *graph, 2. Go to (1) 3. Done + When creating the parallel anchors, the algorithm might identify unfeasible situations. In this + case the simplification process stops and returns false. Otherwise returns true. */ -void QGraphicsAnchorLayoutPrivate::simplifyGraph(Orientation orientation) +bool QGraphicsAnchorLayoutPrivate::simplifyGraph(Orientation orientation) { static bool noSimplification = !qgetenv("QT_ANCHORLAYOUT_NO_SIMPLIFICATION").isEmpty(); if (noSimplification || items.isEmpty()) - return; + return true; if (graphSimplified[orientation]) - return; + return true; graphSimplified[orientation] = true; #if 0 @@ -634,12 +664,18 @@ void QGraphicsAnchorLayoutPrivate::simplifyGraph(Orientation orientation) #endif if (!graph[orientation].rootVertex()) - return; + return true; bool dirty; + bool feasible = true; do { - dirty = simplifyGraphIteration(orientation); - } while (dirty); + dirty = simplifyGraphIteration(orientation, &feasible); + } while (dirty && feasible); + + if (!feasible) + graphSimplified[orientation] = false; + + return feasible; } /*! @@ -656,7 +692,8 @@ void QGraphicsAnchorLayoutPrivate::simplifyGraph(Orientation orientation) Note that there are some catches to this that are not covered by the above explanation, see the function comments for more details. */ -bool QGraphicsAnchorLayoutPrivate::simplifyGraphIteration(QGraphicsAnchorLayoutPrivate::Orientation orientation) +bool QGraphicsAnchorLayoutPrivate::simplifyGraphIteration(QGraphicsAnchorLayoutPrivate::Orientation orientation, + bool *feasible) { Q_Q(QGraphicsAnchorLayout); Graph<AnchorVertex, AnchorData> &g = graph[orientation]; @@ -667,8 +704,6 @@ bool QGraphicsAnchorLayoutPrivate::simplifyGraphIteration(QGraphicsAnchorLayoutP QVector<AnchorVertex*> candidates; bool candidatesForward; - const Qt::AnchorPoint centerEdge = pickEdge(Qt::AnchorHorizontalCenter, orientation); - // Walk depth-first, in the stack we store start of the candidate sequence (beforeSequence) // and the vertex to be visited. while (!stack.isEmpty()) { @@ -777,7 +812,8 @@ bool QGraphicsAnchorLayoutPrivate::simplifyGraphIteration(QGraphicsAnchorLayoutP // One restriction we have is to not simplify half of an anchor and let the other half // unsimplified. So we remove center edges before and after the sequence. - if (beforeSequence->m_edge == centerEdge && beforeSequence->m_item == candidates.first()->m_item) { + const AnchorData *firstAnchor = g.edgeData(beforeSequence, candidates.first()); + if (firstAnchor->isCenterAnchor) { beforeSequence = candidates.first(); candidates.remove(0); @@ -786,7 +822,8 @@ bool QGraphicsAnchorLayoutPrivate::simplifyGraphIteration(QGraphicsAnchorLayoutP continue; } - if (afterSequence->m_edge == centerEdge && afterSequence->m_item == candidates.last()->m_item) { + const AnchorData *lastAnchor = g.edgeData(candidates.last(), afterSequence); + if (lastAnchor->isCenterAnchor) { afterSequence = candidates.last(); candidates.remove(candidates.count() - 1); @@ -794,11 +831,26 @@ bool QGraphicsAnchorLayoutPrivate::simplifyGraphIteration(QGraphicsAnchorLayoutP continue; } - // This function will remove the candidates from the graph and create one edge between - // beforeSequence and afterSequence. This function returns true if the sequential - // simplification also caused a parallel simplification to be created. In this case we end - // the iteration and start again (since all the visited state we have may be outdated). - if (simplifySequentialChunk(&g, beforeSequence, candidates, afterSequence)) + // + // Add the sequence to the graph. + // + + AnchorData *sequence = createSequence(&g, beforeSequence, candidates, afterSequence); + + // If 'beforeSequence' and 'afterSequence' already had an anchor between them, we'll + // create a parallel anchor between the new sequence and the old anchor. + AnchorData *newAnchor = addAnchorMaybeParallel(&g, sequence); + + if (!newAnchor) { + *feasible = false; + return false; + } + + // When a new parallel anchor is create in the graph, we finish the iteration and return + // true to indicate a new iteration is needed. This happens because a parallel anchor + // changes the number of adjacents one vertex has, possibly opening up oportunities for + // building candidate lists (when adjacents == 2). + if (newAnchor != sequence) return true; // If there was no parallel simplification, we'll keep walking the graph. So we clear the @@ -1008,11 +1060,13 @@ void QGraphicsAnchorLayoutPrivate::createCenterAnchors( AnchorData *data = new AnchorData; c->variables.insert(data, 1.0); addAnchor_helper(item, firstEdge, item, centerEdge, data); + data->isCenterAnchor = true; data->refreshSizeHints(0); data = new AnchorData; c->variables.insert(data, -1.0); addAnchor_helper(item, centerEdge, item, lastEdge, data); + data->isCenterAnchor = true; data->refreshSizeHints(0); itemCenterConstraints[orientation].append(c); @@ -1234,9 +1288,11 @@ void QGraphicsAnchorLayoutPrivate::addAnchor_helper(QGraphicsLayoutItem *firstIt { Q_Q(QGraphicsAnchorLayout); + const Orientation orientation = edgeOrientation(firstEdge); + // Guarantee that the graph is no simplified when adding this anchor, // anchor manipulation always happen in the full graph - restoreSimplifiedGraph(edgeOrientation(firstEdge)); + restoreSimplifiedGraph(orientation); // Is the Vertex (firstItem, firstEdge) already represented in our // internal structure? @@ -1245,10 +1301,16 @@ void QGraphicsAnchorLayoutPrivate::addAnchor_helper(QGraphicsLayoutItem *firstIt // Remove previous anchor // ### Could we update the existing edgeData rather than creating a new one? - if (graph[edgeOrientation(firstEdge)].edgeData(v1, v2)) { + if (graph[orientation].edgeData(v1, v2)) { removeAnchor_helper(v1, v2); } + // If its an internal anchor, set the associated item + if (firstItem == secondItem) + data->item = firstItem; + + data->orientation = orientation; + // Create a bi-directional edge in the sense it can be transversed both // from v1 or v2. "data" however is shared between the two references // so we still know that the anchor direction is from 1 to 2. @@ -1257,10 +1319,11 @@ void QGraphicsAnchorLayoutPrivate::addAnchor_helper(QGraphicsLayoutItem *firstIt #ifdef QT_DEBUG data->name = QString::fromAscii("%1 --to--> %2").arg(v1->toString()).arg(v2->toString()); #endif - // Keep track of anchors that are connected to the layout 'edges' - data->isLayoutAnchor = (v1->m_item == q || v2->m_item == q); + // ### bit to track internal anchors, since inside AnchorData methods + // we don't have access to the 'q' pointer. + data->isLayoutAnchor = (data->item == q); - graph[edgeOrientation(firstEdge)].createEdge(v1, v2, data); + graph[orientation].createEdge(v1, v2, data); } QGraphicsAnchor *QGraphicsAnchorLayoutPrivate::getAnchor(QGraphicsLayoutItem *firstItem, @@ -1425,7 +1488,7 @@ void QGraphicsAnchorLayoutPrivate::anchorSize(const AnchorData *data, Q_ASSERT(minSize || prefSize || maxSize); Q_ASSERT(data); QGraphicsAnchorLayoutPrivate *that = const_cast<QGraphicsAnchorLayoutPrivate *>(this); - that->restoreSimplifiedGraph(edgeOrientation(data->from->m_edge)); + that->restoreSimplifiedGraph(Orientation(data->orientation)); if (minSize) *minSize = data->minSize; @@ -1565,34 +1628,32 @@ void QGraphicsAnchorLayoutPrivate::correctEdgeDirection(QGraphicsLayoutItem *&fi } } -qreal QGraphicsAnchorLayoutPrivate::effectiveSpacing(Orientation orientation) const +QLayoutStyleInfo &QGraphicsAnchorLayoutPrivate::styleInfo() const { - Q_Q(const QGraphicsAnchorLayout); - qreal s = spacings[orientation]; - if (s < 0) { - // ### make sure behaviour is the same as in QGraphicsGridLayout + if (styleInfoDirty) { + Q_Q(const QGraphicsAnchorLayout); + //### Fix this if QGV ever gets support for Metal style or different Aqua sizes. + QWidget *wid = 0; + QGraphicsLayoutItem *parent = q->parentLayoutItem(); while (parent && parent->isLayout()) { parent = parent->parentLayoutItem(); } + QGraphicsWidget *w = 0; if (parent) { QGraphicsItem *parentItem = parent->graphicsItem(); - if (parentItem && parentItem->isWidget()) { - QGraphicsWidget *w = static_cast<QGraphicsWidget*>(parentItem); - s = w->style()->pixelMetric(orientation == Horizontal - ? QStyle::PM_LayoutHorizontalSpacing - : QStyle::PM_LayoutVerticalSpacing); - } + if (parentItem && parentItem->isWidget()) + w = static_cast<QGraphicsWidget*>(parentItem); } - } - // ### Currently we do not support negative anchors inside the graph. - // To avoid those being created by a negative style spacing, we must - // make this test. - if (s < 0) - s = 0; + QStyle *style = w ? w->style() : QApplication::style(); + cachedStyleInfo = QLayoutStyleInfo(style, wid); + cachedStyleInfo.setDefaultSpacing(Qt::Horizontal, spacings[0]); + cachedStyleInfo.setDefaultSpacing(Qt::Vertical, spacings[1]); - return s; + styleInfoDirty = false; + } + return cachedStyleInfo; } /*! @@ -1620,7 +1681,7 @@ void QGraphicsAnchorLayoutPrivate::calculateGraphs() dumpGraph(QString::fromAscii("%1-after").arg(count)); #endif - calculateGraphCacheDirty = 0; + calculateGraphCacheDirty = false; } // ### Maybe getGraphParts could return the variables when traversing, at least @@ -1638,38 +1699,52 @@ QList<AnchorData *> getVariables(QList<QSimplexConstraint *> constraints) } /*! - \internal + \internal - Calculate graphs is the method that puts together all the helper routines - so that the AnchorLayout can calculate the sizes of each item. + Calculate graphs is the method that puts together all the helper routines + so that the AnchorLayout can calculate the sizes of each item. - In a nutshell it should do: + In a nutshell it should do: - 1) Update anchor nominal sizes, that is, the size that each anchor would - have if no other restrictions applied. This is done by quering the - layout style and the sizeHints of the items belonging to the layout. + 1) Refresh anchor nominal sizes, that is, the size that each anchor would + have if no other restrictions applied. This is done by quering the + layout style and the sizeHints of the items belonging to the layout. - 2) Simplify the graph by grouping together parallel and sequential anchors - into "group anchors". These have equivalent minimum, preferred and maximum - sizeHints as the anchors they replace. + 2) Simplify the graph by grouping together parallel and sequential anchors + into "group anchors". These have equivalent minimum, preferred and maximum + sizeHints as the anchors they replace. - 3) Check if we got to a trivial case. In some cases, the whole graph can be - simplified into a single anchor. If so, use this information. If not, - then call the Simplex solver to calculate the anchors sizes. + 3) Check if we got to a trivial case. In some cases, the whole graph can be + simplified into a single anchor. If so, use this information. If not, + then call the Simplex solver to calculate the anchors sizes. - 4) Once the root anchors had its sizes calculated, propagate that to the - anchors they represent. + 4) Once the root anchors had its sizes calculated, propagate that to the + anchors they represent. */ void QGraphicsAnchorLayoutPrivate::calculateGraphs( QGraphicsAnchorLayoutPrivate::Orientation orientation) { Q_Q(QGraphicsAnchorLayout); - // Simplify the graph - simplifyGraph(orientation); +#if defined(QT_DEBUG) || defined(Q_AUTOTEST_EXPORT) + lastCalculationUsedSimplex[orientation] = false; +#endif + + // Reset the nominal sizes of each anchor based on the current item sizes. This function + // works with both simplified and non-simplified graphs, so it'll work when the + // simplification is going to be reused. + if (!refreshAllSizeHints(orientation)) { + qWarning("QGraphicsAnchorLayout: anchor setup is not feasible."); + graphHasConflicts[orientation] = true; + return; + } - // Reset the nominal sizes of each anchor based on the current item sizes - setAnchorSizeHintsFromItems(orientation); + // Simplify the graph + if (!simplifyGraph(orientation)) { + qWarning("QGraphicsAnchorLayout: anchor setup is not feasible."); + graphHasConflicts[orientation] = true; + return; + } // Traverse all graph edges and store the possible paths to each vertex findPaths(orientation); @@ -1837,23 +1912,31 @@ bool QGraphicsAnchorLayoutPrivate::calculateNonTrunk(const QList<QSimplexConstra } /*! - \internal + \internal + + Traverse the graph refreshing the size hints. Complex anchors will call the + refresh method of their children anchors. Simple anchors, if are internal + anchors, will query the associated item for their size hints. - For graph edges ("anchors") that represent items, this method updates their - intrinsic size restrictions, based on the item size hints. + Returns false if some unfeasibility was found in the graph regarding the + complex anchors. */ -void QGraphicsAnchorLayoutPrivate::setAnchorSizeHintsFromItems(Orientation orientation) +bool QGraphicsAnchorLayoutPrivate::refreshAllSizeHints(Orientation orientation) { Graph<AnchorVertex, AnchorData> &g = graph[orientation]; QList<QPair<AnchorVertex *, AnchorVertex *> > vertices = g.connections(); - qreal spacing = effectiveSpacing(orientation); - + QLayoutStyleInfo styleInf = styleInfo(); for (int i = 0; i < vertices.count(); ++i) { AnchorData *data = g.edgeData(vertices.at(i).first, vertices.at(i).second);; Q_ASSERT(data->from && data->to); - data->refreshSizeHints(spacing); + + // During the traversal we check the feasibility of the complex anchors. + if (!data->refreshSizeHints(&styleInf)) + return false; } + + return true; } /*! @@ -1960,17 +2043,27 @@ QList<QSimplexConstraint *> QGraphicsAnchorLayoutPrivate::constraintsFromSizeHin { QList<QSimplexConstraint *> anchorConstraints; for (int i = 0; i < anchors.size(); ++i) { - QSimplexConstraint *c = new QSimplexConstraint; - c->variables.insert(anchors[i], 1.0); - c->constant = anchors[i]->minSize; - c->ratio = QSimplexConstraint::MoreOrEqual; - anchorConstraints += c; - - c = new QSimplexConstraint; - c->variables.insert(anchors[i], 1.0); - c->constant = anchors[i]->maxSize; - c->ratio = QSimplexConstraint::LessOrEqual; - anchorConstraints += c; + AnchorData *ad = anchors[i]; + + if ((ad->minSize == ad->maxSize) || qFuzzyCompare(ad->minSize, ad->maxSize)) { + QSimplexConstraint *c = new QSimplexConstraint; + c->variables.insert(ad, 1.0); + c->constant = ad->minSize; + c->ratio = QSimplexConstraint::Equal; + anchorConstraints += c; + } else { + QSimplexConstraint *c = new QSimplexConstraint; + c->variables.insert(ad, 1.0); + c->constant = ad->minSize; + c->ratio = QSimplexConstraint::MoreOrEqual; + anchorConstraints += c; + + c = new QSimplexConstraint; + c->variables.insert(ad, 1.0); + c->constant = ad->maxSize; + c->ratio = QSimplexConstraint::LessOrEqual; + anchorConstraints += c; + } } return anchorConstraints; @@ -2110,8 +2203,8 @@ void QGraphicsAnchorLayoutPrivate::identifyNonFloatItems_helper(const AnchorData switch(ad->type) { case AnchorData::Normal: - if (ad->from->m_item == ad->to->m_item && ad->to->m_item != q) - nonFloatingItemsIdentifiedSoFar->insert(ad->to->m_item); + if (ad->item && ad->item != q) + nonFloatingItemsIdentifiedSoFar->insert(ad->item); break; case AnchorData::Sequential: foreach (const AnchorData *d, static_cast<const SequentialAnchorData *>(ad)->m_edges) @@ -2377,7 +2470,7 @@ bool QGraphicsAnchorLayoutPrivate::solveMinMax(const QList<QSimplexConstraint *> *min = simplex.solveMin(); // Save sizeAtMinimum results - QList<QSimplexVariable *> variables = simplex.constraintsVariables(); + QList<AnchorData *> variables = getVariables(constraints); for (int i = 0; i < variables.size(); ++i) { AnchorData *ad = static_cast<AnchorData *>(variables[i]); Q_ASSERT(ad->result >= ad->minSize || qFuzzyCompare(ad->result, ad->minSize)); @@ -2536,7 +2629,7 @@ void QGraphicsAnchorLayoutPrivate::solveExpanding(const QList<QSimplexConstraint hasExpanding = true; // Lock anchor between boundedExpSize and sizeAtMaximum (ensure 3.a) - if (boundedExpSize == ad->sizeAtMaximum) { + if (boundedExpSize == ad->sizeAtMaximum || qFuzzyCompare(boundedExpSize, ad->sizeAtMaximum)) { // The interval has only one possible value, we can use an "Equal" // constraint and don't need to add this variable to the objective. QSimplexConstraint *itemC = new QSimplexConstraint; diff --git a/src/gui/graphicsview/qgraphicsanchorlayout_p.h b/src/gui/graphicsview/qgraphicsanchorlayout_p.h index 9513ddf..7dd0d65 100644 --- a/src/gui/graphicsview/qgraphicsanchorlayout_p.h +++ b/src/gui/graphicsview/qgraphicsanchorlayout_p.h @@ -151,15 +151,16 @@ struct AnchorData : public QSimplexVariable { }; AnchorData() - : QSimplexVariable(), from(0), to(0), + : QSimplexVariable(), item(0), from(0), to(0), minSize(0), prefSize(0), expSize(0), maxSize(0), sizeAtMinimum(0), sizeAtPreferred(0), sizeAtExpanding(0), sizeAtMaximum(0), graphicsAnchor(0), skipInPreferred(0), - type(Normal), hasSize(true), isLayoutAnchor(false) {} + type(Normal), hasSize(true), isLayoutAnchor(false), + isCenterAnchor(false), orientation(0) {} virtual void updateChildrenSizes() {} - virtual void refreshSizeHints(qreal effectiveSpacing); + virtual bool refreshSizeHints(const QLayoutStyleInfo *styleInfo); virtual ~AnchorData() {} @@ -180,6 +181,9 @@ struct AnchorData : public QSimplexVariable { hasSize = false; } + // Internal anchors have associated items + QGraphicsLayoutItem *item; + // Anchor is semantically directed AnchorVertex *from; AnchorVertex *to; @@ -205,7 +209,9 @@ struct AnchorData : public QSimplexVariable { uint skipInPreferred : 1; uint type : 2; // either Normal, Sequential or Parallel uint hasSize : 1; // if false, get size from style. - uint isLayoutAnchor : 1; // if this anchor is connected to a layout 'edge' + uint isLayoutAnchor : 1; // if this anchor is an internal layout anchor + uint isCenterAnchor : 1; + uint orientation : 1; }; #ifdef QT_DEBUG @@ -217,26 +223,20 @@ inline QString AnchorData::toString() const struct SequentialAnchorData : public AnchorData { - SequentialAnchorData() : AnchorData() + SequentialAnchorData(const QVector<AnchorVertex *> &vertices, const QVector<AnchorData *> &edges) + : AnchorData(), m_children(vertices), m_edges(edges) { type = AnchorData::Sequential; + orientation = m_edges.at(0)->orientation; #ifdef QT_DEBUG - name = QLatin1String("SequentialAnchorData"); + name = QString::fromAscii("%1 -- %2").arg(vertices.first()->toString(), vertices.last()->toString()); #endif } virtual void updateChildrenSizes(); - virtual void refreshSizeHints(qreal effectiveSpacing); + virtual bool refreshSizeHints(const QLayoutStyleInfo *styleInfo); - void refreshSizeHints_helper(qreal effectiveSpacing, bool refreshChildren = true); - - void setVertices(const QVector<AnchorVertex*> &vertices) - { - m_children = vertices; -#ifdef QT_DEBUG - name = QString::fromAscii("%1 -- %2").arg(vertices.first()->toString(), vertices.last()->toString()); -#endif - } + bool refreshSizeHints_helper(const QLayoutStyleInfo *styleInfo, bool refreshChildren = true); QVector<AnchorVertex*> m_children; // list of vertices in the sequence QVector<AnchorData*> m_edges; // keep the list of edges too. @@ -248,6 +248,7 @@ struct ParallelAnchorData : public AnchorData : AnchorData(), firstEdge(first), secondEdge(second) { type = AnchorData::Parallel; + orientation = first->orientation; // ### Those asserts force that both child anchors have the same direction, // but can't we simplify a pair of anchors in opposite directions? @@ -261,9 +262,9 @@ struct ParallelAnchorData : public AnchorData } virtual void updateChildrenSizes(); - virtual void refreshSizeHints(qreal effectiveSpacing); + virtual bool refreshSizeHints(const QLayoutStyleInfo *styleInfo); - void refreshSizeHints_helper(qreal effectiveSpacing, bool refreshChildren = true); + bool refreshSizeHints_helper(const QLayoutStyleInfo *styleInfo, bool refreshChildren = true); AnchorData* firstEdge; AnchorData* secondEdge; @@ -423,13 +424,12 @@ public: Qt::AnchorPoint &firstEdge, QGraphicsLayoutItem *&secondItem, Qt::AnchorPoint &secondEdge); - // for getting the actual spacing (will query the style if the - // spacing is not explicitly set). - qreal effectiveSpacing(Orientation orientation) const; + + QLayoutStyleInfo &styleInfo() const; // Activation methods - void simplifyGraph(Orientation orientation); - bool simplifyGraphIteration(Orientation orientation); + bool simplifyGraph(Orientation orientation); + bool simplifyGraphIteration(Orientation orientation, bool *feasible); void restoreSimplifiedGraph(Orientation orientation); void calculateGraphs(); @@ -441,7 +441,7 @@ public: bool calculateNonTrunk(const QList<QSimplexConstraint *> &constraints, const QList<AnchorData *> &variables); - void setAnchorSizeHintsFromItems(Orientation orientation); + bool refreshAllSizeHints(Orientation orientation); void findPaths(Orientation orientation); void constraintsFromPaths(Orientation orientation); void updateAnchorSizes(Orientation orientation); @@ -524,6 +524,8 @@ public: #endif uint calculateGraphCacheDirty : 1; + mutable uint styleInfoDirty : 1; + mutable QLayoutStyleInfo cachedStyleInfo; friend class QGraphicsAnchorPrivate; }; diff --git a/src/gui/graphicsview/qgraphicsitem.cpp b/src/gui/graphicsview/qgraphicsitem.cpp index f7cea17..d70b039 100644 --- a/src/gui/graphicsview/qgraphicsitem.cpp +++ b/src/gui/graphicsview/qgraphicsitem.cpp @@ -1039,13 +1039,31 @@ void QGraphicsItemPrivate::setParentItemHelper(QGraphicsItem *newParent) } // Update focus scope item ptr in new scope. - if (newParent) { + QGraphicsItem *newFocusScopeItem = subFocusItem ? subFocusItem : parentFocusScopeItem; + if (newFocusScopeItem && newParent) { + if (subFocusItem) { + // Find the subFocusItem's topmost focus scope. + QGraphicsItem *ancestorScope = 0; + QGraphicsItem *p = subFocusItem->d_ptr->parent; + while (p) { + if (p->flags() & QGraphicsItem::ItemIsFocusScope) + ancestorScope = p; + if (p->isPanel()) + break; + p = p->parentItem(); + } + if (ancestorScope) + newFocusScopeItem = ancestorScope; + } + QGraphicsItem *p = newParent; while (p) { if (p->flags() & QGraphicsItem::ItemIsFocusScope) { - p->d_ptr->focusScopeItem = subFocusItem ? subFocusItem : parentFocusScopeItem; - // ### The below line might not make sense... - if (subFocusItem) + p->d_ptr->focusScopeItem = newFocusScopeItem; + // Ensure the new item is no longer the subFocusItem. The + // only way to set focus on a child of a focus scope is + // by setting focus on the scope itself. + if (subFocusItem && !p->focusItem()) subFocusItem->d_ptr->clearSubFocus(); break; } @@ -1287,6 +1305,8 @@ QGraphicsItem::QGraphicsItem(QGraphicsItemPrivate &dd, QGraphicsItem *parent, */ QGraphicsItem::~QGraphicsItem() { + if (d_ptr->isObject) + QObjectPrivate::get(static_cast<QGraphicsObject *>(this))->wasDeleted = true; d_ptr->inDestructor = 1; d_ptr->removeExtraItemCache(); @@ -1658,7 +1678,7 @@ void QGraphicsItem::setFlags(GraphicsItemFlags flags) d_ptr->scene->d_func()->index->itemChange(this, ItemFlagsChange, quint32(flags)); // Flags that alter the geometry of the item (or its children). - const quint32 geomChangeFlagsMask = (ItemClipsChildrenToShape | ItemClipsToShape | ItemIgnoresTransformations); + const quint32 geomChangeFlagsMask = (ItemClipsChildrenToShape | ItemClipsToShape | ItemIgnoresTransformations | ItemIsSelectable); bool fullUpdate = (quint32(flags) & geomChangeFlagsMask) != (d_ptr->flags & geomChangeFlagsMask); if (fullUpdate) d_ptr->paintedViewBoundingRectsNeedRepaint = 1; @@ -2982,8 +3002,11 @@ void QGraphicsItemPrivate::setFocusHelper(Qt::FocusReason focusReason, bool clim while (p) { if (p->flags() & QGraphicsItem::ItemIsFocusScope) { p->d_ptr->focusScopeItem = q_ptr; - if (!q_ptr->isActive() || !p->focusItem()) + if (!p->focusItem()) { + // If you call setFocus on a child of a focus scope that + // doesn't currently have a focus item, then stop. return; + } break; } p = p->d_ptr->parent; @@ -4264,7 +4287,7 @@ void QGraphicsItem::stackBefore(const QGraphicsItem *sibling) // Only move items with the same Z value, and that need moving. int siblingIndex = sibling->d_ptr->siblingIndex; int myIndex = d_ptr->siblingIndex; - if (myIndex >= siblingIndex && d_ptr->z == sibling->d_ptr->z) { + if (myIndex >= siblingIndex) { siblings->move(myIndex, siblingIndex); // Fixup the insertion ordering. for (int i = 0; i < siblings->size(); ++i) { @@ -9157,10 +9180,14 @@ void QGraphicsPixmapItem::setOffset(const QPointF &offset) QRectF QGraphicsPixmapItem::boundingRect() const { Q_D(const QGraphicsPixmapItem); - qreal pw = 1.0; if (d->pixmap.isNull()) return QRectF(); - return QRectF(d->offset, d->pixmap.size()).adjusted(-pw/2, -pw/2, pw/2, pw/2); + if (d->flags & ItemIsSelectable) { + qreal pw = 1.0; + return QRectF(d->offset, d->pixmap.size()).adjusted(-pw/2, -pw/2, pw/2, pw/2); + } else { + return QRectF(d->offset, d->pixmap.size()); + } } /*! @@ -10681,7 +10708,8 @@ void QGraphicsItemEffectSourcePrivate::draw(QPainter *painter) } } -QPixmap QGraphicsItemEffectSourcePrivate::pixmap(Qt::CoordinateSystem system, QPoint *offset) const +QPixmap QGraphicsItemEffectSourcePrivate::pixmap(Qt::CoordinateSystem system, QPoint *offset, + QGraphicsEffectSource::PixmapPadMode mode) const { const bool deviceCoordinates = (system == Qt::DeviceCoordinates); if (!info && deviceCoordinates) { @@ -10695,7 +10723,17 @@ QPixmap QGraphicsItemEffectSourcePrivate::pixmap(Qt::CoordinateSystem system, QP QGraphicsScenePrivate *scened = item->d_ptr->scene->d_func(); const QRectF sourceRect = boundingRect(system); - QRect effectRect = item->graphicsEffect()->boundingRectFor(sourceRect).toAlignedRect(); + QRect effectRect; + + if (mode == QGraphicsEffectSource::ExpandToEffectRectPadMode) { + effectRect = item->graphicsEffect()->boundingRectFor(sourceRect).toAlignedRect(); + } else if (mode == QGraphicsEffectSource::ExpandToTransparentBorderPadMode) { + // adjust by 1.5 to account for cosmetic pens + effectRect = sourceRect.adjusted(-1.5, -1.5, 1.5, 1.5).toAlignedRect(); + } else { + effectRect = sourceRect.toAlignedRect(); + } + if (offset) *offset = effectRect.topLeft(); @@ -10723,10 +10761,15 @@ QPixmap QGraphicsItemEffectSourcePrivate::pixmap(Qt::CoordinateSystem system, QP effectRect.setBottom(deviceHeight -1); } - if (effectRect.isEmpty()) return QPixmap(); + if (system == Qt::LogicalCoordinates + && effectRect.size() == sourceRect.size() + && isPixmap()) { + return static_cast<QGraphicsPixmapItem *>(item)->pixmap(); + } + QPixmap pixmap(effectRect.size()); pixmap.fill(Qt::transparent); QPainter pixmapPainter(&pixmap); @@ -10770,8 +10813,12 @@ QDebug operator<<(QDebug debug, QGraphicsItem *item) return debug; } - debug << "QGraphicsItem(this =" << ((void*)item) - << ", parent =" << ((void*)item->parentItem()) + if (QGraphicsObject *o = item->toGraphicsObject()) + debug << o->metaObject()->className(); + else + debug << "QGraphicsItem"; + debug << "(this =" << (void*)item + << ", parent =" << (void*)item->parentItem() << ", pos =" << item->pos() << ", z =" << item->zValue() << ", flags = " << item->flags() << ")"; diff --git a/src/gui/graphicsview/qgraphicsitem_p.h b/src/gui/graphicsview/qgraphicsitem_p.h index 7c3c4f0..ca56c18 100644 --- a/src/gui/graphicsview/qgraphicsitem_p.h +++ b/src/gui/graphicsview/qgraphicsitem_p.h @@ -61,6 +61,7 @@ #include <private/qgraphicstransform_p.h> #include <private/qgraphicseffect_p.h> +#include <qgraphicseffect.h> #include <QtCore/qpoint.h> @@ -603,8 +604,10 @@ public: inline bool isPixmap() const { - return (item->type() == QGraphicsPixmapItem::Type); - //|| (item->d_ptr->isObject && qobject_cast<QFxImage *>(q_func())); + return item->type() == QGraphicsPixmapItem::Type + && !(item->flags() & QGraphicsItem::ItemIsSelectable) + && item->d_ptr->children.size() == 0; + //|| (item->d_ptr->isObject && qobject_cast<QmlGraphicsImage *>(q_func())); } inline const QStyleOption *styleOption() const @@ -621,7 +624,9 @@ public: QRectF boundingRect(Qt::CoordinateSystem system) const; void draw(QPainter *); - QPixmap pixmap(Qt::CoordinateSystem system, QPoint *offset) const; + QPixmap pixmap(Qt::CoordinateSystem system, + QPoint *offset, + QGraphicsEffectSource::PixmapPadMode mode) const; QGraphicsItem *item; QGraphicsItemPaintInfo *info; diff --git a/src/gui/graphicsview/qgraphicslayout_p.h b/src/gui/graphicsview/qgraphicslayout_p.h index 59c6dba..4aeae39 100644 --- a/src/gui/graphicsview/qgraphicslayout_p.h +++ b/src/gui/graphicsview/qgraphicslayout_p.h @@ -60,6 +60,8 @@ #include "qgraphicslayout.h" #include "qgraphicslayoutitem_p.h" #include <QtGui/qstyle.h> +#include <QtGui/qwidget.h> +#include <QtGui/qstyleoption.h> QT_BEGIN_NAMESPACE @@ -76,6 +78,55 @@ inline bool qt_graphicsLayoutDebug() } #endif + +class QLayoutStyleInfo +{ +public: + inline QLayoutStyleInfo() { invalidate(); } + inline QLayoutStyleInfo(QStyle *style, QWidget *widget) + : m_valid(true), m_style(style), m_widget(widget) + { + Q_ASSERT(style); + if (widget) //### + m_styleOption.initFrom(widget); + m_defaultSpacing[0] = style->pixelMetric(QStyle::PM_LayoutHorizontalSpacing); + m_defaultSpacing[1] = style->pixelMetric(QStyle::PM_LayoutVerticalSpacing); + } + + inline void invalidate() { m_valid = false; m_style = 0; m_widget = 0; } + + inline QStyle *style() const { return m_style; } + inline QWidget *widget() const { return m_widget; } + + inline bool operator==(const QLayoutStyleInfo &other) + { return m_style == other.m_style && m_widget == other.m_widget; } + inline bool operator!=(const QLayoutStyleInfo &other) + { return !(*this == other); } + + inline void setDefaultSpacing(Qt::Orientation o, qreal spacing){ + if (spacing >= 0) + m_defaultSpacing[o - 1] = spacing; + } + + inline qreal defaultSpacing(Qt::Orientation o) const { + return m_defaultSpacing[o - 1]; + } + + inline qreal perItemSpacing(QSizePolicy::ControlType control1, + QSizePolicy::ControlType control2, + Qt::Orientation orientation) const + { + Q_ASSERT(style()); + return style()->layoutSpacing(control1, control2, orientation, &m_styleOption, widget()); + } +private: + bool m_valid; + QStyle *m_style; + QWidget *m_widget; + QStyleOption m_styleOption; + qreal m_defaultSpacing[2]; +}; + class Q_AUTOTEST_EXPORT QGraphicsLayoutPrivate : public QGraphicsLayoutItemPrivate { Q_DECLARE_PUBLIC(QGraphicsLayout) diff --git a/src/gui/graphicsview/qgraphicsproxywidget.cpp b/src/gui/graphicsview/qgraphicsproxywidget.cpp index 64c51ad..e9173a9 100644 --- a/src/gui/graphicsview/qgraphicsproxywidget.cpp +++ b/src/gui/graphicsview/qgraphicsproxywidget.cpp @@ -397,7 +397,7 @@ QWidget *QGraphicsProxyWidgetPrivate::findFocusChild(QWidget *child, bool next) do { if (child->isEnabled() && child->isVisibleTo(widget) - && (child->focusPolicy() & focus_flag == focus_flag) + && ((child->focusPolicy() & focus_flag) == focus_flag) && !(child->d_func()->extra && child->d_func()->extra->focus_proxy)) { return child; } diff --git a/src/gui/graphicsview/qgraphicsscene.cpp b/src/gui/graphicsview/qgraphicsscene.cpp index 1e4fe6f..f982f4b 100644 --- a/src/gui/graphicsview/qgraphicsscene.cpp +++ b/src/gui/graphicsview/qgraphicsscene.cpp @@ -525,6 +525,14 @@ void QGraphicsScenePrivate::removeItemHelper(QGraphicsItem *item) item->d_func()->scene = 0; + //We need to remove all children first because they might use their parent + //attributes (e.g. sceneTransform). + if (!item->d_ptr->inDestructor) { + // Remove all children recursively + for (int i = 0; i < item->d_ptr->children.size(); ++i) + q->removeItem(item->d_ptr->children.at(i)); + } + // Unregister focus proxy. item->d_ptr->resetFocusProxy(); @@ -571,12 +579,6 @@ void QGraphicsScenePrivate::removeItemHelper(QGraphicsItem *item) ++iterator; } - if (!item->d_ptr->inDestructor) { - // Remove all children recursively - for (int i = 0; i < item->d_ptr->children.size(); ++i) - q->removeItem(item->d_ptr->children.at(i)); - } - if (item->isPanel() && item->isVisible() && item->panelModality() != QGraphicsItem::NonModal) leaveModal(item); @@ -4912,7 +4914,7 @@ void QGraphicsScenePrivate::processDirtyItemsRecursive(QGraphicsItem *item, bool continue; } - if (item->d_ptr->paintedViewBoundingRectsNeedRepaint && !paintedViewBoundingRect.isEmpty()) { + if (item->d_ptr->paintedViewBoundingRectsNeedRepaint) { paintedViewBoundingRect.translate(viewPrivate->dirtyScrollOffset); if (!viewPrivate->updateRect(paintedViewBoundingRect)) paintedViewBoundingRect = QRect(-1, -1, -1, -1); // Outside viewport. diff --git a/src/gui/graphicsview/qgraphicsview.cpp b/src/gui/graphicsview/qgraphicsview.cpp index 710c745..f72aa8a 100644 --- a/src/gui/graphicsview/qgraphicsview.cpp +++ b/src/gui/graphicsview/qgraphicsview.cpp @@ -3319,6 +3319,14 @@ void QGraphicsView::paintEvent(QPaintEvent *event) if (!(d->optimizationFlags & IndirectPainting)) { d->scene->d_func()->drawItems(&painter, viewTransformed ? &viewTransform : 0, &d->exposedRegion, viewport()); + // Make sure the painter's world transform is restored correctly when + // drawing without painter state protection (DontSavePainterState). + // We only change the worldTransform() so there's no need to do a full-blown + // save() and restore(). Also note that we don't have to do this in case of + // IndirectPainting (the else branch), because in that case we always save() + // and restore() in QGraphicsScene::drawItems(). + if (!d->scene->d_func()->painterStateProtection) + painter.setWorldTransform(viewTransform); } else { // Find all exposed items bool allItems = false; diff --git a/src/gui/graphicsview/qgraphicswidget.cpp b/src/gui/graphicsview/qgraphicswidget.cpp index 35a3c13..d70a281 100644 --- a/src/gui/graphicsview/qgraphicswidget.cpp +++ b/src/gui/graphicsview/qgraphicswidget.cpp @@ -1352,6 +1352,8 @@ void QGraphicsWidget::changeEvent(QEvent *event) case QEvent::StyleChange: // ### Don't unset if the margins are explicitly set. unsetWindowFrameMargins(); + if (d->layout) + d->layout->invalidate(); case QEvent::FontChange: update(); updateGeometry(); diff --git a/src/gui/graphicsview/qgridlayoutengine_p.h b/src/gui/graphicsview/qgridlayoutengine_p.h index a42a537..ed335a8 100644 --- a/src/gui/graphicsview/qgridlayoutengine_p.h +++ b/src/gui/graphicsview/qgridlayoutengine_p.h @@ -59,7 +59,7 @@ #include "qmap.h" #include "qpair.h" #include "qvector.h" - +#include "qgraphicslayout_p.h" #include <float.h> QT_BEGIN_NAMESPACE @@ -128,29 +128,6 @@ public: }; -class QLayoutStyleInfo -{ -public: - inline QLayoutStyleInfo() { invalidate(); } - inline QLayoutStyleInfo(QStyle *style, QWidget *widget) - : q_valid(true), q_style(style), q_widget(widget) {} - - inline void invalidate() { q_valid = false; q_style = 0; q_widget = 0; } - - inline QStyle *style() const { return q_style; } - inline QWidget *widget() const { return q_widget; } - - inline bool operator==(const QLayoutStyleInfo &other) - { return q_style == other.q_style && q_widget == other.q_widget; } - inline bool operator!=(const QLayoutStyleInfo &other) - { return !(*this == other); } - -private: - bool q_valid; - QStyle *q_style; - QWidget *q_widget; -}; - class QGridLayoutBox { public: diff --git a/src/gui/graphicsview/qsimplex_p.cpp b/src/gui/graphicsview/qsimplex_p.cpp index b8f8fb4..86b10b4 100644 --- a/src/gui/graphicsview/qsimplex_p.cpp +++ b/src/gui/graphicsview/qsimplex_p.cpp @@ -108,10 +108,8 @@ void QSimplex::clearDataStructures() // Constraints for (int i = 0; i < constraints.size(); ++i) { delete constraints[i]->helper.first; - constraints[i]->helper.first = 0; - constraints[i]->helper.second = 0.0; delete constraints[i]->artificial; - constraints[i]->artificial = 0; + delete constraints[i]; } constraints.clear(); @@ -137,7 +135,23 @@ bool QSimplex::setConstraints(const QList<QSimplexConstraint *> newConstraints) if (newConstraints.isEmpty()) return true; // we are ok with no constraints - constraints = newConstraints; + + // Make deep copy of constraints. We need this copy because we may change + // them in the simplification method. + for (int i = 0; i < newConstraints.size(); ++i) { + QSimplexConstraint *c = new QSimplexConstraint; + c->constant = newConstraints[i]->constant; + c->ratio = newConstraints[i]->ratio; + c->variables = newConstraints[i]->variables; + constraints << c; + } + + // Remove constraints of type Var == K and replace them for their value. + if (!simplifyConstraints(&constraints)) { + qWarning() << "QSimplex: No feasible solution!"; + clearDataStructures(); + return false; + } /////////////////////////////////////// // Prepare variables and constraints // @@ -508,11 +522,21 @@ qreal QSimplex::solver(solverFactor factor) // Remove old objective clearRow(0); - // Set new objective + // Set new objective in the first row of the simplex matrix + qreal resultOffset = 0; QHash<QSimplexVariable *, qreal>::const_iterator iter; for (iter = objective->variables.constBegin(); iter != objective->variables.constEnd(); ++iter) { + + // Check if the variable was removed in the simplification process. + // If so, we save its offset to the objective function and skip adding + // it to the matrix. + if (iter.key()->index == -1) { + resultOffset += iter.value() * iter.key()->result; + continue; + } + setValueAt(0, iter.key()->index, -1 * factor * iter.value()); } @@ -525,7 +549,9 @@ qreal QSimplex::solver(solverFactor factor) } #endif - return factor * valueAt(0, columns - 1); + // Return the value calculated by the simplex plus the value of the + // fixed variables. + return (factor * valueAt(0, columns - 1)) + resultOffset; } /*! @@ -571,4 +597,77 @@ void QSimplex::collectResults() } } +/*! + \internal + + Looks for single-valued variables and remove them from the constraints list. +*/ +bool QSimplex::simplifyConstraints(QList<QSimplexConstraint *> *constraints) +{ + QHash<QSimplexVariable *, qreal> results; // List of single-valued variables + bool modified = true; // Any chance more optimization exists? + + while (modified) { + modified = false; + + // For all constraints + QList<QSimplexConstraint *>::iterator iter = constraints->begin(); + while (iter != constraints->end()) { + QSimplexConstraint *c = *iter; + if ((c->ratio == QSimplexConstraint::Equal) && (c->variables.count() == 1)) { + // Check whether this is a constraint of type Var == K + // If so, save its value to "results". + QSimplexVariable *variable = c->variables.constBegin().key(); + qreal result = c->constant / c->variables.value(variable); + + results.insert(variable, result); + variable->result = result; + variable->index = -1; + modified = true; + + } + + // Replace known values among their variables + QHash<QSimplexVariable *, qreal>::const_iterator r; + for (r = results.constBegin(); r != results.constEnd(); ++r) { + if (c->variables.contains(r.key())) { + c->constant -= r.value() * c->variables.take(r.key()); + modified = true; + } + } + + // Keep it normalized + if (c->constant < 0) + c->invert(); + + if (c->variables.isEmpty()) { + // If constraint became empty due to substitution, delete it. + if (c->isSatisfied() == false) + // We must ensure that the constraint soon to be deleted would not + // make the problem unfeasible if left behind. If that's the case, + // we return false so the simplex solver can properly report that. + return false; + + delete c; + iter = constraints->erase(iter); + } else { + ++iter; + } + } + } + + return true; +} + +void QSimplexConstraint::invert() +{ + constant = -constant; + ratio = Ratio(2 - ratio); + + QHash<QSimplexVariable *, qreal>::iterator iter; + for (iter = variables.begin(); iter != variables.end(); ++iter) { + iter.value() = -iter.value(); + } +} + QT_END_NAMESPACE diff --git a/src/gui/graphicsview/qsimplex_p.h b/src/gui/graphicsview/qsimplex_p.h index 51991a9..084ad7f 100644 --- a/src/gui/graphicsview/qsimplex_p.h +++ b/src/gui/graphicsview/qsimplex_p.h @@ -63,7 +63,7 @@ struct QSimplexVariable QSimplexVariable() : result(0), index(0) {} qreal result; - uint index; + int index; }; @@ -95,7 +95,8 @@ struct QSimplexConstraint QPair<QSimplexVariable *, qreal> helper; QSimplexVariable * artificial; -#ifdef QT_DEBUG + void invert(); + bool isSatisfied() { qreal leftHandSide(0); @@ -106,7 +107,7 @@ struct QSimplexConstraint Q_ASSERT(constant > 0 || qFuzzyCompare(1, 1 + constant)); - if (qFuzzyCompare(1000 + leftHandSide, 1000 + constant)) + if ((leftHandSide == constant) || qFuzzyCompare(1000 + leftHandSide, 1000 + constant)) return true; switch (ratio) { @@ -118,6 +119,30 @@ struct QSimplexConstraint return false; } } + +#ifdef QT_DEBUG + QString toString() { + QString result; + result += QString::fromAscii("-- QSimplexConstraint %1 --").arg(quintptr(this), 0, 16); + + QHash<QSimplexVariable *, qreal>::const_iterator iter; + for (iter = variables.constBegin(); iter != variables.constEnd(); ++iter) { + result += QString::fromAscii(" %1 x %2").arg(iter.value()).arg(quintptr(iter.key()), 0, 16); + } + + switch (ratio) { + case LessOrEqual: + result += QString::fromAscii(" (less) <= %1").arg(constant); + break; + case MoreOrEqual: + result += QString::fromAscii(" (more) >= %1").arg(constant); + break; + default: + result += QString::fromAscii(" (eqal) == %1").arg(constant); + } + + return result; + } #endif }; @@ -129,7 +154,6 @@ public: qreal solveMin(); qreal solveMax(); - QList<QSimplexVariable *> constraintsVariables(); bool setConstraints(const QList<QSimplexConstraint *> constraints); void setObjective(QSimplexConstraint *objective); @@ -145,6 +169,7 @@ private: void combineRows(int toIndex, int fromIndex, qreal factor); // Simplex + bool simplifyConstraints(QList<QSimplexConstraint *> *constraints); int findPivotColumn(); int pivotRowForColumn(int column); void reducedRowEchelon(); @@ -168,11 +193,6 @@ private: qreal *matrix; }; -inline QList<QSimplexVariable *> QSimplex::constraintsVariables() -{ - return variables; -} - inline qreal QSimplex::valueAt(int rowIndex, int columnIndex) { return matrix[rowIndex * columns + columnIndex]; diff --git a/src/gui/image/qnativeimage.cpp b/src/gui/image/qnativeimage.cpp index 88faea8..e4ea2e9 100644 --- a/src/gui/image/qnativeimage.cpp +++ b/src/gui/image/qnativeimage.cpp @@ -199,10 +199,12 @@ QNativeImage::QNativeImage(int width, int height, QImage::Format format,bool /* shmctl(xshminfo.shmid, IPC_RMID, 0); return; } - xshmpm = XShmCreatePixmap(X11->display, DefaultRootWindow(X11->display), xshmimg->data, - &xshminfo, width, height, dd); - if (!xshmpm) { - qWarning() << "QNativeImage: Unable to create shared Pixmap."; + if (X11->use_mitshm_pixmaps) { + xshmpm = XShmCreatePixmap(X11->display, DefaultRootWindow(X11->display), xshmimg->data, + &xshminfo, width, height, dd); + if (!xshmpm) { + qWarning() << "QNativeImage: Unable to create shared Pixmap."; + } } } diff --git a/src/gui/image/qpixmap_s60.cpp b/src/gui/image/qpixmap_s60.cpp index 666d608..7086341 100644 --- a/src/gui/image/qpixmap_s60.cpp +++ b/src/gui/image/qpixmap_s60.cpp @@ -684,9 +684,10 @@ void QS60PixmapData::beginDataAccess() uchar* newBytes = (uchar*)cfbsBitmap->DataAddress(); - if (newBytes == bytes) - return; + TSize size = cfbsBitmap->SizeInPixels(); + if (newBytes == bytes && image.width() == size.iWidth && image.height() == size.iHeight) + return; bytes = newBytes; TDisplayMode mode = cfbsBitmap->DisplayMode(); @@ -695,8 +696,6 @@ void QS60PixmapData::beginDataAccess() if (format == QImage::Format_ARGB32) format = QImage::Format_ARGB32_Premultiplied; // pixel data is actually in premultiplied format - TSize size = cfbsBitmap->SizeInPixels(); - QVector<QRgb> savedColorTable; if (!image.isNull()) savedColorTable = image.colorTable(); @@ -935,18 +934,21 @@ void QS60PixmapData::fromNativeType(void* pixmap, NativeType nativeType) da.beginDataAccess(sourceBitmap); uchar *bytes = (uchar*)sourceBitmap->DataAddress(); QImage img = QImage(bytes, size.iWidth, size.iHeight, format); + img = img.copy(); da.endDataAccess(sourceBitmap); - fromImage(img, Qt::AutoColor); - - if(deleteSourceBitmap) - delete sourceBitmap; - if(displayMode == EGray2) { //Symbian thinks set pixels are white/transparent, Qt thinks they are foreground/solid //So invert mono bitmaps so that masks work correctly. - image.invertPixels(); + img.invertPixels(); + } else if(displayMode == EColor16M) { + img = img.rgbSwapped(); // EColor16M is BGR } + + fromImage(img, Qt::AutoColor); + + if(deleteSourceBitmap) + delete sourceBitmap; } else { CFbsBitmap* duplicate = 0; QT_TRAP_THROWING(duplicate = new (ELeave) CFbsBitmap); diff --git a/src/gui/image/qpixmapfilter.cpp b/src/gui/image/qpixmapfilter.cpp index 9fcf776..d0de03e 100644 --- a/src/gui/image/qpixmapfilter.cpp +++ b/src/gui/image/qpixmapfilter.cpp @@ -506,7 +506,7 @@ class QPixmapBlurFilterPrivate : public QPixmapFilterPrivate public: QPixmapBlurFilterPrivate() : radius(5), hint(Qt::PerformanceHint) {} - int radius; + qreal radius; Qt::RenderHint hint; }; @@ -535,7 +535,7 @@ QPixmapBlurFilter::~QPixmapBlurFilter() \internal */ -void QPixmapBlurFilter::setRadius(int radius) +void QPixmapBlurFilter::setRadius(qreal radius) { Q_D(QPixmapBlurFilter); d->radius = radius; @@ -546,7 +546,7 @@ void QPixmapBlurFilter::setRadius(int radius) \internal */ -int QPixmapBlurFilter::radius() const +qreal QPixmapBlurFilter::radius() const { Q_D(const QPixmapBlurFilter); return d->radius; @@ -584,7 +584,7 @@ Qt::RenderHint QPixmapBlurFilter::blurHint() const QRectF QPixmapBlurFilter::boundingRectFor(const QRectF &rect) const { Q_D(const QPixmapBlurFilter); - const qreal delta = d->radius * 2; + const qreal delta = d->radius + 1; return rect.adjusted(-delta, -delta, delta, delta); } @@ -668,7 +668,7 @@ void QPixmapBlurFilter::draw(QPainter *painter, const QPointF &p, const QPixmap if (!painter->isActive()) return; - if (d->radius == 0) { + if (d->radius <= 0) { painter->drawPixmap(srcRect.translated(p), src, srcRect); return; } @@ -688,12 +688,12 @@ void QPixmapBlurFilter::draw(QPainter *painter, const QPointF &p, const QPixmap if (srcRect.isNull()) { srcImage = src.toImage(); - destImage = blurred(srcImage, srcImage.rect(), d->radius); + destImage = blurred(srcImage, srcImage.rect(), qRound(d->radius)); } else { QRect rect = srcRect.toAlignedRect().intersected(src.rect()); srcImage = src.copy(rect).toImage(); - destImage = blurred(srcImage, srcImage.rect(), d->radius); + destImage = blurred(srcImage, srcImage.rect(), qRound(d->radius)); } painter->drawImage(p, destImage); @@ -902,7 +902,7 @@ public: QPointF offset; QColor color; - int radius; + qreal radius; }; /*! @@ -966,7 +966,7 @@ QPixmapDropShadowFilter::~QPixmapDropShadowFilter() \internal */ -int QPixmapDropShadowFilter::blurRadius() const +qreal QPixmapDropShadowFilter::blurRadius() const { Q_D(const QPixmapDropShadowFilter); return d->radius; @@ -981,7 +981,7 @@ int QPixmapDropShadowFilter::blurRadius() const \internal */ -void QPixmapDropShadowFilter::setBlurRadius(int radius) +void QPixmapDropShadowFilter::setBlurRadius(qreal radius) { Q_D(QPixmapDropShadowFilter); d->radius = radius; @@ -1057,14 +1057,9 @@ void QPixmapDropShadowFilter::setOffset(const QPointF &offset) QRectF QPixmapDropShadowFilter::boundingRectFor(const QRectF &rect) const { Q_D(const QPixmapDropShadowFilter); - - const qreal delta = qreal(d->radius * 2); - qreal x1 = qMin(rect.left(), rect.left() + d->offset.x() - delta); - qreal y1 = qMin(rect.top(), rect.top() + d->offset.y() - delta); - qreal x2 = qMax(rect.right(), rect.right() + d->offset.x() + delta); - qreal y2 = qMax(rect.bottom(), rect.bottom() + d->offset.y() + delta); - - return QRectF(x1, y1, x2 - x1, y2 - y1); + qreal delta = d->radius + 1; + return rect.adjusted(-2, -2, 2, 2).united( + rect.translated(d->offset).adjusted(-delta, -delta, delta, delta)); } /*! @@ -1090,7 +1085,7 @@ void QPixmapDropShadowFilter::draw(QPainter *p, QImage tmp = src.isNull() ? px.toImage() : px.copy(src.toAlignedRect()).toImage(); // blur the alpha channel - tmp = blurred(tmp, tmp.rect(), d->radius, true); + tmp = blurred(tmp, tmp.rect(), qRound(d->radius), true); // blacken the image... QPainter tmpPainter(&tmp); diff --git a/src/gui/image/qpixmapfilter_p.h b/src/gui/image/qpixmapfilter_p.h index 8a2207a..fc70795 100644 --- a/src/gui/image/qpixmapfilter_p.h +++ b/src/gui/image/qpixmapfilter_p.h @@ -129,10 +129,10 @@ public: QPixmapBlurFilter(QObject *parent = 0); ~QPixmapBlurFilter(); - void setRadius(int radius); + void setRadius(qreal radius); void setBlurHint(Qt::RenderHint hint); - int radius() const; + qreal radius() const; Qt::RenderHint blurHint() const; QRectF boundingRectFor(const QRectF &rect) const; @@ -175,8 +175,8 @@ public: QRectF boundingRectFor(const QRectF &rect) const; void draw(QPainter *p, const QPointF &pos, const QPixmap &px, const QRectF &src = QRectF()) const; - int blurRadius() const; - void setBlurRadius(int radius); + qreal blurRadius() const; + void setBlurRadius(qreal radius); QColor color() const; void setColor(const QColor &color); diff --git a/src/gui/inputmethod/qcoefepinputcontext_s60.cpp b/src/gui/inputmethod/qcoefepinputcontext_s60.cpp index c4d17ff..3f21bc3 100644 --- a/src/gui/inputmethod/qcoefepinputcontext_s60.cpp +++ b/src/gui/inputmethod/qcoefepinputcontext_s60.cpp @@ -561,8 +561,28 @@ void QCoeFepInputContext::GetCursorSelectionForFep(TCursorSelection& aCursorSele int cursor = w->inputMethodQuery(Qt::ImCursorPosition).toInt() + m_preeditString.size(); int anchor = w->inputMethodQuery(Qt::ImAnchorPosition).toInt() + m_preeditString.size(); - aCursorSelection.iAnchorPos = anchor; - aCursorSelection.iCursorPos = cursor; + QString text = w->inputMethodQuery(Qt::ImSurroundingText).value<QString>(); + int combinedSize = text.size() + m_preeditString.size(); + if (combinedSize < anchor || combinedSize < cursor) { + // ### TODO! FIXME! QTBUG-5050 + // This is a hack to prevent crashing in 4.6 with QLineEdits that use input masks. + // The root problem is that cursor position is relative to displayed text instead of the + // actual text we get. + // + // To properly fix this we would need to know the displayText of QLineEdits instead + // of just the text, which on itself should be a trivial change. The difficulties start + // when we need to commit the changes back to the QLineEdit, which would have to be somehow + // able to handle displayText, too. + // + // Until properly fixed, the cursor and anchor positions will not reflect correct positions + // for masked QLineEdits, unless all the masked positions are filled in order so that + // cursor position relative to the displayed text matches position relative to actual text. + aCursorSelection.iAnchorPos = combinedSize; + aCursorSelection.iCursorPos = combinedSize; + } else { + aCursorSelection.iAnchorPos = anchor; + aCursorSelection.iCursorPos = cursor; + } } void QCoeFepInputContext::GetEditorContentForFep(TDes& aEditorContent, TInt aDocumentPosition, diff --git a/src/gui/inputmethod/qwininputcontext_win.cpp b/src/gui/inputmethod/qwininputcontext_win.cpp index e9ab870..ef2f5c0 100644 --- a/src/gui/inputmethod/qwininputcontext_win.cpp +++ b/src/gui/inputmethod/qwininputcontext_win.cpp @@ -327,28 +327,13 @@ static int getCursorPosition(HIMC himc) static QString getString(HIMC himc, DWORD dwindex, int *selStart = 0, int *selLength = 0) { - static wchar_t *buffer = 0; - static int buflen = 0; - - int len = getCompositionString(himc, dwindex, 0, 0) + 1; - if (!buffer || len > buflen) { - delete [] buffer; - buflen = qMin(len, 256); - buffer = new wchar_t[buflen]; - } - - len = getCompositionString(himc, dwindex, buffer, buflen * sizeof(wchar_t)); + const int bufferSize = 256; + wchar_t buffer[bufferSize]; + int len = getCompositionString(himc, dwindex, buffer, bufferSize * sizeof(wchar_t)); if (selStart) { - static wchar_t *attrbuffer = 0; - static int attrbuflen = 0; - int attrlen = getCompositionString(himc, dwindex, 0, 0) + 1; - if (!attrbuffer || attrlen> attrbuflen) { - delete [] attrbuffer; - attrbuflen = qMin(attrlen, 256); - attrbuffer = new wchar_t[attrbuflen]; - } - attrlen = getCompositionString(himc, GCS_COMPATTR, attrbuffer, attrbuflen * sizeof(wchar_t)); + char attrbuffer[bufferSize]; + int attrlen = getCompositionString(himc, GCS_COMPATTR, attrbuffer, bufferSize); *selStart = attrlen+1; *selLength = -1; for (int i = 0; i < attrlen; i++) { diff --git a/src/gui/itemviews/qabstractitemview.cpp b/src/gui/itemviews/qabstractitemview.cpp index d91cedd..23bef12 100644 --- a/src/gui/itemviews/qabstractitemview.cpp +++ b/src/gui/itemviews/qabstractitemview.cpp @@ -605,6 +605,8 @@ void QAbstractItemView::setModel(QAbstractItemModel *model) this, SLOT(_q_modelDestroyed())); disconnect(d->model, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(dataChanged(QModelIndex,QModelIndex))); + disconnect(d->model, SIGNAL(headerDataChanged(Qt::Orientation,int,int)), + this, SLOT(_q_headerDataChanged())); disconnect(d->model, SIGNAL(rowsInserted(QModelIndex,int,int)), this, SLOT(rowsInserted(QModelIndex,int,int))); disconnect(d->model, SIGNAL(rowsAboutToBeRemoved(QModelIndex,int,int)), @@ -637,6 +639,8 @@ void QAbstractItemView::setModel(QAbstractItemModel *model) this, SLOT(_q_modelDestroyed())); connect(d->model, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(dataChanged(QModelIndex,QModelIndex))); + connect(d->model, SIGNAL(headerDataChanged(Qt::Orientation,int,int)), + this, SLOT(_q_headerDataChanged())); connect(d->model, SIGNAL(rowsInserted(QModelIndex,int,int)), this, SLOT(rowsInserted(QModelIndex,int,int))); connect(d->model, SIGNAL(rowsAboutToBeRemoved(QModelIndex,int,int)), @@ -3637,7 +3641,7 @@ QItemSelectionModel::SelectionFlags QAbstractItemViewPrivate::extendedSelectionC const bool controlKeyPressed = modifiers & Qt::ControlModifier; if (((index == pressedIndex && selectionModel->isSelected(index)) || !index.isValid()) && state != QAbstractItemView::DragSelectingState - && !shiftKeyPressed && !controlKeyPressed && !rightButtonPressed) + && !shiftKeyPressed && !controlKeyPressed && (!rightButtonPressed || !index.isValid())) return QItemSelectionModel::ClearAndSelect|selectionBehaviorFlags(); return QItemSelectionModel::NoUpdate; } diff --git a/src/gui/itemviews/qabstractitemview.h b/src/gui/itemviews/qabstractitemview.h index b4f0957..7a0509b 100644 --- a/src/gui/itemviews/qabstractitemview.h +++ b/src/gui/itemviews/qabstractitemview.h @@ -358,9 +358,11 @@ private: Q_PRIVATE_SLOT(d_func(), void _q_rowsRemoved(const QModelIndex&, int, int)) Q_PRIVATE_SLOT(d_func(), void _q_modelDestroyed()) Q_PRIVATE_SLOT(d_func(), void _q_layoutChanged()) + Q_PRIVATE_SLOT(d_func(), void _q_headerDataChanged()) friend class QTreeViewPrivate; // needed to compile with MSVC friend class QAccessibleItemRow; + friend class QListModeViewBase; }; Q_DECLARE_OPERATORS_FOR_FLAGS(QAbstractItemView::EditTriggers) diff --git a/src/gui/itemviews/qabstractitemview_p.h b/src/gui/itemviews/qabstractitemview_p.h index fcf381a..c691f61 100644 --- a/src/gui/itemviews/qabstractitemview_p.h +++ b/src/gui/itemviews/qabstractitemview_p.h @@ -117,6 +117,7 @@ public: virtual void _q_columnsInserted(const QModelIndex &parent, int start, int end); virtual void _q_modelDestroyed(); virtual void _q_layoutChanged(); + void _q_headerDataChanged() { doDelayedItemsLayout(); } void fetchMore(); @@ -164,7 +165,8 @@ public: } #ifndef QT_NO_DRAGANDDROP - QAbstractItemView::DropIndicatorPosition position(const QPoint &pos, const QRect &rect, const QModelIndex &idx) const; + virtual QAbstractItemView::DropIndicatorPosition position(const QPoint &pos, const QRect &rect, const QModelIndex &idx) const; + inline bool canDecode(QDropEvent *e) const { QStringList modelTypes = model->mimeTypes(); const QMimeData *mime = e->mimeData(); diff --git a/src/gui/itemviews/qheaderview.cpp b/src/gui/itemviews/qheaderview.cpp index 3bd9a19..6f2cff9 100644 --- a/src/gui/itemviews/qheaderview.cpp +++ b/src/gui/itemviews/qheaderview.cpp @@ -2516,6 +2516,8 @@ QSize QHeaderView::sectionSizeFromContents(int logicalIndex) const Q_D(const QHeaderView); Q_ASSERT(logicalIndex >= 0); + ensurePolished(); + // use SizeHintRole QVariant variant = d->model->headerData(logicalIndex, d->orientation, Qt::SizeHintRole); if (variant.isValid()) diff --git a/src/gui/itemviews/qitemdelegate.cpp b/src/gui/itemviews/qitemdelegate.cpp index 871a4b1..3b3036d 100644 --- a/src/gui/itemviews/qitemdelegate.cpp +++ b/src/gui/itemviews/qitemdelegate.cpp @@ -255,7 +255,7 @@ QSizeF QItemDelegatePrivate::doTextLayout(int lineWidth) const \row \o \l Qt::BackgroundRole \o QBrush \row \o \l Qt::BackgroundColorRole \o QColor (obsolete; use Qt::BackgroundRole instead) \row \o \l Qt::CheckStateRole \o Qt::CheckState - \row \o \l Qt::DecorationRole \o QIcon and QColor + \row \o \l Qt::DecorationRole \o QIcon, QPixmap and QColor \row \o \l Qt::DisplayRole \o QString and types with a string representation \row \o \l Qt::EditRole \o See QItemEditorFactory for details \row \o \l Qt::FontRole \o QFont diff --git a/src/gui/itemviews/qitemselectionmodel.cpp b/src/gui/itemviews/qitemselectionmodel.cpp index dfebe03..c6e02a6 100644 --- a/src/gui/itemviews/qitemselectionmodel.cpp +++ b/src/gui/itemviews/qitemselectionmodel.cpp @@ -599,7 +599,7 @@ void QItemSelectionModelPrivate::_q_rowsAboutToBeRemoved(const QModelIndex &pare while (itParent.isValid() && itParent.parent() != parent) itParent = itParent.parent(); - if (parent.isValid() && start <= itParent.row() && itParent.row() <= end) { + if (itParent.isValid() && start <= itParent.row() && itParent.row() <= end) { deselected.append(*it); it = ranges.erase(it); } else { @@ -1587,7 +1587,8 @@ void QItemSelectionModel::emitSelectionChanged(const QItemSelection &newSelectio } } - emit selectionChanged(selected, deselected); + if (!selected.isEmpty() || !deselected.isEmpty()) + emit selectionChanged(selected, deselected); } #ifndef QT_NO_DEBUG_STREAM diff --git a/src/gui/itemviews/qlistview.cpp b/src/gui/itemviews/qlistview.cpp index f58f458..d680af8 100644 --- a/src/gui/itemviews/qlistview.cpp +++ b/src/gui/itemviews/qlistview.cpp @@ -853,8 +853,13 @@ void QListView::resizeEvent(QResizeEvent *e) */ void QListView::dragMoveEvent(QDragMoveEvent *e) { - if (!d_func()->commonListView->filterDragMoveEvent(e)) - QAbstractItemView::dragMoveEvent(e); + Q_D(QListView); + if (!d->commonListView->filterDragMoveEvent(e)) { + if (viewMode() == QListView::ListMode && flow() == QListView::LeftToRight) + static_cast<QListModeViewBase *>(d->commonListView)->dragMoveEvent(e); + else + QAbstractItemView::dragMoveEvent(e); + } } @@ -1804,6 +1809,16 @@ QItemSelection QListViewPrivate::selection(const QRect &rect) const return selection; } +#ifndef QT_NO_DRAGANDDROP +QAbstractItemView::DropIndicatorPosition QListViewPrivate::position(const QPoint &pos, const QRect &rect, const QModelIndex &idx) const +{ + if (viewMode == QListView::ListMode && flow == QListView::LeftToRight) + return static_cast<QListModeViewBase *>(commonListView)->position(pos, rect, idx); + else + return QAbstractItemViewPrivate::position(pos, rect, idx); +} +#endif + /* * Common ListView Implementation */ @@ -1893,6 +1908,96 @@ void QListModeViewBase::paintDragDrop(QPainter *painter) // in IconMode, it makes no sense to show it dd->paintDropIndicator(painter); } + +QAbstractItemView::DropIndicatorPosition QListModeViewBase::position(const QPoint &pos, const QRect &rect, const QModelIndex &index) const +{ + QAbstractItemView::DropIndicatorPosition r = QAbstractItemView::OnViewport; + if (!dd->overwrite) { + const int margin = 2; + if (pos.x() - rect.left() < margin) { + r = QAbstractItemView::AboveItem; // Visually, on the left + } else if (rect.right() - pos.x() < margin) { + r = QAbstractItemView::BelowItem; // Visually, on the right + } else if (rect.contains(pos, true)) { + r = QAbstractItemView::OnItem; + } + } else { + QRect touchingRect = rect; + touchingRect.adjust(-1, -1, 1, 1); + if (touchingRect.contains(pos, false)) { + r = QAbstractItemView::OnItem; + } + } + + if (r == QAbstractItemView::OnItem && (!(dd->model->flags(index) & Qt::ItemIsDropEnabled))) + r = pos.x() < rect.center().x() ? QAbstractItemView::AboveItem : QAbstractItemView::BelowItem; + + return r; +} + +void QListModeViewBase::dragMoveEvent(QDragMoveEvent *event) +{ + if (qq->dragDropMode() == QAbstractItemView::InternalMove + && (event->source() != qq || !(event->possibleActions() & Qt::MoveAction))) + return; + + // ignore by default + event->ignore(); + + QModelIndex index = qq->indexAt(event->pos()); + dd->hover = index; + if (!dd->droppingOnItself(event, index) + && dd->canDecode(event)) { + + if (index.isValid() && dd->showDropIndicator) { + QRect rect = qq->visualRect(index); + dd->dropIndicatorPosition = position(event->pos(), rect, index); + switch (dd->dropIndicatorPosition) { + case QAbstractItemView::AboveItem: + if (dd->isIndexDropEnabled(index.parent())) { + dd->dropIndicatorRect = QRect(rect.left(), rect.top(), 0, rect.height()); + event->accept(); + } else { + dd->dropIndicatorRect = QRect(); + } + break; + case QAbstractItemView::BelowItem: + if (dd->isIndexDropEnabled(index.parent())) { + dd->dropIndicatorRect = QRect(rect.right(), rect.top(), 0, rect.height()); + event->accept(); + } else { + dd->dropIndicatorRect = QRect(); + } + break; + case QAbstractItemView::OnItem: + if (dd->isIndexDropEnabled(index)) { + dd->dropIndicatorRect = rect; + event->accept(); + } else { + dd->dropIndicatorRect = QRect(); + } + break; + case QAbstractItemView::OnViewport: + dd->dropIndicatorRect = QRect(); + if (dd->isIndexDropEnabled(qq->rootIndex())) { + event->accept(); // allow dropping in empty areas + } + break; + } + } else { + dd->dropIndicatorRect = QRect(); + dd->dropIndicatorPosition = QAbstractItemView::OnViewport; + if (dd->isIndexDropEnabled(qq->rootIndex())) { + event->accept(); // allow dropping in empty areas + } + } + dd->viewport->update(); + } // can decode + + if (dd->shouldAutoScroll(event->pos())) + qq->startAutoScroll(); +} + #endif //QT_NO_DRAGANDDROP void QListModeViewBase::updateVerticalScrollBar(const QSize &step) @@ -2298,6 +2403,12 @@ QVector<QModelIndex> QListModeViewBase::intersectingSet(const QRect &area) const return ret; } +void QListModeViewBase::dataChanged(const QModelIndex &, const QModelIndex &) +{ + dd->doDelayedItemsLayout(); +} + + QRect QListModeViewBase::mapToViewport(const QRect &rect) const { if (isWrapping()) diff --git a/src/gui/itemviews/qlistview_p.h b/src/gui/itemviews/qlistview_p.h index de4c7f3..31459b0 100644 --- a/src/gui/itemviews/qlistview_p.h +++ b/src/gui/itemviews/qlistview_p.h @@ -130,6 +130,7 @@ public: virtual void clear() = 0; virtual void setRowCount(int) = 0; virtual QVector<QModelIndex> intersectingSet(const QRect &area) const = 0; + virtual void dataChanged(const QModelIndex &, const QModelIndex &) = 0; virtual int horizontalScrollToValue(int index, QListView::ScrollHint hint, bool leftOf, bool rightOf, const QRect &area, const QRect &rect) const; @@ -141,7 +142,6 @@ public: virtual int verticalOffset() const { return verticalScrollBar()->value(); } virtual void updateHorizontalScrollBar(const QSize &step); virtual void updateVerticalScrollBar(const QSize &step); - virtual void dataChanged(const QModelIndex &, const QModelIndex &) { } virtual void appendHiddenRow(int row); virtual void removeHiddenRow(int row); virtual void setPositionForIndex(const QPoint &, const QModelIndex &) { } @@ -217,6 +217,7 @@ public: void clear(); void setRowCount(int rowCount) { flowPositions.resize(rowCount); } QVector<QModelIndex> intersectingSet(const QRect &area) const; + void dataChanged(const QModelIndex &, const QModelIndex &); int horizontalScrollToValue(int index, QListView::ScrollHint hint, bool leftOf, bool rightOf,const QRect &area, const QRect &rect) const; @@ -231,6 +232,11 @@ public: #ifndef QT_NO_DRAGANDDROP void paintDragDrop(QPainter *painter); + + // The next two methods are to be used on LefToRight flow only. + // WARNING: Plenty of duplicated code from QAbstractItemView{,Private}. + QAbstractItemView::DropIndicatorPosition position(const QPoint &pos, const QRect &rect, const QModelIndex &idx) const; + void dragMoveEvent(QDragMoveEvent *e); #endif private: @@ -356,6 +362,10 @@ public: QItemSelection selection(const QRect &rect) const; void selectAll(QItemSelectionModel::SelectionFlags command); +#ifndef QT_NO_DRAGANDDROP + virtual QAbstractItemView::DropIndicatorPosition position(const QPoint &pos, const QRect &rect, const QModelIndex &idx) const; +#endif + inline void setGridSize(const QSize &size) { grid = size; } inline QSize gridSize() const { return grid; } inline void setWrapping(bool b) { wrap = b; } diff --git a/src/gui/itemviews/qlistwidget.cpp b/src/gui/itemviews/qlistwidget.cpp index a978d0f..5dd1d76 100644 --- a/src/gui/itemviews/qlistwidget.cpp +++ b/src/gui/itemviews/qlistwidget.cpp @@ -169,6 +169,20 @@ QListWidgetItem *QListModel::take(int row) return item; } +void QListModel::move(int srcRow, int dstRow) +{ + if (srcRow == dstRow + || srcRow < 0 || srcRow >= items.count() + || dstRow < 0 || dstRow >= items.count()) + return; + + beginMoveRows(QModelIndex(), srcRow, srcRow, QModelIndex(), dstRow); + if (srcRow < dstRow) + --dstRow; + items.move(srcRow, dstRow); + endMoveRows(); +} + int QListModel::rowCount(const QModelIndex &parent) const { return parent.isValid() ? 0 : items.count(); @@ -1804,22 +1818,15 @@ void QListWidget::dropEvent(QDropEvent *event) { if (persIndexes.contains(topIndex)) return; + qSort(persIndexes); // The dropped items will remain in the same visual order. QPersistentModelIndex dropRow = model()->index(row, col, topIndex); - QList<QListWidgetItem *> taken; - for (int i = 0; i < persIndexes.count(); ++i) - taken.append(takeItem(persIndexes.at(i).row())); - - // insert them back in at their new positions + int r = row == -1 ? count() : (dropRow.row() >= 0 ? dropRow.row() : row); for (int i = 0; i < persIndexes.count(); ++i) { - // Either at a specific point or appended - if (row == -1) { - insertItem(count(), taken.takeFirst()); - } else { - int r = dropRow.row() >= 0 ? dropRow.row() : row; - insertItem(qMin(r, count()), taken.takeFirst()); - } + const QPersistentModelIndex &pIndex = persIndexes.at(i); + d->listModel()->move(pIndex.row(), r); + r = pIndex.row() + 1; // Dropped items are inserted contiguously and in the right order. } event->accept(); diff --git a/src/gui/itemviews/qlistwidget_p.h b/src/gui/itemviews/qlistwidget_p.h index 69cfa26..b5f28e3 100644 --- a/src/gui/itemviews/qlistwidget_p.h +++ b/src/gui/itemviews/qlistwidget_p.h @@ -77,7 +77,7 @@ public: { return *i2 < *i1; } }; -class QListModel : public QAbstractListModel +class Q_AUTOTEST_EXPORT QListModel : public QAbstractListModel { Q_OBJECT public: @@ -90,6 +90,7 @@ public: void insert(int row, const QStringList &items); void remove(QListWidgetItem *item); QListWidgetItem *take(int row); + void move(int srcRow, int dstRow); int rowCount(const QModelIndex &parent = QModelIndex()) const; diff --git a/src/gui/itemviews/qstyleditemdelegate.cpp b/src/gui/itemviews/qstyleditemdelegate.cpp index 1c36787..1ca0391 100644 --- a/src/gui/itemviews/qstyleditemdelegate.cpp +++ b/src/gui/itemviews/qstyleditemdelegate.cpp @@ -148,7 +148,7 @@ public: \row \o \l Qt::BackgroundRole \o QBrush \row \o \l Qt::BackgroundColorRole \o QColor (obsolete; use Qt::BackgroundRole instead) \row \o \l Qt::CheckStateRole \o Qt::CheckState - \row \o \l Qt::DecorationRole \o QIcon and QColor + \row \o \l Qt::DecorationRole \o QIcon, QPixmap, QImage and QColor \row \o \l Qt::DisplayRole \o QString and types with a string representation \row \o \l Qt::EditRole \o See QItemEditorFactory for details \row \o \l Qt::FontRole \o QFont diff --git a/src/gui/itemviews/qtableview.cpp b/src/gui/itemviews/qtableview.cpp index 2a937f1..02e5fff 100644 --- a/src/gui/itemviews/qtableview.cpp +++ b/src/gui/itemviews/qtableview.cpp @@ -117,7 +117,7 @@ void QSpanCollection::updateSpan(QSpanCollection::Span *span, int old_height) Index::iterator it_y = index.lowerBound(-span->bottom()); Q_ASSERT(it_y != index.end()); //it_y must exist since the span is in the list while (-it_y.key() <= span->top() + old_height -1) { - if(-it_y.key() != span->bottom()) { + if (-it_y.key() > span->bottom()) { (*it_y).remove(-span->left()); if (it_y->isEmpty()) { it_y = index.erase(it_y) - 1; @@ -544,6 +544,47 @@ void QSpanCollection::updateRemovedColumns(int start, int end) qDeleteAll(toBeDeleted); } +#ifdef QT_BUILD_INTERNAL +/*! + \internal + Checks whether the span index structure is self-consistent, and consistent with the spans list. +*/ +bool QSpanCollection::checkConsistency() const +{ + for (Index::const_iterator it_y = index.begin(); it_y != index.end(); ++it_y) { + int y = -it_y.key(); + const SubIndex &subIndex = it_y.value(); + for (SubIndex::const_iterator it = subIndex.begin(); it != subIndex.end(); ++it) { + int x = -it.key(); + Span *span = it.value(); + if (!spans.contains(span) || span->left() != x + || y < span->top() || y > span->bottom()) + return false; + } + } + + foreach (const Span *span, spans) { + if (span->width() < 1 || span->height() < 1 + || (span->width() == 1 && span->height() == 1)) + return false; + for (int y = span->top(); y <= span->bottom(); ++y) { + Index::const_iterator it_y = index.find(-y); + if (it_y == index.end()) { + if (y == span->top()) + return false; + else + continue; + } + const SubIndex &subIndex = it_y.value(); + SubIndex::const_iterator it = subIndex.find(-span->left()); + if (it == subIndex.end() || it.value() != span) + return false; + } + } + return true; +} +#endif + class QTableCornerButton : public QAbstractButton { Q_OBJECT @@ -2065,6 +2106,8 @@ int QTableView::sizeHintForRow(int row) const if (!model()) return -1; + ensurePolished(); + int left = qMax(0, columnAt(0)); int right = columnAt(d->viewport->width()); if (right == -1) // the table don't have enough columns to fill the viewport @@ -2122,6 +2165,8 @@ int QTableView::sizeHintForColumn(int column) const if (!model()) return -1; + ensurePolished(); + int top = qMax(0, rowAt(0)); int bottom = rowAt(d->viewport->height()); if (!isVisible() || bottom == -1) // the table don't have enough rows to fill the viewport diff --git a/src/gui/itemviews/qtableview_p.h b/src/gui/itemviews/qtableview_p.h index 9fa14c2..6b19ded 100644 --- a/src/gui/itemviews/qtableview_p.h +++ b/src/gui/itemviews/qtableview_p.h @@ -74,7 +74,7 @@ QT_BEGIN_NAMESPACE * The key of the first map is the row where the subspan starts, the value of the first map is * a list (map) of all subspans that starts at the same row. It is indexed with its row */ -class QSpanCollection +class Q_AUTOTEST_EXPORT QSpanCollection { public: struct Span @@ -112,6 +112,10 @@ public: void updateRemovedRows(int start, int end); void updateRemovedColumns(int start, int end); +#ifdef QT_BUILD_INTERNAL + bool checkConsistency() const; +#endif + typedef QLinkedList<Span *> SpanList; SpanList spans; //lists of all spans private: diff --git a/src/gui/itemviews/qtreeview.cpp b/src/gui/itemviews/qtreeview.cpp index f37d8c7..3856293 100644 --- a/src/gui/itemviews/qtreeview.cpp +++ b/src/gui/itemviews/qtreeview.cpp @@ -1226,8 +1226,12 @@ bool QTreeView::viewportEvent(QEvent *event) if (oldIndex != newIndex) { QRect oldRect = visualRect(oldIndex); QRect newRect = visualRect(newIndex); - viewport()->update(oldRect.left() - d->indent, oldRect.top(), d->indent, oldRect.height()); - viewport()->update(newRect.left() - d->indent, newRect.top(), d->indent, newRect.height()); + oldRect.setLeft(oldRect.left() - d->indent); + newRect.setLeft(newRect.left() - d->indent); + //we need to paint the whole items (including the decoration) so that when the user + //moves the mouse over those elements they are updated + viewport()->update(oldRect); + viewport()->update(newRect); } } if (selectionBehavior() == QAbstractItemView::SelectRows) { @@ -1422,8 +1426,9 @@ void QTreeView::drawTree(QPainter *painter, const QRegion ®ion) const for (; i < viewItems.count() && y <= area.bottom(); ++i) { const int itemHeight = d->itemHeight(i); option.rect.setRect(0, y, viewportWidth, itemHeight); - option.state = state | (viewItems.at(i).expanded - ? QStyle::State_Open : QStyle::State_None); + option.state = state | (viewItems.at(i).expanded ? QStyle::State_Open : QStyle::State_None) + | (viewItems.at(i).hasChildren ? QStyle::State_Children : QStyle::State_None) + | (viewItems.at(i).hasMoreSiblings ? QStyle::State_Sibling : QStyle::State_None); d->current = i; d->spanning = viewItems.at(i).spanning; if (!multipleRects || !drawn.contains(i)) { @@ -1748,14 +1753,8 @@ void QTreeView::drawBranches(QPainter *painter, const QRect &rect, opt.rect = primitive; const bool expanded = viewItem.expanded; - const bool children = (((expanded && viewItem.total > 0)) // already laid out and has children - || d->hasVisibleChildren(index)); // not laid out yet, so we don't know - bool moreSiblings = false; - if (d->hiddenIndexes.isEmpty()) - moreSiblings = (d->model->rowCount(parent) - 1 > index.row()); - else - moreSiblings = ((d->viewItems.size() > item +1) - && (d->viewItems.at(item + 1).index.parent() == parent)); + const bool children = viewItem.hasChildren; + bool moreSiblings = viewItem.hasMoreSiblings; opt.state = QStyle::State_Item | extraFlags | (moreSiblings ? QStyle::State_Sibling : QStyle::State_None) @@ -1845,9 +1844,7 @@ void QTreeView::mouseDoubleClickEvent(QMouseEvent *event) return; // user clicked outside the items const QPersistentModelIndex firstColumnIndex = d->viewItems.at(i).index; - - int column = d->header->logicalIndexAt(event->x()); - QPersistentModelIndex persistent = firstColumnIndex.sibling(firstColumnIndex.row(), column); + const QPersistentModelIndex persistent = indexAt(event->pos()); if (d->pressedIndex != persistent) { mousePressEvent(event); @@ -2437,7 +2434,9 @@ void QTreeView::rowsInserted(const QModelIndex &parent, int start, int end) return; } - if (parent != d->root && !d->isIndexExpanded(parent) && d->model->rowCount(parent) > (end - start) + 1) { + const int parentRowCount = d->model->rowCount(parent); + const int delta = end - start + 1; + if (parent != d->root && !d->isIndexExpanded(parent) && parentRowCount > delta) { QAbstractItemView::rowsInserted(parent, start, end); return; } @@ -2452,11 +2451,29 @@ void QTreeView::rowsInserted(const QModelIndex &parent, int start, int end) ? d->viewItems.count() : d->viewItems.at(parentItem).total) - 1; - const int delta = end - start + 1; + if (parentRowCount == end + 1 && start > 0) { + //need to Update hasMoreSiblings + int previousRow = start - 1; + QModelIndex previousSibilingModelIndex = d->model->index(previousRow, 0, parent); + bool isHidden = d->isRowHidden(previousSibilingModelIndex); + while (isHidden && previousRow > 0) { + previousRow--; + previousSibilingModelIndex = d->model->index(previousRow, 0, parent); + isHidden = d->isRowHidden(previousSibilingModelIndex); + } + if (!isHidden) { + const int previousSibilling = d->viewIndex(previousSibilingModelIndex); + if(previousSibilling != -1) + d->viewItems[previousSibilling].hasMoreSiblings = true; + } + } + QVector<QTreeViewItem> insertedItems(delta); for (int i = 0; i < delta; ++i) { insertedItems[i].index = d->model->index(i + start, 0, parent); insertedItems[i].level = childLevel; + insertedItems[i].hasChildren = d->hasVisibleChildren(insertedItems[i].index); + insertedItems[i].hasMoreSiblings = !((i == delta - 1) && (parentRowCount == end +1)); } if (d->viewItems.isEmpty()) d->defaultItemHeight = indexRowSizeHint(insertedItems[0].index); @@ -2498,13 +2515,17 @@ void QTreeView::rowsInserted(const QModelIndex &parent, int start, int end) d->viewItems.begin() + insertPos + 1); } + if (parentItem != -1) + d->viewItems[parentItem].hasChildren = true; d->updateChildCount(parentItem, delta); + updateGeometries(); viewport()->update(); } else if ((parentItem != -1) && d->viewItems.at(parentItem).expanded) { d->doDelayedItemsLayout(); } else if (parentItem != -1 && (d->model->rowCount(parent) == end - start + 1)) { - // the parent just went from 0 children to having some update to re-paint the decoration + // the parent just went from 0 children to more. update to re-paint the decoration + d->viewItems[parentItem].hasChildren = true; viewport()->update(); } QAbstractItemView::rowsInserted(parent, start, end); @@ -3127,7 +3148,7 @@ void QTreeViewPrivate::layout(int i) int hidden = 0; int last = 0; int children = 0; - + QTreeViewItem *item = 0; for (int j = first; j < first + count; ++j) { current = model->index(j - first, 0, parent); if (isRowHidden(current)) { @@ -3135,17 +3156,25 @@ void QTreeViewPrivate::layout(int i) last = j - hidden + children; } else { last = j - hidden + children; - viewItems[last].index = current; - viewItems[last].level = level; - viewItems[last].height = 0; - viewItems[last].spanning = q->isFirstColumnSpanned(current.row(), parent); - viewItems[last].expanded = false; - viewItems[last].total = 0; + if (item) + item->hasMoreSiblings = true; + item = &viewItems[last]; + item->index = current; + item->level = level; + item->height = 0; + item->spanning = q->isFirstColumnSpanned(current.row(), parent); + item->expanded = false; + item->total = 0; + item->hasMoreSiblings = false; if (isIndexExpanded(current)) { - viewItems[last].expanded = true; + item->expanded = true; layout(last); - children += viewItems[last].total; + item = &viewItems[last]; + children += item->total; + item->hasChildren = item->total > 0; last = j - hidden + children; + } else { + item->hasChildren = hasVisibleChildren(current); } } } @@ -3701,6 +3730,7 @@ void QTreeViewPrivate::rowsRemoved(const QModelIndex &parent, const int delta = end - start + 1; + int previousSibiling = -1; int removedCount = 0; for (int item = firstChildItem; item <= lastChildItem; ) { Q_ASSERT(viewItems.at(item).level == childLevel); @@ -3708,6 +3738,7 @@ void QTreeViewPrivate::rowsRemoved(const QModelIndex &parent, //Q_ASSERT(modelIndex.parent() == parent); const int count = viewItems.at(item).total + 1; if (modelIndex.row() < start) { + previousSibiling = item; // not affected by the removal item += count; } else if (modelIndex.row() <= end) { @@ -3725,7 +3756,13 @@ void QTreeViewPrivate::rowsRemoved(const QModelIndex &parent, } } + if (previousSibiling != -1 && after && model->rowCount(parent) == start) + viewItems[previousSibiling].hasMoreSiblings = false; + + updateChildCount(parentItem, -removedCount); + if (parentItem != -1 && viewItems.at(parentItem).total == 0) + viewItems[parentItem].hasChildren = false; //every children have been removed; if (after) { q->updateGeometries(); viewport->update(); diff --git a/src/gui/itemviews/qtreeview_p.h b/src/gui/itemviews/qtreeview_p.h index def8253..aad5837 100644 --- a/src/gui/itemviews/qtreeview_p.h +++ b/src/gui/itemviews/qtreeview_p.h @@ -62,11 +62,14 @@ QT_BEGIN_NAMESPACE struct QTreeViewItem { - QTreeViewItem() : expanded(false), spanning(false), total(0), level(0), height(0) {} + QTreeViewItem() : expanded(false), spanning(false), hasChildren(false), + hasMoreSiblings(false), total(0), level(0), height(0) {} QModelIndex index; // we remove items whenever the indexes are invalidated uint expanded : 1; uint spanning : 1; - uint total : 30; // total number of children visible + uint hasChildren : 1; // if the item has visible children (even if collapsed) + uint hasMoreSiblings : 1; + uint total : 28; // total number of children visible uint level : 16; // indentation int height : 16; // row height }; diff --git a/src/gui/kernel/qactiongroup.cpp b/src/gui/kernel/qactiongroup.cpp index 40d18a2..8db76e4 100644 --- a/src/gui/kernel/qactiongroup.cpp +++ b/src/gui/kernel/qactiongroup.cpp @@ -72,10 +72,16 @@ void QActionGroupPrivate::_q_actionChanged() Q_Q(QActionGroup); QAction *action = qobject_cast<QAction*>(q->sender()); Q_ASSERT_X(action != 0, "QWidgetGroup::_q_actionChanged", "internal error"); - if(exclusive && action->isChecked() && action != current) { - if(current) - current->setChecked(false); - current = action; + if(exclusive) { + if (action->isChecked()) { + if (action != current) { + if(current) + current->setChecked(false); + current = action; + } + } else if (action == current) { + current = 0; + } } } diff --git a/src/gui/kernel/qapplication.cpp b/src/gui/kernel/qapplication.cpp index 30d3c7f..1694434 100644 --- a/src/gui/kernel/qapplication.cpp +++ b/src/gui/kernel/qapplication.cpp @@ -474,9 +474,6 @@ bool QApplicationPrivate::fade_tooltip = false; bool QApplicationPrivate::animate_toolbox = false; bool QApplicationPrivate::widgetCount = false; bool QApplicationPrivate::load_testability = false; -#if defined(Q_WS_WIN) && !defined(Q_WS_WINCE) -bool QApplicationPrivate::inSizeMove = false; -#endif #ifdef QT_KEYPAD_NAVIGATION # ifdef Q_OS_SYMBIAN Qt::NavigationMode QApplicationPrivate::navigationMode = Qt::NavigationModeKeypadDirectional; @@ -5644,7 +5641,9 @@ Qt::GestureType QApplication::registerGestureRecognizer(QGestureRecognizer *reco */ void QApplication::unregisterGestureRecognizer(Qt::GestureType type) { - QGestureManager::instance()->unregisterGestureRecognizer(type); + QApplicationPrivate *d = qApp->d_func(); + if (d->gestureManager) + d->gestureManager->unregisterGestureRecognizer(type); } QT_END_NAMESPACE diff --git a/src/gui/kernel/qapplication.h b/src/gui/kernel/qapplication.h index 5a8e325..5877ba4 100644 --- a/src/gui/kernel/qapplication.h +++ b/src/gui/kernel/qapplication.h @@ -288,8 +288,8 @@ public: static Qt::NavigationMode navigationMode(); #endif - Qt::GestureType registerGestureRecognizer(QGestureRecognizer *recognizer); - void unregisterGestureRecognizer(Qt::GestureType type); + static Qt::GestureType registerGestureRecognizer(QGestureRecognizer *recognizer); + static void unregisterGestureRecognizer(Qt::GestureType type); Q_SIGNALS: void lastWindowClosed(); diff --git a/src/gui/kernel/qapplication_p.h b/src/gui/kernel/qapplication_p.h index 65f61e9..0fa7269 100644 --- a/src/gui/kernel/qapplication_p.h +++ b/src/gui/kernel/qapplication_p.h @@ -441,9 +441,6 @@ public: #ifdef Q_WS_MAC static bool native_modal_dialog_active; #endif -#if defined(Q_WS_WIN) && !defined(Q_WS_WINCE) - static bool inSizeMove; -#endif static void setSystemPalette(const QPalette &pal); static void setPalette_helper(const QPalette &palette, const char* className, bool clearWidgetPaletteHash); diff --git a/src/gui/kernel/qapplication_win.cpp b/src/gui/kernel/qapplication_win.cpp index e84985e..d98ecbb 100644 --- a/src/gui/kernel/qapplication_win.cpp +++ b/src/gui/kernel/qapplication_win.cpp @@ -1918,11 +1918,9 @@ LRESULT CALLBACK QtWndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam #ifndef Q_WS_WINCE case WM_ENTERSIZEMOVE: autoCaptureWnd = hwnd; - QApplicationPrivate::inSizeMove = true; break; case WM_EXITSIZEMOVE: autoCaptureWnd = 0; - QApplicationPrivate::inSizeMove = false; break; #endif case WM_MOVE: // move window diff --git a/src/gui/kernel/qapplication_x11.cpp b/src/gui/kernel/qapplication_x11.cpp index bf95684..b0ab760 100644 --- a/src/gui/kernel/qapplication_x11.cpp +++ b/src/gui/kernel/qapplication_x11.cpp @@ -1625,6 +1625,7 @@ void qt_init(QApplicationPrivate *priv, int, // MIT-SHM X11->use_mitshm = false; + X11->use_mitshm_pixmaps = false; X11->mitshm_major = 0; X11->sip_serial = 0; @@ -1918,12 +1919,13 @@ void qt_init(QApplicationPrivate *priv, int, bool local = displayName.isEmpty() || displayName.lastIndexOf(QLatin1Char(':')) == 0; if (local && (qgetenv("QT_X11_NO_MITSHM").toInt() == 0)) { Visual *defaultVisual = DefaultVisual(X11->display, DefaultScreen(X11->display)); - X11->use_mitshm = mitshm_pixmaps && ((defaultVisual->red_mask == 0xff0000 - || defaultVisual->red_mask == 0xf800) - && (defaultVisual->green_mask == 0xff00 - || defaultVisual->green_mask == 0x7e0) - && (defaultVisual->blue_mask == 0xff - || defaultVisual->blue_mask == 0x1f)); + X11->use_mitshm = ((defaultVisual->red_mask == 0xff0000 + || defaultVisual->red_mask == 0xf800) + && (defaultVisual->green_mask == 0xff00 + || defaultVisual->green_mask == 0x7e0) + && (defaultVisual->blue_mask == 0xff + || defaultVisual->blue_mask == 0x1f)); + X11->use_mitshm_pixmaps = X11->use_mitshm && mitshm_pixmaps; } } #endif // QT_NO_MITSHM @@ -3750,6 +3752,12 @@ int QApplication::x11ProcessEvent(XEvent* event) qt_get_net_virtual_roots(); } else if (event->xproperty.atom == ATOM(_NET_WORKAREA)) { qt_desktopwidget_update_workarea(); + + // emit the workAreaResized() signal + QDesktopWidget *desktop = QApplication::desktop(); + int numScreens = desktop->numScreens(); + for (int i = 0; i < numScreens; ++i) + emit desktop->workAreaResized(i); } } else if (widget) { widget->translatePropertyEvent(event); diff --git a/src/gui/kernel/qclipboard_mac.cpp b/src/gui/kernel/qclipboard_mac.cpp index 3db647b..8892269 100644 --- a/src/gui/kernel/qclipboard_mac.cpp +++ b/src/gui/kernel/qclipboard_mac.cpp @@ -532,7 +532,7 @@ QMacPasteboard::retrieveData(const QString &format, QVariant::Type) const // Try to get the NSStringPboardType from NSPasteboard, newlines are mapped // correctly (as '\n') in this data. The 'public.utf16-plain-text' type // usually maps newlines to '\r' instead. - QString str = qt_mac_get_pasteboardString(); + QString str = qt_mac_get_pasteboardString(paste); if (!str.isEmpty()) return str; } diff --git a/src/gui/kernel/qclipboard_win.cpp b/src/gui/kernel/qclipboard_win.cpp index 7f7ef0c..0157052 100644 --- a/src/gui/kernel/qclipboard_win.cpp +++ b/src/gui/kernel/qclipboard_win.cpp @@ -51,6 +51,7 @@ #include "qmime.h" #include "qt_windows.h" #include "qdnd_p.h" +#include <private/qwidget_p.h> QT_BEGIN_NAMESPACE @@ -140,6 +141,9 @@ public: clipBoardViewer = new QWidget(); clipBoardViewer->createWinId(); clipBoardViewer->setObjectName(QLatin1String("internal clipboard owner")); + // We dont need this internal widget to appear in QApplication::topLevelWidgets() + if (QWidgetPrivate::allWidgets) + QWidgetPrivate::allWidgets->remove(clipBoardViewer); } ~QClipboardData() diff --git a/src/gui/kernel/qclipboard_x11.cpp b/src/gui/kernel/qclipboard_x11.cpp index 9621944..22d7c9e 100644 --- a/src/gui/kernel/qclipboard_x11.cpp +++ b/src/gui/kernel/qclipboard_x11.cpp @@ -78,6 +78,7 @@ #include "qimagewriter.h" #include "qvariant.h" #include "qdnd_p.h" +#include <private/qwidget_p.h> #ifndef QT_NO_XFIXES #include <X11/extensions/Xfixes.h> @@ -131,6 +132,11 @@ void setupOwner() requestor = new QWidget(0); requestor->createWinId(); requestor->setObjectName(QLatin1String("internal clipboard requestor")); + // We dont need this internal widgets to appear in QApplication::topLevelWidgets() + if (QWidgetPrivate::allWidgets) { + QWidgetPrivate::allWidgets->remove(owner); + QWidgetPrivate::allWidgets->remove(requestor); + } qAddPostRoutine(cleanup); } @@ -769,6 +775,9 @@ QByteArray QX11Data::clipboardReadIncrementalProperty(Window win, Atom property, delete requestor; requestor = new QWidget(0); requestor->setObjectName(QLatin1String("internal clipboard requestor")); + // We dont need this internal widget to appear in QApplication::topLevelWidgets() + if (QWidgetPrivate::allWidgets) + QWidgetPrivate::allWidgets->remove(requestor); return QByteArray(); } diff --git a/src/gui/kernel/qcocoaview_mac.mm b/src/gui/kernel/qcocoaview_mac.mm index ecc6bc9..a16d1f8 100644 --- a/src/gui/kernel/qcocoaview_mac.mm +++ b/src/gui/kernel/qcocoaview_mac.mm @@ -745,7 +745,7 @@ extern "C" { { qMacDnDParams()->view = self; qMacDnDParams()->theEvent = theEvent; - bool mouseOK = qt_mac_handleMouseEvent(self, theEvent, QEvent::MouseMove, Qt::LeftButton); + bool mouseOK = qt_mac_handleMouseEvent(self, theEvent, QEvent::MouseMove, Qt::NoButton); if (!mouseOK) [super mouseDragged:theEvent]; @@ -755,7 +755,7 @@ extern "C" { { qMacDnDParams()->view = self; qMacDnDParams()->theEvent = theEvent; - bool mouseOK = qt_mac_handleMouseEvent(self, theEvent, QEvent::MouseMove, Qt::RightButton); + bool mouseOK = qt_mac_handleMouseEvent(self, theEvent, QEvent::MouseMove, Qt::NoButton); if (!mouseOK) [super rightMouseDragged:theEvent]; @@ -765,8 +765,7 @@ extern "C" { { qMacDnDParams()->view = self; qMacDnDParams()->theEvent = theEvent; - Qt::MouseButton mouseButton = cocoaButton2QtButton([theEvent buttonNumber]); - bool mouseOK = qt_mac_handleMouseEvent(self, theEvent, QEvent::MouseMove, mouseButton); + bool mouseOK = qt_mac_handleMouseEvent(self, theEvent, QEvent::MouseMove, Qt::NoButton); if (!mouseOK) [super otherMouseDragged:theEvent]; diff --git a/src/gui/kernel/qdesktopwidget_x11.cpp b/src/gui/kernel/qdesktopwidget_x11.cpp index 02a2c82..14eb976 100644 --- a/src/gui/kernel/qdesktopwidget_x11.cpp +++ b/src/gui/kernel/qdesktopwidget_x11.cpp @@ -384,10 +384,8 @@ void QDesktopWidget::resizeEvent(QResizeEvent *event) Q_D(QDesktopWidget); int oldScreenCount = d->screenCount; QVector<QRect> oldRects(oldScreenCount); - QVector<QRect> oldWorks(oldScreenCount); for (int i = 0; i < oldScreenCount; ++i) { oldRects[i] = d->rects[i]; - oldWorks[i] = d->workareas[i]; } d->init(); @@ -397,13 +395,6 @@ void QDesktopWidget::resizeEvent(QResizeEvent *event) emit resized(i); } - // ### workareas are just reset by init, not filled with new values - // ### so this will not work correctly - for (int j = 0; j < qMin(oldScreenCount, d->screenCount); ++j) { - if (oldWorks.at(j) != d->workareas[j]) - emit workAreaResized(j); - } - if (oldScreenCount != d->screenCount) { emit screenCountChanged(d->screenCount); } diff --git a/src/gui/kernel/qevent.cpp b/src/gui/kernel/qevent.cpp index bf9479f..ac597e4 100644 --- a/src/gui/kernel/qevent.cpp +++ b/src/gui/kernel/qevent.cpp @@ -4262,7 +4262,12 @@ QGesture *QGestureEvent::gesture(Qt::GestureType type) const */ QList<QGesture *> QGestureEvent::activeGestures() const { - return d_func()->gestures; + QList<QGesture *> gestures; + foreach (QGesture *gesture, d_func()->gestures) { + if (gesture->state() != Qt::GestureCanceled) + gestures.append(gesture); + } + return gestures; } /*! @@ -4270,7 +4275,12 @@ QList<QGesture *> QGestureEvent::activeGestures() const */ QList<QGesture *> QGestureEvent::canceledGestures() const { - return d_func()->gestures; + QList<QGesture *> gestures; + foreach (QGesture *gesture, d_func()->gestures) { + if (gesture->state() == Qt::GestureCanceled) + gestures.append(gesture); + } + return gestures; } /*! @@ -4288,9 +4298,8 @@ QList<QGesture *> QGestureEvent::canceledGestures() const */ void QGestureEvent::setAccepted(QGesture *gesture, bool value) { - setAccepted(false); if (gesture) - d_func()->accepted[gesture->gestureType()] = value; + setAccepted(gesture->gestureType(), value); } /*! @@ -4304,7 +4313,8 @@ void QGestureEvent::setAccepted(QGesture *gesture, bool value) */ void QGestureEvent::accept(QGesture *gesture) { - setAccepted(gesture, true); + if (gesture) + setAccepted(gesture->gestureType(), true); } /*! @@ -4318,7 +4328,8 @@ void QGestureEvent::accept(QGesture *gesture) */ void QGestureEvent::ignore(QGesture *gesture) { - setAccepted(gesture, false); + if (gesture) + setAccepted(gesture->gestureType(), false); } /*! @@ -4326,10 +4337,69 @@ void QGestureEvent::ignore(QGesture *gesture) */ bool QGestureEvent::isAccepted(QGesture *gesture) const { - return gesture ? d_func()->accepted.value(gesture->gestureType(), true) : false; + return gesture ? isAccepted(gesture->gestureType()) : false; +} + +/*! + Sets the accept flag of the given \a gestureType object to the specified + \a value. + + Setting the accept flag indicates that the event receiver wants the \a gesture. + Unwanted gestures may be propagated to the parent widget. + + By default, gestures in events of type QEvent::Gesture are accepted, and + gestures in QEvent::GestureOverride events are ignored. + + For convenience, the accept flag can also be set with + \l{QGestureEvent::accept()}{accept(gestureType)}, and cleared with + \l{QGestureEvent::ignore()}{ignore(gestureType)}. +*/ +void QGestureEvent::setAccepted(Qt::GestureType gestureType, bool value) +{ + setAccepted(false); + d_func()->accepted[gestureType] = value; +} + +/*! + Sets the accept flag of the given \a gestureType, the equivalent of calling + \l{QGestureEvent::setAccepted()}{setAccepted(gestureType, true)}. + + Setting the accept flag indicates that the event receiver wants the + gesture. Unwanted gestures may be propagated to the parent widget. + + \sa QGestureEvent::ignore() +*/ +void QGestureEvent::accept(Qt::GestureType gestureType) +{ + setAccepted(gestureType, true); } /*! + Clears the accept flag parameter of the given \a gestureType, the equivalent + of calling \l{QGestureEvent::setAccepted()}{setAccepted(gesture, false)}. + + Clearing the accept flag indicates that the event receiver does not + want the gesture. Unwanted gestures may be propgated to the parent widget. + + \sa QGestureEvent::accept() +*/ +void QGestureEvent::ignore(Qt::GestureType gestureType) +{ + setAccepted(gestureType, false); +} + +/*! + Returns true if the gesture of type \a gestureType is accepted; otherwise + returns false. +*/ +bool QGestureEvent::isAccepted(Qt::GestureType gestureType) const +{ + return d_func()->accepted.value(gestureType, true); +} + +/*! + \internal + Sets the widget for this event. */ void QGestureEvent::setWidget(QWidget *widget) diff --git a/src/gui/kernel/qevent.h b/src/gui/kernel/qevent.h index d6b1dc1..141ccad 100644 --- a/src/gui/kernel/qevent.h +++ b/src/gui/kernel/qevent.h @@ -851,6 +851,11 @@ public: void ignore(QGesture *); bool isAccepted(QGesture *) const; + void setAccepted(Qt::GestureType, bool); + void accept(Qt::GestureType); + void ignore(Qt::GestureType); + bool isAccepted(Qt::GestureType) const; + void setWidget(QWidget *widget); QWidget *widget() const; diff --git a/src/gui/kernel/qgesture.cpp b/src/gui/kernel/qgesture.cpp index a161876..850f22c 100644 --- a/src/gui/kernel/qgesture.cpp +++ b/src/gui/kernel/qgesture.cpp @@ -69,10 +69,9 @@ QT_BEGIN_NAMESPACE \section1 Lifecycle of a Gesture Object - A QGesture instance is created when the application calls QWidget::grabGesture() - or QGraphicsObject::grabGesture() to configure a widget or graphics object (the - target object) for gesture input. One gesture object is created for each target - object. + A QGesture instance is implicitly created when needed and is owned by Qt. + Developers should never destroy them or store them for later use as Qt may + destroy particular instances of them and create new ones to replace them. The registered gesture recognizer monitors the input events for the target object via its \l{QGestureRecognizer::}{filterEvent()} function, updating the @@ -133,8 +132,8 @@ QGesture::~QGesture() QWidget::mapFromGlobal() or QGestureEvent::mapToScene() to get a local hot-spot. - If the hot-spot is not set, the targetObject is used as the receiver of the - gesture event. + The hot-spot should be set by the gesture recognizer to allow gesture event + delivery to a QGraphicsObject. */ /*! @@ -175,6 +174,29 @@ void QGesture::unsetHotSpot() } /*! + \enum QGesture::GestureCancelPolicy + + This enum describes how accepting a gesture can cancel other gestures + automatically. + + \value CancelNone On accepting this gesture no other gestures will be affected. + \value CancelAllInContext On accepting this gesture all gestures that are active + in the context (Qt::GestureContext) will be cancelled. +*/ + +void QGesture::setGestureCancelPolicy(GestureCancelPolicy policy) +{ + Q_D(QGesture); + d->gestureCancelPolicy = static_cast<uint>(policy); +} + +QGesture::GestureCancelPolicy QGesture::gestureCancelPolicy() const +{ + Q_D(const QGesture); + return static_cast<GestureCancelPolicy>(d->gestureCancelPolicy); +} + +/*! \class QPanGesture \since 4.6 \brief The QPanGesture class describes a panning gesture made by the user. @@ -195,6 +217,16 @@ void QGesture::unsetHotSpot() */ /*! + \property QGesture::GestureCancelPolicy + \brief the policy for deciding what happens on accepting a gesture + + On accepting one gesture Qt can automatically cancel other gestures + that belong to other targets. The policy is normally set to not cancel + any other gestures and can be set to cancel all active gestures in the + context. For example for all child widgets. +*/ + +/*! \property QPanGesture::lastOffset \brief the last offset recorded for this gesture diff --git a/src/gui/kernel/qgesture.h b/src/gui/kernel/qgesture.h index 6469959..524d26e 100644 --- a/src/gui/kernel/qgesture.h +++ b/src/gui/kernel/qgesture.h @@ -65,6 +65,7 @@ class Q_GUI_EXPORT QGesture : public QObject Q_PROPERTY(Qt::GestureState state READ state) Q_PROPERTY(Qt::GestureType gestureType READ gestureType) + Q_PROPERTY(QGesture::GestureCancelPolicy gestureCancelPolicy READ gestureCancelPolicy WRITE setGestureCancelPolicy) Q_PROPERTY(QPointF hotSpot READ hotSpot WRITE setHotSpot RESET unsetHotSpot) Q_PROPERTY(bool hasHotSpot READ hasHotSpot) @@ -81,6 +82,14 @@ public: bool hasHotSpot() const; void unsetHotSpot(); + enum GestureCancelPolicy { + CancelNone = 0, + CancelAllInContext + }; + + void setGestureCancelPolicy(GestureCancelPolicy policy); + GestureCancelPolicy gestureCancelPolicy() const; + protected: QGesture(QGesturePrivate &dd, QObject *parent); @@ -208,6 +217,7 @@ public: QT_END_NAMESPACE +Q_DECLARE_METATYPE(QGesture::GestureCancelPolicy) QT_END_HEADER #endif // QGESTURE_H diff --git a/src/gui/kernel/qgesture_p.h b/src/gui/kernel/qgesture_p.h index 975c0c9..34fbb26 100644 --- a/src/gui/kernel/qgesture_p.h +++ b/src/gui/kernel/qgesture_p.h @@ -67,16 +67,17 @@ class QGesturePrivate : public QObjectPrivate public: QGesturePrivate() - : gestureType(Qt::CustomGesture), state(Qt::NoGesture), isHotSpotSet(false), - targetObject(0) + : gestureType(Qt::CustomGesture), state(Qt::NoGesture), + isHotSpotSet(false), gestureCancelPolicy(0) + { } Qt::GestureType gestureType; Qt::GestureState state; QPointF hotSpot; - bool isHotSpotSet; - QObject *targetObject; + uint isHotSpotSet : 1; + uint gestureCancelPolicy : 2; }; class QPanGesturePrivate : public QGesturePrivate diff --git a/src/gui/kernel/qgesturemanager.cpp b/src/gui/kernel/qgesturemanager.cpp index 5ad607b..0a88a24 100644 --- a/src/gui/kernel/qgesturemanager.cpp +++ b/src/gui/kernel/qgesturemanager.cpp @@ -65,7 +65,7 @@ QT_BEGIN_NAMESPACE QGestureManager::QGestureManager(QObject *parent) - : QObject(parent), state(NotGesture), lastCustomGestureId(0) + : QObject(parent), state(NotGesture), m_lastCustomGestureId(0) { qRegisterMetaType<Qt::GestureState>(); @@ -82,7 +82,12 @@ QGestureManager::QGestureManager(QObject *parent) QGestureManager::~QGestureManager() { - + qDeleteAll(m_recognizers.values()); + foreach (QGestureRecognizer *recognizer, m_obsoleteGestures.keys()) { + qDeleteAll(m_obsoleteGestures.value(recognizer)); + delete recognizer; + } + m_obsoleteGestures.clear(); } Qt::GestureType QGestureManager::registerGestureRecognizer(QGestureRecognizer *recognizer) @@ -96,20 +101,55 @@ Qt::GestureType QGestureManager::registerGestureRecognizer(QGestureRecognizer *r Qt::GestureType type = dummy->gestureType(); if (type == Qt::CustomGesture) { // generate a new custom gesture id - ++lastCustomGestureId; - type = Qt::GestureType(Qt::CustomGesture + lastCustomGestureId); + ++m_lastCustomGestureId; + type = Qt::GestureType(Qt::CustomGesture + m_lastCustomGestureId); } - recognizers.insertMulti(type, recognizer); + m_recognizers.insertMulti(type, recognizer); delete dummy; return type; } -void QGestureManager::unregisterGestureRecognizer(Qt::GestureType) +void QGestureManager::unregisterGestureRecognizer(Qt::GestureType type) { + QList<QGestureRecognizer *> list = m_recognizers.values(type); + m_recognizers.remove(type); + foreach (QGesture *g, m_gestureToRecognizer.keys()) { + QGestureRecognizer *recognizer = m_gestureToRecognizer.value(g); + if (list.contains(recognizer)) { + m_deletedRecognizers.insert(g, recognizer); + m_gestureToRecognizer.remove(g); + } + } + foreach (QGestureRecognizer *recognizer, list) { + QList<QGesture *> obsoleteGestures; + QMap<ObjectGesture, QList<QGesture *> >::Iterator iter = m_objectGestures.begin(); + while (iter != m_objectGestures.end()) { + ObjectGesture objectGesture = iter.key(); + if (objectGesture.gesture == type) + obsoleteGestures << iter.value(); + ++iter; + } + m_obsoleteGestures.insert(recognizer, obsoleteGestures); + } } -QGesture *QGestureManager::getState(QObject *object, Qt::GestureType type) +void QGestureManager::cleanupCachedGestures(QObject *target, Qt::GestureType type) +{ + QMap<ObjectGesture, QList<QGesture *> >::Iterator iter = m_objectGestures.begin(); + while (iter != m_objectGestures.end()) { + ObjectGesture objectGesture = iter.key(); + if (objectGesture.gesture == type && target == objectGesture.object.data()) { + qDeleteAll(iter.value()); + iter = m_objectGestures.erase(iter); + } else { + ++iter; + } + } +} + +// get or create a QGesture object that will represent the state for a given object, used by the recognizer +QGesture *QGestureManager::getState(QObject *object, QGestureRecognizer *recognizer, Qt::GestureType type) { // if the widget is being deleted we should be carefull and not to // create a new state, as it will create QWeakPointer which doesnt work @@ -123,31 +163,35 @@ QGesture *QGestureManager::getState(QObject *object, Qt::GestureType type) Q_ASSERT(qobject_cast<QGraphicsObject *>(object)); } - QGesture *state = - objectGestures.value(QGestureManager::ObjectGesture(object, type)); - if (!state) { - QGestureRecognizer *recognizer = recognizers.value(type); - if (recognizer) { - state = recognizer->createGesture(object); - if (!state) - return 0; - if (state->gestureType() == Qt::CustomGesture) { - // if the recognizer didn't fill in the gesture type, then this - // is a custom gesture with autogenerated it and we fill it. - state->d_func()->gestureType = type; + QList<QGesture *> states = + m_objectGestures.value(QGestureManager::ObjectGesture(object, type)); + // check if the QGesture for this recognizer has already been created + foreach (QGesture *state, states) { + if (m_gestureToRecognizer.value(state) == recognizer) + return state; + } + + Q_ASSERT(recognizer); + QGesture *state = recognizer->createGesture(object); + if (!state) + return 0; + state->setParent(this); + if (state->gestureType() == Qt::CustomGesture) { + // if the recognizer didn't fill in the gesture type, then this + // is a custom gesture with autogenerated id and we fill it. + state->d_func()->gestureType = type; #if defined(GESTURE_DEBUG) - state->setObjectName(QString::number((int)type)); + state->setObjectName(QString::number((int)type)); #endif - } - objectGestures.insert(QGestureManager::ObjectGesture(object, type), state); - gestureToRecognizer[state] = recognizer; - gestureOwners[state] = object; - } } + m_objectGestures[QGestureManager::ObjectGesture(object, type)].append(state); + m_gestureToRecognizer[state] = recognizer; + m_gestureOwners[state] = object; + return state; } -bool QGestureManager::filterEventThroughContexts(const QMap<QObject *, +bool QGestureManager::filterEventThroughContexts(const QMultiHash<QObject *, Qt::GestureType> &contexts, QEvent *event) { @@ -160,61 +204,63 @@ bool QGestureManager::filterEventThroughContexts(const QMap<QObject *, // TODO: sort contexts by the gesture type and check if one of the contexts // is already active. + bool ret = false; + // filter the event through recognizers - typedef QMap<QObject *, Qt::GestureType>::const_iterator ContextIterator; + typedef QHash<QObject *, Qt::GestureType>::const_iterator ContextIterator; for (ContextIterator cit = contexts.begin(), ce = contexts.end(); cit != ce; ++cit) { Qt::GestureType gestureType = cit.value(); QMap<Qt::GestureType, QGestureRecognizer *>::const_iterator - rit = recognizers.lowerBound(gestureType), - re = recognizers.upperBound(gestureType); + rit = m_recognizers.lowerBound(gestureType), + re = m_recognizers.upperBound(gestureType); for (; rit != re; ++rit) { QGestureRecognizer *recognizer = rit.value(); QObject *target = cit.key(); - QGesture *state = getState(target, gestureType); + QGesture *state = getState(target, recognizer, gestureType); if (!state) continue; QGestureRecognizer::Result result = recognizer->filterEvent(state, target, event); QGestureRecognizer::Result type = result & QGestureRecognizer::ResultState_Mask; if (type == QGestureRecognizer::GestureTriggered) { - DEBUG() << "QGestureManager: gesture triggered: " << state; + DEBUG() << "QGestureManager:Recognizer: gesture triggered: " << state; triggeredGestures << state; } else if (type == QGestureRecognizer::GestureFinished) { - DEBUG() << "QGestureManager: gesture finished: " << state; + DEBUG() << "QGestureManager:Recognizer: gesture finished: " << state; finishedGestures << state; } else if (type == QGestureRecognizer::MaybeGesture) { - DEBUG() << "QGestureManager: maybe gesture: " << state; + DEBUG() << "QGestureManager:Recognizer: maybe gesture: " << state; newMaybeGestures << state; } else if (type == QGestureRecognizer::NotGesture) { - DEBUG() << "QGestureManager: not gesture: " << state; + DEBUG() << "QGestureManager:Recognizer: not gesture: " << state; notGestures << state; } else if (type == QGestureRecognizer::Ignore) { - DEBUG() << "QGestureManager: gesture ignored the event: " << state; + DEBUG() << "QGestureManager:Recognizer: ignored the event: " << state; } else { - DEBUG() << "QGestureManager: hm, lets assume the recognizer" + DEBUG() << "QGestureManager:Recognizer: hm, lets assume the recognizer" << "ignored the event: " << state; } if (result & QGestureRecognizer::ConsumeEventHint) { DEBUG() << "QGestureManager: we were asked to consume the event: " << state; - //TODO: consume events if asked + ret = true; } } } - QSet<QGesture *> startedGestures = triggeredGestures - activeGestures; - triggeredGestures &= activeGestures; + QSet<QGesture *> startedGestures = triggeredGestures - m_activeGestures; + triggeredGestures &= m_activeGestures; // check if a running gesture switched back to maybe state - QSet<QGesture *> activeToMaybeGestures = activeGestures & newMaybeGestures; + QSet<QGesture *> activeToMaybeGestures = m_activeGestures & newMaybeGestures; // check if a running gesture switched back to not gesture state, // i.e. were canceled - QSet<QGesture *> activeToCancelGestures = activeGestures & notGestures; + QSet<QGesture *> activeToCancelGestures = m_activeGestures & notGestures; canceledGestures += activeToCancelGestures; // start timers for new gestures in maybe state foreach (QGesture *state, newMaybeGestures) { - QBasicTimer &timer = maybeGestures[state]; + QBasicTimer &timer = m_maybeGestures[state]; if (!timer.isActive()) timer.start(3000, this); } @@ -223,11 +269,11 @@ bool QGestureManager::filterEventThroughContexts(const QMap<QObject *, | finishedGestures | canceledGestures | notGestures); foreach(QGesture *gesture, notMaybeGestures) { - QMap<QGesture *, QBasicTimer>::iterator it = - maybeGestures.find(gesture); - if (it != maybeGestures.end()) { + QHash<QGesture *, QBasicTimer>::iterator it = + m_maybeGestures.find(gesture); + if (it != m_maybeGestures.end()) { it.value().stop(); - maybeGestures.erase(it); + m_maybeGestures.erase(it); } } @@ -238,7 +284,7 @@ bool QGestureManager::filterEventThroughContexts(const QMap<QObject *, Q_ASSERT((finishedGestures & canceledGestures).isEmpty()); Q_ASSERT((canceledGestures & newMaybeGestures).isEmpty()); - QSet<QGesture *> notStarted = finishedGestures - activeGestures; + QSet<QGesture *> notStarted = finishedGestures - m_activeGestures; if (!notStarted.isEmpty()) { // there are some gestures that claim to be finished, but never started. // probably those are "singleshot" gestures so we'll fake the started state. @@ -249,12 +295,12 @@ bool QGestureManager::filterEventThroughContexts(const QMap<QObject *, finishedGestures -= undeliveredGestures; } - activeGestures += startedGestures; + m_activeGestures += startedGestures; // sanity check: all triggered gestures should already be in active gestures list - Q_ASSERT((activeGestures & triggeredGestures).size() == triggeredGestures.size()); - activeGestures -= finishedGestures; - activeGestures -= activeToMaybeGestures; - activeGestures -= canceledGestures; + Q_ASSERT((m_activeGestures & triggeredGestures).size() == triggeredGestures.size()); + m_activeGestures -= finishedGestures; + m_activeGestures -= activeToMaybeGestures; + m_activeGestures -= canceledGestures; // set the proper gesture state on each gesture foreach (QGesture *gesture, startedGestures) @@ -268,12 +314,12 @@ bool QGestureManager::filterEventThroughContexts(const QMap<QObject *, foreach (QGesture *gesture, activeToMaybeGestures) gesture->d_func()->state = Qt::GestureFinished; - if (!activeGestures.isEmpty() || !maybeGestures.isEmpty() || + if (!m_activeGestures.isEmpty() || !m_maybeGestures.isEmpty() || !startedGestures.isEmpty() || !triggeredGestures.isEmpty() || !finishedGestures.isEmpty() || !canceledGestures.isEmpty()) { - DEBUG() << "QGestureManager::filterEvent:" - << "\n\tactiveGestures:" << activeGestures - << "\n\tmaybeGestures:" << maybeGestures.keys() + DEBUG() << "QGestureManager::filterEventThroughContexts:" + << "\n\tactiveGestures:" << m_activeGestures + << "\n\tmaybeGestures:" << m_maybeGestures.keys() << "\n\tstarted:" << startedGestures << "\n\ttriggered:" << triggeredGestures << "\n\tfinished:" << finishedGestures @@ -284,24 +330,114 @@ bool QGestureManager::filterEventThroughContexts(const QMap<QObject *, deliverEvents(startedGestures+triggeredGestures+finishedGestures+canceledGestures, &undeliveredGestures); - activeGestures -= undeliveredGestures; + foreach (QGesture *g, startedGestures) { + if (undeliveredGestures.contains(g)) + continue; + if (g->gestureCancelPolicy() == QGesture::CancelAllInContext) { + DEBUG() << "lets try to cancel some"; + // find gestures in context in Qt::GestureStarted or Qt::GestureUpdated state and cancel them + cancelGesturesForChildren(g); + } + } + + m_activeGestures -= undeliveredGestures; // reset gestures that ended QSet<QGesture *> endedGestures = finishedGestures + canceledGestures + undeliveredGestures; foreach (QGesture *gesture, endedGestures) { - if (QGestureRecognizer *recognizer = gestureToRecognizer.value(gesture, 0)) { + if (QGestureRecognizer *recognizer = m_gestureToRecognizer.value(gesture, 0)) { + gesture->setGestureCancelPolicy(QGesture::CancelNone); recognizer->reset(gesture); + } else { + cleanupGesturesForRemovedRecognizer(gesture); + } + m_gestureTargets.remove(gesture); + } + return ret; +} + +// Cancel all gestures of children of the widget that original is associated with +void QGestureManager::cancelGesturesForChildren(QGesture *original) +{ + Q_ASSERT(original); + QWidget *originatingWidget = m_gestureTargets.value(original); + Q_ASSERT(originatingWidget); + + // iterate over all active gestures and all maybe gestures + // for each find the owner + // if the owner is part of our sub-hierarchy, cancel it. + + QSet<QGesture*> cancelledGestures; + QSet<QGesture*>::Iterator iter = m_activeGestures.begin(); + while (iter != m_activeGestures.end()) { + QWidget *widget = m_gestureTargets.value(*iter); + // note that we don't touch the gestures for our originatingWidget + if (widget != originatingWidget && originatingWidget->isAncestorOf(widget)) { + DEBUG() << " found a gesture to cancel" << (*iter); + (*iter)->d_func()->state = Qt::GestureCanceled; + cancelledGestures << *iter; + iter = m_activeGestures.erase(iter); + } else { + ++iter; } - gestureTargets.remove(gesture); } - return false; + + // TODO handle 'maybe' gestures too + + // sort them per target widget by cherry picking from almostCanceledGestures and delivering + QSet<QGesture *> almostCanceledGestures = cancelledGestures; + while (!almostCanceledGestures.isEmpty()) { + QWidget *target = 0; + QSet<QGesture*> gestures; + iter = almostCanceledGestures.begin(); + // sort per target widget + while (iter != almostCanceledGestures.end()) { + QWidget *widget = m_gestureTargets.value(*iter); + if (target == 0) + target = widget; + if (target == widget) { + gestures << *iter; + iter = almostCanceledGestures.erase(iter); + } else { + ++iter; + } + } + Q_ASSERT(target); + + QSet<QGesture*> undeliveredGestures; + deliverEvents(gestures, &undeliveredGestures); + } + + for (iter = cancelledGestures.begin(); iter != cancelledGestures.end(); ++iter) { + QGestureRecognizer *recognizer = m_gestureToRecognizer.value(*iter, 0); + if (recognizer) { + (*iter)->setGestureCancelPolicy(QGesture::CancelNone); + recognizer->reset(*iter); + } else { + cleanupGesturesForRemovedRecognizer(*iter); + } + } +} + +void QGestureManager::cleanupGesturesForRemovedRecognizer(QGesture *gesture) +{ + QGestureRecognizer *recognizer = m_deletedRecognizers.value(gesture); + Q_ASSERT(recognizer); + m_deletedRecognizers.remove(gesture); + if (m_deletedRecognizers.keys(recognizer).isEmpty()) { + // no more active gestures, cleanup! + qDeleteAll(m_obsoleteGestures.value(recognizer)); + m_obsoleteGestures.remove(recognizer); + delete recognizer; + } } +// return true if accepted (consumed) bool QGestureManager::filterEvent(QWidget *receiver, QEvent *event) { QSet<Qt::GestureType> types; - QMap<QObject *, Qt::GestureType> contexts; + QMultiHash<QObject *, Qt::GestureType> contexts; QWidget *w = receiver; typedef QMap<Qt::GestureType, Qt::GestureContext>::const_iterator ContextIterator; if (!w->d_func()->gestureContext.isEmpty()) { @@ -335,7 +471,7 @@ bool QGestureManager::filterEvent(QWidget *receiver, QEvent *event) bool QGestureManager::filterEvent(QGraphicsObject *receiver, QEvent *event) { QSet<Qt::GestureType> types; - QMap<QObject *, Qt::GestureType> contexts; + QMultiHash<QObject *, Qt::GestureType> contexts; QGraphicsObject *item = receiver; if (!item->QGraphicsItem::d_func()->gestureContext.isEmpty()) { typedef QMap<Qt::GestureType, Qt::GestureContext>::const_iterator ContextIterator; @@ -353,8 +489,10 @@ bool QGestureManager::filterEvent(QGraphicsObject *receiver, QEvent *event) for (ContextIterator it = item->QGraphicsItem::d_func()->gestureContext.begin(), e = item->QGraphicsItem::d_func()->gestureContext.end(); it != e; ++it) { if (it.value() == Qt::ItemWithChildrenGesture) { - if (!types.contains(it.key())) + if (!types.contains(it.key())) { + types.insert(it.key()); contexts.insertMulti(item, it.key()); + } } } item = item->parentObject(); @@ -365,7 +503,7 @@ bool QGestureManager::filterEvent(QGraphicsObject *receiver, QEvent *event) bool QGestureManager::filterEvent(QGesture *state, QEvent *event) { - QMap<QObject *, Qt::GestureType> contexts; + QMultiHash<QObject *, Qt::GestureType> contexts; contexts.insert(state, state->gestureType()); return filterEventThroughContexts(contexts, event); } @@ -379,7 +517,7 @@ void QGestureManager::getGestureTargets(const QSet<QGesture*> &gestures, // sort gestures by types foreach (QGesture *gesture, gestures) { - QWidget *receiver = gestureTargets.value(gesture, 0); + QWidget *receiver = m_gestureTargets.value(gesture, 0); Q_ASSERT(receiver); gestureByTypes[gesture->gestureType()].insert(receiver, gesture); } @@ -428,7 +566,7 @@ void QGestureManager::deliverEvents(const QSet<QGesture *> &gestures, for (QSet<QGesture *>::const_iterator it = gestures.begin(), e = gestures.end(); it != e; ++it) { QGesture *gesture = *it; - QWidget *target = gestureTargets.value(gesture, 0); + QWidget *target = m_gestureTargets.value(gesture, 0); if (!target) { // the gesture has just started and doesn't have a target yet. Q_ASSERT(gesture->state() == Qt::GestureStarted); @@ -440,12 +578,12 @@ void QGestureManager::deliverEvents(const QSet<QGesture *> &gestures, } } else { // or use the context of the gesture - QObject *context = gestureOwners.value(gesture, 0); + QObject *context = m_gestureOwners.value(gesture, 0); if (context->isWidgetType()) target = static_cast<QWidget *>(context); } if (target) - gestureTargets.insert(gesture, target); + m_gestureTargets.insert(gesture, target); } Qt::GestureType gestureType = gesture->gestureType(); @@ -497,7 +635,7 @@ void QGestureManager::deliverEvents(const QSet<QGesture *> &gestures, QList<QGesture *> &gestures = normalStartedGestures[w]; gestures.append(gesture); // override the target - gestureTargets[gesture] = w; + m_gestureTargets[gesture] = w; } else { DEBUG() << "override event: gesture wasn't accepted. putting back:" << gesture; QList<QGesture *> &gestures = normalStartedGestures[receiver]; @@ -520,20 +658,24 @@ void QGestureManager::deliverEvents(const QSet<QGesture *> &gestures, void QGestureManager::timerEvent(QTimerEvent *event) { - QMap<QGesture*, QBasicTimer>::iterator it = maybeGestures.begin(), - e = maybeGestures.end(); + QHash<QGesture *, QBasicTimer>::iterator it = m_maybeGestures.begin(), + e = m_maybeGestures.end(); for (; it != e; ) { QBasicTimer &timer = it.value(); Q_ASSERT(timer.isActive()); if (timer.timerId() == event->timerId()) { timer.stop(); QGesture *gesture = it.key(); - it = maybeGestures.erase(it); + it = m_maybeGestures.erase(it); DEBUG() << "QGestureManager::timerEvent: gesture stopped due to timeout:" << gesture; - QGestureRecognizer *recognizer = gestureToRecognizer.value(gesture, 0); - if (recognizer) + QGestureRecognizer *recognizer = m_gestureToRecognizer.value(gesture, 0); + if (recognizer) { + gesture->setGestureCancelPolicy(QGesture::CancelNone); recognizer->reset(gesture); + } else { + cleanupGesturesForRemovedRecognizer(gesture); + } } else { ++it; } diff --git a/src/gui/kernel/qgesturemanager_p.h b/src/gui/kernel/qgesturemanager_p.h index 8199e02..1e0734b 100644 --- a/src/gui/kernel/qgesturemanager_p.h +++ b/src/gui/kernel/qgesturemanager_p.h @@ -81,16 +81,18 @@ public: // declared in qapplication.cpp static QGestureManager* instance(); + void cleanupCachedGestures(QObject *target, Qt::GestureType type); + protected: void timerEvent(QTimerEvent *event); - bool filterEventThroughContexts(const QMap<QObject *, Qt::GestureType> &contexts, + bool filterEventThroughContexts(const QMultiHash<QObject *, Qt::GestureType> &contexts, QEvent *event); private: - QMultiMap<Qt::GestureType, QGestureRecognizer *> recognizers; + QMultiMap<Qt::GestureType, QGestureRecognizer *> m_recognizers; - QSet<QGesture *> activeGestures; - QMap<QGesture *, QBasicTimer> maybeGestures; + QSet<QGesture *> m_activeGestures; + QHash<QGesture *, QBasicTimer> m_maybeGestures; enum State { Gesture, @@ -106,7 +108,7 @@ private: Qt::GestureType gesture; ObjectGesture(QObject *o, const Qt::GestureType &g) : object(o), gesture(g) { } - inline bool operator<(const ObjectGesture& rhs) const + inline bool operator<(const ObjectGesture &rhs) const { if (object.data() < rhs.object.data()) return true; @@ -116,20 +118,27 @@ private: } }; - QMap<ObjectGesture, QGesture *> objectGestures; - QMap<QGesture *, QGestureRecognizer *> gestureToRecognizer; - QHash<QGesture *, QObject *> gestureOwners; + QMap<ObjectGesture, QList<QGesture *> > m_objectGestures; + QHash<QGesture *, QGestureRecognizer *> m_gestureToRecognizer; + QHash<QGesture *, QObject *> m_gestureOwners; + + QHash<QGesture *, QWidget *> m_gestureTargets; - QHash<QGesture *, QWidget *> gestureTargets; + int m_lastCustomGestureId; - int lastCustomGestureId; + QHash<QGestureRecognizer *, QList<QGesture *> > m_obsoleteGestures; + QHash<QGesture *, QGestureRecognizer *> m_deletedRecognizers; + void cleanupGesturesForRemovedRecognizer(QGesture *gesture); - QGesture *getState(QObject *widget, Qt::GestureType gesture); + QGesture *getState(QObject *widget, QGestureRecognizer *recognizer, + Qt::GestureType gesture); void deliverEvents(const QSet<QGesture *> &gestures, QSet<QGesture *> *undeliveredGestures); void getGestureTargets(const QSet<QGesture*> &gestures, QMap<QWidget *, QList<QGesture *> > *conflicts, QMap<QWidget *, QList<QGesture *> > *normal); + + void cancelGesturesForChildren(QGesture *originatingGesture); }; QT_END_NAMESPACE diff --git a/src/gui/kernel/qgesturerecognizer.cpp b/src/gui/kernel/qgesturerecognizer.cpp index ba3a750..2673be3 100644 --- a/src/gui/kernel/qgesturerecognizer.cpp +++ b/src/gui/kernel/qgesturerecognizer.cpp @@ -100,7 +100,7 @@ QT_BEGIN_NAMESPACE */ /*! - \enum QGestureRecognizer::ResultFlags + \enum QGestureRecognizer::ResultFlag This enum describes the result of the current event filtering step in a gesture recognizer state machine. @@ -178,7 +178,7 @@ void QGestureRecognizer::reset(QGesture *gesture) QGesturePrivate *d = gesture->d_func(); d->state = Qt::NoGesture; d->hotSpot = QPointF(); - d->targetObject = 0; + d->isHotSpotSet = false; } } diff --git a/src/gui/kernel/qgesturerecognizer.h b/src/gui/kernel/qgesturerecognizer.h index efd8565..a3c990d 100644 --- a/src/gui/kernel/qgesturerecognizer.h +++ b/src/gui/kernel/qgesturerecognizer.h @@ -56,7 +56,7 @@ class QGesture; class Q_GUI_EXPORT QGestureRecognizer { public: - enum ResultFlags + enum ResultFlag { Ignore = 0x0001, NotGesture = 0x0002, @@ -73,7 +73,7 @@ public: ResultHint_Mask = 0xff00 }; - Q_DECLARE_FLAGS(Result, ResultFlags) + Q_DECLARE_FLAGS(Result, ResultFlag) QGestureRecognizer(); virtual ~QGestureRecognizer(); diff --git a/src/gui/kernel/qguiplatformplugin.cpp b/src/gui/kernel/qguiplatformplugin.cpp index 6e074a1..b01d40f 100644 --- a/src/gui/kernel/qguiplatformplugin.cpp +++ b/src/gui/kernel/qguiplatformplugin.cpp @@ -288,6 +288,8 @@ int QGuiPlatformPlugin::platformHint(PlatformHint hint) #endif //by default keep ret = 0 so QCommonStyle will use the style default break; + default: + break; } return ret; } diff --git a/src/gui/kernel/qkeymapper_x11.cpp b/src/gui/kernel/qkeymapper_x11.cpp index 0ce77fe..8164589 100644 --- a/src/gui/kernel/qkeymapper_x11.cpp +++ b/src/gui/kernel/qkeymapper_x11.cpp @@ -714,47 +714,144 @@ extern bool qt_sm_blockUserInput; #define XK_KP_Delete 0xFF9F #endif -// the next lines are taken from XFree > 4.0 (X11/XF86keysyms.h), defining some special +// the next lines are taken on 10/2009 from X.org (X11/XF86keysym.h), defining some special // multimedia keys. They are included here as not every system has them. -#define XF86XK_Standby 0x1008FF10 -#define XF86XK_AudioLowerVolume 0x1008FF11 -#define XF86XK_AudioMute 0x1008FF12 -#define XF86XK_AudioRaiseVolume 0x1008FF13 -#define XF86XK_AudioPlay 0x1008FF14 -#define XF86XK_AudioStop 0x1008FF15 -#define XF86XK_AudioPrev 0x1008FF16 -#define XF86XK_AudioNext 0x1008FF17 -#define XF86XK_HomePage 0x1008FF18 -#define XF86XK_Calculator 0x1008FF1D -#define XF86XK_Mail 0x1008FF19 -#define XF86XK_Start 0x1008FF1A -#define XF86XK_Search 0x1008FF1B -#define XF86XK_AudioRecord 0x1008FF1C -#define XF86XK_Back 0x1008FF26 -#define XF86XK_Forward 0x1008FF27 -#define XF86XK_Stop 0x1008FF28 -#define XF86XK_Refresh 0x1008FF29 -#define XF86XK_Favorites 0x1008FF30 -#define XF86XK_AudioPause 0x1008FF31 -#define XF86XK_AudioMedia 0x1008FF32 -#define XF86XK_MyComputer 0x1008FF33 -#define XF86XK_OpenURL 0x1008FF38 -#define XF86XK_Launch0 0x1008FF40 -#define XF86XK_Launch1 0x1008FF41 -#define XF86XK_Launch2 0x1008FF42 -#define XF86XK_Launch3 0x1008FF43 -#define XF86XK_Launch4 0x1008FF44 -#define XF86XK_Launch5 0x1008FF45 -#define XF86XK_Launch6 0x1008FF46 -#define XF86XK_Launch7 0x1008FF47 -#define XF86XK_Launch8 0x1008FF48 -#define XF86XK_Launch9 0x1008FF49 -#define XF86XK_LaunchA 0x1008FF4A -#define XF86XK_LaunchB 0x1008FF4B -#define XF86XK_LaunchC 0x1008FF4C -#define XF86XK_LaunchD 0x1008FF4D -#define XF86XK_LaunchE 0x1008FF4E -#define XF86XK_LaunchF 0x1008FF4F +#define XF86XK_MonBrightnessUp 0x1008FF02 +#define XF86XK_MonBrightnessDown 0x1008FF03 +#define XF86XK_KbdLightOnOff 0x1008FF04 +#define XF86XK_KbdBrightnessUp 0x1008FF05 +#define XF86XK_KbdBrightnessDown 0x1008FF06 +#define XF86XK_Standby 0x1008FF10 +#define XF86XK_AudioLowerVolume 0x1008FF11 +#define XF86XK_AudioMute 0x1008FF12 +#define XF86XK_AudioRaiseVolume 0x1008FF13 +#define XF86XK_AudioPlay 0x1008FF14 +#define XF86XK_AudioStop 0x1008FF15 +#define XF86XK_AudioPrev 0x1008FF16 +#define XF86XK_AudioNext 0x1008FF17 +#define XF86XK_HomePage 0x1008FF18 +#define XF86XK_Mail 0x1008FF19 +#define XF86XK_Start 0x1008FF1A +#define XF86XK_Search 0x1008FF1B +#define XF86XK_AudioRecord 0x1008FF1C +#define XF86XK_Calculator 0x1008FF1D +#define XF86XK_Memo 0x1008FF1E +#define XF86XK_ToDoList 0x1008FF1F +#define XF86XK_Calendar 0x1008FF20 +#define XF86XK_PowerDown 0x1008FF21 +#define XF86XK_ContrastAdjust 0x1008FF22 +#define XF86XK_Back 0x1008FF26 +#define XF86XK_Forward 0x1008FF27 +#define XF86XK_Stop 0x1008FF28 +#define XF86XK_Refresh 0x1008FF29 +#define XF86XK_PowerOff 0x1008FF2A +#define XF86XK_WakeUp 0x1008FF2B +#define XF86XK_Eject 0x1008FF2C +#define XF86XK_ScreenSaver 0x1008FF2D +#define XF86XK_WWW 0x1008FF2E +#define XF86XK_Sleep 0x1008FF2F +#define XF86XK_Favorites 0x1008FF30 +#define XF86XK_AudioPause 0x1008FF31 +#define XF86XK_AudioMedia 0x1008FF32 +#define XF86XK_MyComputer 0x1008FF33 +#define XF86XK_LightBulb 0x1008FF35 +#define XF86XK_Shop 0x1008FF36 +#define XF86XK_History 0x1008FF37 +#define XF86XK_OpenURL 0x1008FF38 +#define XF86XK_AddFavorite 0x1008FF39 +#define XF86XK_HotLinks 0x1008FF3A +#define XF86XK_BrightnessAdjust 0x1008FF3B +#define XF86XK_Finance 0x1008FF3C +#define XF86XK_Community 0x1008FF3D +#define XF86XK_AudioRewind 0x1008FF3E +#define XF86XK_BackForward 0x1008FF3F +#define XF86XK_Launch0 0x1008FF40 +#define XF86XK_Launch1 0x1008FF41 +#define XF86XK_Launch2 0x1008FF42 +#define XF86XK_Launch3 0x1008FF43 +#define XF86XK_Launch4 0x1008FF44 +#define XF86XK_Launch5 0x1008FF45 +#define XF86XK_Launch6 0x1008FF46 +#define XF86XK_Launch7 0x1008FF47 +#define XF86XK_Launch8 0x1008FF48 +#define XF86XK_Launch9 0x1008FF49 +#define XF86XK_LaunchA 0x1008FF4A +#define XF86XK_LaunchB 0x1008FF4B +#define XF86XK_LaunchC 0x1008FF4C +#define XF86XK_LaunchD 0x1008FF4D +#define XF86XK_LaunchE 0x1008FF4E +#define XF86XK_LaunchF 0x1008FF4F +#define XF86XK_ApplicationLeft 0x1008FF50 +#define XF86XK_ApplicationRight 0x1008FF51 +#define XF86XK_Book 0x1008FF52 +#define XF86XK_CD 0x1008FF53 +#define XF86XK_Calculater 0x1008FF54 +#define XF86XK_Clear 0x1008FF55 +#define XF86XK_ClearGrab 0x1008FE21 +#define XF86XK_Close 0x1008FF56 +#define XF86XK_Copy 0x1008FF57 +#define XF86XK_Cut 0x1008FF58 +#define XF86XK_Display 0x1008FF59 +#define XF86XK_DOS 0x1008FF5A +#define XF86XK_Documents 0x1008FF5B +#define XF86XK_Excel 0x1008FF5C +#define XF86XK_Explorer 0x1008FF5D +#define XF86XK_Game 0x1008FF5E +#define XF86XK_Go 0x1008FF5F +#define XF86XK_iTouch 0x1008FF60 +#define XF86XK_LogOff 0x1008FF61 +#define XF86XK_Market 0x1008FF62 +#define XF86XK_Meeting 0x1008FF63 +#define XF86XK_MenuKB 0x1008FF65 +#define XF86XK_MenuPB 0x1008FF66 +#define XF86XK_MySites 0x1008FF67 +#define XF86XK_News 0x1008FF69 +#define XF86XK_OfficeHome 0x1008FF6A +#define XF86XK_Option 0x1008FF6C +#define XF86XK_Paste 0x1008FF6D +#define XF86XK_Phone 0x1008FF6E +#define XF86XK_Reply 0x1008FF72 +#define XF86XK_Reload 0x1008FF73 +#define XF86XK_RotateWindows 0x1008FF74 +#define XF86XK_RotationPB 0x1008FF75 +#define XF86XK_RotationKB 0x1008FF76 +#define XF86XK_Save 0x1008FF77 +#define XF86XK_Send 0x1008FF7B +#define XF86XK_Spell 0x1008FF7C +#define XF86XK_SplitScreen 0x1008FF7D +#define XF86XK_Support 0x1008FF7E +#define XF86XK_TaskPane 0x1008FF7F +#define XF86XK_Terminal 0x1008FF80 +#define XF86XK_Tools 0x1008FF81 +#define XF86XK_Travel 0x1008FF82 +#define XF86XK_Video 0x1008FF87 +#define XF86XK_Word 0x1008FF89 +#define XF86XK_Xfer 0x1008FF8A +#define XF86XK_ZoomIn 0x1008FF8B +#define XF86XK_ZoomOut 0x1008FF8C +#define XF86XK_Away 0x1008FF8D +#define XF86XK_Messenger 0x1008FF8E +#define XF86XK_WebCam 0x1008FF8F +#define XF86XK_MailForward 0x1008FF90 +#define XF86XK_Pictures 0x1008FF91 +#define XF86XK_Music 0x1008FF92 +#define XF86XK_Battery 0x1008FF93 +#define XF86XK_Bluetooth 0x1008FF94 +#define XF86XK_WLAN 0x1008FF95 +#define XF86XK_UWB 0x1008FF96 +#define XF86XK_AudioForward 0x1008FF97 +#define XF86XK_AudioRepeat 0x1008FF98 +#define XF86XK_AudioRandomPlay 0x1008FF99 +#define XF86XK_Subtitle 0x1008FF9A +#define XF86XK_AudioCycleTrack 0x1008FF9B +#define XF86XK_Time 0x1008FF9F +#define XF86XK_Select 0x1008FFA0 +#define XF86XK_View 0x1008FFA1 +#define XF86XK_TopMenu 0x1008FFA2 +#define XF86XK_Suspend 0x1008FFA7 +#define XF86XK_Hibernate 0x1008FFA8 + + // end of XF86keysyms.h // Special keys used by Qtopia, mapped into the X11 private keypad range. @@ -942,10 +1039,8 @@ static const unsigned int KeyTbl[] = { XK_dead_hook, Qt::Key_Dead_Hook, XK_dead_horn, Qt::Key_Dead_Horn, - // Special multimedia keys - // currently only tested with MS internet keyboard - - // browsing keys + // Special keys from X.org - This include multimedia keys, + // wireless/bluetooth/uwb keys, special launcher keys, etc. XF86XK_Back, Qt::Key_Back, XF86XK_Forward, Qt::Key_Forward, XF86XK_Stop, Qt::Key_Stop, @@ -955,8 +1050,6 @@ static const unsigned int KeyTbl[] = { XF86XK_OpenURL, Qt::Key_OpenUrl, XF86XK_HomePage, Qt::Key_HomePage, XF86XK_Search, Qt::Key_Search, - - // media keys XF86XK_AudioLowerVolume, Qt::Key_VolumeDown, XF86XK_AudioMute, Qt::Key_VolumeMute, XF86XK_AudioRaiseVolume, Qt::Key_VolumeUp, @@ -965,13 +1058,106 @@ static const unsigned int KeyTbl[] = { XF86XK_AudioPrev, Qt::Key_MediaPrevious, XF86XK_AudioNext, Qt::Key_MediaNext, XF86XK_AudioRecord, Qt::Key_MediaRecord, - - // launch keys XF86XK_Mail, Qt::Key_LaunchMail, XF86XK_MyComputer, Qt::Key_Launch0, - XF86XK_Calculator, Qt::Key_Launch1, + XF86XK_Calculator, Qt::Key_Calculator, + XF86XK_Memo, Qt::Key_Memo, + XF86XK_ToDoList, Qt::Key_ToDoList, + XF86XK_Calendar, Qt::Key_Calendar, + XF86XK_PowerDown, Qt::Key_PowerDown, + XF86XK_ContrastAdjust, Qt::Key_ContrastAdjust, XF86XK_Standby, Qt::Key_Standby, - + XF86XK_MonBrightnessUp, Qt::Key_MonBrightnessUp, + XF86XK_MonBrightnessDown, Qt::Key_MonBrightnessDown, + XF86XK_KbdLightOnOff, Qt::Key_KeyboardLightOnOff, + XF86XK_KbdBrightnessUp, Qt::Key_KeyboardBrightnessUp, + XF86XK_KbdBrightnessDown, Qt::Key_KeyboardBrightnessDown, + XF86XK_PowerOff, Qt::Key_PowerOff, + XF86XK_WakeUp, Qt::Key_WakeUp, + XF86XK_Eject, Qt::Key_Eject, + XF86XK_ScreenSaver, Qt::Key_ScreenSaver, + XF86XK_WWW, Qt::Key_WWW, + XF86XK_Sleep, Qt::Key_Sleep, + XF86XK_LightBulb, Qt::Key_LightBulb, + XF86XK_Shop, Qt::Key_Shop, + XF86XK_History, Qt::Key_History, + XF86XK_AddFavorite, Qt::Key_AddFavorite, + XF86XK_HotLinks, Qt::Key_HotLinks, + XF86XK_BrightnessAdjust, Qt::Key_BrightnessAdjust, + XF86XK_Finance, Qt::Key_Finance, + XF86XK_Community, Qt::Key_Community, + XF86XK_AudioRewind, Qt::Key_AudioRewind, + XF86XK_BackForward, Qt::Key_BackForward, + XF86XK_ApplicationLeft, Qt::Key_ApplicationLeft, + XF86XK_ApplicationRight, Qt::Key_ApplicationRight, + XF86XK_Book, Qt::Key_Book, + XF86XK_CD, Qt::Key_CD, + XF86XK_Calculater, Qt::Key_Calculator, + XF86XK_Clear, Qt::Key_Clear, + XF86XK_ClearGrab, Qt::Key_ClearGrab, + XF86XK_Close, Qt::Key_Close, + XF86XK_Copy, Qt::Key_Copy, + XF86XK_Cut, Qt::Key_Cut, + XF86XK_Display, Qt::Key_Display, + XF86XK_DOS, Qt::Key_DOS, + XF86XK_Documents, Qt::Key_Documents, + XF86XK_Excel, Qt::Key_Excel, + XF86XK_Explorer, Qt::Key_Explorer, + XF86XK_Game, Qt::Key_Game, + XF86XK_Go, Qt::Key_Go, + XF86XK_iTouch, Qt::Key_iTouch, + XF86XK_LogOff, Qt::Key_LogOff, + XF86XK_Market, Qt::Key_Market, + XF86XK_Meeting, Qt::Key_Meeting, + XF86XK_MenuKB, Qt::Key_MenuKB, + XF86XK_MenuPB, Qt::Key_MenuPB, + XF86XK_MySites, Qt::Key_MySites, + XF86XK_News, Qt::Key_News, + XF86XK_OfficeHome, Qt::Key_OfficeHome, + XF86XK_Option, Qt::Key_Option, + XF86XK_Paste, Qt::Key_Paste, + XF86XK_Phone, Qt::Key_Phone, + XF86XK_Reply, Qt::Key_Reply, + XF86XK_Reload, Qt::Key_Reload, + XF86XK_RotateWindows, Qt::Key_RotateWindows, + XF86XK_RotationPB, Qt::Key_RotationPB, + XF86XK_RotationKB, Qt::Key_RotationKB, + XF86XK_Save, Qt::Key_Save, + XF86XK_Send, Qt::Key_Send, + XF86XK_Spell, Qt::Key_Spell, + XF86XK_SplitScreen, Qt::Key_SplitScreen, + XF86XK_Support, Qt::Key_Support, + XF86XK_TaskPane, Qt::Key_TaskPane, + XF86XK_Terminal, Qt::Key_Terminal, + XF86XK_Tools, Qt::Key_Tools, + XF86XK_Travel, Qt::Key_Travel, + XF86XK_Video, Qt::Key_Video, + XF86XK_Word, Qt::Key_Word, + XF86XK_Xfer, Qt::Key_Xfer, + XF86XK_ZoomIn, Qt::Key_ZoomIn, + XF86XK_ZoomOut, Qt::Key_ZoomOut, + XF86XK_Away, Qt::Key_Away, + XF86XK_Messenger, Qt::Key_Messenger, + XF86XK_WebCam, Qt::Key_WebCam, + XF86XK_MailForward, Qt::Key_MailForward, + XF86XK_Pictures, Qt::Key_Pictures, + XF86XK_Music, Qt::Key_Music, + XF86XK_Battery, Qt::Key_Battery, + XF86XK_Bluetooth, Qt::Key_Bluetooth, + XF86XK_WLAN, Qt::Key_WLAN, + XF86XK_UWB, Qt::Key_UWB, + XF86XK_AudioForward, Qt::Key_AudioForward, + XF86XK_AudioRepeat, Qt::Key_AudioRepeat, + XF86XK_AudioRandomPlay, Qt::Key_AudioRandomPlay, + XF86XK_Subtitle, Qt::Key_Subtitle, + XF86XK_AudioCycleTrack, Qt::Key_AudioCycleTrack, + XF86XK_Time, Qt::Key_Time, + XF86XK_Select, Qt::Key_Select, + XF86XK_View, Qt::Key_View, + XF86XK_TopMenu, Qt::Key_TopMenu, + XF86XK_Bluetooth, Qt::Key_Bluetooth, + XF86XK_Suspend, Qt::Key_Suspend, + XF86XK_Hibernate, Qt::Key_Hibernate, XF86XK_Launch0, Qt::Key_Launch2, XF86XK_Launch1, Qt::Key_Launch3, XF86XK_Launch2, Qt::Key_Launch4, diff --git a/src/gui/kernel/qkeysequence.cpp b/src/gui/kernel/qkeysequence.cpp index b44ef7f..1a76083 100644 --- a/src/gui/kernel/qkeysequence.cpp +++ b/src/gui/kernel/qkeysequence.cpp @@ -416,47 +416,139 @@ static const struct { { Qt::Key_Menu, QT_TRANSLATE_NOOP("QShortcut", "Menu") }, { Qt::Key_Help, QT_TRANSLATE_NOOP("QShortcut", "Help") }, - // Multimedia keys - { Qt::Key_Back, QT_TRANSLATE_NOOP("QShortcut", "Back") }, - { Qt::Key_Forward, QT_TRANSLATE_NOOP("QShortcut", "Forward") }, - { Qt::Key_Stop, QT_TRANSLATE_NOOP("QShortcut", "Stop") }, - { Qt::Key_Refresh, QT_TRANSLATE_NOOP("QShortcut", "Refresh") }, - { Qt::Key_VolumeDown, QT_TRANSLATE_NOOP("QShortcut", "Volume Down") }, - { Qt::Key_VolumeMute, QT_TRANSLATE_NOOP("QShortcut", "Volume Mute") }, - { Qt::Key_VolumeUp, QT_TRANSLATE_NOOP("QShortcut", "Volume Up") }, - { Qt::Key_BassBoost, QT_TRANSLATE_NOOP("QShortcut", "Bass Boost") }, - { Qt::Key_BassUp, QT_TRANSLATE_NOOP("QShortcut", "Bass Up") }, - { Qt::Key_BassDown, QT_TRANSLATE_NOOP("QShortcut", "Bass Down") }, - { Qt::Key_TrebleUp, QT_TRANSLATE_NOOP("QShortcut", "Treble Up") }, - { Qt::Key_TrebleDown, QT_TRANSLATE_NOOP("QShortcut", "Treble Down") }, - { Qt::Key_MediaPlay, QT_TRANSLATE_NOOP("QShortcut", "Media Play") }, - { Qt::Key_MediaStop, QT_TRANSLATE_NOOP("QShortcut", "Media Stop") }, - { Qt::Key_MediaPrevious,QT_TRANSLATE_NOOP("QShortcut", "Media Previous") }, - { Qt::Key_MediaNext, QT_TRANSLATE_NOOP("QShortcut", "Media Next") }, - { Qt::Key_MediaRecord, QT_TRANSLATE_NOOP("QShortcut", "Media Record") }, - { Qt::Key_HomePage, QT_TRANSLATE_NOOP("QShortcut", "Home Page") }, - { Qt::Key_Favorites, QT_TRANSLATE_NOOP("QShortcut", "Favorites") }, - { Qt::Key_Search, QT_TRANSLATE_NOOP("QShortcut", "Search") }, - { Qt::Key_Standby, QT_TRANSLATE_NOOP("QShortcut", "Standby") }, - { Qt::Key_OpenUrl, QT_TRANSLATE_NOOP("QShortcut", "Open URL") }, - { Qt::Key_LaunchMail, QT_TRANSLATE_NOOP("QShortcut", "Launch Mail") }, - { Qt::Key_LaunchMedia, QT_TRANSLATE_NOOP("QShortcut", "Launch Media") }, - { Qt::Key_Launch0, QT_TRANSLATE_NOOP("QShortcut", "Launch (0)") }, - { Qt::Key_Launch1, QT_TRANSLATE_NOOP("QShortcut", "Launch (1)") }, - { Qt::Key_Launch2, QT_TRANSLATE_NOOP("QShortcut", "Launch (2)") }, - { Qt::Key_Launch3, QT_TRANSLATE_NOOP("QShortcut", "Launch (3)") }, - { Qt::Key_Launch4, QT_TRANSLATE_NOOP("QShortcut", "Launch (4)") }, - { Qt::Key_Launch5, QT_TRANSLATE_NOOP("QShortcut", "Launch (5)") }, - { Qt::Key_Launch6, QT_TRANSLATE_NOOP("QShortcut", "Launch (6)") }, - { Qt::Key_Launch7, QT_TRANSLATE_NOOP("QShortcut", "Launch (7)") }, - { Qt::Key_Launch8, QT_TRANSLATE_NOOP("QShortcut", "Launch (8)") }, - { Qt::Key_Launch9, QT_TRANSLATE_NOOP("QShortcut", "Launch (9)") }, - { Qt::Key_LaunchA, QT_TRANSLATE_NOOP("QShortcut", "Launch (A)") }, - { Qt::Key_LaunchB, QT_TRANSLATE_NOOP("QShortcut", "Launch (B)") }, - { Qt::Key_LaunchC, QT_TRANSLATE_NOOP("QShortcut", "Launch (C)") }, - { Qt::Key_LaunchD, QT_TRANSLATE_NOOP("QShortcut", "Launch (D)") }, - { Qt::Key_LaunchE, QT_TRANSLATE_NOOP("QShortcut", "Launch (E)") }, - { Qt::Key_LaunchF, QT_TRANSLATE_NOOP("QShortcut", "Launch (F)") }, + // Special keys + // Includes multimedia, launcher, lan keys ( bluetooth, wireless ) + // window navigation + { Qt::Key_Back, QT_TRANSLATE_NOOP("QShortcut", "Back") }, + { Qt::Key_Forward, QT_TRANSLATE_NOOP("QShortcut", "Forward") }, + { Qt::Key_Stop, QT_TRANSLATE_NOOP("QShortcut", "Stop") }, + { Qt::Key_Refresh, QT_TRANSLATE_NOOP("QShortcut", "Refresh") }, + { Qt::Key_VolumeDown, QT_TRANSLATE_NOOP("QShortcut", "Volume Down") }, + { Qt::Key_VolumeMute, QT_TRANSLATE_NOOP("QShortcut", "Volume Mute") }, + { Qt::Key_VolumeUp, QT_TRANSLATE_NOOP("QShortcut", "Volume Up") }, + { Qt::Key_BassBoost, QT_TRANSLATE_NOOP("QShortcut", "Bass Boost") }, + { Qt::Key_BassUp, QT_TRANSLATE_NOOP("QShortcut", "Bass Up") }, + { Qt::Key_BassDown, QT_TRANSLATE_NOOP("QShortcut", "Bass Down") }, + { Qt::Key_TrebleUp, QT_TRANSLATE_NOOP("QShortcut", "Treble Up") }, + { Qt::Key_TrebleDown, QT_TRANSLATE_NOOP("QShortcut", "Treble Down") }, + { Qt::Key_MediaPlay, QT_TRANSLATE_NOOP("QShortcut", "Media Play") }, + { Qt::Key_MediaStop, QT_TRANSLATE_NOOP("QShortcut", "Media Stop") }, + { Qt::Key_MediaPrevious, QT_TRANSLATE_NOOP("QShortcut", "Media Previous") }, + { Qt::Key_MediaNext, QT_TRANSLATE_NOOP("QShortcut", "Media Next") }, + { Qt::Key_MediaRecord, QT_TRANSLATE_NOOP("QShortcut", "Media Record") }, + { Qt::Key_HomePage, QT_TRANSLATE_NOOP("QShortcut", "Home Page") }, + { Qt::Key_Favorites, QT_TRANSLATE_NOOP("QShortcut", "Favorites") }, + { Qt::Key_Search, QT_TRANSLATE_NOOP("QShortcut", "Search") }, + { Qt::Key_Standby, QT_TRANSLATE_NOOP("QShortcut", "Standby") }, + { Qt::Key_OpenUrl, QT_TRANSLATE_NOOP("QShortcut", "Open URL") }, + { Qt::Key_LaunchMail, QT_TRANSLATE_NOOP("QShortcut", "Launch Mail") }, + { Qt::Key_LaunchMedia, QT_TRANSLATE_NOOP("QShortcut", "Launch Media") }, + { Qt::Key_Launch0, QT_TRANSLATE_NOOP("QShortcut", "Launch (0)") }, + { Qt::Key_Launch1, QT_TRANSLATE_NOOP("QShortcut", "Launch (1)") }, + { Qt::Key_Launch2, QT_TRANSLATE_NOOP("QShortcut", "Launch (2)") }, + { Qt::Key_Launch3, QT_TRANSLATE_NOOP("QShortcut", "Launch (3)") }, + { Qt::Key_Launch4, QT_TRANSLATE_NOOP("QShortcut", "Launch (4)") }, + { Qt::Key_Launch5, QT_TRANSLATE_NOOP("QShortcut", "Launch (5)") }, + { Qt::Key_Launch6, QT_TRANSLATE_NOOP("QShortcut", "Launch (6)") }, + { Qt::Key_Launch7, QT_TRANSLATE_NOOP("QShortcut", "Launch (7)") }, + { Qt::Key_Launch8, QT_TRANSLATE_NOOP("QShortcut", "Launch (8)") }, + { Qt::Key_Launch9, QT_TRANSLATE_NOOP("QShortcut", "Launch (9)") }, + { Qt::Key_LaunchA, QT_TRANSLATE_NOOP("QShortcut", "Launch (A)") }, + { Qt::Key_LaunchB, QT_TRANSLATE_NOOP("QShortcut", "Launch (B)") }, + { Qt::Key_LaunchC, QT_TRANSLATE_NOOP("QShortcut", "Launch (C)") }, + { Qt::Key_LaunchD, QT_TRANSLATE_NOOP("QShortcut", "Launch (D)") }, + { Qt::Key_LaunchE, QT_TRANSLATE_NOOP("QShortcut", "Launch (E)") }, + { Qt::Key_LaunchF, QT_TRANSLATE_NOOP("QShortcut", "Launch (F)") }, + { Qt::Key_MonBrightnessUp, QT_TRANSLATE_NOOP("QShortcut", "Monitor Brightness Up") }, + { Qt::Key_MonBrightnessDown, QT_TRANSLATE_NOOP("QShortcut", "Monitor Brightness Down") }, + { Qt::Key_KeyboardLightOnOff, QT_TRANSLATE_NOOP("QShortcut", "Keyboard Light On/Off") }, + { Qt::Key_KeyboardBrightnessUp, QT_TRANSLATE_NOOP("QShortcut", "Keyboard Brightness Up") }, + { Qt::Key_KeyboardBrightnessDown, QT_TRANSLATE_NOOP("QShortcut", "Keyboard Brightness Down") }, + { Qt::Key_PowerOff, QT_TRANSLATE_NOOP("QShortcut", "Power Off") }, + { Qt::Key_WakeUp, QT_TRANSLATE_NOOP("QShortcut", "Wake Up") }, + { Qt::Key_Eject, QT_TRANSLATE_NOOP("QShortcut", "Eject") }, + { Qt::Key_ScreenSaver, QT_TRANSLATE_NOOP("QShortcut", "Screensaver") }, + { Qt::Key_WWW, QT_TRANSLATE_NOOP("QShortcut", "WWW") }, + { Qt::Key_Sleep, QT_TRANSLATE_NOOP("QShortcut", "Sleep") }, + { Qt::Key_LightBulb, QT_TRANSLATE_NOOP("QShortcut", "LightBulb") }, + { Qt::Key_Shop, QT_TRANSLATE_NOOP("QShortcut", "Shop") }, + { Qt::Key_History, QT_TRANSLATE_NOOP("QShortcut", "History") }, + { Qt::Key_AddFavorite, QT_TRANSLATE_NOOP("QShortcut", "Add Favorite") }, + { Qt::Key_HotLinks, QT_TRANSLATE_NOOP("QShortcut", "Hot Links") }, + { Qt::Key_BrightnessAdjust, QT_TRANSLATE_NOOP("QShortcut", "Adjust Brightness") }, + { Qt::Key_Finance, QT_TRANSLATE_NOOP("QShortcut", "Finance") }, + { Qt::Key_Community, QT_TRANSLATE_NOOP("QShortcut", "Community") }, + { Qt::Key_AudioRewind, QT_TRANSLATE_NOOP("QShortcut", "Audio Rewind") }, + { Qt::Key_BackForward, QT_TRANSLATE_NOOP("QShortcut", "Back Forward") }, + { Qt::Key_ApplicationLeft, QT_TRANSLATE_NOOP("QShortcut", "Application Left") }, + { Qt::Key_ApplicationRight, QT_TRANSLATE_NOOP("QShortcut", "Application Right") }, + { Qt::Key_Book, QT_TRANSLATE_NOOP("QShortcut", "Book") }, + { Qt::Key_CD, QT_TRANSLATE_NOOP("QShortcut", "CD") }, + { Qt::Key_Calculator, QT_TRANSLATE_NOOP("QShortcut", "Calculator") }, + { Qt::Key_Clear, QT_TRANSLATE_NOOP("QShortcut", "Clear") }, + { Qt::Key_ClearGrab, QT_TRANSLATE_NOOP("QShortcut", "Clear Grab") }, + { Qt::Key_Close, QT_TRANSLATE_NOOP("QShortcut", "Close") }, + { Qt::Key_Copy, QT_TRANSLATE_NOOP("QShortcut", "Copy") }, + { Qt::Key_Cut, QT_TRANSLATE_NOOP("QShortcut", "Cut") }, + { Qt::Key_Display, QT_TRANSLATE_NOOP("QShortcut", "Display") }, + { Qt::Key_DOS, QT_TRANSLATE_NOOP("QShortcut", "DOS") }, + { Qt::Key_Documents, QT_TRANSLATE_NOOP("QShortcut", "Documents") }, + { Qt::Key_Excel, QT_TRANSLATE_NOOP("QShortcut", "Spreadsheet") }, + { Qt::Key_Explorer, QT_TRANSLATE_NOOP("QShortcut", "Browser") }, + { Qt::Key_Game, QT_TRANSLATE_NOOP("QShortcut", "Game") }, + { Qt::Key_Go, QT_TRANSLATE_NOOP("QShortcut", "Go") }, + { Qt::Key_iTouch, QT_TRANSLATE_NOOP("QShortcut", "iTouch") }, + { Qt::Key_LogOff, QT_TRANSLATE_NOOP("QShortcut", "Logoff") }, + { Qt::Key_Market, QT_TRANSLATE_NOOP("QShortcut", "Market") }, + { Qt::Key_Meeting, QT_TRANSLATE_NOOP("QShortcut", "Meeting") }, + { Qt::Key_MenuKB, QT_TRANSLATE_NOOP("QShortcut", "Keyboard Menu") }, + { Qt::Key_MenuPB, QT_TRANSLATE_NOOP("QShortcut", "Menu PB") }, + { Qt::Key_MySites, QT_TRANSLATE_NOOP("QShortcut", "My Sites") }, + { Qt::Key_News, QT_TRANSLATE_NOOP("QShortcut", "News") }, + { Qt::Key_OfficeHome, QT_TRANSLATE_NOOP("QShortcut", "Home Office") }, + { Qt::Key_Option, QT_TRANSLATE_NOOP("QShortcut", "Option") }, + { Qt::Key_Paste, QT_TRANSLATE_NOOP("QShortcut", "Paste") }, + { Qt::Key_Phone, QT_TRANSLATE_NOOP("QShortcut", "Phone") }, + { Qt::Key_Reply, QT_TRANSLATE_NOOP("QShortcut", "Reply") }, + { Qt::Key_Reload, QT_TRANSLATE_NOOP("QShortcut", "Reload") }, + { Qt::Key_RotateWindows, QT_TRANSLATE_NOOP("QShortcut", "Rotate Windows") }, + { Qt::Key_RotationPB, QT_TRANSLATE_NOOP("QShortcut", "Rotation PB") }, + { Qt::Key_RotationKB, QT_TRANSLATE_NOOP("QShortcut", "Rotation KB") }, + { Qt::Key_Save, QT_TRANSLATE_NOOP("QShortcut", "Save") }, + { Qt::Key_Send, QT_TRANSLATE_NOOP("QShortcut", "Send") }, + { Qt::Key_Spell, QT_TRANSLATE_NOOP("QShortcut", "Spellchecker") }, + { Qt::Key_SplitScreen, QT_TRANSLATE_NOOP("QShortcut", "Split Screen") }, + { Qt::Key_Support, QT_TRANSLATE_NOOP("QShortcut", "Support") }, + { Qt::Key_TaskPane, QT_TRANSLATE_NOOP("QShortcut", "Task Panel") }, + { Qt::Key_Terminal, QT_TRANSLATE_NOOP("QShortcut", "Terminal") }, + { Qt::Key_Tools, QT_TRANSLATE_NOOP("QShortcut", "Tools") }, + { Qt::Key_Travel, QT_TRANSLATE_NOOP("QShortcut", "Travel") }, + { Qt::Key_Video, QT_TRANSLATE_NOOP("QShortcut", "Video") }, + { Qt::Key_Word, QT_TRANSLATE_NOOP("QShortcut", "Word Processor") }, + { Qt::Key_Xfer, QT_TRANSLATE_NOOP("QShortcut", "XFer") }, + { Qt::Key_ZoomIn, QT_TRANSLATE_NOOP("QShortcut", "Zoom In") }, + { Qt::Key_ZoomOut, QT_TRANSLATE_NOOP("QShortcut", "Zoom Out") }, + { Qt::Key_Away, QT_TRANSLATE_NOOP("QShortcut", "Away") }, + { Qt::Key_Messenger, QT_TRANSLATE_NOOP("QShortcut", "Messenger") }, + { Qt::Key_WebCam, QT_TRANSLATE_NOOP("QShortcut", "WebCam") }, + { Qt::Key_MailForward, QT_TRANSLATE_NOOP("QShortcut", "Mail Forward") }, + { Qt::Key_Pictures, QT_TRANSLATE_NOOP("QShortcut", "Pictures") }, + { Qt::Key_Music, QT_TRANSLATE_NOOP("QShortcut", "Music") }, + { Qt::Key_Battery, QT_TRANSLATE_NOOP("QShortcut", "Battery") }, + { Qt::Key_Bluetooth, QT_TRANSLATE_NOOP("QShortcut", "Bluetooth") }, + { Qt::Key_WLAN, QT_TRANSLATE_NOOP("QShortcut", "Wireless") }, + { Qt::Key_UWB, QT_TRANSLATE_NOOP("QShortcut", "Ultra Wide Band") }, + { Qt::Key_AudioForward, QT_TRANSLATE_NOOP("QShortcut", "Audio Forward") }, + { Qt::Key_AudioRepeat, QT_TRANSLATE_NOOP("QShortcut", "Audio Repeat") }, + { Qt::Key_AudioRandomPlay, QT_TRANSLATE_NOOP("QShortcut", "Audio Random Play") }, + { Qt::Key_Subtitle, QT_TRANSLATE_NOOP("QShortcut", "Subtitle") }, + { Qt::Key_AudioCycleTrack, QT_TRANSLATE_NOOP("QShortcut", "Audio Cycle Track") }, + { Qt::Key_Time, QT_TRANSLATE_NOOP("QShortcut", "Time") }, + { Qt::Key_Select, QT_TRANSLATE_NOOP("QShortcut", "Select") }, + { Qt::Key_View, QT_TRANSLATE_NOOP("QShortcut", "View") }, + { Qt::Key_TopMenu, QT_TRANSLATE_NOOP("QShortcut", "Top Menu") }, + { Qt::Key_Suspend, QT_TRANSLATE_NOOP("QShortcut", "Suspend") }, + { Qt::Key_Hibernate, QT_TRANSLATE_NOOP("QShortcut", "Hibernate") }, // -------------------------------------------------------------- // More consistent namings diff --git a/src/gui/kernel/qsoftkeymanager.cpp b/src/gui/kernel/qsoftkeymanager.cpp index 5249dab..21795b4 100644 --- a/src/gui/kernel/qsoftkeymanager.cpp +++ b/src/gui/kernel/qsoftkeymanager.cpp @@ -140,11 +140,18 @@ QAction *QSoftKeyManager::createKeyedAction(StandardSoftKey standardKey, Qt::Key QScopedPointer<QAction> action(createAction(standardKey, actionWidget)); connect(action.data(), SIGNAL(triggered()), QSoftKeyManager::instance(), SLOT(sendKeyEvent())); - + connect(action.data(), SIGNAL(destroyed(QObject*)), QSoftKeyManager::instance(), SLOT(cleanupHash(QObject*))); QSoftKeyManager::instance()->d_func()->keyedActions.insert(action.data(), key); return action.take(); } +void QSoftKeyManager::cleanupHash(QObject* obj) +{ + Q_D(QSoftKeyManager); + QAction *action = qobject_cast<QAction*>(obj); + d->keyedActions.remove(action); +} + void QSoftKeyManager::sendKeyEvent() { Q_D(QSoftKeyManager); @@ -201,6 +208,7 @@ bool QSoftKeyManager::event(QEvent *e) void QSoftKeyManagerPrivate::updateSoftKeys_sys(const QList<QAction*> &softkeys) { CEikButtonGroupContainer* nativeContainer = S60->buttonGroupContainer(); + nativeContainer->DrawableWindow()->SetOrdinalPosition(0); nativeContainer->DrawableWindow()->SetPointerCapturePriority(1); //keep softkeys available in modal dialog QT_TRAP_THROWING(nativeContainer->SetCommandSetL(R_AVKON_SOFTKEYS_EMPTY_WITH_IDS)); diff --git a/src/gui/kernel/qsoftkeymanager_p.h b/src/gui/kernel/qsoftkeymanager_p.h index 62d872f..796e080 100644 --- a/src/gui/kernel/qsoftkeymanager_p.h +++ b/src/gui/kernel/qsoftkeymanager_p.h @@ -97,6 +97,7 @@ protected: Q_DISABLE_COPY(QSoftKeyManager) private Q_SLOTS: + void cleanupHash(QObject* obj); void sendKeyEvent(); }; diff --git a/src/gui/kernel/qt_cocoa_helpers_mac.mm b/src/gui/kernel/qt_cocoa_helpers_mac.mm index 2b2259c..c0fb8aa 100644 --- a/src/gui/kernel/qt_cocoa_helpers_mac.mm +++ b/src/gui/kernel/qt_cocoa_helpers_mac.mm @@ -1152,16 +1152,23 @@ CGFloat qt_mac_get_scalefactor() #endif } -QString qt_mac_get_pasteboardString() +QString qt_mac_get_pasteboardString(OSPasteboardRef paste) { QMacCocoaAutoReleasePool pool; - NSPasteboard *pb = [NSPasteboard generalPasteboard]; - NSString *text = [pb stringForType:NSStringPboardType]; - if (text) { - return qt_mac_NSStringToQString(text); + NSPasteboard *pb = nil; + CFStringRef pbname; + if (PasteboardCopyName (paste, &pbname)) { + pb = [NSPasteboard generalPasteboard]; } else { - return QString(); + pb = [NSPasteboard pasteboardWithName:reinterpret_cast<const NSString *>(pbname)]; + CFRelease (pbname); } + if (pb) { + NSString *text = [pb stringForType:NSStringPboardType]; + if (text) + return qt_mac_NSStringToQString(text); + } + return QString(); } QPixmap qt_mac_convert_iconref(const IconRef icon, int width, int height) diff --git a/src/gui/kernel/qt_cocoa_helpers_mac_p.h b/src/gui/kernel/qt_cocoa_helpers_mac_p.h index 62db064..f11ccc5 100644 --- a/src/gui/kernel/qt_cocoa_helpers_mac_p.h +++ b/src/gui/kernel/qt_cocoa_helpers_mac_p.h @@ -116,7 +116,7 @@ typedef struct CGPoint NSPoint; QT_BEGIN_NAMESPACE Qt::MouseButtons qt_mac_get_buttons(int buttons); Qt::MouseButton qt_mac_get_button(EventMouseButton button); -void macWindowFade(void * /*OSWindowRef*/ window, float durationSeconds = 0); +void macWindowFade(void * /*OSWindowRef*/ window, float durationSeconds = 0.15); bool macWindowIsTextured(void * /*OSWindowRef*/ window); void macWindowToolbarShow(const QWidget *widget, bool show ); void macWindowToolbarSet( void * /*OSWindowRef*/ window, void* toolbarRef ); @@ -170,7 +170,7 @@ void *qt_mac_QStringListToNSMutableArrayVoid(const QStringList &list); void qt_syncCocoaTitleBarButtons(OSWindowRef window, QWidget *widgetForWindow); CGFloat qt_mac_get_scalefactor(); -QString qt_mac_get_pasteboardString(); +QString qt_mac_get_pasteboardString(OSPasteboardRef paste); #ifdef __OBJC__ inline NSMutableArray *qt_mac_QStringListToNSMutableArray(const QStringList &qstrlist) diff --git a/src/gui/kernel/qt_x11_p.h b/src/gui/kernel/qt_x11_p.h index 61acbac..9f08dc6 100644 --- a/src/gui/kernel/qt_x11_p.h +++ b/src/gui/kernel/qt_x11_p.h @@ -428,6 +428,7 @@ struct QX11Data // true if Qt is compiled w/ MIT-SHM support and MIT-SHM is supported on the connected Display bool use_mitshm; + bool use_mitshm_pixmaps; int mitshm_major; // true if Qt is compiled w/ Tablet support and we have a tablet. diff --git a/src/gui/kernel/qwidget.cpp b/src/gui/kernel/qwidget.cpp index 62cfd12..9165515 100644 --- a/src/gui/kernel/qwidget.cpp +++ b/src/gui/kernel/qwidget.cpp @@ -1828,18 +1828,6 @@ void QWidgetPrivate::setDirtyOpaqueRegion() pd->setDirtyOpaqueRegion(); } -QRegion QWidgetPrivate::getOpaqueRegion() const -{ - Q_Q(const QWidget); - - QRegion r = isOpaque ? q->rect() : getOpaqueChildren(); - if (extra && extra->hasMask) - r &= extra->mask; - if (r.isEmpty()) - return r; - return r & clipRect(); -} - const QRegion &QWidgetPrivate::getOpaqueChildren() const { if (!dirtyOpaqueChildren) @@ -1854,9 +1842,17 @@ const QRegion &QWidgetPrivate::getOpaqueChildren() const continue; const QPoint offset = child->geometry().topLeft(); - that->opaqueChildren += child->d_func()->getOpaqueRegion().translated(offset); + QWidgetPrivate *childd = child->d_func(); + QRegion r = childd->isOpaque ? child->rect() : childd->getOpaqueChildren(); + if (childd->extra && childd->extra->hasMask) + r &= childd->extra->mask; + if (r.isEmpty()) + continue; + r.translate(offset); + that->opaqueChildren += r; } + that->opaqueChildren &= q_func()->rect(); that->dirtyOpaqueChildren = false; return that->opaqueChildren; @@ -5457,7 +5453,8 @@ void QWidgetEffectSourcePrivate::draw(QPainter *painter) context->sharedPainter, context->backingStore); } -QPixmap QWidgetEffectSourcePrivate::pixmap(Qt::CoordinateSystem system, QPoint *offset) const +QPixmap QWidgetEffectSourcePrivate::pixmap(Qt::CoordinateSystem system, QPoint *offset, + QGraphicsEffectSource::PixmapPadMode mode) const { const bool deviceCoordinates = (system == Qt::DeviceCoordinates); if (!context && deviceCoordinates) { @@ -5475,7 +5472,20 @@ QPixmap QWidgetEffectSourcePrivate::pixmap(Qt::CoordinateSystem system, QPoint * pixmapOffset = painterTransform.map(pixmapOffset); } - QRect effectRect = m_widget->graphicsEffect()->boundingRectFor(sourceRect).toAlignedRect(); + + QRect effectRect; + + if (mode == QGraphicsEffectSource::ExpandToEffectRectPadMode) { + effectRect = m_widget->graphicsEffect()->boundingRectFor(sourceRect).toAlignedRect(); + + } else if (mode == QGraphicsEffectSource::ExpandToTransparentBorderPadMode) { + effectRect = sourceRect.adjusted(-1, -1, 1, 1).toAlignedRect(); + + } else { + effectRect = sourceRect.toAlignedRect(); + + } + if (offset) *offset = effectRect.topLeft(); @@ -11738,6 +11748,22 @@ void QWidget::grabGesture(Qt::GestureType gesture, Qt::GestureContext context) (void)QGestureManager::instance(); // create a gesture manager } +/*! + Unsubscribes the widget to a given \a gesture type + + \sa QGestureEvent + \since 4.6 +*/ +void QWidget::ungrabGesture(Qt::GestureType gesture) +{ + Q_D(QWidget); + if (d->gestureContext.remove(gesture)) { + QGestureManager *manager = QGestureManager::instance(); + manager->cleanupCachedGestures(this, gesture); + } +} + + QT_END_NAMESPACE #include "moc_qwidget.cpp" diff --git a/src/gui/kernel/qwidget.h b/src/gui/kernel/qwidget.h index e603a1a..fce3f09 100644 --- a/src/gui/kernel/qwidget.h +++ b/src/gui/kernel/qwidget.h @@ -355,6 +355,7 @@ public: void setGraphicsEffect(QGraphicsEffect *effect); void grabGesture(Qt::GestureType type, Qt::GestureContext context = Qt::WidgetWithChildrenGesture); + void ungrabGesture(Qt::GestureType type); public Q_SLOTS: void setWindowTitle(const QString &); diff --git a/src/gui/kernel/qwidget_p.h b/src/gui/kernel/qwidget_p.h index 159a3f2..73a7d68 100644 --- a/src/gui/kernel/qwidget_p.h +++ b/src/gui/kernel/qwidget_p.h @@ -386,7 +386,6 @@ public: bool paintOnScreen() const; void invalidateGraphicsEffectsRecursively(); - QRegion getOpaqueRegion() const; const QRegion &getOpaqueChildren() const; void setDirtyOpaqueRegion(); @@ -819,7 +818,8 @@ public: QRectF boundingRect(Qt::CoordinateSystem system) const; void draw(QPainter *p); - QPixmap pixmap(Qt::CoordinateSystem system, QPoint *offset) const; + QPixmap pixmap(Qt::CoordinateSystem system, QPoint *offset, + QGraphicsEffectSource::PixmapPadMode mode) const; QWidget *m_widget; QWidgetPaintContext *context; diff --git a/src/gui/kernel/qwidget_s60.cpp b/src/gui/kernel/qwidget_s60.cpp index cb615fe..a6d8ed7 100644 --- a/src/gui/kernel/qwidget_s60.cpp +++ b/src/gui/kernel/qwidget_s60.cpp @@ -716,62 +716,6 @@ void QWidgetPrivate::s60UpdateIsOpaque() window->SetTransparentRegion(TRegionFix<1>()); } -CFbsBitmap* qt_pixmapToNativeBitmap(QPixmap pixmap, bool invert) -{ - CFbsBitmap* fbsBitmap = q_check_ptr(new CFbsBitmap); // CBase derived object needs check on new - TSize size(pixmap.size().width(), pixmap.size().height()); - TDisplayMode mode(EColor16MU); - - bool isNull = pixmap.isNull(); - int depth = pixmap.depth(); - - // TODO: dummy assumptions from bit amounts for each color - // Will fix later on when native pixmap is implemented - switch(pixmap.depth()) { - case 1: - mode = EGray2; - break; - case 4: - mode = EColor16; - break; - case 8: - mode = EColor256; - break; - case 12: - mode = EColor4K; - break; - case 16: - mode = EColor64K; - break; - case 24: - mode = EColor16M; - break; - case 32: - case EColor16MU: - break; - default: - qFatal("Unsupported pixmap depth"); - break; - } - - qt_symbian_throwIfError(fbsBitmap->Create(size, mode)); - fbsBitmap->LockHeap(); - QImage image = pixmap.toImage(); - - if (invert) - image.invertPixels(); - - int height = pixmap.size().height(); - for(int i=0;i<height;i++ ) - { - TPtr8 scanline(image.scanLine(i), image.bytesPerLine(), image.bytesPerLine()); - fbsBitmap->SetScanLine( scanline, i ); - } - - fbsBitmap->UnlockHeap(); - return fbsBitmap; -} - void QWidgetPrivate::setWindowIcon_sys(bool forceReset) { #ifdef Q_WS_S60 @@ -800,12 +744,8 @@ void QWidgetPrivate::setWindowIcon_sys(bool forceReset) mask.fill(Qt::color1); } - // Convert to CFbsBitmp - // TODO: When QPixmap is adapted to use native CFbsBitmap, - // it could be set directly to context pane - CFbsBitmap* nBitmap = qt_pixmapToNativeBitmap(pm, false); - CFbsBitmap* nMask = qt_pixmapToNativeBitmap(mask, true); - + CFbsBitmap* nBitmap = pm.toSymbianCFbsBitmap(); + CFbsBitmap* nMask = mask.toSymbianCFbsBitmap(); contextPane->SetPicture(nBitmap,nMask); } else { // Icon set to null -> set context pane picture to default @@ -836,12 +776,8 @@ void QWidgetPrivate::setWindowIcon_sys(bool forceReset) mask.fill(Qt::color1); } - // Convert to CFbsBitmp - // TODO: When QPixmap is adapted to use native CFbsBitmap, - // it could be set directly to context pane - CFbsBitmap* nBitmap = qt_pixmapToNativeBitmap(pm, false); - CFbsBitmap* nMask = qt_pixmapToNativeBitmap(mask, true); - + CFbsBitmap* nBitmap = pm.toSymbianCFbsBitmap(); + CFbsBitmap* nMask = mask.toSymbianCFbsBitmap(); titlePane->SetSmallPicture( nBitmap, nMask, ETrue ); } else { // Icon set to null -> set context pane picture to default diff --git a/src/gui/kernel/qwidget_win.cpp b/src/gui/kernel/qwidget_win.cpp index fa12b0d..5bf7649 100644 --- a/src/gui/kernel/qwidget_win.cpp +++ b/src/gui/kernel/qwidget_win.cpp @@ -161,6 +161,9 @@ static void qt_tablet_init() qt_tablet_widget = new QWidget(0); qt_tablet_widget->createWinId(); qt_tablet_widget->setObjectName(QLatin1String("Qt internal tablet widget")); + // We dont need this internal widget to appear in QApplication::topLevelWidgets() + if (QWidgetPrivate::allWidgets) + QWidgetPrivate::allWidgets->remove(qt_tablet_widget); LOGCONTEXT lcMine; qAddPostRoutine(qt_tablet_cleanup); struct tagAXIS tpOri[3]; diff --git a/src/gui/painting/qbackingstore.cpp b/src/gui/painting/qbackingstore.cpp index de97302..f36470a 100644 --- a/src/gui/painting/qbackingstore.cpp +++ b/src/gui/painting/qbackingstore.cpp @@ -498,18 +498,6 @@ static inline void sendUpdateRequest(QWidget *widget, bool updateImmediately) if (!widget) return; -#if defined(Q_WS_WIN) && !defined(Q_OS_WINCE) - if (QApplicationPrivate::inSizeMove && widget->internalWinId() && !updateImmediately - && !widget->testAttribute(Qt::WA_DontShowOnScreen)) { - // Tell Windows to send us a paint event if we're in WM_SIZE/WM_MOVE; posted events - // are blocked until the mouse button is released. See task 146849. - const QRegion rgn(qt_dirtyRegion(widget)); - InvalidateRgn(widget->internalWinId(), rgn.handle(), false); - qt_widget_private(widget)->dirty = QRegion(); - return; - } -#endif - if (updateImmediately) { QEvent event(QEvent::UpdateRequest); QApplication::sendEvent(widget, &event); diff --git a/src/gui/painting/qpaintengine_raster.cpp b/src/gui/painting/qpaintengine_raster.cpp index fd0e810..8d0b961 100644 --- a/src/gui/painting/qpaintengine_raster.cpp +++ b/src/gui/painting/qpaintengine_raster.cpp @@ -1686,7 +1686,7 @@ void QRasterPaintEngine::stroke(const QVectorPath &path, const QPen &pen) if (!s->penData.blend) return; - if (s->flags.fast_pen && path.shape() <= QVectorPath::NonCurvedShapeHint + if (s->flags.fast_pen && !path.isCurved() && s->lastPen.brush().isOpaque()) { int count = path.elementCount(); QPointF *points = (QPointF *) path.points(); @@ -1739,8 +1739,7 @@ void QRasterPaintEngine::stroke(const QVectorPath &path, const QPen &pen) const QLineF *lines = reinterpret_cast<const QLineF *>(path.points()); for (int i = 0; i < lineCount; ++i) { - if (path.shape() == QVectorPath::LinesHint) - dashOffset = s->lastPen.dashOffset(); + dashOffset = s->lastPen.dashOffset(); if (lines[i].p1() == lines[i].p2()) { if (s->lastPen.capStyle() != Qt::FlatCap) { QPointF p = lines[i].p1(); @@ -5120,6 +5119,9 @@ void QSpanData::adjustSpanMethods() #else unclipped_blend = qBlendTexture; #endif + if (!texture.imageData) + unclipped_blend = 0; + break; } // setup clipping diff --git a/src/gui/painting/qpaintengine_x11.cpp b/src/gui/painting/qpaintengine_x11.cpp index 59482c6..35b77f7 100644 --- a/src/gui/painting/qpaintengine_x11.cpp +++ b/src/gui/painting/qpaintengine_x11.cpp @@ -146,7 +146,7 @@ static inline int qpainterOpToXrender(QPainter::CompositionMode mode) // hack, so we don't have to make QRegion::clipRectangles() public or include // X11 headers in qregion.h -Q_AUTOTEST_EXPORT void *qt_getClipRects(const QRegion &r, int &num) +Q_GUI_EXPORT void *qt_getClipRects(const QRegion &r, int &num) { return r.clipRectangles(num); } diff --git a/src/gui/painting/qpaintengineex.cpp b/src/gui/painting/qpaintengineex.cpp index 195be0a..9e21182 100644 --- a/src/gui/painting/qpaintengineex.cpp +++ b/src/gui/painting/qpaintengineex.cpp @@ -92,6 +92,24 @@ QRectF QVectorPath::controlPointRect() const return QRectF(QPointF(m_cp_rect.x1, m_cp_rect.y1), QPointF(m_cp_rect.x2, m_cp_rect.y2)); } + +QVectorPath::CacheEntry *QVectorPath::addCacheData(QPaintEngineEx *engine, void *data, + qvectorpath_cache_cleanup cleanup) { + Q_ASSERT(!lookupCacheData(engine)); + if ((m_hints & IsCachedHint) == 0) { + m_cache = 0; + m_hints |= IsCachedHint; + } + CacheEntry *e = new CacheEntry; + e->engine = engine; + e->data = data; + e->cleanup = cleanup; + e->next = m_cache; + m_cache = e; + return m_cache; +} + + const QVectorPath &qtVectorPathForPath(const QPainterPath &path) { Q_ASSERT(path.d_func()); @@ -414,7 +432,7 @@ void QPaintEngineEx::stroke(const QVectorPath &path, const QPen &pen) // Some engines might decide to optimize for the non-shape hint later on... uint flags = QVectorPath::WindingFill; if (d->stroker.capStyle() == Qt::RoundCap || d->stroker.joinStyle() == Qt::RoundJoin) - flags |= QVectorPath::CurvedShapeHint; + flags |= QVectorPath::CurvedShapeMask; // ### Perspective Xforms are currently not supported... if (!pen.isCosmetic()) { @@ -442,7 +460,7 @@ void QPaintEngineEx::stroke(const QVectorPath &path, const QPen &pen) points[4], points[5]); points += 6; types += 3; - flags |= QVectorPath::CurvedShapeHint; + flags |= QVectorPath::CurvedShapeMask; break; default: break; @@ -504,7 +522,7 @@ void QPaintEngineEx::stroke(const QVectorPath &path, const QPen &pen) d->activeStroker->cubicTo(c1.x(), c1.y(), c2.x(), c2.y(), e.x(), e.y()); points += 6; types += 3; - flags |= QVectorPath::CurvedShapeHint; + flags |= QVectorPath::CurvedShapeMask; break; } default: @@ -736,7 +754,7 @@ void QPaintEngineEx::drawRoundedRect(const QRectF &rect, qreal xRadius, qreal yR x1 + xRadius, y1 }; - QVectorPath path(pts, 17, qpaintengineex_roundedrect_types); + QVectorPath path(pts, 17, qpaintengineex_roundedrect_types, QVectorPath::RoundedRectHint); draw(path); } @@ -827,7 +845,7 @@ void QPaintEngineEx::drawPoints(const QPointF *points, int pointCount) pts[++oset] = points[i].x() + 0.001; pts[++oset] = points[i].y(); } - QVectorPath path(pts, count * 2, qpaintengineex_line_types_16, QVectorPath::NonCurvedShapeHint); + QVectorPath path(pts, count * 2, qpaintengineex_line_types_16, QVectorPath::LinesHint); stroke(path, pen); pointCount -= 16; points += 16; @@ -858,7 +876,7 @@ void QPaintEngineEx::drawPoints(const QPoint *points, int pointCount) pts[++oset] = points[i].x() + 0.001; pts[++oset] = points[i].y(); } - QVectorPath path(pts, count * 2, qpaintengineex_line_types_16, QVectorPath::NonCurvedShapeHint); + QVectorPath path(pts, count * 2, qpaintengineex_line_types_16, QVectorPath::LinesHint); stroke(path, pen); pointCount -= 16; points += 16; diff --git a/src/gui/painting/qpaintengineex_p.h b/src/gui/painting/qpaintengineex_p.h index 3ec9bd6..02d77f4 100644 --- a/src/gui/painting/qpaintengineex_p.h +++ b/src/gui/painting/qpaintengineex_p.h @@ -250,9 +250,9 @@ public: inline uint QVectorPath::polygonFlags(QPaintEngine::PolygonDrawMode mode) { switch (mode) { case QPaintEngine::ConvexMode: return ConvexPolygonHint | ImplicitClose; - case QPaintEngine::OddEvenMode: return NonCurvedShapeHint | OddEvenFill | ImplicitClose; - case QPaintEngine::WindingMode: return NonCurvedShapeHint | WindingFill | ImplicitClose; - case QPaintEngine::PolylineMode: return NonCurvedShapeHint; + case QPaintEngine::OddEvenMode: return PolygonHint | OddEvenFill | ImplicitClose; + case QPaintEngine::WindingMode: return PolygonHint | WindingFill | ImplicitClose; + case QPaintEngine::PolylineMode: return PolygonHint; default: return 0; } } diff --git a/src/gui/painting/qpainterpath.cpp b/src/gui/painting/qpainterpath.cpp index 69e189c..c40bcee 100644 --- a/src/gui/painting/qpainterpath.cpp +++ b/src/gui/painting/qpainterpath.cpp @@ -688,6 +688,8 @@ void QPainterPath::lineTo(const QPointF &p) return; Element elm = { p.x(), p.y(), LineToElement }; d->elements.append(elm); + + d->convex = d->elements.size() == 3 || (d->elements.size() == 4 && d->isClosed()); } /*! @@ -960,6 +962,8 @@ void QPainterPath::addRect(const QRectF &r) ensureData(); detach(); + bool first = d_func()->elements.size() < 2; + d_func()->elements.reserve(d_func()->elements.size() + 5); moveTo(r.x(), r.y()); @@ -970,6 +974,7 @@ void QPainterPath::addRect(const QRectF &r) d_func()->elements << l1 << l2 << l3 << l4; d_func()->require_moveTo = true; + d_func()->convex = first; } /*! @@ -1039,6 +1044,7 @@ void QPainterPath::addEllipse(const QRectF &boundingRect) detach(); Q_D(QPainterPath); + bool first = d_func()->elements.size() < 2; d->elements.reserve(d->elements.size() + 13); QPointF pts[12]; @@ -1051,6 +1057,8 @@ void QPainterPath::addEllipse(const QRectF &boundingRect) cubicTo(pts[6], pts[7], pts[8]); // 180 -> 90 cubicTo(pts[9], pts[10], pts[11]); // 90 - >0 d_func()->require_moveTo = true; + + d_func()->convex = first; } /*! @@ -3027,6 +3035,8 @@ void QPainterPath::addRoundedRect(const QRectF &rect, qreal xRadius, qreal yRadi ensureData(); detach(); + bool first = d_func()->elements.size() < 2; + arcMoveTo(x, y, rxx2, ryy2, 90); arcTo(x, y, rxx2, ryy2, 90, 90); arcTo(x, y+h-ryy2, rxx2, ryy2, 2*90, 90); @@ -3035,6 +3045,7 @@ void QPainterPath::addRoundedRect(const QRectF &rect, qreal xRadius, qreal yRadi closeSubpath(); d_func()->require_moveTo = true; + d_func()->convex = first; } /*! @@ -3081,6 +3092,8 @@ void QPainterPath::addRoundRect(const QRectF &r, int xRnd, int yRnd) ensureData(); detach(); + bool first = d_func()->elements.size() < 2; + arcMoveTo(x, y, rxx2, ryy2, 90); arcTo(x, y, rxx2, ryy2, 90, 90); arcTo(x, y+h-ryy2, rxx2, ryy2, 2*90, 90); @@ -3089,6 +3102,7 @@ void QPainterPath::addRoundRect(const QRectF &r, int xRnd, int yRnd) closeSubpath(); d_func()->require_moveTo = true; + d_func()->convex = first; } /*! @@ -3269,6 +3283,7 @@ void QPainterPath::setDirty(bool dirty) d_func()->dirtyControlBounds = dirty; delete d_func()->pathConverter; d_func()->pathConverter = 0; + d_func()->convex = false; } void QPainterPath::computeBoundingRect() const diff --git a/src/gui/painting/qpainterpath_p.h b/src/gui/painting/qpainterpath_p.h index 54c182d..112c2bd 100644 --- a/src/gui/painting/qpainterpath_p.h +++ b/src/gui/painting/qpainterpath_p.h @@ -81,8 +81,8 @@ class QVectorPathConverter; class QVectorPathConverter { public: - QVectorPathConverter(const QVector<QPainterPath::Element> &path, uint fillRule) - : pathData(path, fillRule), + QVectorPathConverter(const QVector<QPainterPath::Element> &path, uint fillRule, bool convex) + : pathData(path, fillRule, convex), path(pathData.points.data(), path.size(), pathData.elements.data(), pathData.flags) {} @@ -91,7 +91,7 @@ public: } struct QVectorPathData { - QVectorPathData(const QVector<QPainterPath::Element> &path, uint fillRule) + QVectorPathData(const QVector<QPainterPath::Element> &path, uint fillRule, bool convex) : elements(path.size()), points(path.size() * 2), flags(0) @@ -103,7 +103,7 @@ public: points[ptsPos++] = e.x; points[ptsPos++] = e.y; if (e.type == QPainterPath::CurveToElement) - flags |= QVectorPath::CurvedShapeHint; + flags |= QVectorPath::CurvedShapeMask; } if (fillRule == Qt::WindingFill) @@ -111,6 +111,8 @@ public: else flags |= QVectorPath::OddEvenFill; + if (!convex) + flags |= QVectorPath::NonConvexShapeMask; } QVarLengthArray<QPainterPath::ElementType> elements; QVarLengthArray<qreal> points; @@ -128,20 +130,26 @@ class QPainterPathData : public QPainterPathPrivate { public: QPainterPathData() : - cStart(0), fillRule(Qt::OddEvenFill), - dirtyBounds(false), dirtyControlBounds(false), - pathConverter(0) + cStart(0), + fillRule(Qt::OddEvenFill), + pathConverter(0), + dirtyBounds(false), + dirtyControlBounds(false) + { ref = 1; require_moveTo = false; + convex = false; } QPainterPathData(const QPainterPathData &other) : QPainterPathPrivate(), cStart(other.cStart), fillRule(other.fillRule), - dirtyBounds(other.dirtyBounds), bounds(other.bounds), - dirtyControlBounds(other.dirtyControlBounds), + bounds(other.bounds), controlBounds(other.controlBounds), - pathConverter(0) + pathConverter(0), + dirtyBounds(other.dirtyBounds), + dirtyControlBounds(other.dirtyControlBounds), + convex(other.convex) { ref = 1; require_moveTo = false; @@ -158,20 +166,21 @@ public: const QVectorPath &vectorPath() { if (!pathConverter) - pathConverter = new QVectorPathConverter(elements, fillRule); + pathConverter = new QVectorPathConverter(elements, fillRule, convex); return pathConverter->path; } int cStart; Qt::FillRule fillRule; - bool require_moveTo; - - bool dirtyBounds; QRectF bounds; - bool dirtyControlBounds; QRectF controlBounds; + uint require_moveTo : 1; + uint dirtyBounds : 1; + uint dirtyControlBounds : 1; + uint convex : 1; + QVectorPathConverter *pathConverter; }; diff --git a/src/gui/painting/qvectorpath_p.h b/src/gui/painting/qvectorpath_p.h index d023131..ec27970 100644 --- a/src/gui/painting/qvectorpath_p.h +++ b/src/gui/painting/qvectorpath_p.h @@ -66,8 +66,9 @@ QT_BEGIN_NAMESPACE QT_MODULE(Gui) +class QPaintEngineEx; -#define QVECTORPATH_NO_CACHE +typedef void (*qvectorpath_cache_cleanup)(void *data); struct QRealRect { qreal x1, y1, x2, y2; @@ -77,19 +78,27 @@ class Q_GUI_EXPORT QVectorPath { public: enum Hint { - // Basic shapes... - LinesHint = 0x0001, // Just plain lines... - RectangleHint = 0x0002, - ConvexPolygonHint = 0x0003, // Convex polygon... - NonISectPolygonHint = 0x0004, // concave polygon, but not intersecting.. - NonCurvedShapeHint = 0x0005, // Generic polygon, possibly self-intersecting... - CurvedShapeHint = 0x0006, // Generic vector path.. - EllipseHint = 0x0007, - ShapeHintMask = 0x000f, + // Shape hints, in 0x000000ff, access using shape() + AreaShapeMask = 0x0001, // shape covers an area + NonConvexShapeMask = 0x0002, // shape is not convex + CurvedShapeMask = 0x0004, // shape contains curves... + LinesShapeMask = 0x0008, + RectangleShapeMask = 0x0010, + ShapeMask = 0x001f, + + // Shape hints merged into basic shapes.. + LinesHint = LinesShapeMask, + RectangleHint = AreaShapeMask | RectangleShapeMask, + EllipseHint = AreaShapeMask | CurvedShapeMask, + ConvexPolygonHint = AreaShapeMask, + PolygonHint = AreaShapeMask | NonConvexShapeMask, + RoundedRectHint = AreaShapeMask | CurvedShapeMask, + ArbitraryShapeHint = AreaShapeMask | NonConvexShapeMask | CurvedShapeMask, // Other hints - CacheHint = 0x0100, - ControlPointRect = 0x0200, // Set if the control point rect has been calculated... + IsCachedHint = 0x0100, // Set if the cache hint is set + ShouldUseCacheHint = 0x0200, // Set if the path should be cached when possible.. + ControlPointRect = 0x0400, // Set if the control point rect has been calculated... // Shape rendering specifiers... OddEvenFill = 0x1000, @@ -101,22 +110,21 @@ public: QVectorPath(const qreal *points, int count, const QPainterPath::ElementType *elements = 0, - uint hints = CurvedShapeHint) + uint hints = ArbitraryShapeHint) : m_elements(elements), m_points(points), m_count(count), m_hints(hints) -#ifndef QVECTORPATH_NO_CACHE - , m_cache(0) -#endif { } QRectF controlPointRect() const; - inline Hint shape() const { return (Hint) (m_hints & ShapeHintMask); } + inline Hint shape() const { return (Hint) (m_hints & ShapeMask); } + inline bool isConvex() const { return (m_hints & NonConvexShapeMask) == 0; } + inline bool isCurved() const { return m_hints & CurvedShapeMask; } - inline bool hasCacheHint() const { return m_hints & CacheHint; } + inline bool isCacheable() const { return m_hints & ShouldUseCacheHint; } inline bool hasImplicitClose() const { return m_hints & ImplicitClose; } inline bool hasWindingFill() const { return m_hints & WindingFill; } @@ -131,24 +139,30 @@ public: static inline uint polygonFlags(QPaintEngine::PolygonDrawMode mode); -private: - Q_DISABLE_COPY(QVectorPath) - -#ifndef QVECTORPATH_NO_CACHE struct CacheEntry { - void *engine; - int id; - void *extra; + QPaintEngineEx *engine; + void *data; + qvectorpath_cache_cleanup cleanup; CacheEntry *next; }; - void addCacheData(CacheEntry *d) { - d->next = m_cache; - m_cache = d; + CacheEntry *addCacheData(QPaintEngineEx *engine, void *data, qvectorpath_cache_cleanup cleanup); + inline CacheEntry *lookupCacheData(QPaintEngineEx *engine) const { + Q_ASSERT(m_hints & IsCachedHint); + CacheEntry *e = m_cache; + while (e) { + if (e->engine == engine) + return e; + e = e->next; + } + return 0; } + +private: + Q_DISABLE_COPY(QVectorPath) + CacheEntry *m_cache; -#endif const QPainterPath::ElementType *m_elements; const qreal *m_points; diff --git a/src/gui/painting/qwindowsurface_raster.cpp b/src/gui/painting/qwindowsurface_raster.cpp index 3a118bd..d412040 100644 --- a/src/gui/painting/qwindowsurface_raster.cpp +++ b/src/gui/painting/qwindowsurface_raster.cpp @@ -215,6 +215,12 @@ void QRasterWindowSurface::flush(QWidget *widget, const QRegion &rgn, const QPoi XCopyArea(X11->display, d_ptr->image->xshmpm, widget->handle(), d_ptr->gc, br.x(), br.y(), br.width(), br.height(), wbr.x(), wbr.y()); XSync(X11->display, False); + } else if (d_ptr->image->xshmimg) { + const QImage &src = d->image->image; + br = br.intersected(src.rect()); + XShmPutImage(X11->display, widget->handle(), d_ptr->gc, d_ptr->image->xshmimg, + br.x(), br.y(), wbr.x(), wbr.y(), br.width(), br.height(), False); + XSync(X11->display, False); } else #endif { diff --git a/src/gui/styles/qcommonstyle.cpp b/src/gui/styles/qcommonstyle.cpp index b08dc4b..bf2f68e 100644 --- a/src/gui/styles/qcommonstyle.cpp +++ b/src/gui/styles/qcommonstyle.cpp @@ -4661,7 +4661,7 @@ int QCommonStyle::pixelMetric(PixelMetric m, const QStyleOption *opt, const QWid case PM_ToolBarIconSize: ret = qt_guiPlatformPlugin()->platformHint(QGuiPlatformPlugin::PH_ToolBarIconSize); if (!ret) - ret = proxy()->pixelMetric(PM_SmallIconSize, opt, widget); + ret = int(QStyleHelper::dpiScaled(24.)); break; case PM_TabBarIconSize: diff --git a/src/gui/styles/qgtkstyle.cpp b/src/gui/styles/qgtkstyle.cpp index d315c98..ab0ab3a 100644 --- a/src/gui/styles/qgtkstyle.cpp +++ b/src/gui/styles/qgtkstyle.cpp @@ -1004,32 +1004,27 @@ void QGtkStyle::drawPrimitive(PrimitiveElement element, gtkPainter.setAlphaSupport(false); GtkShadowType shadow = GTK_SHADOW_OUT; GtkStateType state = GTK_STATE_NORMAL; // Only state supported by gtknotebook - if (const QTabWidget *tabwidget = qobject_cast<const QTabWidget*>(widget)) { - // We should introduce QStyleOptionTabWidgetFrameV2 to obtain this information - // No gap if we do not show the actual tabs - QTabBar *tabBar = tabwidget->findChild<QTabBar*>(); - if (tabwidget->count() > 0 && tabBar->isVisible()) { - QRect tabRect = tabBar->tabRect(tabBar->currentIndex()); - int begin = 0, size = 0; - GtkPositionType frameType = GTK_POS_TOP; - QTabBar::Shape shape = frame->shape; - if (shape == QTabBar::RoundedNorth || shape == QTabBar::RoundedSouth) { - begin = option->direction == Qt::LeftToRight ? - frame->leftCornerWidgetSize.width() + tabRect.left() : - frame->rect.width() - frame->tabBarSize.width() + tabRect.left() - - frame->rightCornerWidgetSize.width(); - size = tabRect.width(); - frameType = (shape == QTabBar::RoundedNorth) ? GTK_POS_TOP : GTK_POS_BOTTOM; - } else { - begin = frame->leftCornerWidgetSize.height() + tabRect.top(); - size = tabRect.height(); - frameType = (shape == QTabBar::RoundedWest) ? GTK_POS_LEFT : GTK_POS_RIGHT; - } - gtkPainter.paintBoxGap(gtkNotebook, "notebook", option->rect, state, shadow, frameType, - begin, size, style); - break; // done + bool reverse = (option->direction == Qt::RightToLeft); + QGtk::gtk_widget_set_direction(gtkNotebook, reverse ? GTK_TEXT_DIR_RTL : GTK_TEXT_DIR_LTR); + if (const QStyleOptionTabWidgetFrameV2 *tabframe = qstyleoption_cast<const QStyleOptionTabWidgetFrameV2*>(option)) { + GtkPositionType frameType = GTK_POS_TOP; + QTabBar::Shape shape = frame->shape; + int gapStart = 0; + int gapSize = 0; + if (shape == QTabBar::RoundedNorth || shape == QTabBar::RoundedSouth) { + frameType = (shape == QTabBar::RoundedNorth) ? GTK_POS_TOP : GTK_POS_BOTTOM; + gapStart = tabframe->selectedTabRect.left(); + gapSize = tabframe->selectedTabRect.width(); + } else { + frameType = (shape == QTabBar::RoundedWest) ? GTK_POS_LEFT : GTK_POS_RIGHT; + gapStart = tabframe->selectedTabRect.y(); + gapSize = tabframe->selectedTabRect.height(); } + gtkPainter.paintBoxGap(gtkNotebook, "notebook", option->rect, state, shadow, frameType, + gapStart, gapSize, style); + break; // done } + // Note this is only the fallback option gtkPainter.paintBox(gtkNotebook, "notebook", option->rect, state, shadow, style); } @@ -1933,9 +1928,6 @@ void QGtkStyle::drawComplexControl(ComplexControl control, const QStyleOptionCom QRect grooveRect = option->rect.adjusted(focusFrameMargin, outerSize + focusFrameMargin, -focusFrameMargin, -outerSize - focusFrameMargin); - gtkPainter.paintBox( scaleWidget, "trough", grooveRect, state, - GTK_SHADOW_IN, style, QString(QLS("p%0")).arg(slider->sliderPosition)); - gboolean trough_side_details = false; // Indicates if the upper or lower scale background differs if (!QGtk::gtk_check_version(2, 10, 0)) QGtk::gtk_widget_style_get((GtkWidget*)(scaleWidget), "trough-side-details", &trough_side_details, NULL); diff --git a/src/gui/styles/qmacstyle_mac.mm b/src/gui/styles/qmacstyle_mac.mm index 63ba641..38c3feb 100644 --- a/src/gui/styles/qmacstyle_mac.mm +++ b/src/gui/styles/qmacstyle_mac.mm @@ -342,12 +342,12 @@ void drawTabBase(QPainter *p, const QStyleOptionTabBarBaseV2 *tbb, const QWidget borderHighlightTop = QColor(207, 207, 207); } p->setPen(borderHighlightTop); - p->drawLine(0, 0, width, 0); + p->drawLine(tabRect.x(), 0, width, 0); p->setPen(borderTop); - p->drawLine(0, 1, width, 1); + p->drawLine(tabRect.x(), 1, width, 1); // center block - QRect centralRect(0, 2, width, height - 2); + QRect centralRect(tabRect.x(), 2, width, height - 2); if (active) { QColor mainColor = QColor(120, 120, 120); p->fillRect(centralRect, mainColor); @@ -370,9 +370,9 @@ void drawTabBase(QPainter *p, const QStyleOptionTabBarBaseV2 *tbb, const QWidget borderBottom = QColor(127, 127, 127); } p->setPen(borderHighlightBottom); - p->drawLine(0, height - 2, width, height - 2); + p->drawLine(tabRect.x(), height - 2, width, height - 2); p->setPen(borderBottom); - p->drawLine(0, height - 1, width, height - 1); + p->drawLine(tabRect.x(), height - 1, width, height - 1); } /* @@ -3637,17 +3637,19 @@ void QMacStyle::drawControl(ControlElement ce, const QStyleOption *opt, QPainter break; } } + bool stretchTabs = (!verticalTabs && tabRect.height() > 22 || verticalTabs && tabRect.width() > 22); + switch (tp) { case QStyleOptionTab::Beginning: tdi.position = kHIThemeTabPositionFirst; - if (sp != QStyleOptionTab::NextIsSelected) + if (sp != QStyleOptionTab::NextIsSelected || stretchTabs) tdi.adornment |= kHIThemeTabAdornmentTrailingSeparator; break; case QStyleOptionTab::Middle: tdi.position = kHIThemeTabPositionMiddle; if (selected) tdi.adornment |= kHIThemeTabAdornmentLeadingSeparator; - if (sp != QStyleOptionTab::NextIsSelected) // Also when we're selected. + if (sp != QStyleOptionTab::NextIsSelected || stretchTabs) // Also when we're selected. tdi.adornment |= kHIThemeTabAdornmentTrailingSeparator; break; case QStyleOptionTab::End: @@ -3659,9 +3661,8 @@ void QMacStyle::drawControl(ControlElement ce, const QStyleOption *opt, QPainter tdi.position = kHIThemeTabPositionOnly; break; } - // HITheme doesn't stretch its tabs. Therefore we have to cheat and do the job ourselves. - if ((!verticalTabs && tabRect.height() > 21 || verticalTabs && tabRect.width() > 21)) { + if (stretchTabs) { HIRect hirect = CGRectMake(0, 0, 23, 23); QPixmap pm(23, 23); pm.fill(Qt::transparent); diff --git a/src/gui/styles/qplastiquestyle.cpp b/src/gui/styles/qplastiquestyle.cpp index 09f5d36..f880351 100644 --- a/src/gui/styles/qplastiquestyle.cpp +++ b/src/gui/styles/qplastiquestyle.cpp @@ -5514,9 +5514,6 @@ int QPlastiqueStyle::pixelMetric(PixelMetric metric, const QStyleOption *option, case PM_MenuHMargin: ret = 0; break; - case PM_ToolBarIconSize: - ret = 24; - break; case PM_ButtonShiftHorizontal: case PM_ButtonShiftVertical: ret = 1; diff --git a/src/gui/styles/qs60style.cpp b/src/gui/styles/qs60style.cpp index 8d59d14..b87f3a8 100644 --- a/src/gui/styles/qs60style.cpp +++ b/src/gui/styles/qs60style.cpp @@ -66,7 +66,6 @@ #include "qtextedit.h" #include "qtoolbar.h" #include "qtoolbutton.h" -#include "qtreeview.h" #include "qfocusframe.h" #include "private/qtoolbarextension_p.h" @@ -91,14 +90,14 @@ static const qreal goldenRatio = 1.618; const layoutHeader QS60StylePrivate::m_layoutHeaders[] = { // *** generated layout data *** -{240,320,1,14,true,"QVGA Landscape Mirrored"}, -{240,320,1,14,false,"QVGA Landscape"}, -{320,240,1,14,true,"QVGA Portrait Mirrored"}, -{320,240,1,14,false,"QVGA Portrait"}, -{360,640,1,14,true,"NHD Landscape Mirrored"}, -{360,640,1,14,false,"NHD Landscape"}, -{640,360,1,14,true,"NHD Portrait Mirrored"}, -{640,360,1,14,false,"NHD Portrait"}, +{240,320,1,15,true,"QVGA Landscape Mirrored"}, +{240,320,1,15,false,"QVGA Landscape"}, +{320,240,1,15,true,"QVGA Portrait Mirrored"}, +{320,240,1,15,false,"QVGA Portrait"}, +{360,640,1,15,true,"NHD Landscape Mirrored"}, +{360,640,1,15,false,"NHD Landscape"}, +{640,360,1,15,true,"NHD Portrait Mirrored"}, +{640,360,1,15,false,"NHD Portrait"}, {352,800,1,12,true,"E90 Landscape Mirrored"}, {352,800,1,12,false,"E90 Landscape"} // *** End of generated data *** @@ -108,16 +107,16 @@ const int QS60StylePrivate::m_numberOfLayouts = const short QS60StylePrivate::data[][MAX_PIXELMETRICS] = { // *** generated pixel metrics *** -{5,0,-909,0,0,1,0,0,-1,8,15,22,15,15,7,198,-909,-909,-909,19,15,2,0,0,21,-909,21,-909,4,4,1,-909,-909,0,2,0,0,13,23,17,17,21,21,2,115,21,0,-909,-909,-909,-909,0,0,15,1,-909,0,0,-909,15,-909,-909,-909,-909,32,21,51,27,51,4,4,5,10,15,-909,5,58,12,5,0,7,4,4,9,4,4,-909,1,-909,-909,-909,-909,4,4,3,1}, -{5,0,-909,0,0,1,0,0,-1,8,15,22,15,15,7,198,-909,-909,-909,19,15,2,0,0,21,-909,21,-909,4,4,1,-909,-909,0,2,0,0,13,23,17,17,21,21,2,115,21,0,-909,-909,-909,-909,0,0,15,1,-909,0,0,-909,15,-909,-909,-909,-909,32,21,51,27,51,4,4,5,10,15,-909,5,58,12,5,0,4,4,7,9,4,4,-909,1,-909,-909,-909,-909,4,4,3,1}, -{5,0,-909,0,0,1,0,0,-1,8,14,22,15,15,7,164,-909,-909,-909,19,15,2,0,0,21,-909,27,-909,4,4,1,-909,-909,0,7,6,0,13,23,17,17,21,21,7,115,21,0,-909,-909,-909,-909,0,0,15,1,-909,0,0,-909,15,-909,-909,-909,-909,32,21,65,27,65,4,4,5,10,15,-909,5,58,13,5,0,7,4,4,9,4,4,-909,1,-909,-909,-909,-909,4,4,3,1}, -{5,0,-909,0,0,1,0,0,-1,8,14,22,15,15,7,164,-909,-909,-909,19,15,2,0,0,21,-909,27,-909,4,4,1,-909,-909,0,7,6,0,13,23,17,17,21,21,7,115,21,0,-909,-909,-909,-909,0,0,15,1,-909,0,0,-909,15,-909,-909,-909,-909,32,21,65,27,65,4,4,5,10,15,-909,5,58,13,5,0,4,4,7,9,4,4,-909,1,-909,-909,-909,-909,4,4,3,1}, -{7,0,-909,0,0,2,0,0,-1,20,53,28,19,19,9,258,-909,-909,-909,29,19,26,0,0,32,-909,72,-909,5,5,2,-909,-909,0,7,21,0,17,29,22,22,27,27,7,173,29,0,-909,-909,-909,-909,0,0,25,2,-909,0,0,-909,25,-909,-909,-909,-909,87,27,77,35,77,5,5,6,8,19,-909,7,74,19,7,0,8,5,5,12,5,5,-909,2,-909,-909,-909,-909,7,7,3,1}, -{7,0,-909,0,0,2,0,0,-1,20,53,28,19,19,9,258,-909,-909,-909,29,19,26,0,0,32,-909,72,-909,5,5,2,-909,-909,0,7,21,0,17,29,22,22,27,27,7,173,29,0,-909,-909,-909,-909,0,0,25,2,-909,0,0,-909,25,-909,-909,-909,-909,87,27,77,35,77,5,5,6,8,19,-909,7,74,19,7,0,5,5,8,12,5,5,-909,2,-909,-909,-909,-909,7,7,3,1}, -{7,0,-909,0,0,2,0,0,-1,20,52,28,19,19,9,258,-909,-909,-909,29,19,6,0,0,32,-909,60,-909,5,5,2,-909,-909,0,7,32,0,17,29,22,22,27,27,7,173,29,0,-909,-909,-909,-909,0,0,26,2,-909,0,0,-909,26,-909,-909,-909,-909,87,27,98,35,98,5,5,6,8,19,-909,7,74,22,7,0,8,5,5,12,5,5,-909,2,-909,-909,-909,-909,7,7,3,1}, -{7,0,-909,0,0,2,0,0,-1,20,52,28,19,19,9,258,-909,-909,-909,29,19,6,0,0,32,-909,60,-909,5,5,2,-909,-909,0,7,32,0,17,29,22,22,27,27,7,173,29,0,-909,-909,-909,-909,0,0,26,2,-909,0,0,-909,26,-909,-909,-909,-909,87,27,98,35,98,5,5,6,8,19,-909,7,74,22,7,0,5,5,8,12,5,5,-909,2,-909,-909,-909,-909,7,7,3,1}, -{7,0,-909,0,0,2,0,0,-1,10,20,27,18,18,9,301,-909,-909,-909,29,18,5,0,0,35,-909,32,-909,5,5,2,-909,-909,0,2,8,0,16,28,21,21,26,26,2,170,26,0,-909,-909,-909,-909,0,0,21,5,-909,0,0,-909,-909,-909,-909,-909,-909,54,26,265,34,265,5,5,6,3,18,-909,7,72,19,7,0,8,6,5,11,6,5,-909,2,-909,-909,-909,-909,5,5,3,1}, -{7,0,-909,0,0,2,0,0,-1,10,20,27,18,18,9,301,-909,-909,-909,29,18,5,0,0,35,-909,32,-909,5,5,2,-909,-909,0,2,8,0,16,28,21,21,26,26,2,170,26,0,-909,-909,-909,-909,0,0,21,6,-909,0,0,-909,-909,-909,-909,-909,-909,54,26,265,34,265,5,5,6,3,18,-909,7,72,19,7,0,5,6,8,11,6,5,-909,2,-909,-909,-909,-909,5,5,3,1} +{5,0,-909,0,0,2,0,0,-1,7,12,19,13,13,6,200,-909,-909,-909,20,13,2,0,0,21,7,18,-909,3,3,1,-909,-909,0,1,0,0,12,20,15,15,18,18,1,115,18,0,-909,-909,-909,-909,0,0,16,2,-909,0,0,-909,16,-909,-909,-909,-909,32,18,55,24,55,3,3,4,9,13,-909,5,51,11,5,0,6,3,3,8,3,3,-909,2,-909,-909,-909,-909,5,5,3,1}, +{5,0,-909,0,0,2,0,0,-1,7,12,19,13,13,6,200,-909,-909,-909,20,13,2,0,0,21,7,18,-909,3,3,1,-909,-909,0,1,0,0,12,20,15,15,18,18,1,115,18,0,-909,-909,-909,-909,0,0,16,2,-909,0,0,-909,16,-909,-909,-909,-909,32,18,55,24,55,3,3,4,9,13,-909,5,51,11,5,0,3,3,6,8,3,3,-909,2,-909,-909,-909,-909,5,5,3,1}, +{5,0,-909,0,0,1,0,0,-1,8,14,22,15,15,7,164,-909,-909,-909,19,15,2,0,0,21,8,27,-909,4,4,1,-909,-909,0,7,6,0,13,23,17,17,21,21,7,115,21,0,-909,-909,-909,-909,0,0,15,1,-909,0,0,-909,15,-909,-909,-909,-909,32,21,65,27,65,4,4,5,10,15,-909,5,58,13,5,0,7,4,4,9,4,4,-909,2,-909,-909,-909,-909,6,6,3,1}, +{5,0,-909,0,0,1,0,0,-1,8,14,22,15,15,7,164,-909,-909,-909,19,15,2,0,0,21,8,27,-909,4,4,1,-909,-909,0,7,6,0,13,23,17,17,21,21,7,115,21,0,-909,-909,-909,-909,0,0,15,1,-909,0,0,-909,15,-909,-909,-909,-909,32,21,65,27,65,4,4,5,10,15,-909,5,58,13,5,0,4,4,7,9,4,4,-909,2,-909,-909,-909,-909,6,6,3,1}, +{7,0,-909,0,0,2,0,0,-1,25,69,28,19,19,9,258,-909,-909,-909,23,19,26,0,0,32,25,72,-909,5,5,2,-909,-909,0,7,21,0,17,29,22,22,27,27,7,173,29,0,-909,-909,-909,-909,0,0,25,2,-909,0,0,-909,25,-909,-909,-909,-909,87,27,77,35,77,5,5,6,8,19,-909,7,74,19,7,0,8,5,5,12,5,5,-909,3,-909,-909,-909,-909,7,7,3,1}, +{7,0,-909,0,0,2,0,0,-1,25,69,28,19,19,9,258,-909,-909,-909,23,19,26,0,0,32,25,72,-909,5,5,2,-909,-909,0,7,21,0,17,29,22,22,27,27,7,173,29,0,-909,-909,-909,-909,0,0,25,2,-909,0,0,-909,25,-909,-909,-909,-909,87,27,77,35,77,5,5,6,8,19,-909,7,74,19,7,0,5,5,8,12,5,5,-909,3,-909,-909,-909,-909,7,7,3,1}, +{7,0,-909,0,0,2,0,0,-1,25,68,28,19,19,9,258,-909,-909,-909,31,19,6,0,0,32,25,60,-909,5,5,2,-909,-909,0,7,32,0,17,29,22,22,27,27,7,173,29,0,-909,-909,-909,-909,0,0,26,2,-909,0,0,-909,26,-909,-909,-909,-909,87,27,96,35,96,5,5,6,8,19,-909,7,74,22,7,0,8,5,5,12,5,5,-909,3,-909,-909,-909,-909,7,7,3,1}, +{7,0,-909,0,0,2,0,0,-1,25,68,28,19,19,9,258,-909,-909,-909,31,19,6,0,0,32,25,60,-909,5,5,2,-909,-909,0,7,32,0,17,29,22,22,27,27,7,173,29,0,-909,-909,-909,-909,0,0,26,2,-909,0,0,-909,26,-909,-909,-909,-909,87,27,96,35,96,5,5,6,8,19,-909,7,74,22,7,0,5,5,8,12,5,5,-909,3,-909,-909,-909,-909,7,7,3,1}, +{7,0,-909,0,0,2,0,0,-1,10,20,27,18,18,9,301,-909,-909,-909,29,18,5,0,0,35,7,32,-909,5,5,2,-909,-909,0,2,8,0,16,28,21,21,26,26,2,170,26,0,-909,-909,-909,-909,0,0,21,5,-909,0,0,-909,-909,-909,-909,-909,-909,54,26,265,34,265,5,5,6,3,18,-909,7,72,19,7,0,8,6,5,11,6,5,-909,2,-909,-909,-909,-909,5,5,3,1}, +{7,0,-909,0,0,2,0,0,-1,10,20,27,18,18,9,301,-909,-909,-909,29,18,5,0,0,35,7,32,-909,5,5,2,-909,-909,0,2,8,0,16,28,21,21,26,26,2,170,26,0,-909,-909,-909,-909,0,0,21,6,-909,0,0,-909,-909,-909,-909,-909,-909,54,26,265,34,265,5,5,6,3,18,-909,7,72,19,7,0,5,6,8,11,6,5,-909,2,-909,-909,-909,-909,5,5,3,1} // *** End of generated data *** }; @@ -526,7 +525,8 @@ void QS60StylePrivate::drawPart(QS60StyleEnums::SkinParts skinPart, #else true; #endif - const QPixmap skinPartPixMap((doCache ? cachedPart : part)(skinPart, rect.size(), flags)); + + const QPixmap skinPartPixMap((doCache ? cachedPart : part)(skinPart, rect.size(), painter, flags)); if (!skinPartPixMap.isNull()) painter->drawPixmap(rect.topLeft(), skinPartPixMap); } @@ -593,14 +593,14 @@ void QS60StylePrivate::drawRow(QS60StyleEnums::SkinParts start, } QPixmap QS60StylePrivate::cachedPart(QS60StyleEnums::SkinParts part, - const QSize &size, SkinElementFlags flags) + const QSize &size, QPainter *painter, SkinElementFlags flags) { QPixmap result; const QString cacheKey = QString::fromLatin1("S60Style: SkinParts=%1 QSize=%2|%3 SkinPartFlags=%4") .arg((int)part).arg(size.width()).arg(size.height()).arg((int)flags); if (!QPixmapCache::find(cacheKey, result)) { - result = QS60StylePrivate::part(part, size, flags); + result = QS60StylePrivate::part(part, size, painter, flags); QPixmapCache::insert(cacheKey, result); } return result; @@ -1315,13 +1315,13 @@ void QS60Style::drawControl(ControlElement element, const QStyleOption *option, painter->setClipRect(voptAdj.rect); const bool isSelected = (vopt->state & QStyle::State_Selected); - bool isVisible = false; + bool isScrollBarVisible = false; int scrollBarWidth = 0; QList<QScrollBar *> scrollBars = qFindChildren<QScrollBar *>(widget); for (int i = 0; i < scrollBars.size(); ++i) { QScrollBar *scrollBar = scrollBars.at(i); if (scrollBar && scrollBar->orientation() == Qt::Vertical) { - isVisible = scrollBar->isVisible(); + isScrollBarVisible = scrollBar->isVisible(); scrollBarWidth = scrollBar->size().width(); break; } @@ -1329,7 +1329,7 @@ void QS60Style::drawControl(ControlElement element, const QStyleOption *option, int rightValue = widget ? widget->contentsRect().right() : 0; - if (isVisible) + if (isScrollBarVisible) rightValue -= scrollBarWidth; if (voptAdj.rect.right() > rightValue) @@ -1337,40 +1337,40 @@ void QS60Style::drawControl(ControlElement element, const QStyleOption *option, const QRect iconRect = subElementRect(SE_ItemViewItemDecoration, &voptAdj, widget); QRect textRect = subElementRect(SE_ItemViewItemText, &voptAdj, widget); + const QAbstractItemView *itemView = qobject_cast<const QAbstractItemView *>(widget); // draw themed background for table unless background brush has been defined. if (vopt->backgroundBrush == Qt::NoBrush) { - const QStyleOptionViewItemV4 *tableOption = qstyleoption_cast<const QStyleOptionViewItemV4 *>(option); - const QTableView *table = qobject_cast<const QTableView *>(widget); - if (table && tableOption) { - const QModelIndex index = tableOption->index; + if (itemView) { + const QModelIndex index = vopt->index; //todo: Draw cell background only once - for the first cell. QStyleOptionViewItemV4 voptAdj2 = voptAdj; - const QModelIndex indexFirst = table->model()->index(0,0); - const QModelIndex indexLast = table->model()->index( - table->model()->rowCount()-1,table->model()->columnCount()-1); - if (table->viewport()) - voptAdj2.rect = QRect( table->visualRect(indexFirst).topLeft(), - table->visualRect(indexLast).bottomRight()).intersect(table->viewport()->rect()); - drawPrimitive(PE_PanelItemViewItem, &voptAdj2, painter, widget); + const QModelIndex indexFirst = itemView->model()->index(0,0); + const QModelIndex indexLast = itemView->model()->index( + itemView->model()->rowCount()-1,itemView->model()->columnCount()-1); + if (itemView->viewport()) + voptAdj2.rect = QRect( itemView->visualRect(indexFirst).topLeft(), + itemView->visualRect(indexLast).bottomRight()).intersect(itemView->viewport()->rect()); + drawPrimitive(PE_PanelItemViewItem, &voptAdj, painter, widget); } - } else { QCommonStyle::drawPrimitive(PE_PanelItemViewItem, option, painter, widget);} + } else { QCommonStyle::drawPrimitive(PE_PanelItemViewItem, &voptAdj, painter, widget);} // draw the focus rect if (isSelected) { QRect highlightRect = option->rect.adjusted(1,1,-1,-1); - const QAbstractItemView *view = qobject_cast<const QAbstractItemView *>(widget); - if (view && view->selectionBehavior() != QAbstractItemView::SelectItems) { + QAbstractItemView::SelectionBehavior selectionBehavior = + itemView ? itemView->selectionBehavior() : QAbstractItemView::SelectItems; + if (selectionBehavior != QAbstractItemView::SelectItems) { // set highlight rect so that it is continuous from cell to cell, yet sligthly // smaller than cell rect int xBeginning = 0, yBeginning = 0, xEnd = 0, yEnd = 0; - if (view->selectionBehavior() == QAbstractItemView::SelectRows) { + if (selectionBehavior == QAbstractItemView::SelectRows) { yBeginning = 1; yEnd = -1; if (vopt->viewItemPosition == QStyleOptionViewItemV4::Beginning) xBeginning = 1; else if (vopt->viewItemPosition == QStyleOptionViewItemV4::End) xEnd = -1; - } else if (view->selectionBehavior() == QAbstractItemView::SelectColumns) { + } else if (selectionBehavior == QAbstractItemView::SelectColumns) { xBeginning = 1; xEnd = -1; if (vopt->viewItemPosition == QStyleOptionViewItemV4::Beginning) yBeginning = 1; @@ -1379,7 +1379,9 @@ void QS60Style::drawControl(ControlElement element, const QStyleOption *option, } highlightRect = option->rect.adjusted(xBeginning, yBeginning, xEnd, yEnd); } - QS60StylePrivate::drawSkinElement(QS60StylePrivate::SE_ListHighlight, painter, highlightRect, flags); + if (vopt->showDecorationSelected && + (vopt->palette.highlight().color() == d->themePalette()->highlight().color())) + QS60StylePrivate::drawSkinElement(QS60StylePrivate::SE_ListHighlight, painter, highlightRect, flags); } // draw the icon @@ -1388,48 +1390,44 @@ void QS60Style::drawControl(ControlElement element, const QStyleOption *option, voptAdj.icon.paint(painter, iconRect, voptAdj.decorationAlignment, mode, state); // Draw selection check mark. Show check mark only in multi selection modes. - if (const QListView *listView = (qobject_cast<const QListView *>(widget))) { + if (itemView) { const bool singleSelection = - listView && - (listView->selectionMode() == QAbstractItemView::SingleSelection || - listView->selectionMode() == QAbstractItemView::NoSelection); + (itemView->selectionMode() == QAbstractItemView::SingleSelection || + itemView->selectionMode() == QAbstractItemView::NoSelection); const QRect selectionRect = subElementRect(SE_ItemViewItemCheckIndicator, &voptAdj, widget); + + QStyleOptionViewItemV4 checkMarkOption(voptAdj); + // Draw selection mark. if (voptAdj.state & QStyle::State_Selected && !singleSelection) { - QStyleOptionViewItemV4 option(voptAdj); - option.rect = selectionRect; - // Draw selection mark. - drawPrimitive(QStyle::PE_IndicatorViewItemCheck, &option, painter, widget); + checkMarkOption.rect = selectionRect; + drawPrimitive(QStyle::PE_IndicatorViewItemCheck, &checkMarkOption, painter, widget); if ( textRect.right() > selectionRect.left() ) textRect.setRight(selectionRect.left()); } else if (singleSelection && - voptAdj.features & QStyleOptionViewItemV2::HasCheckIndicator) { - // draw the check mark - if (selectionRect.isValid()) { - QStyleOptionViewItemV4 option(*vopt); - option.rect = selectionRect; - option.state = option.state & ~QStyle::State_HasFocus; - - switch (vopt->checkState) { - case Qt::Unchecked: - option.state |= QStyle::State_Off; - break; - case Qt::PartiallyChecked: - option.state |= QStyle::State_NoChange; - break; - case Qt::Checked: - option.state |= QStyle::State_On; - break; - } - drawPrimitive(QStyle::PE_IndicatorViewItemCheck, &option, painter, widget); + voptAdj.features & QStyleOptionViewItemV2::HasCheckIndicator && + selectionRect.isValid()) { + checkMarkOption.rect = selectionRect; + checkMarkOption.state = checkMarkOption.state & ~QStyle::State_HasFocus; + + switch (vopt->checkState) { + case Qt::Unchecked: + checkMarkOption.state |= QStyle::State_Off; + break; + case Qt::PartiallyChecked: + checkMarkOption.state |= QStyle::State_NoChange; + break; + case Qt::Checked: + checkMarkOption.state |= QStyle::State_On; + break; } + drawPrimitive(QStyle::PE_IndicatorViewItemCheck, &checkMarkOption, painter, widget); } } // draw the text if (!voptAdj.text.isEmpty()) { - const QStyleOptionViewItemV4 *tableOption = qstyleoption_cast<const QStyleOptionViewItemV4 *>(option); if (isSelected) { - if (qobject_cast<const QTableView *>(widget) && tableOption) + if (qobject_cast<const QTableView *>(widget)) voptAdj.palette.setColor( QPalette::Text, QS60StylePrivate::s60Color(QS60StyleEnums::CL_QsnTextColors, 11, 0)); else @@ -1722,8 +1720,11 @@ void QS60Style::drawControl(ControlElement element, const QStyleOption *option, // direction is set to north (and south when in RightToLeft) const QS60StylePrivate::SkinElementFlag arrowDirection = (arrowOptions.direction == Qt::LeftToRight) ? QS60StylePrivate::SF_PointNorth : QS60StylePrivate::SF_PointSouth; + painter->save(); + painter->setPen(option->palette.windowText().color()); QS60StylePrivate::drawSkinPart(QS60StyleEnums::SP_QgnIndiSubMenu, painter, arrowOptions.rect, (flags | QS60StylePrivate::SF_ColorSkinned | arrowDirection)); + painter->restore(); } //draw text @@ -1830,8 +1831,12 @@ void QS60Style::drawControl(ControlElement element, const QStyleOption *option, break; #endif //QT_NO_TOOLBAR case CE_ShapedFrame: - if (qobject_cast<const QTextEdit *>(widget)) { - QS60StylePrivate::drawSkinElement(QS60StylePrivate::SE_Editor, painter, option->rect, flags); + if (const QTextEdit *textEdit = qobject_cast<const QTextEdit *>(widget)) { + const QStyleOptionFrame *frame = qstyleoption_cast<const QStyleOptionFrame *>(option); + if (frame->palette.base().color()==Qt::transparent) + QS60StylePrivate::drawSkinElement(QS60StylePrivate::SE_Editor, painter, option->rect, flags); + else + QCommonStyle::drawControl(element, option, painter, widget); } else if (qobject_cast<const QTableView *>(widget)) { QS60StylePrivate::drawSkinElement(QS60StylePrivate::SE_TableItem, painter, option->rect, flags); } else if (const QHeaderView *header = qobject_cast<const QHeaderView *>(widget)) { @@ -1889,6 +1894,17 @@ void QS60Style::drawControl(ControlElement element, const QStyleOption *option, painter->restore(); } break; + case CE_Splitter: + if (option->state & State_Sunken && option->state & State_Enabled) { + painter->save(); + painter->setOpacity(0.5); + painter->setBrush(d->themePalette()->light()); + painter->setRenderHint(QPainter::Antialiasing); + const qreal roundRectRadius = 4 * goldenRatio; + painter->drawRoundedRect(option->rect, roundRectRadius, roundRectRadius); + painter->restore(); + } + break; default: QCommonStyle::drawControl(element, option, painter, widget); } @@ -1899,6 +1915,7 @@ void QS60Style::drawControl(ControlElement element, const QStyleOption *option, */ void QS60Style::drawPrimitive(PrimitiveElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget) const { + Q_D(const QS60Style); const QS60StylePrivate::SkinElementFlags flags = (option->state & State_Enabled) ? QS60StylePrivate::SF_StateEnabled : QS60StylePrivate::SF_StateDisabled; switch (element) { #ifndef QT_NO_LINEEDIT @@ -1908,19 +1925,27 @@ void QS60Style::drawPrimitive(PrimitiveElement element, const QStyleOption *opti if (widget && qobject_cast<const QComboBox *>(widget->parentWidget())) break; #endif - QS60StylePrivate::drawSkinElement(QS60StylePrivate::SE_FrameLineEdit, - painter, option->rect, flags); + QBrush editBrush = option->palette.brush(QPalette::Base); + if (editBrush.color() == Qt::transparent) + QS60StylePrivate::drawSkinElement(QS60StylePrivate::SE_FrameLineEdit, + painter, option->rect, flags); + else + QCommonStyle::drawPrimitive(element, option, painter, widget); } break; #endif // QT_NO_LINEEDIT case PE_IndicatorCheckBox: { - const QRect indicatorRect = option->rect; // Draw checkbox indicator as color skinned graphics. const QS60StyleEnums::SkinParts skinPart = (option->state & QStyle::State_On) ? QS60StyleEnums::SP_QgnIndiCheckboxOn : QS60StyleEnums::SP_QgnIndiCheckboxOff; - QS60StylePrivate::drawSkinPart(skinPart, painter, indicatorRect, - (flags | QS60StylePrivate::SF_ColorSkinned)); + painter->save(); + QColor themeColor = d->s60Color(QS60StyleEnums::CL_QsnIconColors, 13, option); + QColor buttonTextColor = option->palette.buttonText().color(); + if (themeColor != buttonTextColor) + painter->setPen(buttonTextColor); + QS60StylePrivate::drawSkinPart(skinPart, painter, option->rect, flags | QS60StylePrivate::SF_ColorSkinned ); + painter->restore(); } break; case PE_IndicatorViewItemCheck: @@ -1960,21 +1985,33 @@ void QS60Style::drawPrimitive(PrimitiveElement element, const QStyleOption *opti const int newY = (buttonRect.bottomRight().y() - option->rect.bottomRight().y()) >> 1 ; buttonRect.adjust(0,-newY,0,-newY); + painter->save(); + QColor themeColor = d->s60Color(QS60StyleEnums::CL_QsnIconColors, 13, option); + QColor buttonTextColor = option->palette.buttonText().color(); + if (themeColor != buttonTextColor) + painter->setPen(buttonTextColor); + // Draw radiobutton indicator as color skinned graphics. QS60StyleEnums::SkinParts skinPart = (option->state & QStyle::State_On) ? QS60StyleEnums::SP_QgnIndiRadiobuttOn : QS60StyleEnums::SP_QgnIndiRadiobuttOff; QS60StylePrivate::drawSkinPart(skinPart, painter, buttonRect, (flags | QS60StylePrivate::SF_ColorSkinned)); + painter->restore(); } break; case PE_PanelButtonCommand: case PE_PanelButtonTool: case PE_PanelButtonBevel: case PE_FrameButtonBevel: { - const bool isPressed = option->state & QStyle::State_Sunken; - const QS60StylePrivate::SkinElements skinElement = - isPressed ? QS60StylePrivate::SE_ButtonPressed : QS60StylePrivate::SE_ButtonNormal; - QS60StylePrivate::drawSkinElement(skinElement, painter, option->rect, flags); + QBrush editBrush = option->palette.brush(QPalette::Base); + if (editBrush.color() == Qt::transparent) { + const bool isPressed = option->state & QStyle::State_Sunken; + const QS60StylePrivate::SkinElements skinElement = + isPressed ? QS60StylePrivate::SE_ButtonPressed : QS60StylePrivate::SE_ButtonNormal; + QS60StylePrivate::drawSkinElement(skinElement, painter, option->rect, flags); + } else { + QCommonStyle::drawPrimitive(element, option, painter, widget); + } } break; #ifndef QT_NO_TOOLBUTTON @@ -2001,21 +2038,29 @@ void QS60Style::drawPrimitive(PrimitiveElement element, const QStyleOption *opti case PE_IndicatorSpinUp: if (const QStyleOptionSpinBox *spinBox = qstyleoption_cast<const QStyleOptionSpinBox *>(option)) { QStyleOptionSpinBox optionSpinBox = *spinBox; - const QS60StyleEnums::SkinParts part = (element == PE_IndicatorSpinUp) ? - QS60StyleEnums::SP_QgnGrafScrollArrowUp : - QS60StyleEnums::SP_QgnGrafScrollArrowDown; - const int adjustment = qMin(optionSpinBox.rect.width(), optionSpinBox.rect.height())/6; - optionSpinBox.rect.translate(0, (element == PE_IndicatorSpinDown) ? adjustment : -adjustment ); - QS60StylePrivate::drawSkinPart(part, painter, optionSpinBox.rect,flags); + if (optionSpinBox.palette.base().color()==Qt::transparent) { + const QS60StyleEnums::SkinParts part = (element == PE_IndicatorSpinUp) ? + QS60StyleEnums::SP_QgnGrafScrollArrowUp : + QS60StyleEnums::SP_QgnGrafScrollArrowDown; + const int adjustment = qMin(optionSpinBox.rect.width(), optionSpinBox.rect.height())/6; + optionSpinBox.rect.translate(0, (element == PE_IndicatorSpinDown) ? adjustment : -adjustment ); + QS60StylePrivate::drawSkinPart(part, painter, optionSpinBox.rect,flags); + } else { + QCommonStyle::drawPrimitive(element, &optionSpinBox, painter, widget); + } } #ifndef QT_NO_COMBOBOX else if (const QStyleOptionFrame *cmb = qstyleoption_cast<const QStyleOptionFrame *>(option)) { - // We want to draw down arrow here for comboboxes as well. - const QS60StyleEnums::SkinParts part = QS60StyleEnums::SP_QgnGrafScrollArrowDown; - QStyleOptionFrame comboBox = *cmb; - const int adjustment = qMin(comboBox.rect.width(), comboBox.rect.height())/6; - comboBox.rect.translate(0, (element == PE_IndicatorSpinDown) ? adjustment : -adjustment ); - QS60StylePrivate::drawSkinPart(part, painter, comboBox.rect,flags); + if (cmb->palette.base().color()==Qt::transparent) { + // We want to draw down arrow here for comboboxes as well. + const QS60StyleEnums::SkinParts part = QS60StyleEnums::SP_QgnGrafScrollArrowDown; + QStyleOptionFrame comboBox = *cmb; + const int adjustment = qMin(comboBox.rect.width(), comboBox.rect.height())/6; + comboBox.rect.translate(0, (element == PE_IndicatorSpinDown) ? adjustment : -adjustment ); + QS60StylePrivate::drawSkinPart(part, painter, comboBox.rect,flags); + } else { + QCommonStyle::drawPrimitive(element, cmb, painter, widget); + } } #endif //QT_NO_COMBOBOX break; @@ -2045,8 +2090,12 @@ void QS60Style::drawPrimitive(PrimitiveElement element, const QStyleOption *opti || qobject_cast<const QMenu *> (widget) #endif //QT_NO_MENU ) { - QS60StylePrivate::SkinElements skinElement = QS60StylePrivate::SE_OptionsMenu; - QS60StylePrivate::drawSkinElement(skinElement, painter, option->rect, flags); + if (option->palette.base().color()==Qt::transparent) { + QS60StylePrivate::SkinElements skinElement = QS60StylePrivate::SE_OptionsMenu; + QS60StylePrivate::drawSkinElement(skinElement, painter, option->rect, flags); + } else { + QCommonStyle::drawPrimitive(element, option, painter, widget); + } } break; case PE_FrameWindow: @@ -2133,7 +2182,7 @@ void QS60Style::drawPrimitive(PrimitiveElement element, const QStyleOption *opti drawSkinPart = true; } - if ( drawSkinPart ) + if (drawSkinPart) QS60StylePrivate::drawSkinPart(skinPart, painter, option->rect, flags); if (option->state & State_Children) { @@ -2190,7 +2239,7 @@ int QS60Style::pixelMetric(PixelMetric metric, const QStyleOption *option, const if (metricValue == KNotFound) metricValue = QCommonStyle::pixelMetric(metric, option, widget); - if (metric == PM_SubMenuOverlap && widget){ + if (metric == PM_SubMenuOverlap && widget) { const QMenu *menu = qobject_cast<const QMenu *>(widget); if (menu && menu->activeAction() && menu->activeAction()->menu()) { const int menuWidth = menu->activeAction()->menu()->sizeHint().width(); @@ -2878,7 +2927,7 @@ QIcon QS60Style::standardIconImplementation(StandardPixmap standardIcon, return QCommonStyle::standardIconImplementation(standardIcon, option, widget); } const QS60StylePrivate::SkinElementFlags flags = adjustedFlags; - const QPixmap cachedPixMap(QS60StylePrivate::cachedPart(part, iconSize.size(), flags)); + const QPixmap cachedPixMap(QS60StylePrivate::cachedPart(part, iconSize.size(), 0, flags)); return cachedPixMap.isNull() ? QCommonStyle::standardIconImplementation(standardIcon, option, widget) : QIcon(cachedPixMap); } diff --git a/src/gui/styles/qs60style_p.h b/src/gui/styles/qs60style_p.h index 8e53eee..54af757 100644 --- a/src/gui/styles/qs60style_p.h +++ b/src/gui/styles/qs60style_p.h @@ -372,7 +372,7 @@ public: SF_StateEnabled = 0x0010, // Enabled = the default SF_StateDisabled = 0x0020, - SF_ColorSkinned = 0x0040, + SF_ColorSkinned = 0x0040, // pixmap is colored with foreground pen color }; enum CacheClearReason { @@ -472,7 +472,7 @@ private: const QRect &rect, SkinElementFlags flags = KDefaultSkinElementFlags); static QPixmap cachedPart(QS60StyleEnums::SkinParts part, const QSize &size, - SkinElementFlags flags = KDefaultSkinElementFlags); + QPainter *painter, SkinElementFlags flags = KDefaultSkinElementFlags); static QPixmap cachedFrame(SkinFrameElements frame, const QSize &size, SkinElementFlags flags = KDefaultSkinElementFlags); @@ -489,7 +489,7 @@ private: static QSize partSize(QS60StyleEnums::SkinParts part, SkinElementFlags flags = KDefaultSkinElementFlags); static QPixmap part(QS60StyleEnums::SkinParts part, const QSize &size, - SkinElementFlags flags = KDefaultSkinElementFlags); + QPainter *painter, SkinElementFlags flags = KDefaultSkinElementFlags); static QFont s60Font_specific(QS60StyleEnums::FontCategories fontCategory, int pointSize); diff --git a/src/gui/styles/qs60style_s60.cpp b/src/gui/styles/qs60style_s60.cpp index 9765066..678844c 100644 --- a/src/gui/styles/qs60style_s60.cpp +++ b/src/gui/styles/qs60style_s60.cpp @@ -99,7 +99,7 @@ public: const QSize &size, QS60StylePrivate::SkinElementFlags flags); static QPixmap skinnedGraphics(QS60StylePrivate::SkinFrameElements frameElement, const QSize &size, QS60StylePrivate::SkinElementFlags flags); static QPixmap colorSkinnedGraphics(const QS60StyleEnums::SkinParts &stylepart, - const QSize &size, QS60StylePrivate::SkinElementFlags flags); + const QSize &size, QPainter *painter, QS60StylePrivate::SkinElementFlags flags); static QColor colorValue(const TAknsItemID &colorGroup, int colorIndex); static QPixmap fromFbsBitmap(CFbsBitmap *icon, CFbsBitmap *mask, QS60StylePrivate::SkinElementFlags flags, QImage::Format format); static bool disabledPartGraphic(QS60StyleEnums::SkinParts &part); @@ -112,14 +112,12 @@ private: const QSize &size, QS60StylePrivate::SkinElementFlags flags); static QPixmap createSkinnedGraphicsLX(QS60StylePrivate::SkinFrameElements frameElement, const QSize &size, QS60StylePrivate::SkinElementFlags flags); static QPixmap colorSkinnedGraphicsLX(const QS60StyleEnums::SkinParts &stylepart, - const QSize &size, QS60StylePrivate::SkinElementFlags flags); + const QSize &size, QPainter *painter, QS60StylePrivate::SkinElementFlags flags); static void frameIdAndCenterId(QS60StylePrivate::SkinFrameElements frameElement, TAknsItemID &frameId, TAknsItemID ¢erId); static TRect innerRectFromElement(QS60StylePrivate::SkinFrameElements frameElement, const TRect &outerRect); static void checkAndUnCompressBitmapL(CFbsBitmap*& aOriginalBitmap); static void checkAndUnCompressBitmap(CFbsBitmap*& aOriginalBitmap); static void unCompressBitmapL(const TRect& aTrgRect, CFbsBitmap* aTrgBitmap, CFbsBitmap* aSrcBitmap); - static void colorGroupAndIndex(QS60StyleEnums::SkinParts skinID, - TAknsItemID &colorGroup, int &colorIndex); static void fallbackInfo(const QS60StyleEnums::SkinParts &stylepart, TDes& fallbackFileName, TInt& fallbackIndex); static bool checkSupport(const int supportedRelease); static TAknsItemID checkAndUpdateReleaseSpecificGraphics(int part); @@ -361,11 +359,11 @@ QPixmap QS60StyleModeSpecifics::skinnedGraphics( } QPixmap QS60StyleModeSpecifics::colorSkinnedGraphics( - const QS60StyleEnums::SkinParts &stylepart, - const QSize &size, QS60StylePrivate::SkinElementFlags flags) + const QS60StyleEnums::SkinParts &stylepart, const QSize &size, QPainter *painter, + QS60StylePrivate::SkinElementFlags flags) { QPixmap colorGraphics; - TRAPD(error, QT_TRYCATCH_LEAVING(colorGraphics = colorSkinnedGraphicsLX(stylepart, size, flags))); + TRAPD(error, QT_TRYCATCH_LEAVING(colorGraphics = colorSkinnedGraphicsLX(stylepart, size, painter, flags))); return error ? QPixmap() : colorGraphics; } @@ -525,7 +523,7 @@ void QS60StyleModeSpecifics::fallbackInfo(const QS60StyleEnums::SkinParts &style QPixmap QS60StyleModeSpecifics::colorSkinnedGraphicsLX( const QS60StyleEnums::SkinParts &stylepart, - const QSize &size, QS60StylePrivate::SkinElementFlags flags) + const QSize &size, QPainter *painter, QS60StylePrivate::SkinElementFlags flags) { // this function can throw both exceptions and leaves. There are no cleanup dependencies between Qt and Symbian parts. const int stylepartIndex = (int)stylepart; @@ -537,8 +535,13 @@ QPixmap QS60StyleModeSpecifics::colorSkinnedGraphicsLX( fallbackInfo(stylepart, fileNamePtr, fallbackGraphicID); TAknsItemID colorGroup = KAknsIIDQsnIconColors; - int colorIndex = 0; - colorGroupAndIndex(stylepart, colorGroup, colorIndex); + TRgb defaultColor = KRgbBlack; + int colorIndex = -1; //set a bogus value to color index to ensure that painter color is used + //to color the icon + if (painter) { + QRgb widgetColor = painter->pen().color().rgb(); + defaultColor = TRgb(qRed(widgetColor), qGreen(widgetColor), qBlue(widgetColor)); + } const bool rotatedBy90or270 = (flags & (QS60StylePrivate::SF_PointEast | QS60StylePrivate::SF_PointWest)); @@ -550,7 +553,7 @@ QPixmap QS60StyleModeSpecifics::colorSkinnedGraphicsLX( fallbackGraphicID == KErrNotFound?KErrNotFound:fallbackGraphicID+1; //masks are auto-generated as next in mif files MAknsSkinInstance* skinInstance = AknsUtils::SkinInstance(); AknsUtils::CreateColorIconLC( - skinInstance, skinId, colorGroup, colorIndex, icon, iconMask, fileNamePtr, fallbackGraphicID , fallbackGraphicsMaskID, KRgbBlack); + skinInstance, skinId, colorGroup, colorIndex, icon, iconMask, fileNamePtr, fallbackGraphicID , fallbackGraphicsMaskID, defaultColor); User::LeaveIfError(AknIconUtils::SetSize(icon, targetSize, EAspectRatioNotPreserved)); User::LeaveIfError(AknIconUtils::SetSize(iconMask, targetSize, EAspectRatioNotPreserved)); QPixmap result = fromFbsBitmap(icon, iconMask, flags, qt_TDisplayMode2Format(icon->DisplayMode())); @@ -652,8 +655,8 @@ QPoint qt_s60_fill_background_offset(const QWidget *targetWidget) } QPixmap QS60StyleModeSpecifics::createSkinnedGraphicsLX( - QS60StyleEnums::SkinParts part, - const QSize &size, QS60StylePrivate::SkinElementFlags flags) + QS60StyleEnums::SkinParts part, const QSize &size, + QS60StylePrivate::SkinElementFlags flags) { // this function can throw both exceptions and leaves. There are no cleanup dependencies between Qt and Symbian parts. if (!size.isValid()) @@ -700,13 +703,13 @@ QPixmap QS60StyleModeSpecifics::createSkinnedGraphicsLX( CleanupStack::PushL(background); User::LeaveIfError(background->Create(targetSize, EColor16MA)); - CFbsBitmapDevice* dev = CFbsBitmapDevice::NewL(background); + CFbsBitmapDevice *dev = CFbsBitmapDevice::NewL(background); CleanupStack::PushL(dev); - CFbsBitGc* gc = NULL; + CFbsBitGc *gc = NULL; User::LeaveIfError(dev->CreateContext(gc)); CleanupStack::PushL(gc); - CAknsBasicBackgroundControlContext* bgContext = CAknsBasicBackgroundControlContext::NewL( + CAknsBasicBackgroundControlContext *bgContext = CAknsBasicBackgroundControlContext::NewL( skinId, targetSize, EFalse); @@ -1145,12 +1148,12 @@ QPixmap QS60StyleModeSpecifics::generateMissingThemeGraphic(QS60StyleEnums::Skin } QPixmap QS60StylePrivate::part(QS60StyleEnums::SkinParts part, - const QSize &size, SkinElementFlags flags) + const QSize &size, QPainter *painter, SkinElementFlags flags) { QSymbianFbsHeapLock lock(QSymbianFbsHeapLock::Unlock); QPixmap result = (flags & SF_ColorSkinned)? - QS60StyleModeSpecifics::colorSkinnedGraphics(part, size, flags) + QS60StyleModeSpecifics::colorSkinnedGraphics(part, size, painter, flags) : QS60StyleModeSpecifics::skinnedGraphics(part, size, flags); lock.relock(); @@ -1189,7 +1192,7 @@ QPixmap QS60StylePrivate::backgroundTexture() { if (!m_background) { QPixmap background = part(QS60StyleEnums::SP_QsnBgScreen, - QSize(S60->screenWidthInPixels, S60->screenHeightInPixels), SkinElementFlags()); + QSize(S60->screenWidthInPixels, S60->screenHeightInPixels), 0, SkinElementFlags()); m_background = new QPixmap(background); } return *m_background; @@ -1343,26 +1346,6 @@ QSize QS60StylePrivate::screenSize() return QSize(screenSize.iWidth, screenSize.iHeight); } -void QS60StyleModeSpecifics::colorGroupAndIndex( - QS60StyleEnums::SkinParts skinID, TAknsItemID &colorGroup, int &colorIndex) -{ - switch(skinID) { - case QS60StyleEnums::SP_QgnIndiSubMenu: - colorGroup = KAknsIIDQsnIconColors; - colorIndex = EAknsCIQsnIconColorsCG1; - break; - case QS60StyleEnums::SP_QgnIndiRadiobuttOff: - case QS60StyleEnums::SP_QgnIndiRadiobuttOn: - case QS60StyleEnums::SP_QgnIndiCheckboxOff: - case QS60StyleEnums::SP_QgnIndiCheckboxOn: - colorGroup = KAknsIIDQsnIconColors; - colorIndex = EAknsCIQsnIconColorsCG14; - break; - default: - break; - } -} - QS60Style::QS60Style() : QCommonStyle(*new QS60StylePrivate) { diff --git a/src/gui/styles/qs60style_simulated.cpp b/src/gui/styles/qs60style_simulated.cpp index 8a2616d..14f0424 100644 --- a/src/gui/styles/qs60style_simulated.cpp +++ b/src/gui/styles/qs60style_simulated.cpp @@ -189,8 +189,10 @@ QColor QS60StylePrivate::s60Color(QS60StyleEnums::ColorLists list, } QPixmap QS60StylePrivate::part(QS60StyleEnums::SkinParts part, const QSize &size, - QS60StylePrivate::SkinElementFlags flags) + QPainter *painter, QS60StylePrivate::SkinElementFlags flags) { + Q_UNUSED(painter); + const QString partKey = QS60Style::partKeys().at(part); const QPicture partPicture = QS60StyleModeSpecifics::m_partPictures.value(partKey); QSize partSize(partPicture.boundingRect().size()); diff --git a/src/gui/styles/qstyleoption.cpp b/src/gui/styles/qstyleoption.cpp index 061afcc..f5a2b94 100644 --- a/src/gui/styles/qstyleoption.cpp +++ b/src/gui/styles/qstyleoption.cpp @@ -4654,6 +4654,119 @@ QStyleOptionTabWidgetFrame::QStyleOptionTabWidgetFrame(int version) The default value is QSize(-1, -1), i.e. an invalid size. */ + + +/*! + + \class QStyleOptionTabWidgetFrameV2 + \brief The QStyleOptionTabWidgetFrameV2 class is used to describe the + parameters for drawing the frame around a tab widget. + + QStyleOptionTabWidgetFrameV2 contains all the information that + QStyle functions need to draw the frame around QTabWidget. + + For performance reasons, the access to the member variables is + direct (i.e., using the \c . or \c -> operator). This low-level feel + makes the structures straightforward to use and emphasizes that + these are simply parameters used by the style functions. + + For an example demonstrating how style options can be used, see + the \l {widgets/styles}{Styles} example. + + \sa QStyleOption, QTabWidget +*/ + + +/*! + \variable QStyleOptionTabWidgetFrameV2::tabBarRect + \brief the rectangle containing all the tabs + + The default value is a null rectangle, i.e. a rectangle with both + the width and the height set to 0. +*/ + +/*! + \variable QStyleOptionTabWidgetFrameV2::selectedTabRect + \brief the rectangle containing the selected tab + + This rectangle is contained within the tabBarRect. The default + value is a null rectangle, i.e. a rectangle with both the width + and the height set to 0. +*/ + + +/*! + Constructs a QStyleOptionTabWidgetFrameV2, initializing the members + variables to their default values. +*/ + +QStyleOptionTabWidgetFrameV2::QStyleOptionTabWidgetFrameV2() + : QStyleOptionTabWidgetFrame(Version) +{ +} + + +/*! \internal */ +QStyleOptionTabWidgetFrameV2::QStyleOptionTabWidgetFrameV2(int version) + : QStyleOptionTabWidgetFrame(version) +{ +} + + +/*! + Constructs a QStyleOptionTabWidgetFrameV2 copy of the \a other style option + which can be either of the QStyleOptionTabWidgetFrameV2 or + QStyleOptionTabWidgetFrame types. + + If the \a other style option's version is 1, the new style option's \l + selectedTabRect and tabBarRect will contain null rects + + \sa version +*/ +QStyleOptionTabWidgetFrameV2::QStyleOptionTabWidgetFrameV2(const QStyleOptionTabWidgetFrame &other) +{ + QStyleOptionTabWidgetFrameV2::operator=(other); + +} + + +/*! + Assigns the \a other style option to this style option. The \a + other style option can be either of the QStyleOptionFrameV2 or + QStyleOptionFrame types. + + If the \a{other} style option's version is 1, this style option's + \l FrameFeature value is set to \l QStyleOptionFrameV2::None. If + its version is 2, its \l FrameFeature value is simply copied to + this style option. +*/ +QStyleOptionTabWidgetFrameV2 &QStyleOptionTabWidgetFrameV2::operator=(const QStyleOptionTabWidgetFrame &other) +{ + QStyleOptionTabWidgetFrame::operator=(other); + if (const QStyleOptionTabWidgetFrameV2 *f2 = qstyleoption_cast<const QStyleOptionTabWidgetFrameV2 *>(&other)) { + selectedTabRect = f2->selectedTabRect; + tabBarRect = f2->tabBarRect; + } + return *this; +} + + +/*! + \enum QStyleOptionTabWidgetFrameV2::StyleOptionVersion + + This enum is used to hold information about the version of the style option, and + is defined for each QStyleOption subclass. + + \value Version 2 + + The version is used by QStyleOption subclasses to implement + extensions without breaking compatibility. If you use + qstyleoption_cast(), you normally do not need to check it. + + \sa StyleOptionType +*/ + + #endif // QT_NO_TABWIDGET #ifndef QT_NO_TABBAR diff --git a/src/gui/styles/qstyleoption.h b/src/gui/styles/qstyleoption.h index bf8b479..abd52bf 100644 --- a/src/gui/styles/qstyleoption.h +++ b/src/gui/styles/qstyleoption.h @@ -192,8 +192,28 @@ public: protected: QStyleOptionTabWidgetFrame(int version); }; + +class Q_GUI_EXPORT QStyleOptionTabWidgetFrameV2 : public QStyleOptionTabWidgetFrame +{ +public: + enum StyleOptionVersion { Version = 2 }; + + QRect tabBarRect; + QRect selectedTabRect; + + QStyleOptionTabWidgetFrameV2(); + QStyleOptionTabWidgetFrameV2(const QStyleOptionTabWidgetFrameV2 &other) : + QStyleOptionTabWidgetFrame(Version) { *this = other; } + QStyleOptionTabWidgetFrameV2(const QStyleOptionTabWidgetFrame &other); + QStyleOptionTabWidgetFrameV2 &operator=(const QStyleOptionTabWidgetFrame &other); + +protected: + QStyleOptionTabWidgetFrameV2(int version); +}; + #endif + #ifndef QT_NO_TABBAR class Q_GUI_EXPORT QStyleOptionTabBarBase : public QStyleOption { diff --git a/src/gui/styles/qstylesheetstyle.cpp b/src/gui/styles/qstylesheetstyle.cpp index 2d90aa1..ae1d33a 100644 --- a/src/gui/styles/qstylesheetstyle.cpp +++ b/src/gui/styles/qstylesheetstyle.cpp @@ -4325,7 +4325,7 @@ void QStyleSheetStyle::drawPrimitive(PrimitiveElement pe, const QStyleOption *op QRenderRule subRule = renderRule(w, opt, PseudoElement_TabWidgetPane); if (subRule.hasNativeBorder()) { subRule.drawBackground(p, opt->rect); - QStyleOptionTabWidgetFrame frmCopy(*frm); + QStyleOptionTabWidgetFrameV2 frmCopy(*frm); subRule.configurePalette(&frmCopy.palette, QPalette::WindowText, QPalette::Window); baseStyle()->drawPrimitive(pe, &frmCopy, p, w); } else { diff --git a/src/gui/styles/qwindowsstyle.cpp b/src/gui/styles/qwindowsstyle.cpp index 0f72440..5cf738e 100644 --- a/src/gui/styles/qwindowsstyle.cpp +++ b/src/gui/styles/qwindowsstyle.cpp @@ -454,9 +454,6 @@ int QWindowsStyle::pixelMetric(PixelMetric pm, const QStyleOption *opt, const QW ret = proxy()->pixelMetric(PM_LargeIconSize, opt, widget); break; - case PM_ToolBarIconSize: - ret = int(QStyleHelper::dpiScaled(24.)); - break; case PM_DockWidgetTitleMargin: ret = int(QStyleHelper::dpiScaled(2.)); break; diff --git a/src/gui/styles/qwindowsvistastyle.cpp b/src/gui/styles/qwindowsvistastyle.cpp index 6cb8b40..9f5440c 100644 --- a/src/gui/styles/qwindowsvistastyle.cpp +++ b/src/gui/styles/qwindowsvistastyle.cpp @@ -159,7 +159,7 @@ QWindowsVistaStyle::QWindowsVistaStyle() } //convert Qt state flags to uxtheme button states -int buttonStateId(int flags, int partId) +static int buttonStateId(int flags, int partId) { int stateId = 0; if (partId == BP_RADIOBUTTON || partId == BP_CHECKBOX) { @@ -190,7 +190,7 @@ int buttonStateId(int flags, int partId) return stateId; } -void Animation::paint(QPainter *painter, const QStyleOption *option) +void QWindowsVistaAnimation::paint(QPainter *painter, const QStyleOption *option) { Q_UNUSED(option); Q_UNUSED(painter); @@ -205,7 +205,7 @@ void Animation::paint(QPainter *painter, const QStyleOption *option) + ((1-alpha)*_secondaryImage) */ -void Animation::drawBlendedImage(QPainter *painter, QRect rect, float alpha) { +void QWindowsVistaAnimation::drawBlendedImage(QPainter *painter, QRect rect, float alpha) { if (_secondaryImage.isNull() || _primaryImage.isNull()) return; @@ -251,7 +251,7 @@ void Animation::drawBlendedImage(QPainter *painter, QRect rect, float alpha) { initial and final state of the transition, depending on the time difference between _startTime and current time. */ -void Transition::paint(QPainter *painter, const QStyleOption *option) +void QWindowsVistaTransition::paint(QPainter *painter, const QStyleOption *option) { float alpha = 1.0; if (_duration > 0) { @@ -278,7 +278,7 @@ void Transition::paint(QPainter *painter, const QStyleOption *option) secondary pulse images depending on the time difference between _startTime and current time. */ -void Pulse::paint(QPainter *painter, const QStyleOption *option) +void QWindowsVistaPulse::paint(QPainter *painter, const QStyleOption *option) { float alpha = 1.0; if (_duration > 0) { @@ -393,8 +393,8 @@ void QWindowsVistaStyle::drawPrimitive(PrimitiveElement element, const QStyleOpt startImage.fill(0); QPainter startPainter(&startImage); - Animation *anim = d->widgetAnimation(widget); - Transition *t = new Transition; + QWindowsVistaAnimation *anim = d->widgetAnimation(widget); + QWindowsVistaTransition *t = new QWindowsVistaTransition; t->setWidget(w); // If we have a running animation on the widget already, we will use that to paint the initial @@ -531,7 +531,7 @@ void QWindowsVistaStyle::drawPrimitive(PrimitiveElement element, const QStyleOpt case PE_IndicatorCheckBox: case PE_IndicatorRadioButton: { - if (Animation *a = d->widgetAnimation(widget)) { + if (QWindowsVistaAnimation *a = d->widgetAnimation(widget)) { a->paint(painter, option); } else { QWindowsXPStyle::drawPrimitive(element, option, painter, widget); @@ -644,7 +644,7 @@ void QWindowsVistaStyle::drawPrimitive(PrimitiveElement element, const QStyleOpt break; case PE_FrameLineEdit: - if (Animation *anim = d->widgetAnimation(widget)) { + if (QWindowsVistaAnimation *anim = d->widgetAnimation(widget)) { anim->paint(painter, option); } else { QPainter *p = painter; @@ -929,13 +929,13 @@ void QWindowsVistaStyle::drawControl(ControlElement element, const QStyleOption if (doTransition) { QImage startImage(option->rect.size(), QImage::Format_ARGB32_Premultiplied); QImage endImage(option->rect.size(), QImage::Format_ARGB32_Premultiplied); - Animation *anim = d->widgetAnimation(widget); + QWindowsVistaAnimation *anim = d->widgetAnimation(widget); QStyleOptionButton opt = *button; opt.state = (QStyle::State)oldState; startImage.fill(0); - Transition *t = new Transition; + QWindowsVistaTransition *t = new QWindowsVistaTransition; t->setWidget(w); QPainter startPainter(&startImage); @@ -972,7 +972,7 @@ void QWindowsVistaStyle::drawControl(ControlElement element, const QStyleOption if (const QStyleOptionButton *btn = qstyleoption_cast<const QStyleOptionButton *>(option)) { - if (Animation *anim = d->widgetAnimation(widget)) { + if (QWindowsVistaAnimation *anim = d->widgetAnimation(widget)) { anim->paint(painter, option); } else { name = QLatin1String("BUTTON"); @@ -999,14 +999,14 @@ void QWindowsVistaStyle::drawControl(ControlElement element, const QStyleOption !(state & (State_Sunken | State_On)) && !(state & State_MouseOver) && (state & State_Enabled) && (state & State_Active)) { - Animation *anim = d->widgetAnimation(widget); + QWindowsVistaAnimation *anim = d->widgetAnimation(widget); if (!anim && widget) { QImage startImage(option->rect.size(), QImage::Format_ARGB32_Premultiplied); startImage.fill(0); QImage alternateImage(option->rect.size(), QImage::Format_ARGB32_Premultiplied); alternateImage.fill(0); - Pulse *pulse = new Pulse; + QWindowsVistaPulse *pulse = new QWindowsVistaPulse; pulse->setWidget(const_cast<QWidget*>(widget)); QPainter startPainter(&startImage); @@ -1079,7 +1079,7 @@ void QWindowsVistaStyle::drawControl(ControlElement element, const QStyleOption if (const QProgressBar *progressbar = qobject_cast<const QProgressBar *>(widget)) { if (((progressbar->value() > 0 && d->transitionsEnabled()) || isIndeterminate)) { if (!d->widgetAnimation(progressbar) && progressbar->value() < progressbar->maximum()) { - Animation *a = new Animation; + QWindowsVistaAnimation *a = new QWindowsVistaAnimation; a->setWidget(const_cast<QWidget*>(widget)); a->setStartTime(QTime::currentTime()); d->startAnimation(a); @@ -1095,7 +1095,7 @@ void QWindowsVistaStyle::drawControl(ControlElement element, const QStyleOption QTime current = QTime::currentTime(); if (isIndeterminate) { - if (Animation *a = d->widgetAnimation(widget)) { + if (QWindowsVistaAnimation *a = d->widgetAnimation(widget)) { int glowSize = 120; int animationWidth = glowSize * 2 + (vertical ? theme.rect.height() : theme.rect.width()); int animOffset = a->startTime().msecsTo(current) / 4; @@ -1165,7 +1165,7 @@ void QWindowsVistaStyle::drawControl(ControlElement element, const QStyleOption } d->drawBackground(theme); - if (Animation *a = d->widgetAnimation(widget)) { + if (QWindowsVistaAnimation *a = d->widgetAnimation(widget)) { int glowSize = 140; int animationWidth = glowSize * 2 + (vertical ? theme.rect.height() : theme.rect.width()); int animOffset = a->startTime().msecsTo(current) / 4; @@ -1603,8 +1603,8 @@ void QWindowsVistaStyle::drawComplexControl(ComplexControl control, const QStyle if (doTransition) { QImage startImage(option->rect.size(), QImage::Format_ARGB32_Premultiplied); QImage endImage(option->rect.size(), QImage::Format_ARGB32_Premultiplied); - Animation *anim = d->widgetAnimation(widget); - Transition *t = new Transition; + QWindowsVistaAnimation *anim = d->widgetAnimation(widget); + QWindowsVistaTransition *t = new QWindowsVistaTransition; t->setWidget(w); if (!anim) { if (const QStyleOptionComboBox *combo = qstyleoption_cast<const QStyleOptionComboBox*>(option)) { @@ -1651,7 +1651,7 @@ void QWindowsVistaStyle::drawComplexControl(ComplexControl control, const QStyle t->setDuration(500); } - if (Animation *anim = d->widgetAnimation(widget)) { + if (QWindowsVistaAnimation *anim = d->widgetAnimation(widget)) { anim->paint(painter, option); return; } @@ -2217,14 +2217,15 @@ QRect QWindowsVistaStyle::subControlRect(ComplexControl control, const QStyleOpt int xpos = x; int margin = cb->frame ? 3 : 0; int bmarg = cb->frame ? 2 : 0; - xpos += wi - bmarg - 16; + int arrowButtonWidth = bmarg + 16; + xpos += wi - arrowButtonWidth; switch (subControl) { case SC_ComboBoxFrame: rect = cb->rect; break; case SC_ComboBoxArrow: - rect.setRect(xpos, y , wi - xpos, he); + rect.setRect(xpos, y , arrowButtonWidth, he); break; case SC_ComboBoxEditField: rect.setRect(x + margin, y + margin, wi - 2 * margin - 16, he - 2 * margin); @@ -2533,7 +2534,7 @@ void QWindowsVistaStylePrivate::timerEvent() !animations[i]->running() || !QWindowsVistaStylePrivate::useVista()) { - Animation *a = animations.takeAt(i); + QWindowsVistaAnimation *a = animations.takeAt(i); delete a; } } @@ -2546,14 +2547,14 @@ void QWindowsVistaStylePrivate::stopAnimation(const QWidget *w) { for (int i = animations.size() - 1 ; i >= 0 ; --i) { if (animations[i]->widget() == w) { - Animation *a = animations.takeAt(i); + QWindowsVistaAnimation *a = animations.takeAt(i); delete a; break; } } } -void QWindowsVistaStylePrivate::startAnimation(Animation *t) +void QWindowsVistaStylePrivate::startAnimation(QWindowsVistaAnimation *t) { Q_Q(QWindowsVistaStyle); stopAnimation(t->widget()); @@ -2575,11 +2576,11 @@ bool QWindowsVistaStylePrivate::transitionsEnabled() const } -Animation * QWindowsVistaStylePrivate::widgetAnimation(const QWidget *widget) const +QWindowsVistaAnimation * QWindowsVistaStylePrivate::widgetAnimation(const QWidget *widget) const { if (!widget) return 0; - foreach (Animation *a, animations) { + foreach (QWindowsVistaAnimation *a, animations) { if (a->widget() == widget) return a; } diff --git a/src/gui/styles/qwindowsvistastyle_p.h b/src/gui/styles/qwindowsvistastyle_p.h index e9bbb77..04823c1 100644 --- a/src/gui/styles/qwindowsvistastyle_p.h +++ b/src/gui/styles/qwindowsvistastyle_p.h @@ -136,11 +136,11 @@ QT_BEGIN_NAMESPACE #define TDLG_SECONDARYPANEL 8 #endif -class Animation +class QWindowsVistaAnimation { public : - Animation() : _running(true) { } - virtual ~Animation() { } + QWindowsVistaAnimation() : _running(true) { } + virtual ~QWindowsVistaAnimation() { } QWidget * widget() const { return _widget; } bool running() const { return _running; } const QTime &startTime() const { return _startTime; } @@ -161,11 +161,11 @@ protected: // Handles state transition animations -class Transition : public Animation +class QWindowsVistaTransition : public QWindowsVistaAnimation { public : - Transition() : Animation() {} - virtual ~Transition() { } + QWindowsVistaTransition() : QWindowsVistaAnimation() {} + virtual ~QWindowsVistaTransition() { } void setDuration(int duration) { _duration = duration; } void setStartImage(const QImage &image) { _primaryImage = image; } void setEndImage(const QImage &image) { _secondaryImage = image; } @@ -176,11 +176,11 @@ public : // Handles pulse animations (default buttons) -class Pulse: public Animation +class QWindowsVistaPulse: public QWindowsVistaAnimation { public : - Pulse() : Animation() {} - virtual ~Pulse() { } + QWindowsVistaPulse() : QWindowsVistaAnimation() {} + virtual ~QWindowsVistaPulse() { } void setDuration(int duration) { _duration = duration; } void setPrimaryImage(const QImage &image) { _primaryImage = image; } void setAlternateImage(const QImage &image) { _secondaryImage = image; } @@ -199,15 +199,15 @@ public: ~QWindowsVistaStylePrivate(); static bool resolveSymbols(); static inline bool useVista(); - void startAnimation(Animation *); + void startAnimation(QWindowsVistaAnimation *); void stopAnimation(const QWidget *); - Animation* widgetAnimation(const QWidget *) const; + QWindowsVistaAnimation* widgetAnimation(const QWidget *) const; void timerEvent(); bool transitionsEnabled() const; QWidget *treeViewHelper(); private: - QList <Animation*> animations; + QList <QWindowsVistaAnimation*> animations; QBasicTimer animationTimer; QWidget *m_treeViewHelper; }; diff --git a/src/gui/styles/qwindowsxpstyle.cpp b/src/gui/styles/qwindowsxpstyle.cpp index 9ef30e5..9fd9ce9 100644 --- a/src/gui/styles/qwindowsxpstyle.cpp +++ b/src/gui/styles/qwindowsxpstyle.cpp @@ -47,6 +47,7 @@ #include <private/qpaintengine_raster_p.h> #include <private/qapplication_p.h> #include <private/qstylehelper_p.h> +#include <private/qwidget_p.h> #include <qlibrary.h> #include <qpainter.h> #include <qpaintengine.h> @@ -299,7 +300,11 @@ HWND QWindowsXPStylePrivate::winId(const QWidget *widget) if (!limboWidget) { limboWidget = new QWidget(0); + limboWidget->createWinId(); limboWidget->setObjectName(QLatin1String("xp_limbo_widget")); + // We dont need this internal widget to appear in QApplication::topLevelWidgets() + if (QWidgetPrivate::allWidgets) + QWidgetPrivate::allWidgets->remove(limboWidget); } return limboWidget->winId(); @@ -1577,7 +1582,7 @@ case PE_Frame: // This should work, but currently there's an error in the ::drawBackgroundDirectly() // code, when using the HDC directly.. if (useGradient) { - QStyleOptionTabWidgetFrame frameOpt = *tab; + QStyleOptionTabWidgetFrameV2 frameOpt = *tab; frameOpt.rect = widget->rect(); QRect contentsRect = subElementRect(SE_TabWidgetTabContents, &frameOpt, widget); QRegion reg = option->rect; @@ -2836,8 +2841,8 @@ void QWindowsXPStyle::drawComplexControl(ComplexControl cc, const QStyleOptionCo State bflags = toolbutton->state & ~State_Sunken; State mflags = bflags; - - if (bflags & State_AutoRaise) { + bool autoRaise = flags & State_AutoRaise; + if (autoRaise) { if (!(bflags & State_MouseOver) || !(bflags & State_Enabled)) { bflags &= ~State_Raised; } @@ -2856,8 +2861,8 @@ void QWindowsXPStyle::drawComplexControl(ComplexControl cc, const QStyleOptionCo QStyleOption tool(0); tool.palette = toolbutton->palette; if (toolbutton->subControls & SC_ToolButton) { - if (flags & (State_Sunken | State_On | State_Raised) || !(flags & State_AutoRaise)) { - if (toolbutton->features & QStyleOptionToolButton::MenuButtonPopup) { + if (flags & (State_Sunken | State_On | State_Raised) || !autoRaise) { + if (toolbutton->features & QStyleOptionToolButton::MenuButtonPopup && autoRaise) { XPThemeData theme(widget, p, QLatin1String("TOOLBAR")); theme.partId = TP_SPLITBUTTON; theme.rect = button; @@ -2876,13 +2881,12 @@ void QWindowsXPStyle::drawComplexControl(ComplexControl cc, const QStyleOptionCo theme.stateId = stateId; d->drawBackground(theme); } else { - tool.rect = button; + tool.rect = option->rect; tool.state = bflags; - if (widget && !qobject_cast<QToolBar*>(widget->parentWidget()) - && !(bflags & State_AutoRaise)) - proxy()->drawPrimitive(PE_PanelButtonBevel, &tool, p, widget); - else + if (autoRaise) // for tool bars proxy()->drawPrimitive(PE_PanelButtonTool, &tool, p, widget); + else + proxy()->drawPrimitive(PE_PanelButtonBevel, &tool, p, widget); } } } @@ -2899,13 +2903,40 @@ void QWindowsXPStyle::drawComplexControl(ComplexControl cc, const QStyleOptionCo QStyleOptionToolButton label = *toolbutton; label.state = bflags; int fw = 2; + if (!autoRaise) + label.state &= ~State_Sunken; label.rect = button.adjusted(fw, fw, -fw, -fw); proxy()->drawControl(CE_ToolButtonLabel, &label, p, widget); if (toolbutton->subControls & SC_ToolButtonMenu) { tool.rect = menuarea; tool.state = mflags; - proxy()->drawPrimitive(PE_IndicatorButtonDropDown, &tool, p, widget); + if (autoRaise) { + proxy()->drawPrimitive(PE_IndicatorButtonDropDown, &tool, p, widget); + } else { + tool.state = mflags; + menuarea.adjust(-2, 0, 0, 0); + // Draw menu button + if ((bflags & State_Sunken) != (mflags & State_Sunken)){ + p->save(); + p->setClipRect(menuarea); + tool.rect = option->rect; + proxy()->drawPrimitive(PE_PanelButtonBevel, &tool, p, 0); + p->restore(); + } + // Draw arrow + p->save(); + p->setPen(option->palette.dark()); + p->drawLine(menuarea.left(), menuarea.top() + 3, + menuarea.left(), menuarea.bottom() - 3); + p->setPen(option->palette.light()); + p->drawLine(menuarea.left() - 1, menuarea.top() + 3, + menuarea.left() - 1, menuarea.bottom() - 3); + + tool.rect = menuarea.adjusted(2, 3, -2, -1); + proxy()->drawPrimitive(PE_IndicatorArrowDown, &tool, p, widget); + p->restore(); + } } else if (toolbutton->features & QStyleOptionToolButton::HasMenu) { int mbi = proxy()->pixelMetric(PM_MenuButtonIndicator, toolbutton, widget); QRect ir = toolbutton->rect; diff --git a/src/gui/text/qfont.cpp b/src/gui/text/qfont.cpp index 1b4c380..447087c 100644 --- a/src/gui/text/qfont.cpp +++ b/src/gui/text/qfont.cpp @@ -2324,22 +2324,22 @@ QDataStream &operator>>(QDataStream &s, QFont &font) */ QFontInfo::QFontInfo(const QFont &font) : d(font.d.data()) -{ d->ref.ref(); } +{ +} /*! Constructs a copy of \a fi. */ QFontInfo::QFontInfo(const QFontInfo &fi) - : d(fi.d) -{ d->ref.ref(); } + : d(fi.d.data()) +{ +} /*! Destroys the font info object. */ QFontInfo::~QFontInfo() { - if (!d->ref.deref()) - delete d; } /*! @@ -2347,7 +2347,7 @@ QFontInfo::~QFontInfo() */ QFontInfo &QFontInfo::operator=(const QFontInfo &fi) { - qAtomicAssign(d, fi.d); + d = fi.d.data(); return *this; } diff --git a/src/gui/text/qfontengine_mac.mm b/src/gui/text/qfontengine_mac.mm index 8ce437d..a4e7c04 100644 --- a/src/gui/text/qfontengine_mac.mm +++ b/src/gui/text/qfontengine_mac.mm @@ -546,7 +546,7 @@ void QCoreTextFontEngine::addGlyphsToPath(glyph_t *glyphs, QFixedPoint *position cgMatrix = CGAffineTransformScale(cgMatrix, 1, -1); if (synthesisFlags & QFontEngine::SynthesizedItalic) - cgMatrix = CGAffineTransformConcat(cgMatrix, CGAffineTransformMake(1, 0, tanf(14 * acosf(0) / 90), 1, 0, 0)); + cgMatrix = CGAffineTransformConcat(cgMatrix, CGAffineTransformMake(1, 0, -tanf(14 * acosf(0) / 90), 1, 0, 0)); for (int i = 0; i < nGlyphs; ++i) { diff --git a/src/gui/text/qfontengine_win.cpp b/src/gui/text/qfontengine_win.cpp index fd34d0f..6c367ab 100644 --- a/src/gui/text/qfontengine_win.cpp +++ b/src/gui/text/qfontengine_win.cpp @@ -208,7 +208,7 @@ void QFontEngineWin::getCMap() unitsPerEm = otm->otmEMSquare; x_height = (int)otm->otmsXHeight; loadKerningPairs(designToDevice); - _faceId.filename = (char *)otm + (int)otm->otmpFullName; + _faceId.filename = QString::fromWCharArray((wchar_t *)((char *)otm + (int)otm->otmpFullName)).toLatin1(); lineWidth = otm->otmsUnderscoreSize; fsType = otm->otmfsType; free(otm); @@ -987,8 +987,8 @@ QFontEngine::Properties QFontEngineWin::properties() const Properties p; p.emSquare = unitsPerEm; p.italicAngle = otm->otmItalicAngle; - p.postscriptName = (char *)otm + (int)otm->otmpFamilyName; - p.postscriptName += (char *)otm + (int)otm->otmpStyleName; + p.postscriptName = QString::fromWCharArray((wchar_t *)((char *)otm + (int)otm->otmpFamilyName)).toLatin1(); + p.postscriptName += QString::fromWCharArray((wchar_t *)((char *)otm + (int)otm->otmpStyleName)).toLatin1(); #ifndef QT_NO_PRINTER p.postscriptName = QPdf::stripSpecialCharacters(p.postscriptName); #endif @@ -1110,7 +1110,7 @@ QNativeImage *QFontEngineWin::drawGDIGlyph(HFONT font, glyph_t glyph, int margin ih + 2 * margin + 4, QNativeImage::systemFormat(), !qt_cleartype_enabled); - /*If cleartype is enabled we use the standard system format even on Windows CE + /*If cleartype is enabled we use the standard system format even on Windows CE and not the special textbuffer format we have to use if cleartype is disabled*/ ni->image.fill(0xffffffff); diff --git a/src/gui/text/qfontinfo.h b/src/gui/text/qfontinfo.h index 335d761..0998949 100644 --- a/src/gui/text/qfontinfo.h +++ b/src/gui/text/qfontinfo.h @@ -43,6 +43,7 @@ #define QFONTINFO_H #include <QtGui/qfont.h> +#include <QtCore/qsharedpointer.h> QT_BEGIN_HEADER @@ -77,7 +78,7 @@ public: bool exactMatch() const; private: - QFontPrivate *d; + QExplicitlySharedDataPointer<QFontPrivate> d; }; QT_END_NAMESPACE diff --git a/src/gui/text/qfontmetrics.cpp b/src/gui/text/qfontmetrics.cpp index ce122aa..b8c1b33 100644 --- a/src/gui/text/qfontmetrics.cpp +++ b/src/gui/text/qfontmetrics.cpp @@ -165,7 +165,6 @@ extern int qt_defaultDpi(); QFontMetrics::QFontMetrics(const QFont &font) : d(font.d.data()) { - d->ref.ref(); } /*! @@ -196,7 +195,6 @@ QFontMetrics::QFontMetrics(const QFont &font, QPaintDevice *paintdevice) d->screen = screen; } else { d = font.d.data(); - d->ref.ref(); } } @@ -205,8 +203,9 @@ QFontMetrics::QFontMetrics(const QFont &font, QPaintDevice *paintdevice) Constructs a copy of \a fm. */ QFontMetrics::QFontMetrics(const QFontMetrics &fm) - : d(fm.d) -{ d->ref.ref(); } + : d(fm.d.data()) +{ +} /*! Destroys the font metrics object and frees all allocated @@ -214,8 +213,6 @@ QFontMetrics::QFontMetrics(const QFontMetrics &fm) */ QFontMetrics::~QFontMetrics() { - if (!d->ref.deref()) - delete d; } /*! @@ -223,7 +220,7 @@ QFontMetrics::~QFontMetrics() */ QFontMetrics &QFontMetrics::operator=(const QFontMetrics &fm) { - qAtomicAssign(d, fm.d); + d = fm.d.data(); return *this; } @@ -536,7 +533,7 @@ int QFontMetrics::width(const QString &text, int len) const if (len == 0) return 0; - QTextEngine layout(text, d); + QTextEngine layout(text, d.data()); layout.ignoreBidi = true; return qRound(layout.width(0, len)); } @@ -612,7 +609,7 @@ int QFontMetrics::charWidth(const QString &text, int pos) const int from = qMax(0, pos - 8); int to = qMin(text.length(), pos + 8); QString cstr = QString::fromRawData(text.unicode() + from, to - from); - QTextEngine layout(cstr, d); + QTextEngine layout(cstr, d.data()); layout.ignoreBidi = true; layout.itemize(); width = qRound(layout.width(pos-from, 1)); @@ -661,7 +658,7 @@ QRect QFontMetrics::boundingRect(const QString &text) const if (text.length() == 0) return QRect(); - QTextEngine layout(text, d); + QTextEngine layout(text, d.data()); layout.ignoreBidi = true; layout.itemize(); glyph_metrics_t gm = layout.boundingBox(0, text.length()); @@ -770,7 +767,7 @@ QRect QFontMetrics::boundingRect(const QRect &rect, int flags, const QString &te QRectF rb; QRectF rr(rect); - qt_format_text(QFont(d), rr, flags | Qt::TextDontPrint, text, &rb, tabStops, tabArray, + qt_format_text(QFont(d.data()), rr, flags | Qt::TextDontPrint, text, &rb, tabStops, tabArray, tabArrayLen, 0); return rb.toAlignedRect(); @@ -831,7 +828,7 @@ QRect QFontMetrics::tightBoundingRect(const QString &text) const if (text.length() == 0) return QRect(); - QTextEngine layout(text, d); + QTextEngine layout(text, d.data()); layout.ignoreBidi = true; layout.itemize(); glyph_metrics_t gm = layout.tightBoundingBox(0, text.length()); @@ -876,7 +873,7 @@ QString QFontMetrics::elidedText(const QString &text, Qt::TextElideMode mode, in } _text = _text.mid(posA); } - QStackTextEngine engine(_text, QFont(d)); + QStackTextEngine engine(_text, QFont(d.data())); return engine.elidedText(mode, width, flags); } @@ -989,9 +986,8 @@ int QFontMetrics::lineWidth() const from the given \a fontMetrics object. */ QFontMetricsF::QFontMetricsF(const QFontMetrics &fontMetrics) - : d(fontMetrics.d) + : d(fontMetrics.d.data()) { - d->ref.ref(); } /*! @@ -1001,7 +997,7 @@ QFontMetricsF::QFontMetricsF(const QFontMetrics &fontMetrics) */ QFontMetricsF &QFontMetricsF::operator=(const QFontMetrics &other) { - qAtomicAssign(d, other.d); + d = other.d.data(); return *this; } @@ -1021,7 +1017,6 @@ QFontMetricsF &QFontMetricsF::operator=(const QFontMetrics &other) QFontMetricsF::QFontMetricsF(const QFont &font) : d(font.d.data()) { - d->ref.ref(); } /*! @@ -1052,7 +1047,6 @@ QFontMetricsF::QFontMetricsF(const QFont &font, QPaintDevice *paintdevice) d->screen = screen; } else { d = font.d.data(); - d->ref.ref(); } } @@ -1061,8 +1055,9 @@ QFontMetricsF::QFontMetricsF(const QFont &font, QPaintDevice *paintdevice) Constructs a copy of \a fm. */ QFontMetricsF::QFontMetricsF(const QFontMetricsF &fm) - : d(fm.d) -{ d->ref.ref(); } + : d(fm.d.data()) +{ +} /*! Destroys the font metrics object and frees all allocated @@ -1070,8 +1065,6 @@ QFontMetricsF::QFontMetricsF(const QFontMetricsF &fm) */ QFontMetricsF::~QFontMetricsF() { - if (!d->ref.deref()) - delete d; } /*! @@ -1079,7 +1072,7 @@ QFontMetricsF::~QFontMetricsF() */ QFontMetricsF &QFontMetricsF::operator=(const QFontMetricsF &fm) { - qAtomicAssign(d, fm.d); + d = fm.d.data(); return *this; } @@ -1374,7 +1367,7 @@ qreal QFontMetricsF::rightBearing(QChar ch) const */ qreal QFontMetricsF::width(const QString &text) const { - QTextEngine layout(text, d); + QTextEngine layout(text, d.data()); layout.ignoreBidi = true; layout.itemize(); return layout.width(0, text.length()).toReal(); @@ -1451,7 +1444,7 @@ QRectF QFontMetricsF::boundingRect(const QString &text) const if (len == 0) return QRectF(); - QTextEngine layout(text, d); + QTextEngine layout(text, d.data()); layout.ignoreBidi = true; layout.itemize(); glyph_metrics_t gm = layout.boundingBox(0, len); @@ -1559,7 +1552,7 @@ QRectF QFontMetricsF::boundingRect(const QRectF &rect, int flags, const QString& tabArrayLen++; QRectF rb; - qt_format_text(QFont(d), rect, flags | Qt::TextDontPrint, text, &rb, tabStops, tabArray, + qt_format_text(QFont(d.data()), rect, flags | Qt::TextDontPrint, text, &rb, tabStops, tabArray, tabArrayLen, 0); return rb; } @@ -1624,7 +1617,7 @@ QRectF QFontMetricsF::tightBoundingRect(const QString &text) const if (text.length() == 0) return QRect(); - QTextEngine layout(text, d); + QTextEngine layout(text, d.data()); layout.ignoreBidi = true; layout.itemize(); glyph_metrics_t gm = layout.tightBoundingBox(0, text.length()); @@ -1649,7 +1642,7 @@ QRectF QFontMetricsF::tightBoundingRect(const QString &text) const */ QString QFontMetricsF::elidedText(const QString &text, Qt::TextElideMode mode, qreal width, int flags) const { - QStackTextEngine engine(text, QFont(d)); + QStackTextEngine engine(text, QFont(d.data())); return engine.elidedText(mode, QFixed::fromReal(width), flags); } diff --git a/src/gui/text/qfontmetrics.h b/src/gui/text/qfontmetrics.h index 1147e3a..23200c5 100644 --- a/src/gui/text/qfontmetrics.h +++ b/src/gui/text/qfontmetrics.h @@ -43,6 +43,7 @@ #define QFONTMETRICS_H #include <QtGui/qfont.h> +#include <QtCore/qsharedpointer.h> #ifndef QT_INCLUDE_COMPAT #include <QtCore/qrect.h> #endif @@ -131,7 +132,7 @@ private: friend class QFontMetricsF; friend class QStackTextEngine; - QFontPrivate *d; + QExplicitlySharedDataPointer<QFontPrivate> d; }; @@ -187,7 +188,7 @@ public: inline bool operator !=(const QFontMetricsF &other) const { return !operator==(other); } private: - QFontPrivate *d; + QExplicitlySharedDataPointer<QFontPrivate> d; }; QT_END_NAMESPACE diff --git a/src/gui/text/qtextdocument.cpp b/src/gui/text/qtextdocument.cpp index a8956b8..6978b6c 100644 --- a/src/gui/text/qtextdocument.cpp +++ b/src/gui/text/qtextdocument.cpp @@ -140,7 +140,7 @@ bool Qt::mightBeRichText(const QString& text) /*! Converts the plain text string \a plain to a HTML string with - HTML metacharacters \c{<}, \c{>}, and \c{&} replaced by HTML + HTML metacharacters \c{<}, \c{>}, \c{&}, and \c{"} replaced by HTML entities. Example: @@ -162,6 +162,8 @@ QString Qt::escape(const QString& plain) rich += QLatin1String(">"); else if (plain.at(i) == QLatin1Char('&')) rich += QLatin1String("&"); + else if (plain.at(i) == QLatin1Char('"')) + rich += QLatin1String("""); else rich += plain.at(i); } @@ -2038,7 +2040,7 @@ void QTextHtmlExporter::emitAttribute(const char *attribute, const QString &valu html += QLatin1Char(' '); html += QLatin1String(attribute); html += QLatin1String("=\""); - html += value; + html += Qt::escape(value); html += QLatin1Char('"'); } @@ -2302,12 +2304,12 @@ void QTextHtmlExporter::emitFontFamily(const QString &family) { html += QLatin1String(" font-family:"); - QLatin1Char quote('\''); - if (family.contains(quote)) - quote = QLatin1Char('\"'); + QLatin1String quote("\'"); + if (family.contains(QLatin1Char('\''))) + quote = QLatin1String("""); html += quote; - html += family; + html += Qt::escape(family); html += quote; html += QLatin1Char(';'); } @@ -2341,13 +2343,13 @@ void QTextHtmlExporter::emitFragment(const QTextFragment &fragment) const QString name = format.anchorName(); if (!name.isEmpty()) { html += QLatin1String("<a name=\""); - html += name; + html += Qt::escape(name); html += QLatin1String("\"></a>"); } const QString href = format.anchorHref(); if (!href.isEmpty()) { html += QLatin1String("<a href=\""); - html += href; + html += Qt::escape(href); html += QLatin1String("\">"); closeAnchor = true; } diff --git a/src/gui/widgets/qcombobox.cpp b/src/gui/widgets/qcombobox.cpp index ae56d36..1879db4 100644 --- a/src/gui/widgets/qcombobox.cpp +++ b/src/gui/widgets/qcombobox.cpp @@ -192,6 +192,8 @@ void QComboBoxPrivate::_q_modelReset() lineEdit->setText(QString()); updateLineEditGeometry(); } + if (currentIndex.row() != indexBeforeChange) + _q_emitCurrentIndexChanged(currentIndex); q->update(); } @@ -487,18 +489,6 @@ void QComboBoxPrivateContainer::viewDestroyed() } /* - Sets currentIndex on entered if the LeftButton is not pressed. This - means that if mouseTracking(...) is on, we setCurrentIndex and select - even when LeftButton is not pressed. -*/ -void QComboBoxPrivateContainer::setCurrentIndex(const QModelIndex &index) -{ - if (QComboBoxDelegate::isSeparator(index)) - return; - view->setCurrentIndex(index); -} - -/* Returns the item view used for the combobox popup. */ QAbstractItemView *QComboBoxPrivateContainer::itemView() const @@ -523,8 +513,6 @@ void QComboBoxPrivateContainer::setItemView(QAbstractItemView *itemView) disconnect(view->verticalScrollBar(), SIGNAL(rangeChanged(int,int)), this, SLOT(updateScrollers())); #endif - disconnect(view, SIGNAL(entered(QModelIndex)), - this, SLOT(setCurrentIndex(QModelIndex))); disconnect(view, SIGNAL(destroyed()), this, SLOT(viewDestroyed())); @@ -561,8 +549,6 @@ void QComboBoxPrivateContainer::setItemView(QAbstractItemView *itemView) connect(view->verticalScrollBar(), SIGNAL(rangeChanged(int,int)), this, SLOT(updateScrollers())); #endif - connect(view, SIGNAL(entered(QModelIndex)), - this, SLOT(setCurrentIndex(QModelIndex))); connect(view, SIGNAL(destroyed()), this, SLOT(viewDestroyed())); @@ -653,16 +639,20 @@ bool QComboBoxPrivateContainer::eventFilter(QObject *o, QEvent *e) break; } break; - case QEvent::MouseMove: { + case QEvent::MouseMove: if (isVisible()) { QMouseEvent *m = static_cast<QMouseEvent *>(e); QWidget *widget = static_cast<QWidget *>(o); QPoint vector = widget->mapToGlobal(m->pos()) - initialClickPosition; if (vector.manhattanLength() > 9 && blockMouseReleaseTimer.isActive()) blockMouseReleaseTimer.stop(); + QModelIndex indexUnderMouse = view->indexAt(m->pos()); + if (indexUnderMouse.isValid() && indexUnderMouse != view->currentIndex() + && !QComboBoxDelegate::isSeparator(indexUnderMouse)) { + view->setCurrentIndex(indexUnderMouse); + } } break; - } case QEvent::MouseButtonRelease: { QMouseEvent *m = static_cast<QMouseEvent *>(e); if (isVisible() && view->rect().contains(m->pos()) && view->currentIndex().isValid() @@ -992,14 +982,6 @@ void QComboBoxPrivate::_q_dataChanged(const QModelIndex &topLeft, const QModelIn } } -void QComboBoxPrivate::_q_rowsAboutToBeInserted(const QModelIndex & parent, - int /*start*/, int /*end*/) -{ - if (parent != root) - return; - indexBeforeChange = currentIndex.row(); -} - void QComboBoxPrivate::_q_rowsInserted(const QModelIndex &parent, int start, int end) { Q_Q(QComboBox); @@ -1022,11 +1004,8 @@ void QComboBoxPrivate::_q_rowsInserted(const QModelIndex &parent, int start, int } } -void QComboBoxPrivate::_q_rowsAboutToBeRemoved(const QModelIndex &parent, int /*start*/, int /*end*/) +void QComboBoxPrivate::_q_updateIndexBeforeChange() { - if (parent != root) - return; - indexBeforeChange = currentIndex.row(); } @@ -1868,15 +1847,17 @@ void QComboBox::setModel(QAbstractItemModel *model) disconnect(d->model, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(_q_dataChanged(QModelIndex,QModelIndex))); disconnect(d->model, SIGNAL(rowsAboutToBeInserted(QModelIndex,int,int)), - this, SLOT(_q_rowsAboutToBeInserted(QModelIndex,int,int))); + this, SLOT(_q_updateIndexBeforeChange())); disconnect(d->model, SIGNAL(rowsInserted(QModelIndex,int,int)), this, SLOT(_q_rowsInserted(QModelIndex,int,int))); disconnect(d->model, SIGNAL(rowsAboutToBeRemoved(QModelIndex,int,int)), - this, SLOT(_q_rowsAboutToBeRemoved(QModelIndex,int,int))); + this, SLOT(_q_updateIndexBeforeChange())); disconnect(d->model, SIGNAL(rowsRemoved(QModelIndex,int,int)), this, SLOT(_q_rowsRemoved(QModelIndex,int,int))); disconnect(d->model, SIGNAL(destroyed()), this, SLOT(_q_modelDestroyed())); + disconnect(d->model, SIGNAL(modelAboutToBeReset()), + this, SLOT(_q_updateIndexBeforeChange())); disconnect(d->model, SIGNAL(modelReset()), this, SLOT(_q_modelReset())); if (d->model->QObject::parent() == this) @@ -1888,15 +1869,17 @@ void QComboBox::setModel(QAbstractItemModel *model) connect(model, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(_q_dataChanged(QModelIndex,QModelIndex))); connect(model, SIGNAL(rowsAboutToBeInserted(QModelIndex,int,int)), - this, SLOT(_q_rowsAboutToBeInserted(QModelIndex,int,int))); + this, SLOT(_q_updateIndexBeforeChange())); connect(model, SIGNAL(rowsInserted(QModelIndex,int,int)), this, SLOT(_q_rowsInserted(QModelIndex,int,int))); connect(model, SIGNAL(rowsAboutToBeRemoved(QModelIndex,int,int)), - this, SLOT(_q_rowsAboutToBeRemoved(QModelIndex,int,int))); + this, SLOT(_q_updateIndexBeforeChange())); connect(model, SIGNAL(rowsRemoved(QModelIndex,int,int)), this, SLOT(_q_rowsRemoved(QModelIndex,int,int))); connect(model, SIGNAL(destroyed()), this, SLOT(_q_modelDestroyed())); + connect(model, SIGNAL(modelAboutToBeReset()), + this, SLOT(_q_updateIndexBeforeChange())); connect(model, SIGNAL(modelReset()), this, SLOT(_q_modelReset())); diff --git a/src/gui/widgets/qcombobox.h b/src/gui/widgets/qcombobox.h index 462636c..0652594 100644 --- a/src/gui/widgets/qcombobox.h +++ b/src/gui/widgets/qcombobox.h @@ -307,9 +307,8 @@ private: Q_PRIVATE_SLOT(d_func(), void _q_returnPressed()) Q_PRIVATE_SLOT(d_func(), void _q_resetButton()) Q_PRIVATE_SLOT(d_func(), void _q_dataChanged(const QModelIndex &, const QModelIndex &)) - Q_PRIVATE_SLOT(d_func(), void _q_rowsAboutToBeInserted(const QModelIndex & parent, int start, int end)) + Q_PRIVATE_SLOT(d_func(), void _q_updateIndexBeforeChange()) Q_PRIVATE_SLOT(d_func(), void _q_rowsInserted(const QModelIndex & parent, int start, int end)) - Q_PRIVATE_SLOT(d_func(), void _q_rowsAboutToBeRemoved(const QModelIndex & parent, int start, int end)) Q_PRIVATE_SLOT(d_func(), void _q_rowsRemoved(const QModelIndex & parent, int start, int end)) Q_PRIVATE_SLOT(d_func(), void _q_modelDestroyed()) Q_PRIVATE_SLOT(d_func(), void _q_modelReset()) diff --git a/src/gui/widgets/qcombobox_p.h b/src/gui/widgets/qcombobox_p.h index f7458c4..fe42c47 100644 --- a/src/gui/widgets/qcombobox_p.h +++ b/src/gui/widgets/qcombobox_p.h @@ -231,7 +231,6 @@ public: public Q_SLOTS: void scrollItemView(int action); void updateScrollers(); - void setCurrentIndex(const QModelIndex &index); void viewDestroyed(); protected: @@ -357,9 +356,8 @@ public: #endif void _q_resetButton(); void _q_dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight); - void _q_rowsAboutToBeInserted(const QModelIndex & parent, int start, int end); + void _q_updateIndexBeforeChange(); void _q_rowsInserted(const QModelIndex & parent, int start, int end); - void _q_rowsAboutToBeRemoved(const QModelIndex & parent, int start, int end); void _q_rowsRemoved(const QModelIndex & parent, int start, int end); void updateArrow(QStyle::StateFlag state); bool updateHoverControl(const QPoint &pos); diff --git a/src/gui/widgets/qdockarealayout.cpp b/src/gui/widgets/qdockarealayout.cpp index ec35c4f..dffec11 100644 --- a/src/gui/widgets/qdockarealayout.cpp +++ b/src/gui/widgets/qdockarealayout.cpp @@ -2262,7 +2262,7 @@ QRect QDockAreaLayoutInfo::tabContentRect() const ** QDockAreaLayout */ -QDockAreaLayout::QDockAreaLayout(QMainWindow *win) +QDockAreaLayout::QDockAreaLayout(QMainWindow *win) : fallbackToSizeHints(true) { mainWindow = win; sep = win->style()->pixelMetric(QStyle::PM_DockWidgetSeparatorExtent, 0, win); @@ -2349,6 +2349,9 @@ bool QDockAreaLayout::restoreState(QDataStream &stream, const QList<QDockWidget* for (int i = 0; i < 4; ++i) corners[i] = static_cast<Qt::DockWidgetArea>(cornerData[i]); } + + if (!testing) + fallbackToSizeHints = false; } return ok; @@ -2585,7 +2588,7 @@ void QDockAreaLayout::getGrid(QVector<QLayoutStruct> *_ver_struct_list, { QSize center_hint(0, 0); QSize center_min(0, 0); - bool have_central = centralWidgetItem != 0 && !centralWidgetItem->isEmpty(); + const bool have_central = centralWidgetItem != 0 && !centralWidgetItem->isEmpty(); if (have_central) { center_hint = centralWidgetRect.size(); if (!center_hint.isValid()) @@ -2604,33 +2607,35 @@ void QDockAreaLayout::getGrid(QVector<QLayoutStruct> *_ver_struct_list, center_rect.setBottom(rect.bottom() - docks[QInternal::BottomDock].rect.height() - sep); QSize left_hint = docks[QInternal::LeftDock].size(); - if (left_hint.isNull()) + if (left_hint.isNull() || fallbackToSizeHints) left_hint = docks[QInternal::LeftDock].sizeHint(); QSize left_min = docks[QInternal::LeftDock].minimumSize(); QSize left_max = docks[QInternal::LeftDock].maximumSize(); left_hint = left_hint.boundedTo(left_max).expandedTo(left_min); QSize right_hint = docks[QInternal::RightDock].size(); - if (right_hint.isNull()) + if (right_hint.isNull() || fallbackToSizeHints) right_hint = docks[QInternal::RightDock].sizeHint(); QSize right_min = docks[QInternal::RightDock].minimumSize(); QSize right_max = docks[QInternal::RightDock].maximumSize(); right_hint = right_hint.boundedTo(right_max).expandedTo(right_min); QSize top_hint = docks[QInternal::TopDock].size(); - if (top_hint.isNull()) + if (top_hint.isNull() || fallbackToSizeHints) top_hint = docks[QInternal::TopDock].sizeHint(); QSize top_min = docks[QInternal::TopDock].minimumSize(); QSize top_max = docks[QInternal::TopDock].maximumSize(); top_hint = top_hint.boundedTo(top_max).expandedTo(top_min); QSize bottom_hint = docks[QInternal::BottomDock].size(); - if (bottom_hint.isNull()) + if (bottom_hint.isNull() || fallbackToSizeHints) bottom_hint = docks[QInternal::BottomDock].sizeHint(); QSize bottom_min = docks[QInternal::BottomDock].minimumSize(); QSize bottom_max = docks[QInternal::BottomDock].maximumSize(); bottom_hint = bottom_hint.boundedTo(bottom_max).expandedTo(bottom_min); + fallbackToSizeHints = !have_central; + if (_ver_struct_list != 0) { QVector<QLayoutStruct> &ver_struct_list = *_ver_struct_list; ver_struct_list.resize(3); diff --git a/src/gui/widgets/qdockarealayout_p.h b/src/gui/widgets/qdockarealayout_p.h index 5692850..bd2067b 100644 --- a/src/gui/widgets/qdockarealayout_p.h +++ b/src/gui/widgets/qdockarealayout_p.h @@ -234,6 +234,7 @@ public: QDockAreaLayout(QMainWindow *win); QDockAreaLayoutInfo docks[4]; int sep; // separator extent + bool fallbackToSizeHints; //determines if we should use the sizehint for the dock areas (true until the layout is restored or the central widget is set) mutable QVector<QWidget*> separatorWidgets; bool isValid() const; diff --git a/src/gui/widgets/qdockwidget.cpp b/src/gui/widgets/qdockwidget.cpp index 6710275..a8e2a37 100644 --- a/src/gui/widgets/qdockwidget.cpp +++ b/src/gui/widgets/qdockwidget.cpp @@ -685,8 +685,6 @@ void QDockWidgetPrivate::_q_toggleTopLevel() void QDockWidgetPrivate::initDrag(const QPoint &pos, bool nca) { - Q_Q(QDockWidget); - if (state != 0) return; @@ -694,8 +692,6 @@ void QDockWidgetPrivate::initDrag(const QPoint &pos, bool nca) Q_ASSERT(win != 0); QMainWindowLayout *layout = qobject_cast<QMainWindowLayout*>(win->layout()); Q_ASSERT(layout != 0); - if (layout->layoutState.indexOf(q).isEmpty()) //The dock widget has not been added into the main window - return; if (layout->pluggingWidget != 0) // the main window is animating a docking operation return; @@ -1012,6 +1008,12 @@ void QDockWidgetPrivate::setWindowState(bool floating, bool unplug, const QRect { Q_Q(QDockWidget); + if (!floating && parent) { + QMainWindowLayout *mwlayout = qobject_cast<QMainWindowLayout *>(q->parentWidget()->layout()); + if (!mwlayout || mwlayout->dockWidgetArea(q) == Qt::NoDockWidgetArea) + return; // this dockwidget can't be redocked + } + bool wasFloating = q->isFloating(); bool hidden = q->isHidden(); diff --git a/src/gui/widgets/qmenu.cpp b/src/gui/widgets/qmenu.cpp index ea25901..1b5d1cd 100644 --- a/src/gui/widgets/qmenu.cpp +++ b/src/gui/widgets/qmenu.cpp @@ -1878,6 +1878,10 @@ void QMenu::popup(const QPoint &p, QAction *atAction) if(snapToMouse) //position flowing left from the mouse pos.setX(mouse.x()-size.width()); + //if in a menubar, it should be right-aligned + if (qobject_cast<QMenuBar*>(d->causedPopup.widget)) + pos.rx() -= size.width(); + if (pos.x() < screen.left()+desktopFrame) pos.setX(qMax(p.x(), screen.left()+desktopFrame)); if (pos.x()+size.width()-1 > screen.right()-desktopFrame) diff --git a/src/gui/widgets/qmenubar.cpp b/src/gui/widgets/qmenubar.cpp index f2f0722..689d2e1 100644 --- a/src/gui/widgets/qmenubar.cpp +++ b/src/gui/widgets/qmenubar.cpp @@ -336,30 +336,25 @@ void QMenuBarPrivate::popupAction(QAction *action, bool activateFirst) const bool fitUp = (q->mapToGlobal(adjustedActionRect.topLeft()).y() >= popup_size.height()); const bool fitDown = (pos.y() + popup_size.height() <= screenRect.bottom()); + const bool rtl = q->isRightToLeft(); const int actionWidth = adjustedActionRect.width(); if (!fitUp && !fitDown) { //we should shift the menu - bool shouldShiftToRight = !q->isRightToLeft(); - if (q->isRightToLeft() && popup_size.width() > pos.x()) + bool shouldShiftToRight = !rtl; + if (rtl && popup_size.width() > pos.x()) shouldShiftToRight = true; else if (actionWidth + popup_size.width() + pos.x() > screenRect.right()) shouldShiftToRight = false; - if (shouldShiftToRight) - pos.rx() += actionWidth; - else - pos.rx() -= popup_size.width(); - } else if (q->isRightToLeft()) { - pos.setX(pos.x()-(popup_size.width() - actionWidth)); - } - - if(pos.x() < screenRect.x()) { - pos.setX(screenRect.x()); - } else { - const int off = pos.x()+popup_size.width() - screenRect.right(); - if(off > 0) - pos.setX(qMax(screenRect.x(), pos.x()-off)); - + if (shouldShiftToRight) { + pos.rx() += actionWidth + (rtl ? popup_size.width() : 0); + } else { + //shift to left + if (!rtl) + pos.rx() -= popup_size.width(); + } + } else if (rtl) { + pos.rx() += actionWidth; } if(!defaultPopDown || (fitUp && !fitDown)) diff --git a/src/gui/widgets/qsplitter.cpp b/src/gui/widgets/qsplitter.cpp index e3121ae..520a802 100644 --- a/src/gui/widgets/qsplitter.cpp +++ b/src/gui/widgets/qsplitter.cpp @@ -360,13 +360,26 @@ void QSplitterPrivate::recalc(bool update) before a hidden widget must be hidden. */ bool first = true; + bool allInvisible = n != 0; for (int i = 0; i < n ; ++i) { QSplitterLayoutStruct *s = list.at(i); - s->handle->setHidden(first || s->widget->isHidden()); - if (!s->widget->isHidden()) + bool widgetHidden = s->widget->isHidden(); + if (allInvisible && !widgetHidden && !s->collapsed) + allInvisible = false; + s->handle->setHidden(first || widgetHidden); + if (!widgetHidden) first = false; } + if (allInvisible) + for (int i = 0; i < n ; ++i) { + QSplitterLayoutStruct *s = list.at(i); + if (!s->widget->isHidden()) { + s->collapsed = false; + break; + } + } + int fi = 2 * q->frameWidth(); int maxl = fi; int minl = fi; diff --git a/src/gui/widgets/qtabbar.cpp b/src/gui/widgets/qtabbar.cpp index 6c9761c..3935c55 100644 --- a/src/gui/widgets/qtabbar.cpp +++ b/src/gui/widgets/qtabbar.cpp @@ -1694,6 +1694,9 @@ void QTabBar::mousePressEvent(QMouseEvent *event) d->moveTabFinished(d->pressedIndex); d->pressedIndex = d->indexAtPos(event->pos()); +#ifdef Q_WS_MAC + d->previousPressedIndex = d->pressedIndex; +#endif if (d->validIndex(d->pressedIndex)) { QStyleOptionTabBarBaseV2 optTabBase; optTabBase.init(this); @@ -1774,6 +1777,17 @@ void QTabBar::mouseMoveEvent(QMouseEvent *event) update(); } +#ifdef Q_WS_MAC + } else if (!d->documentMode && event->buttons() == Qt::LeftButton && d->previousPressedIndex != -1) { + int newPressedIndex = d->indexAtPos(event->pos()); + if (d->pressedIndex == -1 && d->previousPressedIndex == newPressedIndex) { + d->pressedIndex = d->previousPressedIndex; + update(tabRect(d->pressedIndex)); + } else if(d->pressedIndex != newPressedIndex) { + d->pressedIndex = -1; + update(tabRect(d->previousPressedIndex)); + } +#endif } if (event->buttons() != Qt::LeftButton) { @@ -1798,6 +1812,7 @@ void QTabBarPrivate::setupMovableTab() QPixmap grabImage(grabRect.size()); grabImage.fill(Qt::transparent); QStylePainter p(&grabImage, q); + p.initFrom(q); QStyleOptionTabV3 tab; q->initStyleOption(&tab, pressedIndex); @@ -1865,7 +1880,9 @@ void QTabBar::mouseReleaseEvent(QMouseEvent *event) event->ignore(); return; } - +#ifdef Q_WS_MAC + d->previousPressedIndex = -1; +#endif if (d->movable && d->dragInProgress && d->validIndex(d->pressedIndex)) { int length = d->tabList[d->pressedIndex].dragOffset; int width = verticalTabs(d->shape) diff --git a/src/gui/widgets/qtabbar_p.h b/src/gui/widgets/qtabbar_p.h index 494a340..9f3285b 100644 --- a/src/gui/widgets/qtabbar_p.h +++ b/src/gui/widgets/qtabbar_p.h @@ -77,7 +77,11 @@ public: :currentIndex(-1), pressedIndex(-1), shape(QTabBar::RoundedNorth), layoutDirty(false), drawBase(true), scrollOffset(0), expanding(true), closeButtonOnTabs(false), selectionBehaviorOnRemove(QTabBar::SelectRightTab), paintWithOffsets(true), movable(false), - dragInProgress(false), documentMode(false), movingTab(0) {} + dragInProgress(false), documentMode(false), movingTab(0) +#ifdef Q_WS_MAC + , previousPressedIndex(-1) +#endif + {} int currentIndex; int pressedIndex; @@ -195,7 +199,9 @@ public: bool documentMode; QWidget *movingTab; - +#ifdef Q_WS_MAC + int previousPressedIndex; +#endif // shared by tabwidget and qtabbar static void initStyleBaseOption(QStyleOptionTabBarBaseV2 *optTabBase, QTabBar *tabbar, QSize size) { diff --git a/src/gui/widgets/qtabwidget.cpp b/src/gui/widgets/qtabwidget.cpp index 9aeb033..d22bd54 100644 --- a/src/gui/widgets/qtabwidget.cpp +++ b/src/gui/widgets/qtabwidget.cpp @@ -313,7 +313,16 @@ void QTabWidget::initStyleOption(QStyleOptionTabWidgetFrame *option) const : QTabBar::TriangularEast; break; } + option->tabBarSize = t; + + if (QStyleOptionTabWidgetFrameV2 *tabframe = qstyleoption_cast<QStyleOptionTabWidgetFrameV2*>(option)) { + QRect tbRect = tabBar()->geometry(); + QRect selectedTabRect = tabBar()->tabRect(tabBar()->currentIndex()); + tabframe->tabBarRect = tbRect; + selectedTabRect.moveTopLeft(selectedTabRect.topLeft() + tbRect.topLeft()); + tabframe->selectedTabRect = selectedTabRect; + } } /*! @@ -756,7 +765,7 @@ void QTabWidget::setUpLayout(bool onlyCheck) if (onlyCheck && !d->dirty) return; // nothing to do - QStyleOptionTabWidgetFrame option; + QStyleOptionTabWidgetFrameV2 option; initStyleOption(&option); // this must be done immediately, because QWidgetItem relies on it (even if !isVisible()) @@ -1167,8 +1176,8 @@ void QTabWidget::tabRemoved(int index) void QTabWidget::paintEvent(QPaintEvent *) { Q_D(QTabWidget); - QStylePainter p(this); if (documentMode()) { + QStylePainter p(this, tabBar()); if (QWidget *w = cornerWidget(Qt::TopLeftCorner)) { QStyleOptionTabBarBaseV2 opt; QTabBarPrivate::initStyleBaseOption(&opt, tabBar(), w->size()); @@ -1185,8 +1194,9 @@ void QTabWidget::paintEvent(QPaintEvent *) } return; } + QStylePainter p(this); - QStyleOptionTabWidgetFrame opt; + QStyleOptionTabWidgetFrameV2 opt; initStyleOption(&opt); opt.rect = d->panelRect; p.drawPrimitive(QStyle::PE_FrameTabWidget, opt); diff --git a/src/gui/widgets/qtoolbar.cpp b/src/gui/widgets/qtoolbar.cpp index 40c0b02..5596ca4 100644 --- a/src/gui/widgets/qtoolbar.cpp +++ b/src/gui/widgets/qtoolbar.cpp @@ -183,6 +183,9 @@ void QToolBarPrivate::setWindowState(bool floating, bool unplug, const QRect &re if (visible) q->show(); + + if (floating != wasFloating) + emit q->topLevelChanged(floating); } void QToolBarPrivate::initDrag(const QPoint &pos) @@ -518,6 +521,19 @@ void QToolBarPrivate::plug(const QRect &r) */ /*! + \since 4.6 + + \fn void QToolBar::topLevelChanged(bool topLevel) + + This signal is emitted when the \l floating property changes. + The \a topLevel parameter is true if the toolbar is now floating; + otherwise it is false. + + \sa isWindow() +*/ + + +/*! Constructs a QToolBar with the given \a parent. */ QToolBar::QToolBar(QWidget *parent) diff --git a/src/gui/widgets/qtoolbar.h b/src/gui/widgets/qtoolbar.h index a084673..a1a24f0 100644 --- a/src/gui/widgets/qtoolbar.h +++ b/src/gui/widgets/qtoolbar.h @@ -142,6 +142,7 @@ Q_SIGNALS: void orientationChanged(Qt::Orientation orientation); void iconSizeChanged(const QSize &iconSize); void toolButtonStyleChanged(Qt::ToolButtonStyle toolButtonStyle); + void topLevelChanged(bool topLevel); protected: void actionEvent(QActionEvent *event); diff --git a/src/opengl/gl2paintengineex/qglengineshadermanager.cpp b/src/opengl/gl2paintengineex/qglengineshadermanager.cpp index e22303d..af9306f 100644 --- a/src/opengl/gl2paintengineex/qglengineshadermanager.cpp +++ b/src/opengl/gl2paintengineex/qglengineshadermanager.cpp @@ -476,7 +476,7 @@ bool QGLEngineShaderManager::useCorrectShaderProg() return false; bool useCustomSrc = customSrcStage != 0; - if (useCustomSrc && srcPixelType != QGLEngineShaderManager::ImageSrc) { + if (useCustomSrc && srcPixelType != QGLEngineShaderManager::ImageSrc && srcPixelType != Qt::TexturePattern) { useCustomSrc = false; qWarning("QGLEngineShaderManager - Ignoring custom shader stage for non image src"); } diff --git a/src/opengl/gl2paintengineex/qglengineshadersource_p.h b/src/opengl/gl2paintengineex/qglengineshadersource_p.h index 3eef808..2407979 100644 --- a/src/opengl/gl2paintengineex/qglengineshadersource_p.h +++ b/src/opengl/gl2paintengineex/qglengineshadersource_p.h @@ -258,7 +258,7 @@ static const char* const qglslPositionWithTextureBrushVertexShader = "\ uniform mediump vec2 halfViewportSize; \ uniform highp vec2 invertedTextureSize; \ uniform highp mat3 brushTransform; \ - varying highp vec2 brushTextureCoords; \ + varying highp vec2 textureCoords; \ void setPosition(void) { \ gl_Position = pmvMatrix * vertexCoordsArray;\ gl_Position.xy = gl_Position.xy / gl_Position.w; \ @@ -267,7 +267,7 @@ static const char* const qglslPositionWithTextureBrushVertexShader = "\ mediump float invertedHTexCoordsZ = 1.0 / hTexCoords.z; \ gl_Position.xy = gl_Position.xy * invertedHTexCoordsZ; \ gl_Position.w = invertedHTexCoordsZ; \ - brushTextureCoords.xy = (hTexCoords.xy * invertedTextureSize) * gl_Position.w; \ + textureCoords.xy = (hTexCoords.xy * invertedTextureSize) * gl_Position.w; \ }"; static const char* const qglslAffinePositionWithTextureBrushVertexShader @@ -278,26 +278,26 @@ static const char* const qglslAffinePositionWithTextureBrushVertexShader // we emulate GL_REPEAT by only taking the fractional part of the texture coords. // TODO: Special case POT textures which don't need this emulation static const char* const qglslTextureBrushSrcFragmentShader = "\ - varying highp vec2 brushTextureCoords; \ + varying highp vec2 textureCoords; \ uniform lowp sampler2D brushTexture; \ lowp vec4 srcPixel() { \ - return texture2D(brushTexture, fract(brushTextureCoords)); \ + return texture2D(brushTexture, fract(textureCoords)); \ }"; #else static const char* const qglslTextureBrushSrcFragmentShader = "\ - varying highp vec2 brushTextureCoords; \ + varying highp vec2 textureCoords; \ uniform lowp sampler2D brushTexture; \ lowp vec4 srcPixel() { \ - return texture2D(brushTexture, brushTextureCoords); \ + return texture2D(brushTexture, textureCoords); \ }"; #endif static const char* const qglslTextureBrushSrcWithPatternFragmentShader = "\ - varying highp vec2 brushTextureCoords; \ + varying highp vec2 textureCoords; \ uniform lowp vec4 patternColor; \ uniform lowp sampler2D brushTexture; \ lowp vec4 srcPixel() { \ - return patternColor * (1.0 - texture2D(brushTexture, brushTextureCoords).r); \ + return patternColor * (1.0 - texture2D(brushTexture, textureCoords).r); \ }"; // Solid Fill Brush diff --git a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp index a0810bc..a9744b3 100644 --- a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp +++ b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp @@ -535,7 +535,7 @@ void QGL2PaintEngineExPrivate::updateBrushUniforms() shaderManager->currentProgram()->setUniformValue(location(QGLEngineShaderManager::PatternColor), col); } - QSizeF invertedTextureSize(1.0 / texPixmap.width(), 1.0 * textureInvertedY / texPixmap.height()); + QSizeF invertedTextureSize(1.0 / texPixmap.width(), 1.0 / texPixmap.height()); shaderManager->currentProgram()->setUniformValue(location(QGLEngineShaderManager::InvertedTextureSize), invertedTextureSize); QVector2D halfViewportSize(width*0.5, height*0.5); @@ -550,7 +550,11 @@ void QGL2PaintEngineExPrivate::updateBrushUniforms() QTransform translate(1, 0, 0, 1, -translationPoint.x(), -translationPoint.y()); QTransform gl_to_qt(1, 0, 0, -1, 0, height); - QTransform inv_matrix = gl_to_qt * (brushQTransform * matrix).inverted() * translate; + QTransform inv_matrix; + if (style == Qt::TexturePattern && textureInvertedY == -1) + inv_matrix = gl_to_qt * (QTransform(1, 0, 0, -1, 0, currentBrush->texture().height()) * brushQTransform * matrix).inverted() * translate; + else + inv_matrix = gl_to_qt * (brushQTransform * matrix).inverted() * translate; shaderManager->currentProgram()->setUniformValue(location(QGLEngineShaderManager::BrushTransform), inv_matrix); shaderManager->currentProgram()->setUniformValue(location(QGLEngineShaderManager::BrushTexture), QT_BRUSH_TEXTURE_UNIT); @@ -858,9 +862,7 @@ void QGL2PaintEngineExPrivate::fill(const QVectorPath& path) QGLRect rect(points[0].x(), points[0].y(), points[2].x(), points[2].y()); prepareForDraw(currentBrush->isOpaque()); composite(rect); - } else if (path.shape() == QVectorPath::EllipseHint - || path.shape() == QVectorPath::ConvexPolygonHint) - { + } else if (path.isConvex()) { vertexCoordinateArray.clear(); vertexCoordinateArray.addPath(path, inverseScale, false); prepareForDraw(currentBrush->isOpaque()); diff --git a/src/opengl/gl2paintengineex/qtriangulatingstroker.cpp b/src/opengl/gl2paintengineex/qtriangulatingstroker.cpp index ec05020..ad18a51 100644 --- a/src/opengl/gl2paintengineex/qtriangulatingstroker.cpp +++ b/src/opengl/gl2paintengineex/qtriangulatingstroker.cpp @@ -131,8 +131,8 @@ void QTriangulatingStroker::process(const QVectorPath &path, const QPen &pen) if (m_roundness > 24) m_roundness = 24; - m_sin_theta = qSin(Q_PI / m_roundness); // ### Use qFastSin - m_cos_theta = qCos(Q_PI / m_roundness); + m_sin_theta = qFastSin(Q_PI / m_roundness); + m_cos_theta = qFastCos(Q_PI / m_roundness); const qreal *endPts = pts + (count<<1); const qreal *startPts; diff --git a/src/opengl/gl2paintengineex/qtriangulatingstroker_p.h b/src/opengl/gl2paintengineex/qtriangulatingstroker_p.h index 483cea9..97eabef 100644 --- a/src/opengl/gl2paintengineex/qtriangulatingstroker_p.h +++ b/src/opengl/gl2paintengineex/qtriangulatingstroker_p.h @@ -125,7 +125,16 @@ inline void QTriangulatingStroker::normalVector(float x1, float y1, float x2, fl { float dx = x2 - x1; float dy = y2 - y1; - float pw = m_width / sqrt(dx*dx + dy*dy); + + float pw; + + if (dx == 0) + pw = m_width / dy; + else if (dy == 0) + pw = m_width / dx; + else + pw = m_width / sqrt(dx*dx + dy*dy); + *nx = -dy * pw; *ny = dx * pw; } diff --git a/src/opengl/qgl.cpp b/src/opengl/qgl.cpp index 6720ae7..e80521b 100644 --- a/src/opengl/qgl.cpp +++ b/src/opengl/qgl.cpp @@ -2156,6 +2156,11 @@ QGLTexture* QGLContextPrivate::bindTexture(const QImage &image, GLenum target, G time.start(); #endif +#ifndef QT_NO_DEBUG + // Reset the gl error stack...git + while (glGetError() != GL_NO_ERROR); +#endif + // Scale the pixmap if needed. GL textures needs to have the // dimensions 2^n+2(border) x 2^m+2(border), unless we're using GL // 2.0 or use the GL_TEXTURE_RECTANGLE texture target diff --git a/src/opengl/qgl_wince.cpp b/src/opengl/qgl_wince.cpp index 53b9e27..fea2d3a 100644 --- a/src/opengl/qgl_wince.cpp +++ b/src/opengl/qgl_wince.cpp @@ -54,9 +54,9 @@ #include <windows.h> -#include "qegl_p.h" -#include "qgl_egl_p.h" -#include "qgl_cl_p.h" +#include <private/qegl_p.h> +#include <private/qgl_egl_p.h> +#include <private/qgl_cl_p.h> QT_BEGIN_NAMESPACE diff --git a/src/opengl/qgl_x11egl.cpp b/src/opengl/qgl_x11egl.cpp index 3894ed1..7180682 100644 --- a/src/opengl/qgl_x11egl.cpp +++ b/src/opengl/qgl_x11egl.cpp @@ -589,7 +589,6 @@ QGLTexture *QGLContextPrivate::bindTextureFromNativePixmap(QPixmapData* pd, cons GLuint textureId; glGenTextures(1, &textureId); - glEnable(GL_TEXTURE_2D); glBindTexture(GL_TEXTURE_2D, textureId); // bind the egl pixmap surface to a texture diff --git a/src/opengl/qglpixmapfilter.cpp b/src/opengl/qglpixmapfilter.cpp index 0603369..2af69e0 100644 --- a/src/opengl/qglpixmapfilter.cpp +++ b/src/opengl/qglpixmapfilter.cpp @@ -104,7 +104,7 @@ public: void setUniforms(QGLShaderProgram *program); - static QByteArray generateGaussianShader(int radius, bool dropShadow = false); + static QByteArray generateGaussianShader(int radius, bool singlePass = false, bool dropShadow = false); protected: bool processGL(QPainter *painter, const QPointF &pos, const QPixmap &src, const QRectF &srcRect) const; @@ -113,6 +113,7 @@ private: mutable QSize m_textureSize; mutable bool m_horizontalBlur; + mutable bool m_singlePass; mutable bool m_haveCached; mutable int m_cachedRadius; @@ -132,6 +133,7 @@ protected: private: mutable QSize m_textureSize; mutable bool m_horizontalBlur; + mutable bool m_singlePass; mutable bool m_haveCached; mutable int m_cachedRadius; @@ -298,123 +300,147 @@ bool QGLPixmapConvolutionFilter::processGL(QPainter *painter, const QPointF &pos return true; } -static const char *qt_gl_blur_filter_fast = - "const int samples = 9;" - "uniform mediump vec2 delta;" - "lowp vec4 customShader(lowp sampler2D src, highp vec2 srcCoords) {" - " mediump vec4 color = vec4(0.0, 0.0, 0.0, 0.0);" - " mediump float offset = (float(samples) - 1.0) / 2.0;" - " for (int i = 0; i < samples; i++) {" - " mediump vec2 coord = srcCoords + delta * (offset - float(i)) / offset;" - " color += texture2D(src, coord);" - " }" - " return color * (1.0 / float(samples));" - "}"; - -static const char *qt_gl_drop_shadow_filter_fast = - "const int samples = 9;" - "uniform mediump vec2 delta;" - "uniform mediump vec4 shadowColor;" - "lowp vec4 customShader(lowp sampler2D src, highp vec2 srcCoords) {" - " mediump vec4 color = vec4(0.0, 0.0, 0.0, 0.0);" - " mediump float offset = (float(samples) - 1.0) / 2.0;" - " for (int i = 0; i < samples; i++) {" - " mediump vec2 coord = srcCoords + delta * (offset - float(i)) / offset;" - " color += texture2D(src, coord).a * shadowColor;" - " }" - " return color * (1.0 / float(samples));" - "}"; +static const char *qt_gl_texture_sampling_helper = + "lowp float texture2DAlpha(lowp sampler2D src, highp vec2 srcCoords) {\n" + " return texture2D(src, srcCoords).a;\n" + "}\n"; + +static const char *qt_gl_clamped_texture_sampling_helper = + "highp vec4 texture_dimensions;\n" // x = width, y = height, z = 0.5/width, w = 0.5/height + "lowp float clampedTexture2DAlpha(lowp sampler2D src, highp vec2 srcCoords) {\n" + " highp vec2 clampedCoords = clamp(srcCoords, texture_dimensions.zw, vec2(1.0) - texture_dimensions.zw);\n" + " highp vec2 t = clamp(min(srcCoords, vec2(1.0) - srcCoords) * srcDim + 0.5, 0.0, 1.0);\n" + " return texture2D(src, clampedCoords).a * t.x * t.y;\n" + "}\n" + "lowp vec4 clampedTexture2D(lowp sampler2D src, highp vec2 srcCoords) {\n" + " highp vec2 clampedCoords = clamp(srcCoords, texture_dimensions.zw, vec2(1.0) - texture_dimensions.zw);\n" + " highp vec2 t = clamp(min(srcCoords, vec2(1.0) - srcCoords) * srcDim + 0.5, 0.0, 1.0);\n" + " return texture2D(src, clampedCoords) * t.x * t.y;\n" + "}\n"; + +static QByteArray qt_gl_convertToClamped(const QByteArray &source) +{ + QByteArray result; + result.append(qt_gl_clamped_texture_sampling_helper); + result.append(QByteArray(source).replace("texture2DAlpha", "clampedTexture2DAlpha") + .replace("texture2D", "clampedTexture2D")); + return result; +} QGLPixmapBlurFilter::QGLPixmapBlurFilter(Qt::RenderHint hint) : m_haveCached(false) - , m_cachedRadius(5) + , m_cachedRadius(0) , m_hint(hint) { - if (hint == Qt::PerformanceHint) { - QGLPixmapBlurFilter *filter = const_cast<QGLPixmapBlurFilter *>(this); - filter->setSource(qt_gl_blur_filter_fast); - m_haveCached = true; - } } bool QGLPixmapBlurFilter::processGL(QPainter *painter, const QPointF &pos, const QPixmap &src, const QRectF &) const { QGLPixmapBlurFilter *filter = const_cast<QGLPixmapBlurFilter *>(this); - int radius = this->radius(); - if (!m_haveCached || (m_hint == Qt::QualityHint && radius != m_cachedRadius)) { - // Only regenerate the shader from source if parameters have changed. - m_haveCached = true; - m_cachedRadius = radius; - filter->setSource(generateGaussianShader(radius)); + int actualRadius = qRound(radius()); + int filterRadius = actualRadius; + int fastRadii[] = { 1, 2, 3, 5, 8, 15, 25 }; + if (m_hint == Qt::PerformanceHint) { + uint i = 0; + for (; i < (sizeof(fastRadii)/sizeof(*fastRadii))-1; ++i) { + if (fastRadii[i+1] > filterRadius) + break; + } + filterRadius = fastRadii[i]; } - QGLFramebufferObjectFormat format; - format.setInternalTextureFormat(GLenum(src.hasAlphaChannel() ? GL_RGBA : GL_RGB)); - QGLFramebufferObject *fbo = qgl_fbo_pool()->acquire(src.size(), format); + m_singlePass = filterRadius <= 3; - if (!fbo) - return false; - - glBindTexture(GL_TEXTURE_2D, fbo->texture()); - - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); - glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); - glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); - glBindTexture(GL_TEXTURE_2D, 0); + if (!m_haveCached || filterRadius != m_cachedRadius) { + // Only regenerate the shader from source if parameters have changed. + m_haveCached = true; + m_cachedRadius = filterRadius; + QByteArray source = generateGaussianShader(filterRadius, m_singlePass); + filter->setSource(source); + } - // prepare for updateUniforms - m_textureSize = src.size(); + QRect targetRect = QRectF(src.rect()).translated(pos).adjusted(-actualRadius, -actualRadius, actualRadius, actualRadius).toAlignedRect(); - // horizontal pass, to pixmap - m_horizontalBlur = true; + if (m_singlePass) { + // prepare for updateUniforms + m_textureSize = src.size(); - QPainter fboPainter(fbo); + // ensure GL_LINEAR filtering is used + painter->setRenderHint(QPainter::SmoothPixmapTransform); + filter->setOnPainter(painter); + QBrush pixmapBrush = src; + pixmapBrush.setTransform(QTransform::fromTranslate(pos.x(), pos.y())); + painter->fillRect(targetRect, pixmapBrush); + filter->removeFromPainter(painter); + } else { + QGLFramebufferObjectFormat format; + format.setInternalTextureFormat(GLenum(src.hasAlphaChannel() ? GL_RGBA : GL_RGB)); + QGLFramebufferObject *fbo = qgl_fbo_pool()->acquire(targetRect.size(), format); - if (src.hasAlphaChannel()) { - glClearColor(0, 0, 0, 0); - glClear(GL_COLOR_BUFFER_BIT); - } + if (!fbo) + return false; - // ensure GL_LINEAR filtering is used - fboPainter.setRenderHint(QPainter::SmoothPixmapTransform); - filter->setOnPainter(&fboPainter); - fboPainter.drawPixmap(0, 0, src); - filter->removeFromPainter(&fboPainter); - fboPainter.end(); + // prepare for updateUniforms + m_textureSize = src.size(); - QGL2PaintEngineEx *engine = static_cast<QGL2PaintEngineEx *>(painter->paintEngine()); + // horizontal pass, to pixmap + m_horizontalBlur = true; - // vertical pass, to painter - m_horizontalBlur = false; + QPainter fboPainter(fbo); - painter->save(); - // ensure GL_LINEAR filtering is used - painter->setRenderHint(QPainter::SmoothPixmapTransform); - filter->setOnPainter(painter); - engine->drawTexture(src.rect().translated(pos.x(), pos.y()), fbo->texture(), fbo->size(), src.rect().translated(0, fbo->height() - src.height())); - filter->removeFromPainter(painter); - painter->restore(); + if (src.hasAlphaChannel()) { + glClearColor(0, 0, 0, 0); + glClear(GL_COLOR_BUFFER_BIT); + } - qgl_fbo_pool()->release(fbo); + // ensure GL_LINEAR filtering is used + fboPainter.setRenderHint(QPainter::SmoothPixmapTransform); + filter->setOnPainter(&fboPainter); + QBrush pixmapBrush = src; + pixmapBrush.setTransform(QTransform::fromTranslate(actualRadius, actualRadius)); + fboPainter.fillRect(QRect(0, 0, targetRect.width(), targetRect.height()), pixmapBrush); + filter->removeFromPainter(&fboPainter); + fboPainter.end(); + + QGL2PaintEngineEx *engine = static_cast<QGL2PaintEngineEx *>(painter->paintEngine()); + + // vertical pass, to painter + m_horizontalBlur = false; + m_textureSize = fbo->size(); + + painter->save(); + // ensure GL_LINEAR filtering is used + painter->setRenderHint(QPainter::SmoothPixmapTransform); + filter->setOnPainter(painter); + engine->drawTexture(targetRect, fbo->texture(), fbo->size(), QRect(QPoint(), targetRect.size()).translated(0, fbo->height() - targetRect.height())); + filter->removeFromPainter(painter); + painter->restore(); + + qgl_fbo_pool()->release(fbo); + } return true; } void QGLPixmapBlurFilter::setUniforms(QGLShaderProgram *program) { + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); + if (m_hint == Qt::QualityHint) { - if (m_horizontalBlur) + if (m_singlePass) + program->setUniformValue("delta", 1.0 / m_textureSize.width(), 1.0 / m_textureSize.height()); + else if (m_horizontalBlur) program->setUniformValue("delta", 1.0 / m_textureSize.width(), 0.0); else program->setUniformValue("delta", 0.0, 1.0 / m_textureSize.height()); } else { - // 1.4 is chosen to most closely match the blurriness of the gaussian blur - // at low radii - qreal blur = radius() / 1.4f; + qreal blur = radius() / qreal(m_cachedRadius); - if (m_horizontalBlur) + if (m_singlePass) + program->setUniformValue("delta", blur / m_textureSize.width(), blur / m_textureSize.height()); + else if (m_horizontalBlur) program->setUniformValue("delta", blur / m_textureSize.width(), 0.0); else program->setUniformValue("delta", 0.0, blur / m_textureSize.height()); @@ -426,12 +452,21 @@ static inline qreal gaussian(qreal dx, qreal sigma) return exp(-dx * dx / (2 * sigma * sigma)) / (Q_2PI * sigma * sigma); } -QByteArray QGLPixmapBlurFilter::generateGaussianShader(int radius, bool dropShadow) +QByteArray QGLPixmapBlurFilter::generateGaussianShader(int radius, bool singlePass, bool dropShadow) { Q_ASSERT(radius >= 1); + radius = qMin(127, radius); + + static QCache<uint, QByteArray> shaderSourceCache; + uint key = radius | (int(singlePass) << 7) | (int(dropShadow) << 8); + QByteArray *cached = shaderSourceCache.object(key); + if (cached) + return *cached; + QByteArray source; source.reserve(1000); + source.append(qt_gl_texture_sampling_helper); source.append("uniform highp vec2 delta;\n"); if (dropShadow) @@ -446,7 +481,7 @@ QByteArray QGLPixmapBlurFilter::generateGaussianShader(int radius, bool dropShad qreal sigma = radius / 1.65; qreal sum = 0; - for (int i = -radius; i <= radius; ++i) { + for (int i = -radius; i < radius; ++i) { float value = gaussian(i, sigma); gaussianComponents << value; sum += value; @@ -464,43 +499,67 @@ QByteArray QGLPixmapBlurFilter::generateGaussianShader(int radius, bool dropShad weights << weight; } - // odd size ? - if (gaussianComponents.size() & 1) { - sampleOffsets << radius; - weights << gaussianComponents.last(); - } - - int currentVariable = 1; - source.append(" mediump vec4 sample = vec4(0.0);\n"); - source.append(" mediump vec2 coord;\n"); - - qreal weightSum = 0; - source.append(" mediump float c;\n"); - for (int i = 0; i < sampleOffsets.size(); ++i) { - qreal delta = sampleOffsets.at(i); - - ++currentVariable; + int limit = sampleOffsets.size(); + if (singlePass) + limit *= limit; + + QByteArray baseCoordinate = "srcCoords"; + + for (int i = 0; i < limit; ++i) { + QByteArray coordinate = baseCoordinate; + + qreal weight; + if (singlePass) { + const int xIndex = i % sampleOffsets.size(); + const int yIndex = i / sampleOffsets.size(); + + const qreal deltaX = sampleOffsets.at(xIndex); + const qreal deltaY = sampleOffsets.at(yIndex); + weight = weights.at(xIndex) * weights.at(yIndex); + + if (!qFuzzyCompare(deltaX, deltaY)) { + coordinate.append(" + vec2(delta.x * float("); + coordinate.append(QByteArray::number(deltaX)); + coordinate.append("), delta.y * float("); + coordinate.append(QByteArray::number(deltaY)); + coordinate.append("))"); + } else if (!qFuzzyIsNull(deltaX)) { + coordinate.append(" + delta * float("); + coordinate.append(QByteArray::number(deltaX)); + coordinate.append(")"); + } + } else { + const qreal delta = sampleOffsets.at(i); + weight = weights.at(i); + if (!qFuzzyIsNull(delta)) { + coordinate.append(" + delta * float("); + coordinate.append(QByteArray::number(delta)); + coordinate.append(")"); + } + } - QByteArray coordinate = "srcCoords"; - if (delta != qreal(0)) { - coordinate.append(" + delta * float("); - coordinate.append(QByteArray::number(delta)); - coordinate.append(")"); + if (i == 0) { + if (dropShadow) + source.append(" mediump float sample = "); + else + source.append(" mediump vec4 sample = "); + } else { + if (dropShadow) + source.append(" sample += "); + else + source.append(" sample += "); } - source.append(" coord = "); + source.append("texture2D(src, "); source.append(coordinate); - source.append(";\n"); + source.append(")"); if (dropShadow) - source.append(" sample += texture2D(src, coord).a * shadowColor"); - else - source.append(" sample += texture2D(src, coord)"); + source.append(".a"); - weightSum += weights.at(i); - if (weights.at(i) != qreal(1)) { + if (!qFuzzyCompare(weight, qreal(1))) { source.append(" * float("); - source.append(QByteArray::number(weights.at(i))); + source.append(QByteArray::number(weight)); source.append(");\n"); } else { source.append(";\n"); @@ -508,87 +567,102 @@ QByteArray QGLPixmapBlurFilter::generateGaussianShader(int radius, bool dropShad } source.append(" return "); + if (dropShadow) + source.append("shadowColor * "); source.append("sample;\n"); source.append("}\n"); + cached = new QByteArray(source); + shaderSourceCache.insert(key, cached); + return source; } QGLPixmapDropShadowFilter::QGLPixmapDropShadowFilter(Qt::RenderHint hint) : m_haveCached(false) - , m_cachedRadius(5) + , m_cachedRadius(0) , m_hint(hint) { - if (hint == Qt::PerformanceHint) { - QGLPixmapDropShadowFilter *filter = const_cast<QGLPixmapDropShadowFilter *>(this); - filter->setSource(qt_gl_drop_shadow_filter_fast); - m_haveCached = true; - } } bool QGLPixmapDropShadowFilter::processGL(QPainter *painter, const QPointF &pos, const QPixmap &src, const QRectF &srcRect) const { QGLPixmapDropShadowFilter *filter = const_cast<QGLPixmapDropShadowFilter *>(this); - int radius = this->blurRadius(); - if (!m_haveCached || (m_hint == Qt::QualityHint && radius != m_cachedRadius)) { + int actualRadius = qRound(blurRadius()); + int filterRadius = actualRadius; + m_singlePass = filterRadius <= 3; + + if (!m_haveCached || filterRadius != m_cachedRadius) { // Only regenerate the shader from source if parameters have changed. m_haveCached = true; - m_cachedRadius = radius; - filter->setSource(QGLPixmapBlurFilter::generateGaussianShader(radius, true)); + m_cachedRadius = filterRadius; + QByteArray source = QGLPixmapBlurFilter::generateGaussianShader(filterRadius, m_singlePass, true); + filter->setSource(source); } - QGLFramebufferObjectFormat format; - format.setInternalTextureFormat(GLenum(src.hasAlphaChannel() ? GL_RGBA : GL_RGB)); - QGLFramebufferObject *fbo = qgl_fbo_pool()->acquire(src.size(), format); + QRect targetRect = QRectF(src.rect()).translated(pos + offset()).adjusted(-actualRadius, -actualRadius, actualRadius, actualRadius).toAlignedRect(); + + if (m_singlePass) { + // prepare for updateUniforms + m_textureSize = src.size(); + + painter->save(); + // ensure GL_LINEAR filtering is used + painter->setRenderHint(QPainter::SmoothPixmapTransform); + filter->setOnPainter(painter); + QBrush pixmapBrush = src; + pixmapBrush.setTransform(QTransform::fromTranslate(pos.x() + offset().x(), pos.y() + offset().y())); + painter->fillRect(targetRect, pixmapBrush); + filter->removeFromPainter(painter); + painter->restore(); + } else { + QGLFramebufferObjectFormat format; + format.setInternalTextureFormat(GLenum(src.hasAlphaChannel() ? GL_RGBA : GL_RGB)); + QGLFramebufferObject *fbo = qgl_fbo_pool()->acquire(targetRect.size(), format); - if (!fbo) - return false; + if (!fbo) + return false; - glBindTexture(GL_TEXTURE_2D, fbo->texture()); + // prepare for updateUniforms + m_textureSize = src.size(); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); - glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); - glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); - glBindTexture(GL_TEXTURE_2D, 0); + // horizontal pass, to pixmap + m_horizontalBlur = true; - // prepare for updateUniforms - m_textureSize = src.size(); + QPainter fboPainter(fbo); - // horizontal pass, to pixmap - m_horizontalBlur = true; - - QPainter fboPainter(fbo); + if (src.hasAlphaChannel()) { + glClearColor(0, 0, 0, 0); + glClear(GL_COLOR_BUFFER_BIT); + } - if (src.hasAlphaChannel()) { - glClearColor(0, 0, 0, 0); - glClear(GL_COLOR_BUFFER_BIT); + // ensure GL_LINEAR filtering is used + fboPainter.setRenderHint(QPainter::SmoothPixmapTransform); + filter->setOnPainter(&fboPainter); + QBrush pixmapBrush = src; + pixmapBrush.setTransform(QTransform::fromTranslate(actualRadius, actualRadius)); + fboPainter.fillRect(QRect(0, 0, targetRect.width(), targetRect.height()), pixmapBrush); + filter->removeFromPainter(&fboPainter); + fboPainter.end(); + + QGL2PaintEngineEx *engine = static_cast<QGL2PaintEngineEx *>(painter->paintEngine()); + + // vertical pass, to painter + m_horizontalBlur = false; + m_textureSize = fbo->size(); + + painter->save(); + // ensure GL_LINEAR filtering is used + painter->setRenderHint(QPainter::SmoothPixmapTransform); + filter->setOnPainter(painter); + engine->drawTexture(targetRect, fbo->texture(), fbo->size(), src.rect().translated(0, fbo->height() - src.height())); + filter->removeFromPainter(painter); + painter->restore(); + + qgl_fbo_pool()->release(fbo); } - // ensure GL_LINEAR filtering is used - fboPainter.setRenderHint(QPainter::SmoothPixmapTransform); - filter->setOnPainter(&fboPainter); - fboPainter.drawPixmap(0, 0, src); - filter->removeFromPainter(&fboPainter); - fboPainter.end(); - - QGL2PaintEngineEx *engine = static_cast<QGL2PaintEngineEx *>(painter->paintEngine()); - - // vertical pass, to painter - m_horizontalBlur = false; - - painter->save(); - // ensure GL_LINEAR filtering is used - painter->setRenderHint(QPainter::SmoothPixmapTransform); - filter->setOnPainter(painter); - QPointF ofs = offset(); - engine->drawTexture(src.rect().translated(pos.x() + ofs.x(), pos.y() + ofs.y()), fbo->texture(), fbo->size(), src.rect().translated(0, fbo->height() - src.height())); - filter->removeFromPainter(painter); - painter->restore(); - - qgl_fbo_pool()->release(fbo); - // Now draw the actual pixmap over the top. painter->drawPixmap(pos, src, srcRect); @@ -597,8 +671,11 @@ bool QGLPixmapDropShadowFilter::processGL(QPainter *painter, const QPointF &pos, void QGLPixmapDropShadowFilter::setUniforms(QGLShaderProgram *program) { + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); + QColor col = color(); - if (m_horizontalBlur) { + if (m_horizontalBlur && !m_singlePass) { program->setUniformValue("shadowColor", 1.0f, 1.0f, 1.0f, 1.0f); } else { qreal alpha = col.alphaF(); @@ -607,17 +684,20 @@ void QGLPixmapDropShadowFilter::setUniforms(QGLShaderProgram *program) col.blueF() * alpha, alpha); } + if (m_hint == Qt::QualityHint) { - if (m_horizontalBlur) + if (m_singlePass) + program->setUniformValue("delta", 1.0 / m_textureSize.width(), 1.0 / m_textureSize.height()); + else if (m_horizontalBlur) program->setUniformValue("delta", 1.0 / m_textureSize.width(), 0.0); else program->setUniformValue("delta", 0.0, 1.0 / m_textureSize.height()); } else { - // 1.4 is chosen to most closely match the blurriness of the gaussian blur - // at low radii - qreal blur = blurRadius() / 1.4f; + qreal blur = blurRadius() / qreal(m_cachedRadius); - if (m_horizontalBlur) + if (m_singlePass) + program->setUniformValue("delta", blur / m_textureSize.width(), blur / m_textureSize.height()); + else if (m_horizontalBlur) program->setUniformValue("delta", blur / m_textureSize.width(), 0.0); else program->setUniformValue("delta", 0.0, blur / m_textureSize.height()); diff --git a/src/opengl/qpixmapdata_gl.cpp b/src/opengl/qpixmapdata_gl.cpp index 83ebece..c965947 100644 --- a/src/opengl/qpixmapdata_gl.cpp +++ b/src/opengl/qpixmapdata_gl.cpp @@ -76,6 +76,19 @@ static inline int areaDiff(const QSize &size, const QGLFramebufferObject *fbo) return qAbs(size.width() * size.height() - fbo->width() * fbo->height()); } +extern int qt_next_power_of_two(int v); + +static inline QSize maybeRoundToNextPowerOfTwo(const QSize &sz) +{ +#ifdef QT_OPENGL_ES_2 + QSize rounded(qt_next_power_of_two(sz.width()), qt_next_power_of_two(sz.height())); + if (rounded.width() * rounded.height() < 1.20 * sz.width() * sz.height()) + return rounded; +#endif + return sz; +} + + QGLFramebufferObject *QGLFramebufferObjectPool::acquire(const QSize &requestSize, const QGLFramebufferObjectFormat &requestFormat) { QGLFramebufferObject *chosen = 0; @@ -106,7 +119,7 @@ QGLFramebufferObject *QGLFramebufferObjectPool::acquire(const QSize &requestSize if (sz != fboSize) { delete candidate; - candidate = new QGLFramebufferObject(sz, requestFormat); + candidate = new QGLFramebufferObject(maybeRoundToNextPowerOfTwo(sz), requestFormat); } chosen = candidate; @@ -114,7 +127,7 @@ QGLFramebufferObject *QGLFramebufferObjectPool::acquire(const QSize &requestSize } if (!chosen) { - chosen = new QGLFramebufferObject(requestSize, requestFormat); + chosen = new QGLFramebufferObject(maybeRoundToNextPowerOfTwo(requestSize), requestFormat); } if (!chosen->isValid()) { diff --git a/src/opengl/qwindowsurface_gl.cpp b/src/opengl/qwindowsurface_gl.cpp index 42e1c1e..ebe101d 100644 --- a/src/opengl/qwindowsurface_gl.cpp +++ b/src/opengl/qwindowsurface_gl.cpp @@ -49,12 +49,12 @@ #include <qglpixelbuffer.h> #include <qcolormap.h> #include <qdesktopwidget.h> +#include <private/qwidget_p.h> #include "qdebug.h" #ifdef Q_WS_X11 #include <private/qt_x11_p.h> #include <qx11info_x11.h> -#include <private/qwidget_p.h> #ifndef QT_OPENGL_ES #include <GL/glx.h> @@ -195,6 +195,9 @@ public: if (!initializing && !widget && !cleanedUp) { initializing = true; widget = new QGLWidget; + // We dont need this internal widget to appear in QApplication::topLevelWidgets() + if (QWidgetPrivate::allWidgets) + QWidgetPrivate::allWidgets->remove(widget); initializing = false; } return widget; diff --git a/src/openvg/qpaintengine_vg.cpp b/src/openvg/qpaintengine_vg.cpp index 94e0793..8a485a0 100644 --- a/src/openvg/qpaintengine_vg.cpp +++ b/src/openvg/qpaintengine_vg.cpp @@ -3574,51 +3574,48 @@ void QVGCompositionHelper::fillBackground } } -void QVGCompositionHelper::drawCursorImage - (const QImage& image, const QPoint& offset) +void QVGCompositionHelper::drawCursorPixmap + (const QPixmap& pixmap, const QPoint& offset) { - QImage img = image.convertToFormat(QImage::Format_ARGB32_Premultiplied); + VGImage vgImage = VG_INVALID_HANDLE; - VGImage vgImg = vgCreateImage - (VG_sARGB_8888_PRE, img.width(), img.height(), - VG_IMAGE_QUALITY_FASTER); - vgImageSubData - (vgImg, img.bits() + img.bytesPerLine() * (img.height() - 1), - -(img.bytesPerLine()), VG_sARGB_8888_PRE, 0, 0, - img.width(), img.height()); + // Fetch the VGImage from the pixmap if possible. + QPixmapData *pd = pixmap.pixmapData(); + if (pd->classId() == QPixmapData::OpenVGClass) { + QVGPixmapData *vgpd = static_cast<QVGPixmapData *>(pd); + if (vgpd->isValid()) + vgImage = vgpd->toVGImage(); + } - QTransform transform; - int y = screenSize.height() - (offset.y() + img.height()); - transform.translate(offset.x() + 0.5f, y + 0.5f); + // Set the image transformation and modes. + VGfloat devh = screenSize.height() - 1; + QTransform transform(1.0f, 0.0f, 0.0f, + 0.0f, -1.0f, 0.0f, + -0.5f, devh + 0.5f, 1.0f); + transform.translate(offset.x(), offset.y()); d->setTransform(VG_MATRIX_IMAGE_USER_TO_SURFACE, transform); - d->setImageMode(VG_DRAW_IMAGE_NORMAL); - vgDrawImage(vgImg); - vgDestroyImage(vgImg); -} + // Draw the VGImage. + if (vgImage != VG_INVALID_HANDLE) { + vgDrawImage(vgImage); + } else { + QImage img = pixmap.toImage().convertToFormat + (QImage::Format_ARGB32_Premultiplied); -void QVGCompositionHelper::drawCursorPixmap - (const QPixmap& pixmap, const QPoint& offset) -{ - QPixmapData *pd = pixmap.pixmapData(); - if (pd->classId() == QPixmapData::OpenVGClass) { - QVGPixmapData *vgpd = static_cast<QVGPixmapData *>(pd); - if (vgpd->isValid()) { - VGfloat devh = screenSize.height() - 1; - QTransform transform(1.0f, 0.0f, 0.0f, - 0.0f, -1.0f, 0.0f, - -0.5f, devh + 0.5f, 1.0f); - transform.translate(offset.x(), offset.y()); - d->setTransform(VG_MATRIX_IMAGE_USER_TO_SURFACE, transform); - - d->setImageMode(VG_DRAW_IMAGE_NORMAL); - vgDrawImage(vgpd->toVGImage()); + vgImage = vgCreateImage + (VG_sARGB_8888_PRE, img.width(), img.height(), + VG_IMAGE_QUALITY_FASTER); + if (vgImage == VG_INVALID_HANDLE) return; - } - } + vgImageSubData + (vgImage, img.bits() + img.bytesPerLine() * (img.height() - 1), + -(img.bytesPerLine()), VG_sARGB_8888_PRE, 0, 0, + img.width(), img.height()); - drawCursorImage(pixmap.toImage(), offset); + vgDrawImage(vgImage); + vgDestroyImage(vgImage); + } } void QVGCompositionHelper::setScissor(const QRegion& region) diff --git a/src/openvg/qpixmapfilter_vg_p.h b/src/openvg/qpixmapfilter_vg_p.h index efbbc7b..29dd37e 100644 --- a/src/openvg/qpixmapfilter_vg_p.h +++ b/src/openvg/qpixmapfilter_vg_p.h @@ -61,7 +61,7 @@ QT_BEGIN_NAMESPACE #if !defined(QT_SHIVAVG) -class Q_OPENVG_EXPORT QVGPixmapConvolutionFilter : public QPixmapConvolutionFilter +class QVGPixmapConvolutionFilter : public QPixmapConvolutionFilter { Q_OBJECT public: @@ -71,7 +71,7 @@ public: void draw(QPainter *painter, const QPointF &dest, const QPixmap &src, const QRectF &srcRect) const; }; -class Q_OPENVG_EXPORT QVGPixmapColorizeFilter : public QPixmapColorizeFilter +class QVGPixmapColorizeFilter : public QPixmapColorizeFilter { Q_OBJECT public: @@ -81,7 +81,7 @@ public: void draw(QPainter *painter, const QPointF &dest, const QPixmap &src, const QRectF &srcRect) const; }; -class Q_OPENVG_EXPORT QVGPixmapDropShadowFilter : public QPixmapDropShadowFilter +class QVGPixmapDropShadowFilter : public QPixmapDropShadowFilter { Q_OBJECT public: @@ -91,7 +91,7 @@ public: void draw(QPainter *p, const QPointF &pos, const QPixmap &px, const QRectF &src) const; }; -class Q_OPENVG_EXPORT QVGPixmapBlurFilter : public QPixmapBlurFilter +class QVGPixmapBlurFilter : public QPixmapBlurFilter { Q_OBJECT public: diff --git a/src/openvg/qvgcompositionhelper_p.h b/src/openvg/qvgcompositionhelper_p.h index 6317c3f..3afe31e 100644 --- a/src/openvg/qvgcompositionhelper_p.h +++ b/src/openvg/qvgcompositionhelper_p.h @@ -74,7 +74,6 @@ public: void blitWindow(QVGEGLWindowSurfacePrivate *surface, const QRect& rect, const QPoint& topLeft, int opacity); void fillBackground(const QRegion& region, const QBrush& brush); - void drawCursorImage(const QImage& image, const QPoint& offset); void drawCursorPixmap(const QPixmap& pixmap, const QPoint& offset); void setScissor(const QRegion& region); void clearScissor(); diff --git a/src/openvg/qwindowsurface_vgegl.cpp b/src/openvg/qwindowsurface_vgegl.cpp index 103f84d..29d82c8 100644 --- a/src/openvg/qwindowsurface_vgegl.cpp +++ b/src/openvg/qwindowsurface_vgegl.cpp @@ -193,6 +193,13 @@ static QEglContext *createContext(QPaintDevice *device) return 0; } + // Set the swap interval for the display. + QByteArray interval = qgetenv("QT_VG_SWAP_INTERVAL"); + if (!interval.isEmpty()) + eglSwapInterval(context->display(), interval.toInt()); + else + eglSwapInterval(context->display(), 1); + // Choose an appropriate configuration for rendering into the device. QEglProperties configProps; configProps.setPaintDeviceFormat(device); diff --git a/src/plugins/graphicssystems/graphicssystems.pro b/src/plugins/graphicssystems/graphicssystems.pro index 14e3cfc..0788933 100644 --- a/src/plugins/graphicssystems/graphicssystems.pro +++ b/src/plugins/graphicssystems/graphicssystems.pro @@ -1,6 +1,6 @@ TEMPLATE = subdirs SUBDIRS += trace -contains(QT_CONFIG, opengl):SUBDIRS += opengl +!wince*:contains(QT_CONFIG, opengl):SUBDIRS += opengl contains(QT_CONFIG, openvg):contains(QT_CONFIG, egl):SUBDIRS += openvg contains(QT_CONFIG, shivavg) { diff --git a/src/plugins/s60/src/qlocale_3_1.cpp b/src/plugins/s60/src/qlocale_3_1.cpp index 0afd10a..beeee7f 100644 --- a/src/plugins/s60/src/qlocale_3_1.cpp +++ b/src/plugins/s60/src/qlocale_3_1.cpp @@ -40,23 +40,109 @@ ****************************************************************************/ #include <e32std.h> +#include <e32const.h> +#include <e32debug.h> -EXPORT_C void defaultFormatL(TTime&, TDes& des, const TDesC&, const TLocale&) +_LIT(KYear, "%Y"); +_LIT(KMonth, "%M"); +_LIT(KDay, "%D"); +_LIT(KLocaleIndependent, "%F"); +static TBuf<10> dateFormat; +static TBuf<10> timeFormat; + +static void initialiseDateFormat() +{ + if(dateFormat.Length()) + return; + + TLocale locale; + + //Separator 1 is used between 1st and 2nd components of the date + //Separator 2 is used between 2nd and 3rd components of the date + //Usually they are the same, but they are allowed to be different + TChar s1 = locale.DateSeparator(1); + TChar s2 = locale.DateSeparator(2); + dateFormat=KLocaleIndependent; + switch(locale.DateFormat()) { + case EDateAmerican: + dateFormat.Append(KMonth); + dateFormat.Append(s1); + dateFormat.Append(KDay); + dateFormat.Append(s2); + dateFormat.Append(KYear); + break; + case EDateEuropean: + dateFormat.Append(KDay); + dateFormat.Append(s1); + dateFormat.Append(KMonth); + dateFormat.Append(s2); + dateFormat.Append(KYear); + break; + case EDateJapanese: + default: //it's closest to ISO format + dateFormat.Append(KYear); + dateFormat.Append(s1); + dateFormat.Append(KMonth); + dateFormat.Append(s2); + dateFormat.Append(KDay); + break; + } +#ifdef _DEBUG + RDebug::Print(_L("Date Format \"%S\""), &dateFormat); +#endif +} + +static void initialiseTimeFormat() +{ + if(timeFormat.Length()) + return; + + TLocale locale; + //Separator 1 is used between 1st and 2nd components of the time + //Separator 2 is used between 2nd and 3rd components of the time + //Usually they are the same, but they are allowed to be different + TChar s1 = locale.TimeSeparator(1); + TChar s2 = locale.TimeSeparator(2); + switch(locale.TimeFormat()) { + case ETime12: + timeFormat.Append(_L("%I")); + break; + case ETime24: + default: + timeFormat.Append(_L("%H")); + break; + } + timeFormat.Append(s1); + timeFormat.Append(_L("%T")); + timeFormat.Append(s2); + timeFormat.Append(_L("%S")); + +#ifdef _DEBUG + RDebug::Print(_L("Time Format \"%S\""), &timeFormat); +#endif +} + +EXPORT_C void defaultFormatL(TTime& time, TDes& des, const TDesC& fmt, const TLocale&) { - des.Zero(); + //S60 3.1 does not support format for a specific locale, so use default locale + time.FormatL(des, fmt); } +//S60 3.1 doesn't support extended locale date&time formats, so use default locale EXPORT_C TPtrC defaultGetTimeFormatSpec(TExtendedLocale&) { - return TPtrC(KNullDesC); + initialiseTimeFormat(); + return TPtrC(timeFormat); } EXPORT_C TPtrC defaultGetLongDateFormatSpec(TExtendedLocale&) { - return TPtrC(KNullDesC); + initialiseDateFormat(); + return TPtrC(dateFormat); } EXPORT_C TPtrC defaultGetShortDateFormatSpec(TExtendedLocale&) { - return TPtrC(KNullDesC); + initialiseDateFormat(); + return TPtrC(dateFormat); } diff --git a/src/qt3support/widgets/q3dockarea.cpp b/src/qt3support/widgets/q3dockarea.cpp index afeefff..bb34622 100644 --- a/src/qt3support/widgets/q3dockarea.cpp +++ b/src/qt3support/widgets/q3dockarea.cpp @@ -1019,6 +1019,7 @@ void Q3DockArea::lineUp(bool keepNewLines) if (!keepNewLines) dw->setNewLine(false); } + layout->invalidate(); layout->activate(); } diff --git a/src/s60installs/bwins/QtGuiu.def b/src/s60installs/bwins/QtGuiu.def index 4305346..56ba18f 100644 --- a/src/s60installs/bwins/QtGuiu.def +++ b/src/s60installs/bwins/QtGuiu.def @@ -5488,7 +5488,7 @@ EXPORTS ?currentIndex@QDataWidgetMapper@@QBEHXZ @ 5487 NONAME ; int QDataWidgetMapper::currentIndex(void) const ?setFont@QApplication@@SAXABVQFont@@PBD@Z @ 5488 NONAME ; void QApplication::setFont(class QFont const &, char const *) ?resized@QDesktopWidget@@IAEXH@Z @ 5489 NONAME ; void QDesktopWidget::resized(int) - ?fontEngine@QTextEngine@@QBEPAVQFontEngine@@ABUQScriptItem@@PAUQFixed@@1@Z @ 5490 NONAME ; class QFontEngine * QTextEngine::fontEngine(struct QScriptItem const &, struct QFixed *, struct QFixed *) const + ?fontEngine@QTextEngine@@QBEPAVQFontEngine@@ABUQScriptItem@@PAUQFixed@@1@Z @ 5490 NONAME ABSENT ; class QFontEngine * QTextEngine::fontEngine(struct QScriptItem const &, struct QFixed *, struct QFixed *) const ??BQVector2D@@QBE?AVQVariant@@XZ @ 5491 NONAME ; QVector2D::operator class QVariant(void) const ?qt_metacall@QTreeWidget@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 5492 NONAME ; int QTreeWidget::qt_metacall(enum QMetaObject::Call, int, void * *) ?setSelectable@QStandardItem@@QAEX_N@Z @ 5493 NONAME ; void QStandardItem::setSelectable(bool) @@ -12542,4 +12542,10 @@ EXPORTS ??0QSplitter@@QAE@PAVQWidget@@@Z @ 12541 NONAME ; QSplitter::QSplitter(class QWidget *) ?DocumentLengthForFep@QCoeFepInputContext@@UBEHXZ @ 12542 NONAME ; int QCoeFepInputContext::DocumentLengthForFep(void) const ??0QShowEvent@@QAE@XZ @ 12543 NONAME ; QShowEvent::QShowEvent(void) + ?fontEngine@QTextEngine@@QBEPAVQFontEngine@@ABUQScriptItem@@PAUQFixed@@11@Z @ 12544 NONAME ; class QFontEngine * QTextEngine::fontEngine(struct QScriptItem const &, struct QFixed *, struct QFixed *, struct QFixed *) const + ?leading@QTextLine@@QBEMXZ @ 12545 NONAME ; float QTextLine::leading(void) const + ?leadingIncluded@QTextLine@@QBE_NXZ @ 12546 NONAME ; bool QTextLine::leadingIncluded(void) const + ?projectedRotate@QMatrix4x4@@AAEAAV1@MMMM@Z @ 12547 NONAME ; class QMatrix4x4 & QMatrix4x4::projectedRotate(float, float, float, float) + ?setLeadingIncluded@QTextLine@@QAEX_N@Z @ 12548 NONAME ; void QTextLine::setLeadingIncluded(bool) + ?toTransform@QMatrix4x4@@QBE?AVQTransform@@XZ @ 12549 NONAME ; class QTransform QMatrix4x4::toTransform(void) const diff --git a/src/s60installs/eabi/QtGuiu.def b/src/s60installs/eabi/QtGuiu.def index ae69475..2d1c42f 100644 --- a/src/s60installs/eabi/QtGuiu.def +++ b/src/s60installs/eabi/QtGuiu.def @@ -1051,12 +1051,12 @@ EXPORTS _ZN11QPaintEventD2Ev @ 1050 NONAME _ZN11QPanGesture11qt_metacallEN11QMetaObject4CallEiPPv @ 1051 NONAME _ZN11QPanGesture11qt_metacastEPKc @ 1052 NONAME - _ZN11QPanGesture13setLastOffsetERK6QSizeF @ 1053 NONAME - _ZN11QPanGesture14setTotalOffsetERK6QSizeF @ 1054 NONAME + _ZN11QPanGesture13setLastOffsetERK6QSizeF @ 1053 NONAME ABSENT + _ZN11QPanGesture14setTotalOffsetERK6QSizeF @ 1054 NONAME ABSENT _ZN11QPanGesture15setAccelerationEf @ 1055 NONAME _ZN11QPanGesture16staticMetaObjectE @ 1056 NONAME DATA 16 _ZN11QPanGesture19getStaticMetaObjectEv @ 1057 NONAME - _ZN11QPanGesture9setOffsetERK6QSizeF @ 1058 NONAME + _ZN11QPanGesture9setOffsetERK6QSizeF @ 1058 NONAME ABSENT _ZN11QPanGestureC1EP7QObject @ 1059 NONAME _ZN11QPanGestureC2EP7QObject @ 1060 NONAME _ZN11QPixmapData12toNativeTypeENS_10NativeTypeE @ 1061 NONAME @@ -6366,7 +6366,7 @@ EXPORTS _ZN8QGesture11qt_metacallEN11QMetaObject4CallEiPPv @ 6365 NONAME _ZN8QGesture11qt_metacastEPKc @ 6366 NONAME _ZN8QGesture12unsetHotSpotEv @ 6367 NONAME - _ZN8QGesture15setTargetObjectEP7QObject @ 6368 NONAME + _ZN8QGesture15setTargetObjectEP7QObject @ 6368 NONAME ABSENT _ZN8QGesture16staticMetaObjectE @ 6369 NONAME DATA 16 _ZN8QGesture19getStaticMetaObjectEv @ 6370 NONAME _ZN8QGestureC1EN2Qt11GestureTypeEP7QObject @ 6371 NONAME ABSENT @@ -7888,7 +7888,7 @@ EXPORTS _ZNK11QTextCursorneERKS_ @ 7887 NONAME _ZNK11QTextEngine10attributesEv @ 7888 NONAME _ZNK11QTextEngine10elidedTextEN2Qt13TextElideModeERK6QFixedi @ 7889 NONAME - _ZNK11QTextEngine10fontEngineERK11QScriptItemP6QFixedS4_ @ 7890 NONAME + _ZNK11QTextEngine10fontEngineERK11QScriptItemP6QFixedS4_ @ 7890 NONAME ABSENT _ZNK11QTextEngine11boundingBoxEii @ 7891 NONAME _ZNK11QTextEngine11formatIndexEPK11QScriptItem @ 7892 NONAME _ZNK11QTextEngine11setBoundaryEi @ 7893 NONAME @@ -10163,7 +10163,7 @@ EXPORTS _ZNK8QGesture10hasHotSpotEv @ 10162 NONAME _ZNK8QGesture10metaObjectEv @ 10163 NONAME _ZNK8QGesture11gestureTypeEv @ 10164 NONAME - _ZNK8QGesture12targetObjectEv @ 10165 NONAME + _ZNK8QGesture12targetObjectEv @ 10165 NONAME ABSENT _ZNK8QGesture5stateEv @ 10166 NONAME _ZNK8QGesture7hotSpotEv @ 10167 NONAME _ZNK8QMdiArea10backgroundEv @ 10168 NONAME @@ -11615,4 +11615,24 @@ EXPORTS _Zls6QDebugRKN12QStyleOption10OptionTypeE @ 11614 NONAME _ZNK14QDesktopWidget14screenGeometryEPK7QWidget @ 11615 NONAME _ZNK14QDesktopWidget17availableGeometryEPK7QWidget @ 11616 NONAME + _ZN11QPanGesture13setLastOffsetERK7QPointF @ 11617 NONAME + _ZN11QPanGesture14setTotalOffsetERK7QPointF @ 11618 NONAME + _ZN11QPanGesture9setOffsetERK7QPointF @ 11619 NONAME + _ZN13QGestureEvent6d_funcEv @ 11620 NONAME + _ZN13QGestureEvent9setWidgetEP7QWidget @ 11621 NONAME + _ZN13QGestureEventD0Ev @ 11622 NONAME + _ZN13QGestureEventD1Ev @ 11623 NONAME + _ZN13QGestureEventD2Ev @ 11624 NONAME + _ZN14QWidgetPrivate36invalidateGraphicsEffectsRecursivelyEv @ 11625 NONAME + _ZN20QGraphicsItemPrivate36invalidateGraphicsEffectsRecursivelyEv @ 11626 NONAME + _ZNK13QGestureEvent10mapToSceneERK7QPointF @ 11627 NONAME + _ZNK13QGestureEvent6d_funcEv @ 11628 NONAME + _ZNK13QGestureEvent6widgetEv @ 11629 NONAME + _Zls6QDebugP15QGraphicsObject @ 11630 NONAME + _ZN10QMatrix4x415projectedRotateEffff @ 11631 NONAME + _ZN9QTextLine18setLeadingIncludedEb @ 11632 NONAME + _ZNK10QMatrix4x411toTransformEv @ 11633 NONAME + _ZNK11QTextEngine10fontEngineERK11QScriptItemP6QFixedS4_S4_ @ 11634 NONAME + _ZNK9QTextLine15leadingIncludedEv @ 11635 NONAME + _ZNK9QTextLine7leadingEv @ 11636 NONAME diff --git a/src/s60installs/s60installs.pro b/src/s60installs/s60installs.pro index 7233e8a..022a072 100644 --- a/src/s60installs/s60installs.pro +++ b/src/s60installs/s60installs.pro @@ -35,8 +35,8 @@ symbian: { qtlibraries.pkg_postrules += qts60plugindeployment sqlitedeployment = \ - "; EXISTS statement does not resolve !. Lets check the most common drives" \ - "IF NOT EXISTS(\"c:\\sys\\bin\\sqlite3.dll\") AND NOT EXISTS(\"e:\\sys\\bin\\sqlite3.dll\") AND NOT EXISTS(\"z:\\sys\\bin\\sqlite3.dll\")" \ + "; Deploy sqlite onto phone that does not have it (this should be replaced with embedded sis file when available)" \ + "IF NOT package(0x2002533b) " \ "\"$${EPOCROOT}epoc32/release/$(PLATFORM)/$(TARGET)/sqlite3.dll\" - \"!:\\sys\\bin\\sqlite3.dll\"" \ "ENDIF" qtlibraries.pkg_postrules += sqlitedeployment @@ -97,6 +97,10 @@ symbian: { qtlibraries.sources += QtScript.dll } + contains(QT_CONFIG, xmlpatterns): { + qtlibraries.sources += QtXmlPatterns.dll + } + contains(QT_CONFIG, webkit): { qtlibraries.sources += QtWebKit.dll } diff --git a/src/script/api/qscriptstring.cpp b/src/script/api/qscriptstring.cpp index 1ede51c..10fccd0 100644 --- a/src/script/api/qscriptstring.cpp +++ b/src/script/api/qscriptstring.cpp @@ -68,6 +68,10 @@ QT_BEGIN_NAMESPACE Call the toString() function to obtain the string that a QScriptString represents. + + Call the toArrayIndex() function to convert a QScriptString to an + array index. This is useful when using QScriptClass to implement + array-like objects. */ /*! @@ -164,6 +168,31 @@ bool QScriptString::operator!=(const QScriptString &other) const } /*! + \since 4.6 + + Attempts to convert this QScriptString to a QtScript array index, + and returns the result. + + If a conversion error occurs, *\a{ok} is set to false; otherwise + *\a{ok} is set to true. +*/ +quint32 QScriptString::toArrayIndex(bool *ok) const +{ + Q_D(const QScriptString); + if (!d) { + if (ok) + *ok = false; + return -1; + } + bool tmp; + bool *okok = ok ? ok : &tmp; + quint32 result = d->identifier.toArrayIndex(okok); + if (!*okok) + result = -1; + return result; +} + +/*! Returns the string that this QScriptString represents, or a null string if this QScriptString is not valid. diff --git a/src/script/api/qscriptstring.h b/src/script/api/qscriptstring.h index 40d156c..bf5d1d5 100644 --- a/src/script/api/qscriptstring.h +++ b/src/script/api/qscriptstring.h @@ -67,6 +67,8 @@ public: bool operator==(const QScriptString &other) const; bool operator!=(const QScriptString &other) const; + quint32 toArrayIndex(bool *ok = 0) const; + QString toString() const; operator QString() const; diff --git a/src/sql/drivers/psql/qsql_psql.cpp b/src/sql/drivers/psql/qsql_psql.cpp index 4b7c2b5..1e41571 100644 --- a/src/sql/drivers/psql/qsql_psql.cpp +++ b/src/sql/drivers/psql/qsql_psql.cpp @@ -357,7 +357,7 @@ QVariant QPSQLResult::data(int i) } return QString::fromAscii(val); } - return strtod(val, 0); + return QString::fromAscii(val).toDouble(); case QVariant::Date: if (val[0] == '\0') { return QVariant(QDate()); diff --git a/src/sql/drivers/sqlite/qsql_sqlite.cpp b/src/sql/drivers/sqlite/qsql_sqlite.cpp index 2766cca..8355de2 100644 --- a/src/sql/drivers/sqlite/qsql_sqlite.cpp +++ b/src/sql/drivers/sqlite/qsql_sqlite.cpp @@ -228,13 +228,9 @@ bool QSQLiteResultPrivate::fetchNext(QSqlCachedResult::ValueCache &values, int i values[i + idx] = sqlite3_column_int64(stmt, i); break; case QSql::LowPrecisionDouble: - values[i + idx] = sqlite3_column_double(stmt, i); - break; case QSql::HighPrecision: default: - values[i + idx] = QString::fromUtf16(static_cast<const ushort *>( - sqlite3_column_text16(stmt, i)), - sqlite3_column_bytes16(stmt, i) / sizeof(ushort)); + values[i + idx] = sqlite3_column_double(stmt, i); break; }; break; diff --git a/src/sql/models/qsqlquerymodel.cpp b/src/sql/models/qsqlquerymodel.cpp index a72ad8c..1719239 100644 --- a/src/sql/models/qsqlquerymodel.cpp +++ b/src/sql/models/qsqlquerymodel.cpp @@ -417,7 +417,7 @@ bool QSqlQueryModel::setHeaderData(int section, Qt::Orientation orientation, const QVariant &value, int role) { Q_D(QSqlQueryModel); - if (orientation != Qt::Horizontal || section < 0) + if (orientation != Qt::Horizontal || section < 0 || columnCount() <= section) return false; if (d->headers.size() <= section) diff --git a/src/xmlpatterns/api/qxmlquery.h b/src/xmlpatterns/api/qxmlquery.h index abfddc0..37e4fe1 100644 --- a/src/xmlpatterns/api/qxmlquery.h +++ b/src/xmlpatterns/api/qxmlquery.h @@ -74,7 +74,7 @@ namespace QPatternist class XsdSchemaParser; class XsdValidatingInstanceReader; class VariableLoader; -}; +} class Q_XMLPATTERNS_EXPORT QXmlQuery { diff --git a/src/xmlpatterns/schema/qxsdstatemachine.cpp b/src/xmlpatterns/schema/qxsdstatemachine.cpp index 85bc752..8a43411 100644 --- a/src/xmlpatterns/schema/qxsdstatemachine.cpp +++ b/src/xmlpatterns/schema/qxsdstatemachine.cpp @@ -335,64 +335,6 @@ typename XsdStateMachine<TransitionType>::StateId XsdStateMachine<TransitionType return dfaState; } - -template <typename TransitionType> -QSet<typename XsdStateMachine<TransitionType>::StateId> XsdStateMachine<TransitionType>::epsilonClosure(const QSet<StateId> &input) const -{ - // every state can reach itself by epsilon transition, so include the input states - // in the result as well - QSet<StateId> result = input; - - // add the input states to the list of to be processed states - QList<StateId> workStates = input.toList(); - while (!workStates.isEmpty()) { // while there are states to be processed left... - - // dequeue one state from list - const StateId state = workStates.takeFirst(); - - // get the list of states that can be reached by the epsilon transition - // from the current 'state' - const QVector<StateId> targetStates = m_epsilonTransitions.value(state); - for (int i = 0; i < targetStates.count(); ++i) { - // if we have this target state not in our result set yet... - if (!result.contains(targetStates.at(i))) { - // ... add it to the result set - result.insert(targetStates.at(i)); - - // add the target state to the list of to be processed states as well, - // as we want to have the epsilon transitions not only for the first - // level of following states - workStates.append(targetStates.at(i)); - } - } - } - - return result; -} - -template <typename TransitionType> -QSet<typename XsdStateMachine<TransitionType>::StateId> XsdStateMachine<TransitionType>::move(const QSet<StateId> &states, TransitionType input) const -{ - QSet<StateId> result; - - QSetIterator<StateId> it(states); - while (it.hasNext()) { // iterate over all given states - const StateId state = it.next(); - - // get the transition table for the current state - const QHash<TransitionType, QVector<StateId> > transitions = m_transitions.value(state); - - // get the target states for the given input - const QVector<StateId> targetStates = transitions.value(input); - - // add all target states to the result - for (int i = 0; i < targetStates.size(); ++i) - result.insert(targetStates.at(i)); - } - - return result; -} - template <typename TransitionType> XsdStateMachine<TransitionType> XsdStateMachine<TransitionType>::toDFA() const { @@ -469,9 +411,3 @@ QHash<typename XsdStateMachine<TransitionType>::StateId, typename XsdStateMachin { return m_states; } - -template <typename TransitionType> -QHash<typename XsdStateMachine<TransitionType>::StateId, QHash<TransitionType, QVector<typename XsdStateMachine<TransitionType>::StateId> > > XsdStateMachine<TransitionType>::transitions() const -{ - return m_transitions; -} diff --git a/src/xmlpatterns/schema/qxsdstatemachine_p.h b/src/xmlpatterns/schema/qxsdstatemachine_p.h index e671499..294eb50 100644 --- a/src/xmlpatterns/schema/qxsdstatemachine_p.h +++ b/src/xmlpatterns/schema/qxsdstatemachine_p.h @@ -204,8 +204,14 @@ namespace QPatternist /** * Returns the information of all transitions of the state machine. + * + * The implementation is inlined in order to workaround a compiler + * bug on Symbian/winscw. */ - QHash<StateId, QHash<TransitionType, QVector<StateId> > > transitions() const; + QHash<StateId, QHash<TransitionType, QVector<StateId> > > transitions() const + { + return m_transitions; + } private: /** @@ -217,14 +223,71 @@ namespace QPatternist /** * Returns the set of all states that can be reached from the set of @p input states * by the epsilon transition. + * + * The implementation is inlined in order to workaround a compiler + * bug on Symbian/winscw. */ - QSet<StateId> epsilonClosure(const QSet<StateId> &input) const; + QSet<StateId> epsilonClosure(const QSet<StateId> &input) const + { + // every state can reach itself by epsilon transition, so include the input states + // in the result as well + QSet<StateId> result = input; + + // add the input states to the list of to be processed states + QList<StateId> workStates = input.toList(); + while (!workStates.isEmpty()) { // while there are states to be processed left... + + // dequeue one state from list + const StateId state = workStates.takeFirst(); + + // get the list of states that can be reached by the epsilon transition + // from the current 'state' + const QVector<StateId> targetStates = m_epsilonTransitions.value(state); + for (int i = 0; i < targetStates.count(); ++i) { + // if we have this target state not in our result set yet... + if (!result.contains(targetStates.at(i))) { + // ... add it to the result set + result.insert(targetStates.at(i)); + + // add the target state to the list of to be processed states as well, + // as we want to have the epsilon transitions not only for the first + // level of following states + workStates.append(targetStates.at(i)); + } + } + } + + return result; + } /** * Returns the set of all states that can be reached from the set of given @p states * by the given @p input. + * + * The implementation is inlined in order to workaround a compiler + * bug on Symbian/winscw. */ - QSet<StateId> move(const QSet<StateId> &states, TransitionType input) const; + QSet<StateId> move(const QSet<StateId> &states, TransitionType input) const + { + QSet<StateId> result; + + QSetIterator<StateId> it(states); + while (it.hasNext()) { // iterate over all given states + const StateId state = it.next(); + + // get the transition table for the current state + const QHash<TransitionType, QVector<StateId> > transitions = m_transitions.value(state); + + // get the target states for the given input + const QVector<StateId> targetStates = transitions.value(input); + + // add all target states to the result + for (int i = 0; i < targetStates.size(); ++i) + result.insert(targetStates.at(i)); + } + + return result; + } NamePool::Ptr m_namePool; QHash<StateId, StateType> m_states; diff --git a/src/xmlpatterns/xmlpatterns.pro b/src/xmlpatterns/xmlpatterns.pro index bb8e452..1df497d 100644 --- a/src/xmlpatterns/xmlpatterns.pro +++ b/src/xmlpatterns/xmlpatterns.pro @@ -34,3 +34,5 @@ wince*: { QMAKE_CXXFLAGS_RELEASE ~= s/-O1/-Os -Oy -Ob2/ } } + +symbian:TARGET.UID3=0x2001E62B diff --git a/tests/auto/gestures/tst_gestures.cpp b/tests/auto/gestures/tst_gestures.cpp index 92f979f..02c8232 100644 --- a/tests/auto/gestures/tst_gestures.cpp +++ b/tests/auto/gestures/tst_gestures.cpp @@ -103,6 +103,8 @@ int CustomEvent::EventType = 0; class CustomGestureRecognizer : public QGestureRecognizer { public: + static bool ConsumeEvents; + CustomGestureRecognizer() { if (!CustomEvent::EventType) @@ -117,7 +119,9 @@ public: QGestureRecognizer::Result filterEvent(QGesture *state, QObject*, QEvent *event) { if (event->type() == CustomEvent::EventType) { - QGestureRecognizer::Result result = QGestureRecognizer::ConsumeEventHint; + QGestureRecognizer::Result result = 0; + if (CustomGestureRecognizer::ConsumeEvents) + result |= QGestureRecognizer::ConsumeEventHint; CustomGesture *g = static_cast<CustomGesture*>(state); CustomEvent *e = static_cast<CustomEvent*>(event); g->serial = e->serial; @@ -143,6 +147,7 @@ public: QGestureRecognizer::reset(state); } }; +bool CustomGestureRecognizer::ConsumeEvents = false; // same as CustomGestureRecognizer but triggers early without the maybe state class CustomContinuousGestureRecognizer : public QGestureRecognizer @@ -280,6 +285,7 @@ protected: } }; +// TODO rename to sendGestureSequence static void sendCustomGesture(CustomEvent *event, QObject *object, QGraphicsScene *scene = 0) { for (int i = CustomGesture::SerialMaybeThreshold; @@ -322,6 +328,10 @@ private slots: void multipleGesturesInTree(); void multipleGesturesInComplexTree(); void testMapToScene(); + void ungrabGesture(); + void consumeEventHint(); + void unregisterRecognizer(); + void autoCancelGestures(); }; tst_Gestures::tst_Gestures() @@ -334,13 +344,14 @@ tst_Gestures::~tst_Gestures() void tst_Gestures::initTestCase() { - CustomGesture::GestureType = qApp->registerGestureRecognizer(new CustomGestureRecognizer); + CustomGesture::GestureType = QApplication::registerGestureRecognizer(new CustomGestureRecognizer); QVERIFY(CustomGesture::GestureType != Qt::GestureType(0)); QVERIFY(CustomGesture::GestureType != Qt::CustomGesture); } void tst_Gestures::cleanupTestCase() { + QApplication::unregisterGestureRecognizer(CustomGesture::GestureType); } void tst_Gestures::init() @@ -372,6 +383,19 @@ void tst_Gestures::customGesture() QCOMPARE(widget.events.canceled.size(), 0); } +void tst_Gestures::consumeEventHint() +{ + GestureWidget widget; + widget.grabGesture(CustomGesture::GestureType, Qt::WidgetGesture); + + CustomGestureRecognizer::ConsumeEvents = true; + CustomEvent event; + sendCustomGesture(&event, &widget); + CustomGestureRecognizer::ConsumeEvents = false; + + QCOMPARE(widget.customEventsReceived, 0); +} + void tst_Gestures::autoCancelingGestures() { GestureWidget widget; @@ -534,7 +558,7 @@ void tst_Gestures::conflictingGestures() parent.reset(); child->reset(); - Qt::GestureType ContinuousGesture = qApp->registerGestureRecognizer(new CustomContinuousGestureRecognizer); + Qt::GestureType ContinuousGesture = QApplication::registerGestureRecognizer(new CustomContinuousGestureRecognizer); static const int ContinuousGestureEventsCount = CustomGesture::SerialFinishedThreshold - CustomGesture::SerialMaybeThreshold + 1; child->grabGesture(ContinuousGesture); // child accepts override. And it also receives another custom gesture. @@ -547,6 +571,8 @@ void tst_Gestures::conflictingGestures() QCOMPARE(child->events.all.count(), TotalGestureEventsCount + ContinuousGestureEventsCount); QCOMPARE(parent.gestureOverrideEventsReceived, 0); QCOMPARE(parent.gestureEventsReceived, 0); + + QApplication::unregisterGestureRecognizer(ContinuousGesture); } void tst_Gestures::finishedWithoutStarted() @@ -710,6 +736,7 @@ void tst_Gestures::graphicsItemGesture() { QGraphicsScene scene; QGraphicsView view(&scene); + view.setWindowFlags(Qt::X11BypassWindowManagerHint); GestureItem *item = new GestureItem("item"); scene.addItem(item); @@ -772,6 +799,7 @@ void tst_Gestures::graphicsItemTreeGesture() { QGraphicsScene scene; QGraphicsView view(&scene); + view.setWindowFlags(Qt::X11BypassWindowManagerHint); GestureItem *item1 = new GestureItem("item1"); item1->setPos(100, 100); @@ -829,6 +857,7 @@ void tst_Gestures::explicitGraphicsObjectTarget() { QGraphicsScene scene; QGraphicsView view(&scene); + view.setWindowFlags(Qt::X11BypassWindowManagerHint); GestureItem *item1 = new GestureItem("item1"); scene.addItem(item1); @@ -882,6 +911,7 @@ void tst_Gestures::gestureOverChildGraphicsItem() { QGraphicsScene scene; QGraphicsView view(&scene); + view.setWindowFlags(Qt::X11BypassWindowManagerHint); GestureItem *item0 = new GestureItem("item0"); scene.addItem(item0); @@ -951,7 +981,7 @@ void tst_Gestures::twoGesturesOnDifferentLevel() GestureWidget *child = new GestureWidget("child"); l->addWidget(child); - Qt::GestureType SecondGesture = qApp->registerGestureRecognizer(new CustomGestureRecognizer); + Qt::GestureType SecondGesture = QApplication::registerGestureRecognizer(new CustomGestureRecognizer); parent.grabGesture(CustomGesture::GestureType, Qt::WidgetWithChildrenGesture); child->grabGesture(SecondGesture, Qt::WidgetWithChildrenGesture); @@ -978,6 +1008,8 @@ void tst_Gestures::twoGesturesOnDifferentLevel() QCOMPARE(parent.events.all.size(), TotalGestureEventsCount); for(int i = 0; i < child->events.all.size(); ++i) QCOMPARE(parent.events.all.at(i), CustomGesture::GestureType); + + QApplication::unregisterGestureRecognizer(SecondGesture); } void tst_Gestures::multipleGesturesInTree() @@ -989,8 +1021,8 @@ void tst_Gestures::multipleGesturesInTree() GestureWidget *D = new GestureWidget("D", C); Qt::GestureType FirstGesture = CustomGesture::GestureType; - Qt::GestureType SecondGesture = qApp->registerGestureRecognizer(new CustomGestureRecognizer); - Qt::GestureType ThirdGesture = qApp->registerGestureRecognizer(new CustomGestureRecognizer); + Qt::GestureType SecondGesture = QApplication::registerGestureRecognizer(new CustomGestureRecognizer); + Qt::GestureType ThirdGesture = QApplication::registerGestureRecognizer(new CustomGestureRecognizer); A->grabGesture(FirstGesture, Qt::WidgetWithChildrenGesture); // A [1 3] A->grabGesture(ThirdGesture, Qt::WidgetWithChildrenGesture); // | @@ -1046,6 +1078,9 @@ void tst_Gestures::multipleGesturesInTree() QCOMPARE(A->events.all.count(FirstGesture), TotalGestureEventsCount); QCOMPARE(A->events.all.count(SecondGesture), 0); QCOMPARE(A->events.all.count(ThirdGesture), TotalGestureEventsCount); + + QApplication::unregisterGestureRecognizer(SecondGesture); + QApplication::unregisterGestureRecognizer(ThirdGesture); } void tst_Gestures::multipleGesturesInComplexTree() @@ -1057,12 +1092,12 @@ void tst_Gestures::multipleGesturesInComplexTree() GestureWidget *D = new GestureWidget("D", C); Qt::GestureType FirstGesture = CustomGesture::GestureType; - Qt::GestureType SecondGesture = qApp->registerGestureRecognizer(new CustomGestureRecognizer); - Qt::GestureType ThirdGesture = qApp->registerGestureRecognizer(new CustomGestureRecognizer); - Qt::GestureType FourthGesture = qApp->registerGestureRecognizer(new CustomGestureRecognizer); - Qt::GestureType FifthGesture = qApp->registerGestureRecognizer(new CustomGestureRecognizer); - Qt::GestureType SixthGesture = qApp->registerGestureRecognizer(new CustomGestureRecognizer); - Qt::GestureType SeventhGesture = qApp->registerGestureRecognizer(new CustomGestureRecognizer); + Qt::GestureType SecondGesture = QApplication::registerGestureRecognizer(new CustomGestureRecognizer); + Qt::GestureType ThirdGesture = QApplication::registerGestureRecognizer(new CustomGestureRecognizer); + Qt::GestureType FourthGesture = QApplication::registerGestureRecognizer(new CustomGestureRecognizer); + Qt::GestureType FifthGesture = QApplication::registerGestureRecognizer(new CustomGestureRecognizer); + Qt::GestureType SixthGesture = QApplication::registerGestureRecognizer(new CustomGestureRecognizer); + Qt::GestureType SeventhGesture = QApplication::registerGestureRecognizer(new CustomGestureRecognizer); A->grabGesture(FirstGesture, Qt::WidgetWithChildrenGesture); // A [1,3,4] A->grabGesture(ThirdGesture, Qt::WidgetWithChildrenGesture); // | @@ -1139,6 +1174,13 @@ void tst_Gestures::multipleGesturesInComplexTree() QCOMPARE(A->events.all.count(FifthGesture), 0); QCOMPARE(A->events.all.count(SixthGesture), 0); QCOMPARE(A->events.all.count(SeventhGesture), 0); + + QApplication::unregisterGestureRecognizer(SecondGesture); + QApplication::unregisterGestureRecognizer(ThirdGesture); + QApplication::unregisterGestureRecognizer(FourthGesture); + QApplication::unregisterGestureRecognizer(FifthGesture); + QApplication::unregisterGestureRecognizer(SixthGesture); + QApplication::unregisterGestureRecognizer(SeventhGesture); } void tst_Gestures::testMapToScene() @@ -1151,6 +1193,7 @@ void tst_Gestures::testMapToScene() QGraphicsScene scene; QGraphicsView view(&scene); + view.setWindowFlags(Qt::X11BypassWindowManagerHint); GestureItem *item0 = new GestureItem; scene.addItem(item0); @@ -1166,5 +1209,150 @@ void tst_Gestures::testMapToScene() QCOMPARE(event.mapToScene(origin + QPoint(100, 200)), view.mapToScene(QPoint(100, 200))); } +void tst_Gestures::ungrabGesture() // a method on QWidget +{ + class MockGestureWidget : public GestureWidget { + public: + MockGestureWidget(const char *name = 0, QWidget *parent = 0) + : GestureWidget(name, parent) { } + + + QSet<QGesture*> gestures; + protected: + bool event(QEvent *event) + { + if (event->type() == QEvent::Gesture) { + QGestureEvent *gestureEvent = static_cast<QGestureEvent*>(event); + if (gestureEvent) + foreach (QGesture *g, gestureEvent->allGestures()) + gestures.insert(g); + } + return GestureWidget::event(event); + } + }; + + MockGestureWidget parent("A"); + MockGestureWidget *a = &parent; + MockGestureWidget *b = new MockGestureWidget("B", a); + + a->grabGesture(CustomGesture::GestureType, Qt::WidgetGesture); + b->grabGesture(CustomGesture::GestureType, Qt::WidgetWithChildrenGesture); + b->ignoredGestures << CustomGesture::GestureType; + + CustomEvent event; + // sending an event will cause the QGesture objects to be instantiated for the widgets + sendCustomGesture(&event, b); + + QCOMPARE(a->gestures.count(), 1); + QPointer<QGesture> customGestureA; + customGestureA = *(a->gestures.begin()); + QVERIFY(!customGestureA.isNull()); + QCOMPARE(customGestureA->gestureType(), CustomGesture::GestureType); + + QCOMPARE(b->gestures.count(), 1); + QPointer<QGesture> customGestureB; + customGestureB = *(b->gestures.begin()); + QVERIFY(!customGestureB.isNull()); + QVERIFY(customGestureA.data() == customGestureB.data()); + QCOMPARE(customGestureB->gestureType(), CustomGesture::GestureType); + + a->gestures.clear(); + // sending an event will cause the QGesture objects to be instantiated for the widget + sendCustomGesture(&event, a); + + QCOMPARE(a->gestures.count(), 1); + customGestureA = *(a->gestures.begin()); + QVERIFY(!customGestureA.isNull()); + QCOMPARE(customGestureA->gestureType(), CustomGesture::GestureType); + QVERIFY(customGestureA.data() != customGestureB.data()); + + a->ungrabGesture(CustomGesture::GestureType); + QVERIFY(customGestureA.isNull()); + QVERIFY(!customGestureB.isNull()); + + a->gestures.clear(); + a->reset(); + // send again to 'b' and make sure a never gets it. + sendCustomGesture(&event, b); + QCOMPARE(a->gestureEventsReceived, 0); + QCOMPARE(a->gestureOverrideEventsReceived, 0); +} + +void tst_Gestures::unregisterRecognizer() // a method on QApplication +{ + /* + The hardest usecase to get right is when we remove a recognizer while several + of the gestures it created are in active state and we immediately add a new recognizer + for the same type (thus replacing the old one). + The expected result is that all old gestures continue till they are finished/cancelled + and the new recognizer starts creating gestures immediately at registration. + + This implies that deleting of the recognizer happens only when there are no more gestures + that it created. (since gestures might have a pointer to the recognizer) + */ + +} + +void tst_Gestures::autoCancelGestures() +{ + class MockRecognizer : public QGestureRecognizer { + public: + QGestureRecognizer::Result filterEvent(QGesture *gesture, QObject *watched, QEvent *event) + { + Q_UNUSED(gesture); + Q_UNUSED(watched); + if (event->type() == QEvent::MouseButtonPress) + return QGestureRecognizer::GestureTriggered; + if (event->type() == QEvent::MouseButtonRelease) + return QGestureRecognizer::GestureFinished; + return QGestureRecognizer::Ignore; + } + }; + + class MockWidget : public GestureWidget { + public: + MockWidget(const char *name) : GestureWidget(name) { } + + bool event(QEvent *event) + { + if (event->type() == QEvent::Gesture) { + QGestureEvent *ge = static_cast<QGestureEvent*>(event); + Q_ASSERT(ge->allGestures().count() == 1); // can't use QCOMPARE here... + ge->allGestures().first()->setGestureCancelPolicy(QGesture::CancelAllInContext); + } + return GestureWidget::event(event); + } + }; + + MockWidget parent("parent"); // this one sets the cancel policy to CancelAllInContext + parent.resize(300, 100); + GestureWidget *child = new GestureWidget("child", &parent); + child->setGeometry(10, 10, 100, 80); + + Qt::GestureType type = QApplication::registerGestureRecognizer(new MockRecognizer()); + parent.grabGesture(type, Qt::WidgetWithChildrenGesture); + child->grabGesture(type, Qt::WidgetWithChildrenGesture); + + /* + An event is send to both the child and the parent, when the child gets it a gesture is triggered + and send to the child. + When the parent gets the event a new gesture is triggered and delivered to the parent. When the + parent gets it he accepts it and that causes the cancel policy to activate. + The cause of that is the gesture for the child is cancelled and send to the child as such. + */ + QMouseEvent event(QEvent::MouseButtonPress, QPoint(20,20), Qt::LeftButton, Qt::LeftButton, Qt::NoModifier); + QApplication::sendEvent(child, &event); + QCOMPARE(child->events.started.count(), 1); + QCOMPARE(child->events.all.count(), 1); + QCOMPARE(parent.events.all.count(), 0); + child->reset(); + QApplication::sendEvent(&parent, &event); + QCOMPARE(parent.events.all.count(), 1); + QCOMPARE(parent.events.started.count(), 1); + QCOMPARE(child->events.started.count(), 0); + QCOMPARE(child->events.all.count(), 1); + QCOMPARE(child->events.canceled.count(), 1); +} + QTEST_MAIN(tst_Gestures) #include "tst_gestures.moc" diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecpp/main.cpp b/tests/auto/linguist/lupdate/testdata/good/parsecpp/main.cpp index 8201add..e243e66 100644 --- a/tests/auto/linguist/lupdate/testdata/good/parsecpp/main.cpp +++ b/tests/auto/linguist/lupdate/testdata/good/parsecpp/main.cpp @@ -228,3 +228,22 @@ QT_TRID_NOOP("this_a_id") //~ some thing //% "This needs to be here. Really." QString test = qtTrId("this_another_id", n); + + + +class YetAnotherTest : QObject { + Q_OBJECT + + int function(void) + { + // + //: + //= + //~ + //# + //============= + //~~~~~~~~~~~~~ + //::::::::::::: + tr("nothing"); + } +}; diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecpp/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/parsecpp/project.ts.result index d63c7c3..26e5a65 100644 --- a/tests/auto/linguist/lupdate/testdata/good/parsecpp/project.ts.result +++ b/tests/auto/linguist/lupdate/testdata/good/parsecpp/project.ts.result @@ -278,6 +278,14 @@ backslashed \ stuff.</source> </message> </context> <context> + <name>YetAnotherTest</name> + <message> + <location filename="main.cpp" line="247"/> + <source>nothing</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> <name>scope</name> <message numerus="yes"> <location filename="main.cpp" line="187"/> diff --git a/tests/auto/qactiongroup/tst_qactiongroup.cpp b/tests/auto/qactiongroup/tst_qactiongroup.cpp index 2d215a0..7259479 100644 --- a/tests/auto/qactiongroup/tst_qactiongroup.cpp +++ b/tests/auto/qactiongroup/tst_qactiongroup.cpp @@ -70,6 +70,7 @@ private slots: void separators(); void testActionInTwoQActionGroup(); + void unCheckCurrentAction(); }; tst_QActionGroup::tst_QActionGroup() @@ -278,5 +279,25 @@ void tst_QActionGroup::testActionInTwoQActionGroup() QCOMPARE(group1.actions().isEmpty(), true); } +void tst_QActionGroup::unCheckCurrentAction() +{ + QActionGroup group(0); + QAction action1(&group) ,action2(&group); + action1.setCheckable(true); + action2.setCheckable(true); + QVERIFY(!action1.isChecked()); + QVERIFY(!action2.isChecked()); + action1.setChecked(true); + QVERIFY(action1.isChecked()); + QVERIFY(!action2.isChecked()); + QAction *current = group.checkedAction(); + QCOMPARE(current, &action1); + current->setChecked(false); + QVERIFY(!action1.isChecked()); + QVERIFY(!action2.isChecked()); + QVERIFY(group.checkedAction() == 0); +} + + QTEST_MAIN(tst_QActionGroup) #include "tst_qactiongroup.moc" diff --git a/tests/auto/qalgorithms/tst_qalgorithms.cpp b/tests/auto/qalgorithms/tst_qalgorithms.cpp index 1f1de82..176a451 100644 --- a/tests/auto/qalgorithms/tst_qalgorithms.cpp +++ b/tests/auto/qalgorithms/tst_qalgorithms.cpp @@ -602,9 +602,15 @@ void tst_QAlgorithms::test_qUpperBound() void tst_QAlgorithms::test_qBinaryFind_data() { QTest::addColumn<QList<int> >("data"); - QTest::addColumn<int>("resultValue"); + QTest::addColumn<int>("resultValue"); // -42 means not found QTest::newRow("sorted-duplicate") << (QList<int>() << 1 << 2 << 2 << 3) << 2; + QTest::newRow("sorted-end") << (QList<int>() << -5 << -2 << 0 << 8) << 8; + QTest::newRow("sorted-beginning") << (QList<int>() << -5 << -2 << 0 << 8) << -5; + QTest::newRow("sorted-duplicate-beginning") << (QList<int>() << -5 << -5 << -2 << 0 << 8) << -5; + QTest::newRow("empty") << (QList<int>()) << -42; + QTest::newRow("not found 1 ") << (QList<int>() << 1 << 5 << 8 << 65) << -42; + QTest::newRow("not found 2 ") << (QList<int>() << -456 << -5 << 8 << 65) << -42; } void tst_QAlgorithms::test_qBinaryFind() @@ -612,6 +618,15 @@ void tst_QAlgorithms::test_qBinaryFind() QFETCH(QList<int>, data); QFETCH(int, resultValue); + //-42 means not found + if (resultValue == -42) { + QVERIFY(qBinaryFind(data.constBegin(), data.constEnd(), resultValue) == data.end()); + QVERIFY(qBinaryFind(data, resultValue) == data.end()); + QVERIFY(qBinaryFind(data.begin(), data.end(), resultValue) == data.end()); + QVERIFY(qBinaryFind(data.begin(), data.end(), resultValue, qLess<int>()) == data.end()); + return; + } + QCOMPARE(*qBinaryFind(data.constBegin(), data.constEnd(), resultValue), resultValue); QCOMPARE(*qBinaryFind(data.begin(), data.end(), resultValue), resultValue); QCOMPARE(*qBinaryFind(data, resultValue), resultValue); diff --git a/tests/auto/qapplication/tst_qapplication.cpp b/tests/auto/qapplication/tst_qapplication.cpp index 675e559..5888866 100644 --- a/tests/auto/qapplication/tst_qapplication.cpp +++ b/tests/auto/qapplication/tst_qapplication.cpp @@ -129,6 +129,7 @@ private slots: void style(); void allWidgets(); + void topLevelWidgets(); void setAttribute(); @@ -1795,6 +1796,27 @@ void tst_QApplication::allWidgets() QVERIFY(!app.allWidgets().contains(w)); // removal test } +void tst_QApplication::topLevelWidgets() +{ + int argc = 1; + QApplication app(argc, &argv0, QApplication::GuiServer); + QWidget *w = new QWidget; + w->show(); +#ifndef QT_NO_CLIPBOARD + QClipboard *clipboard = QApplication::clipboard(); + QString originalText = clipboard->text(); + clipboard->setText(QString("newText")); +#endif + app.processEvents(); + QVERIFY(QApplication::topLevelWidgets().contains(w)); + QCOMPARE(QApplication::topLevelWidgets().count(), 1); + delete w; + w = 0; + app.processEvents(); + QCOMPARE(QApplication::topLevelWidgets().count(), 0); +} + + void tst_QApplication::setAttribute() { diff --git a/tests/auto/qboxlayout/tst_qboxlayout.cpp b/tests/auto/qboxlayout/tst_qboxlayout.cpp index 7ff444b..8887288 100644 --- a/tests/auto/qboxlayout/tst_qboxlayout.cpp +++ b/tests/auto/qboxlayout/tst_qboxlayout.cpp @@ -211,7 +211,6 @@ void tst_QBoxLayout::setGeometry() QRect newGeom(0, 0, 70, 70); lay2->setGeometry(newGeom); - QApplication::processEvents(); QVERIFY2(newGeom.contains(dial->geometry()), "dial->geometry() should be smaller and within newGeom"); } diff --git a/tests/auto/qcombobox/tst_qcombobox.cpp b/tests/auto/qcombobox/tst_qcombobox.cpp index 0d3469d..51a7ff8 100644 --- a/tests/auto/qcombobox/tst_qcombobox.cpp +++ b/tests/auto/qcombobox/tst_qcombobox.cpp @@ -152,6 +152,8 @@ private slots: void subControlRectsWithOffset(); void task260974_menuItemRectangleForComboBoxPopup(); void removeItem(); + void resetModel(); + void keyBoardNavigationWithMouse(); protected slots: void onEditTextChanged( const QString &newString ); @@ -2416,5 +2418,88 @@ void tst_QComboBox::removeItem() QCOMPARE(cb.count(), 0); } +void tst_QComboBox::resetModel() +{ + class StringListModel : public QStringListModel + { + public: + StringListModel(const QStringList &list) : QStringListModel(list) + { + } + + void reset() + { + QStringListModel::reset(); + } + }; + QComboBox cb; + StringListModel model( QStringList() << "1" << "2"); + QSignalSpy spy(&cb, SIGNAL(currentIndexChanged(int))); + QCOMPARE(spy.count(), 0); + QCOMPARE(cb.currentIndex(), -1); //no selection + + cb.setModel(&model); + + QCOMPARE(spy.count(), 1); + QCOMPARE(cb.currentIndex(), 0); //first item selected + + model.reset(); + QCOMPARE(spy.count(), 2); + QCOMPARE(cb.currentIndex(), -1); //no selection + +} + +void tst_QComboBox::keyBoardNavigationWithMouse() +{ + QComboBox combo; + combo.setEditable(false); + for (int i = 0; i < 80; i++) + combo.addItem( QString::number(i)); + combo.show(); + QApplication::setActiveWindow(&combo); + QTest::qWaitForWindowShown(&combo); + QTRY_COMPARE(QApplication::activeWindow(), static_cast<QWidget *>(&combo)); + + QCOMPARE(combo.currentText(), QLatin1String("0")); + + combo.setFocus(); + QTRY_VERIFY(combo.hasFocus()); + + QTest::keyClick(testWidget->lineEdit(), Qt::Key_Space); + QTest::qWait(30); + QTRY_VERIFY(combo.view()); + QTRY_VERIFY(combo.view()->isVisible()); + QTest::qWait(130); + + QCOMPARE(combo.currentText(), QLatin1String("0")); + + QCursor::setPos(combo.view()->mapToGlobal(combo.view()->rect().center())); + QTest::qWait(200); + +#define GET_SELECTION(SEL) \ + QCOMPARE(combo.view()->selectionModel()->selection().count(), 1); \ + QCOMPARE(combo.view()->selectionModel()->selection().indexes().count(), 1); \ + SEL = combo.view()->selectionModel()->selection().indexes().first().row() + + int selection; + GET_SELECTION(selection); + + //since we moved the mouse is in the middle it should even be around 5; + QVERIFY(selection > 3); + + static const int final = 40; + for (int i = selection + 1; i <= final; i++) + { + QTest::keyClick(combo.view(), Qt::Key_Down); + QTest::qWait(20); + GET_SELECTION(selection); + QCOMPARE(selection, i); + } + + QTest::keyClick(combo.view(), Qt::Key_Enter); + QTRY_COMPARE(combo.currentText(), QString::number(final)); +} + + QTEST_MAIN(tst_QComboBox) #include "tst_qcombobox.moc" diff --git a/tests/auto/qdatetime/tst_qdatetime.cpp b/tests/auto/qdatetime/tst_qdatetime.cpp index 8fb0c91..c53780e 100644 --- a/tests/auto/qdatetime/tst_qdatetime.cpp +++ b/tests/auto/qdatetime/tst_qdatetime.cpp @@ -447,7 +447,14 @@ void tst_QDateTime::toString_enumformat() QCOMPARE(str2, QString("1995-05-20T12:34:56")); QString str3 = dt1.toString(Qt::LocalDate); + qDebug() << str3; QVERIFY(!str3.isEmpty()); + //check for date/time components in any order + QVERIFY(str3.contains("1995")); + //day and month may be in numeric or word form + QVERIFY(str3.contains("12")); + QVERIFY(str3.contains("34")); + QVERIFY(str3.contains("56")); } void tst_QDateTime::addDays() diff --git a/tests/auto/qdockwidget/tst_qdockwidget.cpp b/tests/auto/qdockwidget/tst_qdockwidget.cpp index dc67f36..e62ba8c 100644 --- a/tests/auto/qdockwidget/tst_qdockwidget.cpp +++ b/tests/auto/qdockwidget/tst_qdockwidget.cpp @@ -86,6 +86,7 @@ private slots: void visibilityChanged(); void dockLocationChanged(); void setTitleBarWidget(); + void titleBarDoubleClick(); // task specific tests: void task165177_deleteFocusWidget(); void task169808_setFloating(); @@ -694,6 +695,24 @@ void tst_QDockWidget::setTitleBarWidget() QCOMPARE(w2.isVisible(), false); } +void tst_QDockWidget::titleBarDoubleClick() +{ + QMainWindow win; + QDockWidget dock(&win); + win.show(); + dock.setFloating(true); + + QEvent e(QEvent::NonClientAreaMouseButtonDblClick); + QApplication::sendEvent(&dock, &e); + QVERIFY(dock.isFloating()); + QCOMPARE(win.dockWidgetArea(&dock), Qt::NoDockWidgetArea); + + win.addDockWidget(Qt::TopDockWidgetArea, &dock); + dock.setFloating(true); + QApplication::sendEvent(&dock, &e); + QVERIFY(!dock.isFloating()); + QCOMPARE(win.dockWidgetArea(&dock), Qt::TopDockWidgetArea); +} void tst_QDockWidget::task165177_deleteFocusWidget() { diff --git a/tests/auto/qfontmetrics/tst_qfontmetrics.cpp b/tests/auto/qfontmetrics/tst_qfontmetrics.cpp index 6b2f0fe..e80f8e0 100644 --- a/tests/auto/qfontmetrics/tst_qfontmetrics.cpp +++ b/tests/auto/qfontmetrics/tst_qfontmetrics.cpp @@ -100,6 +100,20 @@ void tst_QFontMetrics::same() QFontMetrics fm(font); const QString text = QLatin1String("Some stupid STRING"); QCOMPARE(fm.size(0, text), fm.size(0, text)) ; + + { + QImage image; + QFontMetrics fm2(font, &image); + QString text2 = QLatin1String("Foo Foo"); + QCOMPARE(fm2.size(0, text2), fm2.size(0, text2)); //used to crash + } + + { + QImage image; + QFontMetricsF fm3(font, &image); + QString text2 = QLatin1String("Foo Foo"); + QCOMPARE(fm3.size(0, text2), fm3.size(0, text2)); //used to crash + } } diff --git a/tests/auto/qgraphicsanchorlayout/tst_qgraphicsanchorlayout.cpp b/tests/auto/qgraphicsanchorlayout/tst_qgraphicsanchorlayout.cpp index 7b87969..c8a9fac 100644 --- a/tests/auto/qgraphicsanchorlayout/tst_qgraphicsanchorlayout.cpp +++ b/tests/auto/qgraphicsanchorlayout/tst_qgraphicsanchorlayout.cpp @@ -45,6 +45,7 @@ #include <QtGui/qgraphicswidget.h> #include <QtGui/qgraphicsproxywidget.h> #include <QtGui/qgraphicsview.h> +#include <QtGui/qwindowsstyle.h> class tst_QGraphicsAnchorLayout : public QObject { Q_OBJECT; @@ -72,6 +73,7 @@ private slots: void proportionalPreferred(); void example(); void setSpacing(); + void styleDefaults(); void hardComplexS60(); void stability(); void delete_anchor(); @@ -82,6 +84,8 @@ private slots: void expandingParallel(); void floatConflict(); void infiniteMaxSizes(); + void simplifiableUnfeasible(); + void simplificationVsOrder(); }; class RectWidget : public QGraphicsWidget @@ -1102,6 +1106,166 @@ void tst_QGraphicsAnchorLayout::setSpacing() delete view; } +class CustomLayoutStyle : public QWindowsStyle +{ + Q_OBJECT +public: + CustomLayoutStyle() : QWindowsStyle() + { + hspacing = 5; + vspacing = 10; + } + + virtual int pixelMetric(PixelMetric metric, const QStyleOption * option = 0, + const QWidget * widget = 0 ) const; + + int hspacing; + int vspacing; + +protected slots: + int layoutSpacingImplementation(QSizePolicy::ControlType control1, + QSizePolicy::ControlType control2, + Qt::Orientation orientation, + const QStyleOption *option = 0, + const QWidget *widget = 0) const; + +}; + +#define CT1(c) CT2(c, c) +#define CT2(c1, c2) ((uint)c1 << 16) | (uint)c2 + +int CustomLayoutStyle::layoutSpacingImplementation(QSizePolicy::ControlType control1, + QSizePolicy::ControlType control2, + Qt::Orientation orientation, + const QStyleOption * /*option = 0*/, + const QWidget * /*widget = 0*/) const +{ + if (orientation == Qt::Horizontal) { + switch (CT2(control1, control2)) { + case CT1(QSizePolicy::PushButton): + return 2; + break; + } + return 5; + } else { + switch (CT2(control1, control2)) { + case CT1(QSizePolicy::RadioButton): + return 2; + break; + + } + return 10; + } +} + +int CustomLayoutStyle::pixelMetric(PixelMetric metric, const QStyleOption * option /*= 0*/, + const QWidget * widget /*= 0*/ ) const +{ + switch (metric) { + case PM_LayoutLeftMargin: + return 0; + break; + case PM_LayoutTopMargin: + return 3; + break; + case PM_LayoutRightMargin: + return 6; + break; + case PM_LayoutBottomMargin: + return 9; + break; + case PM_LayoutHorizontalSpacing: + return hspacing; + case PM_LayoutVerticalSpacing: + return vspacing; + break; + default: + break; + } + return QWindowsStyle::pixelMetric(metric, option, widget); +} + +void tst_QGraphicsAnchorLayout::styleDefaults() +{ + QSizeF min (10, 10); + QSizeF pref(20, 20); + QSizeF max (50, 50); + + /* + create this layout, where a,b have controlType QSizePolicy::RadioButton + c,d have controlType QSizePolicy::PushButton: + +-------+ + |a | + | b | + | c | + | d| + +-------+ + */ + QGraphicsScene scene; + QGraphicsWidget *a = createItem(min, pref, max); + QSizePolicy spRadioButton = a->sizePolicy(); + spRadioButton.setControlType(QSizePolicy::RadioButton); + a->setSizePolicy(spRadioButton); + + QGraphicsWidget *b = createItem(min, pref, max); + b->setSizePolicy(spRadioButton); + + QGraphicsWidget *c = createItem(min, pref, max); + QSizePolicy spPushButton = c->sizePolicy(); + spPushButton.setControlType(QSizePolicy::PushButton); + c->setSizePolicy(spPushButton); + + QGraphicsWidget *d = createItem(min, pref, max); + d->setSizePolicy(spPushButton); + + QGraphicsWidget *window = new QGraphicsWidget(0, Qt::Window); + + // Test layoutSpacingImplementation + CustomLayoutStyle *style = new CustomLayoutStyle; + style->hspacing = -1; + style->vspacing = -1; + window->setStyle(style); + QGraphicsAnchorLayout *l = new QGraphicsAnchorLayout; + + l->addCornerAnchors(l, Qt::TopLeftCorner, a, Qt::TopLeftCorner); + l->addCornerAnchors(a, Qt::BottomRightCorner, b, Qt::TopLeftCorner); + l->addCornerAnchors(b, Qt::BottomRightCorner, c, Qt::TopLeftCorner); + l->addCornerAnchors(c, Qt::BottomRightCorner, d, Qt::TopLeftCorner); + l->addCornerAnchors(d, Qt::BottomRightCorner, l, Qt::BottomRightCorner); + + window->setLayout(l); + + scene.addItem(window); + + window->show(); + QGraphicsView *view = new QGraphicsView(&scene); + view->resize(200, 200); + view->show(); + + window->adjustSize(); + QCOMPARE(a->geometry(), QRectF(0, 3, 20, 20)); //radio + QCOMPARE(b->geometry(), QRectF(25, 25, 20, 20)); //radio + QCOMPARE(c->geometry(), QRectF(50, 55, 20, 20)); //push + QCOMPARE(d->geometry(), QRectF(72, 85, 20, 20)); //push + QCOMPARE(l->geometry(), QRectF(0, 0, 98, 114)); + + + // Test pixelMetric(PM_Layout{Horizontal|Vertical}Spacing + window->setStyle(0); + + style->hspacing = 1; + style->vspacing = 2; + + window->setStyle(style); + window->adjustSize(); + QCOMPARE(a->geometry(), QRectF(0, 3, 20, 20)); + QCOMPARE(b->geometry(), QRectF(21, 25, 20, 20)); + QCOMPARE(c->geometry(), QRectF(42, 47, 20, 20)); + QCOMPARE(d->geometry(), QRectF(63, 69, 20, 20)); + QCOMPARE(l->geometry(), QRectF(0, 0, 89, 98)); +} + + /*! Taken from "hard" complex case, found at https://cwiki.nokia.com/S60QTUI/AnchorLayoutComplexCases @@ -1755,5 +1919,100 @@ void tst_QGraphicsAnchorLayout::infiniteMaxSizes() QCOMPARE(d->geometry(), QRectF(QWIDGETSIZE_MAX - 50, 0, 50, 10)); } +void tst_QGraphicsAnchorLayout::simplifiableUnfeasible() +{ + QGraphicsWidget *a = createItem(QSizeF(70.0, 100.0), + QSizeF(100.0, 100.0), + QSizeF(100.0, 100.0), "A"); + + QGraphicsWidget *b = createItem(QSizeF(110.0, 100.0), + QSizeF(150.0, 100.0), + QSizeF(190.0, 100.0), "B"); + + QGraphicsAnchorLayout *l = new QGraphicsAnchorLayout; + l->setContentsMargins(0, 0, 0, 0); + l->setSpacing(0); + + l->addAnchor(l, Qt::AnchorTop, a, Qt::AnchorTop); + l->addAnchor(a, Qt::AnchorBottom, b, Qt::AnchorTop); + l->addAnchor(b, Qt::AnchorBottom, l, Qt::AnchorBottom); + + l->addAnchors(l, a, Qt::Horizontal); + l->addAnchor(l, Qt::AnchorLeft, b, Qt::AnchorLeft); + l->addAnchor(b, Qt::AnchorRight, a, Qt::AnchorRight); + + QCOMPARE(l->count(), 2); + + QGraphicsWidget p; + p.setLayout(l); + + l->invalidate(); + QVERIFY(layoutHasConflict(l)); + if (hasSimplification) + QVERIFY(!usedSimplex(l, Qt::Horizontal)); + + // Now we make it valid again + b->setMinimumWidth(100); + + l->invalidate(); + QVERIFY(!layoutHasConflict(l)); + if (hasSimplification) + QVERIFY(!usedSimplex(l, Qt::Horizontal)); + + // And make it invalid again + a->setPreferredWidth(70); + a->setMaximumWidth(70); + + l->invalidate(); + QVERIFY(layoutHasConflict(l)); + if (hasSimplification) + QVERIFY(!usedSimplex(l, Qt::Horizontal)); +} + +/* + Test whether the anchor direction can prevent it from + being simplificated +*/ +void tst_QGraphicsAnchorLayout::simplificationVsOrder() +{ + QSizeF min(10, 10); + QSizeF pref(20, 10); + QSizeF max(50, 10); + + QGraphicsWidget *a = createItem(min, pref, max); + QGraphicsWidget *b = createItem(min, pref, max); + QGraphicsWidget *c = createItem(min, pref, max); + + QGraphicsAnchorLayout *l = new QGraphicsAnchorLayout; + + // Bulk anchors + l->addAnchor(l, Qt::AnchorLeft, a, Qt::AnchorLeft); + l->addAnchor(a, Qt::AnchorRight, b, Qt::AnchorLeft); + l->addAnchor(b, Qt::AnchorLeft, c, Qt::AnchorLeft); + l->addAnchor(c, Qt::AnchorRight, l, Qt::AnchorRight); + + // Problematic anchor, direction b->c + QGraphicsAnchor *anchor = l->addAnchor(b, Qt::AnchorRight, c, Qt::AnchorRight); + anchor->setSpacing(5); + + l->effectiveSizeHint(Qt::MinimumSize); + if (hasSimplification) { + QCOMPARE(usedSimplex(l, Qt::Horizontal), false); + QCOMPARE(usedSimplex(l, Qt::Vertical), false); + } + + // Problematic anchor, direction c->b + delete anchor; + anchor = l->addAnchor(c, Qt::AnchorRight, b, Qt::AnchorRight); + anchor->setSpacing(5); + + l->effectiveSizeHint(Qt::MinimumSize); + if (hasSimplification) { + QEXPECT_FAIL("", "Sequential anchors cannot handle children of opposite directions", Continue); + QCOMPARE(usedSimplex(l, Qt::Horizontal), false); + QCOMPARE(usedSimplex(l, Qt::Vertical), false); + } +} + QTEST_MAIN(tst_QGraphicsAnchorLayout) #include "tst_qgraphicsanchorlayout.moc" diff --git a/tests/auto/qgraphicseffect/tst_qgraphicseffect.cpp b/tests/auto/qgraphicseffect/tst_qgraphicseffect.cpp index 0201bc4..b40cf43 100644 --- a/tests/auto/qgraphicseffect/tst_qgraphicseffect.cpp +++ b/tests/auto/qgraphicseffect/tst_qgraphicseffect.cpp @@ -379,7 +379,8 @@ void tst_QGraphicsEffect::grayscale() item->setPen(Qt::NoPen); item->setBrush(QColor(122, 193, 66)); // Qt light green - QGraphicsGrayscaleEffect *effect = new QGraphicsGrayscaleEffect; + QGraphicsColorizeEffect *effect = new QGraphicsColorizeEffect; + effect->setColor(Qt::black); item->setGraphicsEffect(effect); QPainter painter; diff --git a/tests/auto/qgraphicseffectsource/tst_qgraphicseffectsource.cpp b/tests/auto/qgraphicseffectsource/tst_qgraphicseffectsource.cpp index 855950b..fbeb425 100644 --- a/tests/auto/qgraphicseffectsource/tst_qgraphicseffectsource.cpp +++ b/tests/auto/qgraphicseffectsource/tst_qgraphicseffectsource.cpp @@ -166,6 +166,9 @@ private slots: void deviceRect(); void pixmap(); + void pixmapPadding_data(); + void pixmapPadding(); + private: QGraphicsView *view; QGraphicsScene *scene; @@ -318,6 +321,102 @@ void tst_QGraphicsEffectSource::pixmap() QCOMPARE(pixmap1, pixmap2); } +class PaddingEffect : public QGraphicsEffect +{ +public: + PaddingEffect(QObject *parent) : QGraphicsEffect(parent) + { + } + + QRectF boundingRectFor(const QRectF &src) const { + return src.adjusted(-10, -10, 10, 10); + } + + void draw(QPainter *, QGraphicsEffectSource *source) { + pix = source->pixmap(coordinateMode, &offset, padMode); + } + + QPixmap pix; + QPoint offset; + QGraphicsEffectSource::PixmapPadMode padMode; + Qt::CoordinateSystem coordinateMode; +}; + +void tst_QGraphicsEffectSource::pixmapPadding_data() +{ + QTest::addColumn<int>("coordinateMode"); + QTest::addColumn<int>("padMode"); + QTest::addColumn<QSize>("size"); + QTest::addColumn<QPoint>("offset"); + QTest::addColumn<uint>("ulPixel"); + + QTest::newRow("log,nopad") << int(Qt::LogicalCoordinates) + << int(QGraphicsEffectSource::NoExpandPadMode) + << QSize(10, 10) << QPoint(0, 0) + << 0xffff0000u; + + QTest::newRow("log,transparent") << int(Qt::LogicalCoordinates) + << int(QGraphicsEffectSource::ExpandToTransparentBorderPadMode) + << QSize(12, 12) << QPoint(-1, -1) + << 0x00000000u; + + QTest::newRow("log,effectrect") << int(Qt::LogicalCoordinates) + << int(QGraphicsEffectSource::ExpandToEffectRectPadMode) + << QSize(30, 30) << QPoint(-10, -10) + << 0x00000000u; + + QTest::newRow("dev,nopad") << int(Qt::DeviceCoordinates) + << int(QGraphicsEffectSource::NoExpandPadMode) + << QSize(20, 20) << QPoint(40, 40) + << 0xffff0000u; + + QTest::newRow("dev,transparent") << int(Qt::DeviceCoordinates) + << int(QGraphicsEffectSource::ExpandToTransparentBorderPadMode) + << QSize(22, 22) << QPoint(39, 39) + << 0x00000000u; + + QTest::newRow("dev,effectrect") << int(Qt::DeviceCoordinates) + << int(QGraphicsEffectSource::ExpandToEffectRectPadMode) + << QSize(40, 40) << QPoint(30, 30) + << 0x00000000u; + +} + +void tst_QGraphicsEffectSource::pixmapPadding() +{ + QPixmap dummyTarget(100, 100); + QPainter dummyPainter(&dummyTarget); + dummyPainter.translate(40, 40); + dummyPainter.scale(2, 2); + + QPixmap pm(10, 10); + pm.fill(Qt::red); + + QGraphicsScene *scene = new QGraphicsScene(); + PaddingEffect *effect = new PaddingEffect(scene); + QGraphicsPixmapItem *pmItem = new QGraphicsPixmapItem(pm); + scene->addItem(pmItem); + pmItem->setGraphicsEffect(effect); + + QFETCH(int, coordinateMode); + QFETCH(int, padMode); + QFETCH(QPoint, offset); + QFETCH(QSize, size); + QFETCH(uint, ulPixel); + + effect->padMode = (QGraphicsEffectSource::PixmapPadMode) padMode; + effect->coordinateMode = (Qt::CoordinateSystem) coordinateMode; + + scene->render(&dummyPainter, scene->itemsBoundingRect(), scene->itemsBoundingRect()); + + QCOMPARE(effect->pix.size(), size); + QCOMPARE(effect->offset, offset); + QCOMPARE(effect->pix.toImage().pixel(0, 0), ulPixel); + + // ### Fix corruption in scene destruction, then enable... + // delete scene; +} + QTEST_MAIN(tst_QGraphicsEffectSource) #include "tst_qgraphicseffectsource.moc" diff --git a/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp b/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp index dcad8e1..684ad4f 100644 --- a/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp +++ b/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp @@ -372,6 +372,7 @@ private slots: void itemUsesExtendedStyleOption(); void itemSendsGeometryChanges(); void moveItem(); + void moveLineItem(); void sorting_data(); void sorting(); void itemHasNoContents(); @@ -390,6 +391,7 @@ private slots: void moveWhileDeleting(); void ensureDirtySceneTransform(); void focusScope(); + void focusScope2(); void stackBefore(); void sceneModality(); void panelModality(); @@ -3109,7 +3111,7 @@ void tst_QGraphicsItem::boundingRects() void tst_QGraphicsItem::boundingRects2() { QGraphicsPixmapItem pixmap(QPixmap::fromImage(QImage(100, 100, QImage::Format_ARGB32_Premultiplied))); - QCOMPARE(pixmap.boundingRect(), QRectF(-0.5, -0.5, 101, 101)); + QCOMPARE(pixmap.boundingRect(), QRectF(0, 0, 100, 100)); QGraphicsLineItem line(0, 0, 100, 0); line.setPen(QPen(Qt::black, 1)); @@ -4039,7 +4041,7 @@ void tst_QGraphicsItem::defaultItemTest_QGraphicsPixmapItem() item.setOffset(QPointF(-10, -10)); QCOMPARE(item.offset(), QPointF(-10, -10)); - QCOMPARE(item.boundingRect(), QRectF(-10.5, -10.5, 301, 201)); + QCOMPARE(item.boundingRect(), QRectF(-10, -10, 300, 200)); } void tst_QGraphicsItem::defaultItemTest_QGraphicsTextItem() @@ -7438,6 +7440,39 @@ void tst_QGraphicsItem::moveItem() COMPARE_REGIONS(view.paintedRegion, expectedParentRegion); } +void tst_QGraphicsItem::moveLineItem() +{ + QGraphicsScene scene; + scene.setSceneRect(0, 0, 200, 200); + QGraphicsLineItem *item = new QGraphicsLineItem(0, 0, 100, 0); + item->setPos(50, 50); + scene.addItem(item); + + MyGraphicsView view(&scene); + view.show(); +#ifdef Q_WS_X11 + qt_x11_wait_for_window_manager(&view); +#endif + QTest::qWait(200); + view.reset(); + + const QRect itemDeviceBoundingRect = item->deviceTransform(view.viewportTransform()) + .mapRect(item->boundingRect()).toRect(); + QRegion expectedRegion = itemDeviceBoundingRect.adjusted(-2, -2, 2, 2); // antialiasing + + // Make sure the calculated region is correct. + item->update(); + QTest::qWait(10); + QTRY_COMPARE(view.paintedRegion, expectedRegion); + view.reset(); + + // Old position: (50, 50) + item->setPos(50, 100); + expectedRegion += expectedRegion.translated(0, 50); + QTest::qWait(10); + QCOMPARE(view.paintedRegion, expectedRegion); +} + void tst_QGraphicsItem::sorting_data() { QTest::addColumn<int>("index"); @@ -8431,7 +8466,7 @@ void tst_QGraphicsItem::focusScope() QVERIFY(!scope2->focusScopeItem()); scope3->setParentItem(scope2); QCOMPARE(scope2->focusScopeItem(), (QGraphicsItem *)scope3); - QCOMPARE(scope2->focusItem(), (QGraphicsItem *)scope2); + QCOMPARE(scope2->focusItem(), (QGraphicsItem *)scope3); QGraphicsRectItem *scope1 = new QGraphicsRectItem; scope1->setData(0, "scope1"); @@ -8440,9 +8475,9 @@ void tst_QGraphicsItem::focusScope() QVERIFY(!scope1->focusScopeItem()); scope2->setParentItem(scope1); - QCOMPARE(scope1->focusItem(), (QGraphicsItem *)scope1); - QCOMPARE(scope2->focusItem(), (QGraphicsItem *)0); - QCOMPARE(scope3->focusItem(), (QGraphicsItem *)0); + QCOMPARE(scope1->focusItem(), (QGraphicsItem *)scope3); + QCOMPARE(scope2->focusItem(), (QGraphicsItem *)scope3); + QCOMPARE(scope3->focusItem(), (QGraphicsItem *)scope3); QCOMPARE(scope1->focusScopeItem(), (QGraphicsItem *)scope2); QCOMPARE(scope2->focusScopeItem(), (QGraphicsItem *)scope3); QCOMPARE(scope3->focusScopeItem(), (QGraphicsItem *)0); @@ -8493,11 +8528,13 @@ void tst_QGraphicsItem::focusScope() rect5->setFocus(); rect5->setParentItem(rect4); QCOMPARE(scope3->focusScopeItem(), (QGraphicsItem *)rect5); - QVERIFY(!rect5->hasFocus()); + QVERIFY(rect5->hasFocus()); rect4->setParentItem(0); + QVERIFY(rect5->hasFocus()); QCOMPARE(scope3->focusScopeItem(), (QGraphicsItem *)0); - QVERIFY(scope3->hasFocus()); + QCOMPARE(scope3->focusItem(), (QGraphicsItem *)0); + QVERIFY(!scope3->hasFocus()); QGraphicsRectItem *rectA = new QGraphicsRectItem; QGraphicsRectItem *scopeA = new QGraphicsRectItem(rectA); @@ -8508,7 +8545,7 @@ void tst_QGraphicsItem::focusScope() scopeB->setFocus(); scene.addItem(rectA); - QVERIFY(!rect5->hasFocus()); + QVERIFY(rect5->hasFocus()); QVERIFY(!scopeB->hasFocus()); scopeA->setFocus(); @@ -8516,6 +8553,76 @@ void tst_QGraphicsItem::focusScope() QCOMPARE(scopeB->focusItem(), (QGraphicsItem *)scopeB); } +void tst_QGraphicsItem::focusScope2() +{ + QGraphicsRectItem *child1 = new QGraphicsRectItem; + child1->setFlags(QGraphicsItem::ItemIsFocusable); + child1->setFocus(); + QCOMPARE(child1->focusItem(), (QGraphicsItem *)child1); + + QGraphicsRectItem *child2 = new QGraphicsRectItem; + child2->setFlags(QGraphicsItem::ItemIsFocusable); + + QGraphicsRectItem *rootFocusScope = new QGraphicsRectItem; + rootFocusScope->setFlags(QGraphicsItem::ItemIsFocusable | QGraphicsItem::ItemIsFocusScope); + rootFocusScope->setFocus(); + QCOMPARE(rootFocusScope->focusItem(), (QGraphicsItem *)rootFocusScope); + + child1->setParentItem(rootFocusScope); + child2->setParentItem(rootFocusScope); + + QCOMPARE(rootFocusScope->focusScopeItem(), (QGraphicsItem *)child1); + QCOMPARE(rootFocusScope->focusItem(), (QGraphicsItem *)child1); + + QGraphicsRectItem *siblingChild1 = new QGraphicsRectItem; + siblingChild1->setFlags(QGraphicsItem::ItemIsFocusable); + siblingChild1->setFocus(); + + QGraphicsRectItem *siblingChild2 = new QGraphicsRectItem; + siblingChild2->setFlags(QGraphicsItem::ItemIsFocusable); + + QGraphicsRectItem *siblingFocusScope = new QGraphicsRectItem; + siblingFocusScope->setFlags(QGraphicsItem::ItemIsFocusable | QGraphicsItem::ItemIsFocusScope); + + siblingChild1->setParentItem(siblingFocusScope); + siblingChild2->setParentItem(siblingFocusScope); + + QCOMPARE(siblingFocusScope->focusScopeItem(), (QGraphicsItem *)siblingChild1); + QCOMPARE(siblingFocusScope->focusItem(), (QGraphicsItem *)0); + + QGraphicsItem *root = new QGraphicsRectItem; + rootFocusScope->setParentItem(root); + siblingFocusScope->setParentItem(root); + + QCOMPARE(root->focusItem(), (QGraphicsItem *)child1); + + QGraphicsScene scene; + scene.addItem(root); + + QEvent activate(QEvent::WindowActivate); + qApp->sendEvent(&scene, &activate); + scene.setFocus(); + + QCOMPARE(scene.focusItem(), (QGraphicsItem *)child1); + + // You cannot set focus on a descendant of a focus scope directly; + // this will only change the scope's focus scope item pointer. If + // you want to give true input focus, you must set it directly on + // the scope itself + siblingChild2->setFocus(); + QVERIFY(!siblingChild2->hasFocus()); + QVERIFY(!siblingChild2->focusItem()); + QCOMPARE(siblingFocusScope->focusScopeItem(), (QGraphicsItem *)siblingChild2); + QCOMPARE(siblingFocusScope->focusItem(), (QGraphicsItem *)0); + + // Set focus on the scope; focus is forwarded to the focus scope item. + siblingFocusScope->setFocus(); + QVERIFY(siblingChild2->hasFocus()); + QVERIFY(siblingChild2->focusItem()); + QCOMPARE(siblingFocusScope->focusScopeItem(), (QGraphicsItem *)siblingChild2); + QCOMPARE(siblingFocusScope->focusItem(), (QGraphicsItem *)siblingChild2); +} + void tst_QGraphicsItem::stackBefore() { QGraphicsRectItem parent; @@ -8535,24 +8642,24 @@ void tst_QGraphicsItem::stackBefore() QCOMPARE(parent.childItems(), (QList<QGraphicsItem *>() << child1 << child3 << child4 << child2)); // Move child2 before child1 - child2->stackBefore(child1); + child2->stackBefore(child1); // 2134 QCOMPARE(parent.childItems(), (QList<QGraphicsItem *>() << child2 << child1 << child3 << child4)); - child2->stackBefore(child2); + child2->stackBefore(child2); // 2134 QCOMPARE(parent.childItems(), (QList<QGraphicsItem *>() << child2 << child1 << child3 << child4)); - child1->setZValue(1); + child1->setZValue(1); // 2341 QCOMPARE(parent.childItems(), (QList<QGraphicsItem *>() << child2 << child3 << child4 << child1)); - child1->stackBefore(child2); // no effect + child1->stackBefore(child2); // 2341 QCOMPARE(parent.childItems(), (QList<QGraphicsItem *>() << child2 << child3 << child4 << child1)); - child1->setZValue(0); - QCOMPARE(parent.childItems(), (QList<QGraphicsItem *>() << child2 << child1 << child3 << child4)); - child4->stackBefore(child1); - QCOMPARE(parent.childItems(), (QList<QGraphicsItem *>() << child2 << child4 << child1 << child3)); - child4->setZValue(1); - QCOMPARE(parent.childItems(), (QList<QGraphicsItem *>() << child2 << child1 << child3 << child4)); - child3->stackBefore(child1); - QCOMPARE(parent.childItems(), (QList<QGraphicsItem *>() << child2 << child3 << child1 << child4)); - child4->setZValue(0); - QCOMPARE(parent.childItems(), (QList<QGraphicsItem *>() << child2 << child4 << child3 << child1)); + child1->setZValue(0); // 1234 + QCOMPARE(parent.childItems(), (QList<QGraphicsItem *>() << child1 << child2 << child3 << child4)); + child4->stackBefore(child1); // 4123 + QCOMPARE(parent.childItems(), (QList<QGraphicsItem *>() << child4 << child1 << child2 << child3)); + child4->setZValue(1); // 1234 (4123) + QCOMPARE(parent.childItems(), (QList<QGraphicsItem *>() << child1 << child2 << child3 << child4)); + child3->stackBefore(child1); // 3124 (4312) + QCOMPARE(parent.childItems(), (QList<QGraphicsItem *>() << child3 << child1 << child2 << child4)); + child4->setZValue(0); // 4312 + QCOMPARE(parent.childItems(), (QList<QGraphicsItem *>() << child4 << child3 << child1 << child2)); // Make them all toplevels child1->setParentItem(0); @@ -8574,24 +8681,24 @@ void tst_QGraphicsItem::stackBefore() QCOMPARE(scene.items(QPointF(2, 2), Qt::IntersectsItemBoundingRect, Qt::AscendingOrder), (QList<QGraphicsItem *>() << child1 << child3 << child4 << child2)); // Move child2 before child1 - child2->stackBefore(child1); + child2->stackBefore(child1); // 2134 QCOMPARE(scene.items(QPointF(2, 2), Qt::IntersectsItemBoundingRect, Qt::AscendingOrder), (QList<QGraphicsItem *>() << child2 << child1 << child3 << child4)); - child2->stackBefore(child2); + child2->stackBefore(child2); // 2134 QCOMPARE(scene.items(QPointF(2, 2), Qt::IntersectsItemBoundingRect, Qt::AscendingOrder), (QList<QGraphicsItem *>() << child2 << child1 << child3 << child4)); - child1->setZValue(1); + child1->setZValue(1); // 2341 QCOMPARE(scene.items(QPointF(2, 2), Qt::IntersectsItemBoundingRect, Qt::AscendingOrder), (QList<QGraphicsItem *>() << child2 << child3 << child4 << child1)); - child1->stackBefore(child2); // no effect + child1->stackBefore(child2); // 2341 QCOMPARE(scene.items(QPointF(2, 2), Qt::IntersectsItemBoundingRect, Qt::AscendingOrder), (QList<QGraphicsItem *>() << child2 << child3 << child4 << child1)); - child1->setZValue(0); - QCOMPARE(scene.items(QPointF(2, 2), Qt::IntersectsItemBoundingRect, Qt::AscendingOrder), (QList<QGraphicsItem *>() << child2 << child1 << child3 << child4)); - child4->stackBefore(child1); - QCOMPARE(scene.items(QPointF(2, 2), Qt::IntersectsItemBoundingRect, Qt::AscendingOrder), (QList<QGraphicsItem *>() << child2 << child4 << child1 << child3)); - child4->setZValue(1); - QCOMPARE(scene.items(QPointF(2, 2), Qt::IntersectsItemBoundingRect, Qt::AscendingOrder), (QList<QGraphicsItem *>() << child2 << child1 << child3 << child4)); - child3->stackBefore(child1); - QCOMPARE(scene.items(QPointF(2, 2), Qt::IntersectsItemBoundingRect, Qt::AscendingOrder), (QList<QGraphicsItem *>() << child2 << child3 << child1 << child4)); - child4->setZValue(0); - QCOMPARE(scene.items(QPointF(2, 2), Qt::IntersectsItemBoundingRect, Qt::AscendingOrder), (QList<QGraphicsItem *>() << child2 << child4 << child3 << child1)); + child1->setZValue(0); // 1234 + QCOMPARE(scene.items(QPointF(2, 2), Qt::IntersectsItemBoundingRect, Qt::AscendingOrder), (QList<QGraphicsItem *>() << child1 << child2 << child3 << child4)); + child4->stackBefore(child1); // 4123 + QCOMPARE(scene.items(QPointF(2, 2), Qt::IntersectsItemBoundingRect, Qt::AscendingOrder), (QList<QGraphicsItem *>() << child4 << child1 << child2 << child3)); + child4->setZValue(1); // 1234 (4123) + QCOMPARE(scene.items(QPointF(2, 2), Qt::IntersectsItemBoundingRect, Qt::AscendingOrder), (QList<QGraphicsItem *>() << child1 << child2 << child3 << child4)); + child3->stackBefore(child1); // 3124 (4312) + QCOMPARE(scene.items(QPointF(2, 2), Qt::IntersectsItemBoundingRect, Qt::AscendingOrder), (QList<QGraphicsItem *>() << child3 << child1 << child2 << child4)); + child4->setZValue(0); // 4312 + QCOMPARE(scene.items(QPointF(2, 2), Qt::IntersectsItemBoundingRect, Qt::AscendingOrder), (QList<QGraphicsItem *>() << child4 << child3 << child1 << child2)); } void tst_QGraphicsItem::QTBUG_4233_updateCachedWithSceneRect() diff --git a/tests/auto/qgraphicsobject/tst_qgraphicsobject.cpp b/tests/auto/qgraphicsobject/tst_qgraphicsobject.cpp index a9fd55a..194665d 100644 --- a/tests/auto/qgraphicsobject/tst_qgraphicsobject.cpp +++ b/tests/auto/qgraphicsobject/tst_qgraphicsobject.cpp @@ -46,6 +46,7 @@ #include <qgraphicssceneevent.h> #include <qgraphicsview.h> #include <qstyleoption.h> +#include <private/qobject_p.h> #include "../../shared/util.h" class tst_QGraphicsObject : public QObject { @@ -65,6 +66,7 @@ private slots: void opacity(); void enabled(); void visible(); + void deleted(); }; @@ -249,6 +251,46 @@ void tst_QGraphicsObject::visible() QVERIFY(object.property("visible") == true); } +class DeleteTester : public QGraphicsObject +{ +public: + DeleteTester(bool *w, bool *pw, QGraphicsItem *parent = 0) + : QGraphicsObject(parent), wasDeleted(w), parentWasDeleted(pw) + { } + + ~DeleteTester() + { + *wasDeleted = QObjectPrivate::get(this)->wasDeleted; + if (QGraphicsItem *p = parentItem()) { + if (QGraphicsObject *o = p->toGraphicsObject()) + *parentWasDeleted = QObjectPrivate::get(o)->wasDeleted; + } + } + + void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget * = 0) + { } + QRectF boundingRect() const + { return QRectF(); } + + bool *wasDeleted; + bool *parentWasDeleted; +}; + +void tst_QGraphicsObject::deleted() +{ + bool item1_parentWasDeleted = false; + bool item1_wasDeleted = false; + bool item2_parentWasDeleted = false; + bool item2_wasDeleted = false; + DeleteTester *item1 = new DeleteTester(&item1_wasDeleted, &item1_parentWasDeleted); + DeleteTester *item2 = new DeleteTester(&item2_wasDeleted, &item2_parentWasDeleted, item1); + delete item1; + + QVERIFY(!item1_wasDeleted); // destructor not called yet + QVERIFY(!item1_parentWasDeleted); // no parent + QVERIFY(!item2_wasDeleted); // destructor not called yet + QVERIFY(item2_parentWasDeleted); +} QTEST_MAIN(tst_QGraphicsObject) #include "tst_qgraphicsobject.moc" diff --git a/tests/auto/qgraphicspixmapitem/tst_qgraphicspixmapitem.cpp b/tests/auto/qgraphicspixmapitem/tst_qgraphicspixmapitem.cpp index e25aef0..5a62dc0 100644 --- a/tests/auto/qgraphicspixmapitem/tst_qgraphicspixmapitem.cpp +++ b/tests/auto/qgraphicspixmapitem/tst_qgraphicspixmapitem.cpp @@ -165,7 +165,7 @@ void tst_QGraphicsPixmapItem::boundingRect_data() QTest::addColumn<QPixmap>("pixmap"); QTest::addColumn<QRectF>("boundingRect"); QTest::newRow("null") << QPixmap() << QRectF(); - QTest::newRow("10x10") << QPixmap(10, 10) << QRectF(-0.5, -0.5, 11, 11); + QTest::newRow("10x10") << QPixmap(10, 10) << QRectF(0, 0, 10, 10); } // public QRectF boundingRect() const diff --git a/tests/auto/qgraphicssceneindex/tst_qgraphicssceneindex.cpp b/tests/auto/qgraphicssceneindex/tst_qgraphicssceneindex.cpp index 1109e5e..7d98748 100644 --- a/tests/auto/qgraphicssceneindex/tst_qgraphicssceneindex.cpp +++ b/tests/auto/qgraphicssceneindex/tst_qgraphicssceneindex.cpp @@ -45,6 +45,8 @@ #include <private/qgraphicsscenebsptreeindex_p.h> #include <private/qgraphicssceneindex_p.h> #include <private/qgraphicsscenelinearindex_p.h> +#include "../../shared/util.h" + //TESTED_CLASS= //TESTED_FILES= @@ -66,6 +68,7 @@ private slots: void movingItems(); void connectedToSceneRectChanged(); void items(); + void removeItems(); void clear(); private: @@ -268,6 +271,63 @@ void tst_QGraphicsSceneIndex::items() QCOMPARE(scene.items().size(), 3); } +class RectWidget : public QGraphicsWidget +{ + Q_OBJECT +public: + RectWidget(QGraphicsItem *parent = 0) : QGraphicsWidget(parent) + { + } + + void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) + { + painter->setBrush(brush); + painter->drawRect(boundingRect()); + } +public: + QBrush brush; +}; + +void tst_QGraphicsSceneIndex::removeItems() +{ + QGraphicsScene scene; + + RectWidget *parent = new RectWidget; + parent->brush = QBrush(QColor(Qt::magenta)); + parent->setGeometry(250, 250, 400, 400); + + RectWidget *widget = new RectWidget(parent); + widget->brush = QBrush(QColor(Qt::blue)); + widget->setGeometry(10, 10, 200, 200); + + RectWidget *widgetChild1 = new RectWidget(widget); + widgetChild1->brush = QBrush(QColor(Qt::green)); + widgetChild1->setGeometry(20, 20, 100, 100); + + RectWidget *widgetChild2 = new RectWidget(widgetChild1); + widgetChild2->brush = QBrush(QColor(Qt::yellow)); + widgetChild2->setGeometry(25, 25, 50, 50); + + scene.addItem(parent); + + QGraphicsView view(&scene); + view.resize(600, 600); + view.show(); + QApplication::setActiveWindow(&view); + QTest::qWaitForWindowShown(&view); + + QApplication::processEvents(); + + scene.removeItem(widgetChild1); + + delete widgetChild1; + + //We move the parent + scene.items(295, 295, 50, 50); + + //This should not crash +} + void tst_QGraphicsSceneIndex::clear() { class MyItem : public QGraphicsItem @@ -298,7 +358,7 @@ void tst_QGraphicsSceneIndex::clear() MyItem *item = new MyItem; scene.addItem(item); qApp->processEvents(); - QCOMPARE(item->numPaints, 1); + QTRY_COMPARE(item->numPaints, 1); } QTEST_MAIN(tst_QGraphicsSceneIndex) diff --git a/tests/auto/qgraphicsview/tst_qgraphicsview.cpp b/tests/auto/qgraphicsview/tst_qgraphicsview.cpp index 9b5e114..f07453c 100644 --- a/tests/auto/qgraphicsview/tst_qgraphicsview.cpp +++ b/tests/auto/qgraphicsview/tst_qgraphicsview.cpp @@ -194,6 +194,8 @@ private slots: void acceptDrops(); void optimizationFlags(); void optimizationFlags_dontSavePainterState(); + void optimizationFlags_dontSavePainterState2_data(); + void optimizationFlags_dontSavePainterState2(); void levelOfDetail_data(); void levelOfDetail(); void scrollBarRanges_data(); @@ -2455,6 +2457,57 @@ void tst_QGraphicsView::optimizationFlags_dontSavePainterState() QTest::qWaitForWindowShown(&painter2); } +void tst_QGraphicsView::optimizationFlags_dontSavePainterState2_data() +{ + QTest::addColumn<bool>("savePainter"); + QTest::newRow("With painter state protection") << true; + QTest::newRow("Without painter state protection") << false; +} + +void tst_QGraphicsView::optimizationFlags_dontSavePainterState2() +{ + QFETCH(bool, savePainter); + + class MyScene : public QGraphicsScene + { + public: + void drawBackground(QPainter *p, const QRectF &) + { transformInDrawBackground = p->worldTransform(); } + + void drawForeground(QPainter *p, const QRectF &) + { transformInDrawForeground = p->worldTransform(); } + + QTransform transformInDrawBackground; + QTransform transformInDrawForeground; + }; + + MyScene scene; + // Add transformed dummy items to make sure the painter's worldTransform() is changed in drawItems. + scene.addRect(0, 0, 20, 20)->setTransform(QTransform::fromScale(2, 2)); + scene.addRect(50, 50, 20, 20)->setTransform(QTransform::fromTranslate(200, 200)); + + CustomView view(&scene); + if (!savePainter) + view.setOptimizationFlag(QGraphicsView::DontSavePainterState); + view.rotate(45); + view.scale(1.5, 1.5); + view.show(); +#ifdef Q_WS_X11 + qt_x11_wait_for_window_manager(&view); +#endif + + // Make sure the view is repainted; otherwise the tests below will fail. + view.viewport()->repaint(); + QTest::qWait(200); + QVERIFY(view.painted); + + // Make sure the painter's world transform is preserved after drawItems. + const QTransform expectedTransform = view.viewportTransform(); + QVERIFY(!expectedTransform.isIdentity()); + QCOMPARE(scene.transformInDrawForeground, expectedTransform); + QCOMPARE(scene.transformInDrawBackground, expectedTransform); +} + class LodItem : public QGraphicsRectItem { public: diff --git a/tests/auto/qlistview/tst_qlistview.cpp b/tests/auto/qlistview/tst_qlistview.cpp index 6e211ae..a5ff153 100644 --- a/tests/auto/qlistview/tst_qlistview.cpp +++ b/tests/auto/qlistview/tst_qlistview.cpp @@ -119,6 +119,8 @@ private slots: void task262152_setModelColumnNavigate(); void taskQTBUG_2233_scrollHiddenItems_data(); void taskQTBUG_2233_scrollHiddenItems(); + void taskQTBUG_633_changeModelData(); + void taskQTBUG_435_deselectOnViewportClick(); }; // Testing get/set functions @@ -1132,6 +1134,7 @@ void tst_QListView::selection() #endif v.show(); + QTest::qWaitForWindowShown(&v); QApplication::processEvents(); v.setSelection(selectionRect, QItemSelectionModel::ClearAndSelect); @@ -1184,6 +1187,7 @@ void tst_QListView::scrollTo() lv.setModel(&model); lv.setFixedSize(100, 200); lv.show(); + QTest::qWaitForWindowShown(&lv); //by default, the list view scrolls per item and has no wrapping QModelIndex index = model.index(6,0); @@ -1782,6 +1786,7 @@ void tst_QListView::task262152_setModelColumnNavigate() view.setModelColumn(1); view.show(); + QTest::qWaitForWindowShown(&view); QTest::qWait(100); QTest::keyClick(&view, Qt::Key_Down); QTest::qWait(100); @@ -1829,5 +1834,47 @@ void tst_QListView::taskQTBUG_2233_scrollHiddenItems() } } +void tst_QListView::taskQTBUG_633_changeModelData() +{ + QListView view; + view.setFlow(QListView::LeftToRight); + QStandardItemModel model(5,1); + for (int i = 0; i < model.rowCount(); ++i) { + model.setData( model.index(i, 0), QString::number(i)); + } + + view.setModel(&model); + view.show(); + QTest::qWaitForWindowShown(&view); + model.setData( model.index(1, 0), QLatin1String("long long text")); + QTest::qWait(100); //leave time for relayouting the items + QRect rectLongText = view.visualRect(model.index(1,0)); + QRect rect2 = view.visualRect(model.index(2,0)); + QVERIFY( ! rectLongText.intersects(rect2) ); +} + +void tst_QListView::taskQTBUG_435_deselectOnViewportClick() +{ + QListView view; + QStringListModel model( QStringList() << "1" << "2" << "3" << "4"); + view.setModel(&model); + view.setSelectionMode(QAbstractItemView::ExtendedSelection); + view.selectAll(); + QCOMPARE(view.selectionModel()->selectedIndexes().count(), model.rowCount()); + + + QPoint p = view.visualRect(model.index(model.rowCount() - 1)).center() + QPoint(0, 20); + //first the left button + QTest::mouseClick(view.viewport(), Qt::LeftButton, 0, p); + QVERIFY(!view.selectionModel()->hasSelection()); + + view.selectAll(); + QCOMPARE(view.selectionModel()->selectedIndexes().count(), model.rowCount()); + + //and now the right button + QTest::mouseClick(view.viewport(), Qt::RightButton, 0, p); + QVERIFY(!view.selectionModel()->hasSelection()); +} + QTEST_MAIN(tst_QListView) #include "tst_qlistview.moc" diff --git a/tests/auto/qlistwidget/tst_qlistwidget.cpp b/tests/auto/qlistwidget/tst_qlistwidget.cpp index e825c8f..5c6ed54 100644 --- a/tests/auto/qlistwidget/tst_qlistwidget.cpp +++ b/tests/auto/qlistwidget/tst_qlistwidget.cpp @@ -46,6 +46,7 @@ #include <qlist.h> #include <qlistwidget.h> +#include <private/qlistwidget_p.h> //TESTED_CLASS= //TESTED_FILES= @@ -95,6 +96,8 @@ private slots: void insertItem(); void insertItems_data(); void insertItems(); + void moveItemsPriv_data(); + void moveItemsPriv(); void itemAssignment(); void item_data(); @@ -849,6 +852,62 @@ void tst_QListWidget::removeItems() } +void tst_QListWidget::moveItemsPriv_data() +{ + QTest::addColumn<int>("rowCount"); + QTest::addColumn<int>("srcRow"); + QTest::addColumn<int>("dstRow"); + QTest::addColumn<bool>("shouldHaveSignaled"); + + QTest::newRow("Empty") << 0 << 0 << 0 << false; + QTest::newRow("Overflow src") << 5 << 5 << 2 << false; + QTest::newRow("Underflow src") << 5 << -1 << 2 << false; + QTest::newRow("Overflow dst") << 5 << 2 << 5 << false; + QTest::newRow("Underflow dst") << 5 << 2 << -1 << false; + QTest::newRow("Same place") << 5 << 2 << 2 << false; + QTest::newRow("Up") << 5 << 4 << 2 << true; + QTest::newRow("Down") << 5 << 2 << 4 << true; +} + +void tst_QListWidget::moveItemsPriv() +{ + QFETCH(int, rowCount); + QFETCH(int, srcRow); + QFETCH(int, dstRow); + QFETCH(bool, shouldHaveSignaled); + + for (int r = 0; r < rowCount; ++r) + new QListWidgetItem(QString::number(r), testWidget); + + QListModel *model = dynamic_cast<QListModel *>(testWidget->model()); + QVERIFY(model); + QSignalSpy beginMoveSpy(model, SIGNAL(rowsAboutToBeMoved(QModelIndex,int,int,QModelIndex,int))); + QSignalSpy movedSpy(model, SIGNAL(rowsMoved(QModelIndex,int,int,QModelIndex,int))); + model->move(srcRow, dstRow); + + if (shouldHaveSignaled) { + if (srcRow < dstRow) + QCOMPARE(testWidget->item(dstRow - 1)->text(), QString::number(srcRow)); + else + QCOMPARE(testWidget->item(dstRow)->text(), QString::number(srcRow)); + + QCOMPARE(beginMoveSpy.count(), 1); + const QList<QVariant> &beginMoveArgs = beginMoveSpy.takeFirst(); + QCOMPARE(beginMoveArgs.at(1).toInt(), srcRow); + QCOMPARE(beginMoveArgs.at(2).toInt(), srcRow); + QCOMPARE(beginMoveArgs.at(4).toInt(), dstRow); + + QCOMPARE(movedSpy.count(), 1); + const QList<QVariant> &movedArgs = movedSpy.takeFirst(); + QCOMPARE(movedArgs.at(1).toInt(), srcRow); + QCOMPARE(movedArgs.at(2).toInt(), srcRow); + QCOMPARE(movedArgs.at(4).toInt(), dstRow); + } else { + QCOMPARE(beginMoveSpy.count(), 0); + QCOMPARE(movedSpy.count(), 0); + } +} + void tst_QListWidget::itemStreaming_data() { QTest::addColumn<QString>("text"); diff --git a/tests/auto/qmenubar/tst_qmenubar.cpp b/tests/auto/qmenubar/tst_qmenubar.cpp index 07aa9f4..4291c3e 100644 --- a/tests/auto/qmenubar/tst_qmenubar.cpp +++ b/tests/auto/qmenubar/tst_qmenubar.cpp @@ -86,6 +86,18 @@ private: uint sel_count; }; +class Menu : public QMenu +{ + Q_OBJECT + public slots: + void addActions() + { + //this will change the geometry of the menu + addAction("action1"); + addAction("action2"); + } +}; + class tst_QMenuBar : public QObject { Q_OBJECT @@ -1442,7 +1454,7 @@ void tst_QMenuBar::check_menuPosition() #ifdef Q_OS_WINCE_WM QSKIP("Qt/CE uses native menubar", SkipAll); #endif - QMenu menu; + Menu menu; #ifdef QT3_SUPPORT initComplexMenubar(); #else @@ -1496,6 +1508,21 @@ void tst_QMenuBar::check_menuPosition() menu.close(); } + //in RTL, the menu should be stuck at the right of the action geometry + { + Qt::LayoutDirection dir = qApp->layoutDirection(); + qApp->setLayoutDirection(Qt::RightToLeft); + menu.clear(); + QObject::connect(&menu, SIGNAL(aboutToShow()), &menu, SLOT(addActions())); + QRect mbItemRect = mw->menuBar()->actionGeometry(menu_action); + mbItemRect.moveTo(mw->menuBar()->mapToGlobal(mbItemRect.topLeft())); + QTest::keyClick(mw, Qt::Key_M, Qt::AltModifier ); + QVERIFY(menu.isActiveWindow()); + QCOMPARE(menu.geometry().right(), mbItemRect.right()); + menu.close(); + qApp->setLayoutDirection(dir); + } + } void tst_QMenuBar::task223138_triggered() diff --git a/tests/auto/qparallelanimationgroup/tst_qparallelanimationgroup.cpp b/tests/auto/qparallelanimationgroup/tst_qparallelanimationgroup.cpp index 8578d36..8d937e9 100644 --- a/tests/auto/qparallelanimationgroup/tst_qparallelanimationgroup.cpp +++ b/tests/auto/qparallelanimationgroup/tst_qparallelanimationgroup.cpp @@ -56,8 +56,7 @@ public: virtual ~tst_QParallelAnimationGroup(); public Q_SLOTS: - void init(); - void cleanup(); + void initTestCase(); private slots: void construction(); @@ -86,13 +85,13 @@ tst_QParallelAnimationGroup::~tst_QParallelAnimationGroup() { } -void tst_QParallelAnimationGroup::init() +void tst_QParallelAnimationGroup::initTestCase() { qRegisterMetaType<QAbstractAnimation::State>("QAbstractAnimation::State"); -} - -void tst_QParallelAnimationGroup::cleanup() -{ +#if defined(Q_OS_SYMBIAN) || defined(Q_WS_MAC) || defined(Q_WS_WINCE) + // give the Symbian and mac app start event queue time to clear + QTest::qWait(1000); +#endif } void tst_QParallelAnimationGroup::construction() @@ -486,10 +485,6 @@ void tst_QParallelAnimationGroup::updateChildrenWithRunningGroup() void tst_QParallelAnimationGroup::deleteChildrenWithRunningGroup() { -#if defined(Q_OS_SYMBIAN) - // give the Symbian app start event queue time to clear - QTest::qWait(1000); -#endif // test if children can be activated when their group is stopped QParallelAnimationGroup group; diff --git a/tests/auto/qpauseanimation/tst_qpauseanimation.cpp b/tests/auto/qpauseanimation/tst_qpauseanimation.cpp index b11efa0..4d0a7a7 100644 --- a/tests/auto/qpauseanimation/tst_qpauseanimation.cpp +++ b/tests/auto/qpauseanimation/tst_qpauseanimation.cpp @@ -93,8 +93,7 @@ public: virtual ~tst_QPauseAnimation(); public Q_SLOTS: - void init(); - void cleanup(); + void initTestCase(); private slots: void changeDirectionWhileRunning(); @@ -117,20 +116,15 @@ tst_QPauseAnimation::~tst_QPauseAnimation() { } -void tst_QPauseAnimation::init() +void tst_QPauseAnimation::initTestCase() { qRegisterMetaType<QAbstractAnimation::State>("QAbstractAnimation::State"); qRegisterMetaType<QAbstractAnimation::DeletionPolicy>("QAbstractAnimation::DeletionPolicy"); } -void tst_QPauseAnimation::cleanup() -{ -} - void tst_QPauseAnimation::changeDirectionWhileRunning() { - QUnifiedTimer *timer = QUnifiedTimer::instance(); - timer->setConsistentTiming(true); + EnableConsistentTiming enabled; TestablePauseAnimation animation; animation.setDuration(400); @@ -140,8 +134,6 @@ void tst_QPauseAnimation::changeDirectionWhileRunning() animation.setDirection(QAbstractAnimation::Backward); QTest::qWait(animation.totalDuration() + 50); QVERIFY(animation.state() == QAbstractAnimation::Stopped); - - timer->setConsistentTiming(false); } void tst_QPauseAnimation::noTimerUpdates_data() @@ -157,8 +149,7 @@ void tst_QPauseAnimation::noTimerUpdates_data() void tst_QPauseAnimation::noTimerUpdates() { - QUnifiedTimer *timer = QUnifiedTimer::instance(); - timer->setConsistentTiming(true); + EnableConsistentTiming enabled; QFETCH(int, duration); QFETCH(int, loopCount); @@ -168,16 +159,19 @@ void tst_QPauseAnimation::noTimerUpdates() animation.setLoopCount(loopCount); animation.start(); QTest::qWait(animation.totalDuration() + 100); + +#ifdef Q_OS_WIN + if (animation.state() != QAbstractAnimation::Stopped) + QEXPECT_FAIL("", "On windows, consistent timing is not working properly due to bad timer resolution", Abort); +#endif + QVERIFY(animation.state() == QAbstractAnimation::Stopped); QCOMPARE(animation.m_updateCurrentTimeCount, 1 + loopCount); - - timer->setConsistentTiming(false); } void tst_QPauseAnimation::mulitplePauseAnimations() { - QUnifiedTimer *timer = QUnifiedTimer::instance(); - timer->setConsistentTiming(true); + EnableConsistentTiming enabled; TestablePauseAnimation animation; animation.setDuration(200); @@ -188,16 +182,26 @@ void tst_QPauseAnimation::mulitplePauseAnimations() animation.start(); animation2.start(); QTest::qWait(animation.totalDuration() + 100); + +#ifdef Q_OS_WIN + if (animation.state() != QAbstractAnimation::Stopped) + QEXPECT_FAIL("", "On windows, consistent timing is not working properly due to bad timer resolution", Abort); +#endif + QVERIFY(animation.state() == QAbstractAnimation::Stopped); QVERIFY(animation2.state() == QAbstractAnimation::Running); QCOMPARE(animation.m_updateCurrentTimeCount, 2); QCOMPARE(animation2.m_updateCurrentTimeCount, 2); QTest::qWait(550); + +#ifdef Q_OS_WIN + if (animation2.state() != QAbstractAnimation::Stopped) + QEXPECT_FAIL("", "On windows, consistent timing is not working properly due to bad timer resolution", Abort); +#endif + QVERIFY(animation2.state() == QAbstractAnimation::Stopped); QCOMPARE(animation2.m_updateCurrentTimeCount, 3); - - timer->setConsistentTiming(false); } void tst_QPauseAnimation::pauseAndPropertyAnimations() @@ -243,7 +247,7 @@ void tst_QPauseAnimation::pauseResume() animation.pause(); QVERIFY(animation.state() == QAbstractAnimation::Paused); animation.start(); - QTest::qWait(250); + QTest::qWait(300); QVERIFY(animation.state() == QAbstractAnimation::Stopped); QCOMPARE(animation.m_updateCurrentTimeCount, 3); } @@ -260,6 +264,9 @@ void tst_QPauseAnimation::sequentialPauseGroup() animation3.setDuration(200); group.start(); + QCOMPARE(animation1.m_updateCurrentTimeCount, 1); + QCOMPARE(animation2.m_updateCurrentTimeCount, 0); + QCOMPARE(animation3.m_updateCurrentTimeCount, 0); QVERIFY(group.state() == QAbstractAnimation::Running); QVERIFY(animation1.state() == QAbstractAnimation::Running); @@ -267,6 +274,9 @@ void tst_QPauseAnimation::sequentialPauseGroup() QVERIFY(animation3.state() == QAbstractAnimation::Stopped); group.setCurrentTime(250); + QCOMPARE(animation1.m_updateCurrentTimeCount, 2); + QCOMPARE(animation2.m_updateCurrentTimeCount, 1); + QCOMPARE(animation3.m_updateCurrentTimeCount, 0); QVERIFY(group.state() == QAbstractAnimation::Running); QVERIFY(animation1.state() == QAbstractAnimation::Stopped); @@ -275,6 +285,9 @@ void tst_QPauseAnimation::sequentialPauseGroup() QVERIFY(animation3.state() == QAbstractAnimation::Stopped); group.setCurrentTime(500); + QCOMPARE(animation1.m_updateCurrentTimeCount, 2); + QCOMPARE(animation2.m_updateCurrentTimeCount, 2); + QCOMPARE(animation3.m_updateCurrentTimeCount, 1); QVERIFY(group.state() == QAbstractAnimation::Running); QVERIFY(animation1.state() == QAbstractAnimation::Stopped); diff --git a/tests/auto/qpixmap/tst_qpixmap.cpp b/tests/auto/qpixmap/tst_qpixmap.cpp index 53b6230..8e02c74 100644 --- a/tests/auto/qpixmap/tst_qpixmap.cpp +++ b/tests/auto/qpixmap/tst_qpixmap.cpp @@ -1134,6 +1134,8 @@ void tst_QPixmap::fromSymbianCFbsBitmap_data() QTest::newRow("EColor4K big") << EColor4K << largeWidth << largeHeight << QColor(Qt::red); QTest::newRow("EColor64K small") << EColor64K << smallWidth << smallHeight << QColor(Qt::green); QTest::newRow("EColor64K big") << EColor64K << largeWidth << largeHeight << QColor(Qt::green); + QTest::newRow("EColor16M small") << EColor16M << smallWidth << smallHeight << QColor(Qt::yellow); + QTest::newRow("EColor16M big") << EColor16M << largeWidth << largeHeight << QColor(Qt::yellow); QTest::newRow("EColor16MU small") << EColor16MU << smallWidth << smallHeight << QColor(Qt::red); QTest::newRow("EColor16MU big") << EColor16MU << largeWidth << largeHeight << QColor(Qt::red); QTest::newRow("EColor16MA small opaque") << EColor16MA << smallWidth << smallHeight << QColor(255, 255, 0); diff --git a/tests/auto/qpixmapfilter/tst_qpixmapfilter.cpp b/tests/auto/qpixmapfilter/tst_qpixmapfilter.cpp index 5a9bad7..a80c787 100644 --- a/tests/auto/qpixmapfilter/tst_qpixmapfilter.cpp +++ b/tests/auto/qpixmapfilter/tst_qpixmapfilter.cpp @@ -383,7 +383,7 @@ void tst_QPixmapFilter::dropShadowBoundingRectFor() QPixmapDropShadowFilter filter; filter.setBlurRadius(0); - QCOMPARE(filter.blurRadius(), 0); + QCOMPARE(filter.blurRadius(), 0.); const QRectF rect1(0, 0, 50, 50); const QRectF rect2(30, 20, 10, 40); diff --git a/tests/auto/qpropertyanimation/tst_qpropertyanimation.cpp b/tests/auto/qpropertyanimation/tst_qpropertyanimation.cpp index 7dd17e5..56c1ced 100644 --- a/tests/auto/qpropertyanimation/tst_qpropertyanimation.cpp +++ b/tests/auto/qpropertyanimation/tst_qpropertyanimation.cpp @@ -495,7 +495,7 @@ void tst_QPropertyAnimation::startWhenAnotherIsRunning() anim->setEndValue(100); QSignalSpy runningSpy(anim, SIGNAL(stateChanged(QAbstractAnimation::State, QAbstractAnimation::State))); anim->start(QVariantAnimation::DeleteWhenStopped); - QTest::qWait(anim->duration() + 50); + QTest::qWait(anim->duration() + 100); QCOMPARE(runningSpy.count(), 2); //started and then stopped QVERIFY(!anim); } @@ -659,7 +659,7 @@ void tst_QPropertyAnimation::playForwardBackward() anim.setStartValue(0); anim.setEndValue(100); anim.start(); - QTest::qWait(anim.duration() + 50); + QTest::qWait(anim.duration() + 100); QCOMPARE(anim.state(), QAbstractAnimation::Stopped); QCOMPARE(anim.currentTime(), anim.duration()); @@ -667,7 +667,7 @@ void tst_QPropertyAnimation::playForwardBackward() anim.setDirection(QVariantAnimation::Backward); anim.start(); QCOMPARE(anim.state(), QAbstractAnimation::Running); - QTest::qWait(anim.duration() + 50); + QTest::qWait(anim.duration() + 100); QCOMPARE(anim.state(), QAbstractAnimation::Stopped); QCOMPARE(anim.currentTime(), 0); @@ -676,7 +676,7 @@ void tst_QPropertyAnimation::playForwardBackward() anim.start(); QCOMPARE(anim.state(), QAbstractAnimation::Running); QCOMPARE(anim.currentTime(), anim.duration()); - QTest::qWait(anim.duration() + 50); + QTest::qWait(anim.duration() + 100); QCOMPARE(anim.state(), QAbstractAnimation::Stopped); QCOMPARE(anim.currentTime(), 0); } @@ -1093,7 +1093,7 @@ void tst_QPropertyAnimation::valueChanged() QSignalSpy spy(&anim, SIGNAL(valueChanged(QVariant))); anim.start(); - QTest::qWait(anim.duration() + 50); + QTest::qWait(anim.duration() + 100); QCOMPARE(anim.state(), QAbstractAnimation::Stopped); QCOMPARE(anim.currentTime(), anim.duration()); @@ -1144,7 +1144,7 @@ void tst_QPropertyAnimation::twoAnimations() o1.anim.start(); o2.anim.start(); - QTest::qWait(o1.anim.duration() + 50); + QTest::qWait(o1.anim.duration() + 100); QCOMPARE(o1.anim.state(), QAbstractAnimation::Stopped); QCOMPARE(o2.anim.state(), QAbstractAnimation::Stopped); @@ -1194,7 +1194,7 @@ void tst_QPropertyAnimation::deletedInUpdateCurrentTime() MyComposedAnimation composedAnimation(&o, "value", "realValue"); composedAnimation.start(); QCOMPARE(composedAnimation.state(), QAbstractAnimation::Running); - QTest::qWait(composedAnimation.duration() + 50); + QTest::qWait(composedAnimation.duration() + 100); QCOMPARE(composedAnimation.state(), QAbstractAnimation::Stopped); QCOMPARE(o.value(), 1000); diff --git a/tests/auto/qscriptstring/tst_qscriptstring.cpp b/tests/auto/qscriptstring/tst_qscriptstring.cpp index e1a4bc1..1229f4a 100644 --- a/tests/auto/qscriptstring/tst_qscriptstring.cpp +++ b/tests/auto/qscriptstring/tst_qscriptstring.cpp @@ -59,6 +59,8 @@ public: private slots: void test(); void hash(); + void toArrayIndex_data(); + void toArrayIndex(); }; tst_QScriptString::tst_QScriptString() @@ -155,5 +157,40 @@ void tst_QScriptString::hash() QCOMPARE(stringToInt.value(foo), 123); } +void tst_QScriptString::toArrayIndex_data() +{ + QTest::addColumn<QString>("input"); + QTest::addColumn<bool>("expectSuccess"); + QTest::addColumn<quint32>("expectedIndex"); + QTest::newRow("foo") << QString::fromLatin1("foo") << false << quint32(0xffffffff); + QTest::newRow("empty") << QString::fromLatin1("") << false << quint32(0xffffffff); + QTest::newRow("0") << QString::fromLatin1("0") << true << quint32(0); + QTest::newRow("00") << QString::fromLatin1("00") << false << quint32(0xffffffff); + QTest::newRow("1") << QString::fromLatin1("1") << true << quint32(1); + QTest::newRow("123") << QString::fromLatin1("123") << true << quint32(123); + QTest::newRow("-1") << QString::fromLatin1("-1") << false << quint32(0xffffffff); + QTest::newRow("0a") << QString::fromLatin1("0a") << false << quint32(0xffffffff); + QTest::newRow("0x1") << QString::fromLatin1("0x1") << false << quint32(0xffffffff); + QTest::newRow("01") << QString::fromLatin1("01") << false << quint32(0xffffffff); + QTest::newRow("4294967294") << QString::fromLatin1("4294967294") << true << quint32(0xfffffffe); + QTest::newRow("4294967295") << QString::fromLatin1("4294967295") << false << quint32(0xffffffff); +} + +void tst_QScriptString::toArrayIndex() +{ + QFETCH(QString, input); + QFETCH(bool, expectSuccess); + QFETCH(quint32, expectedIndex); + QScriptEngine engine; + for (int x = 0; x < 2; ++x) { + bool isArrayIndex; + bool *ptr = (x == 0) ? &isArrayIndex : (bool*)0; + quint32 result = engine.toStringHandle(input).toArrayIndex(ptr); + if (x == 0) + QCOMPARE(isArrayIndex, expectSuccess); + QCOMPARE(result, expectedIndex); + } +} + QTEST_MAIN(tst_QScriptString) #include "tst_qscriptstring.moc" diff --git a/tests/auto/qsequentialanimationgroup/tst_qsequentialanimationgroup.cpp b/tests/auto/qsequentialanimationgroup/tst_qsequentialanimationgroup.cpp index aa6801a..f6afc5b 100644 --- a/tests/auto/qsequentialanimationgroup/tst_qsequentialanimationgroup.cpp +++ b/tests/auto/qsequentialanimationgroup/tst_qsequentialanimationgroup.cpp @@ -929,16 +929,13 @@ void tst_QSequentialAnimationGroup::startDelay() group.addPause(125); QCOMPARE(group.totalDuration(), 375); - QEventLoop loop; - QObject::connect(&group, SIGNAL(finished()), &loop, SLOT(quit())); - - QTime time; - time.start(); group.start(); - loop.exec(); + QCOMPARE(group.state(), QAnimationGroup::Running); - QVERIFY(time.elapsed() >= 375); - QVERIFY(time.elapsed() < 1000); + QTest::qWait(500); + + QVERIFY(group.currentTime() == 375); + QCOMPARE(group.state(), QAnimationGroup::Stopped); } void tst_QSequentialAnimationGroup::clearGroup() diff --git a/tests/auto/qsplitter/tst_qsplitter.cpp b/tests/auto/qsplitter/tst_qsplitter.cpp index cf16421..b832f3a 100644 --- a/tests/auto/qsplitter/tst_qsplitter.cpp +++ b/tests/auto/qsplitter/tst_qsplitter.cpp @@ -102,6 +102,8 @@ private slots: void task187373_addAbstractScrollAreas(); void task187373_addAbstractScrollAreas_data(); void task169702_sizes(); + void taskQTBUG_4101_ensureOneNonCollapsedWidget_data(); + void taskQTBUG_4101_ensureOneNonCollapsedWidget(); private: void removeThirdWidget(); @@ -1281,6 +1283,8 @@ class MyFriendlySplitter : public QSplitter public: MyFriendlySplitter(QWidget *parent = 0) : QSplitter(parent) {} void setRubberBand(int pos) { QSplitter::setRubberBand(pos); } + + friend class tst_QSplitter; }; void tst_QSplitter::rubberBandNotInSplitter() @@ -1403,5 +1407,35 @@ void tst_QSplitter::task169702_sizes() QCOMPARE(testW->size().height(), testW->minimumSizeHint().height()); } +void tst_QSplitter::taskQTBUG_4101_ensureOneNonCollapsedWidget_data() +{ + QTest::addColumn<bool>("testingHide"); + + QTest::newRow("last non collapsed hidden") << true; + QTest::newRow("last non collapsed deleted") << false; +} + +void tst_QSplitter::taskQTBUG_4101_ensureOneNonCollapsedWidget() +{ + QFETCH(bool, testingHide); + + MyFriendlySplitter s; + QLabel *l; + for (int i = 0; i < 5; ++i) { + l = new QLabel(QString("Label ") + QChar('A' + i)); + l->setAlignment(Qt::AlignCenter); + s.addWidget(l); + s.moveSplitter(0, i); // Collapse all the labels except the last one. + } + + s.show(); + if (testingHide) + l->hide(); + else + delete l; + QTest::qWait(100); + QVERIFY(s.sizes().at(0) > 0); +} + QTEST_MAIN(tst_QSplitter) #include "tst_qsplitter.moc" diff --git a/tests/auto/qsqldatabase/tst_qsqldatabase.cpp b/tests/auto/qsqldatabase/tst_qsqldatabase.cpp index 82b6066..fe7c3ea 100644 --- a/tests/auto/qsqldatabase/tst_qsqldatabase.cpp +++ b/tests/auto/qsqldatabase/tst_qsqldatabase.cpp @@ -1234,6 +1234,7 @@ void tst_QSqlDatabase::recordSQLite() FieldDef("integer", QVariant::Int, QVariant(13)), FieldDef("int", QVariant::Int, QVariant(12)), + FieldDef("real", QVariant::String, QVariant(1.234567890123456)), FieldDef() }; diff --git a/tests/auto/qsqlquerymodel/tst_qsqlquerymodel.cpp b/tests/auto/qsqlquerymodel/tst_qsqlquerymodel.cpp index 3131f35..02b48fa 100644 --- a/tests/auto/qsqlquerymodel/tst_qsqlquerymodel.cpp +++ b/tests/auto/qsqlquerymodel/tst_qsqlquerymodel.cpp @@ -96,6 +96,7 @@ private slots: void task_180617(); void task_180617_data() { generic_data(); } + void task_QTBUG_4963_setHeaderDataWithProxyModel(); private: void generic_data(const QString &engine=QString()); @@ -428,6 +429,8 @@ void tst_QSqlQueryModel::setHeaderData() QVERIFY(!model.setHeaderData(5, Qt::Vertical, "foo")); QVERIFY(model.headerData(5, Qt::Vertical).isValid()); + model.setQuery(QSqlQuery("select * from " + qTableName("test"), db)); + qRegisterMetaType<Qt::Orientation>("Qt::Orientation"); QSignalSpy spy(&model, SIGNAL(headerDataChanged(Qt::Orientation, int, int))); QVERIFY(model.setHeaderData(2, Qt::Horizontal, "bar")); @@ -437,10 +440,8 @@ void tst_QSqlQueryModel::setHeaderData() QCOMPARE(spy.value(0).value(1).toInt(), 2); QCOMPARE(spy.value(0).value(2).toInt(), 2); - QVERIFY(model.setHeaderData(7, Qt::Horizontal, "foo", Qt::ToolTipRole)); - QVERIFY(model.headerData(7, Qt::Horizontal, Qt::ToolTipRole).isValid()); - - model.setQuery(QSqlQuery("select * from " + qTableName("test"), db)); + QVERIFY(!model.setHeaderData(7, Qt::Horizontal, "foo", Qt::ToolTipRole)); + QVERIFY(!model.headerData(7, Qt::Horizontal, Qt::ToolTipRole).isValid()); bool isToUpper = db.driverName().startsWith("QIBASE") || db.driverName().startsWith("QOCI") || db.driverName().startsWith("QDB2"); QCOMPARE(model.headerData(0, Qt::Horizontal).toString(), isToUpper ? QString("ID") : QString("id")); @@ -603,5 +604,14 @@ void tst_QSqlQueryModel::task_180617() QCOMPARE(view.rowAt(0), -1); } +void tst_QSqlQueryModel::task_QTBUG_4963_setHeaderDataWithProxyModel() +{ + QSqlQueryModel plainModel; + QSortFilterProxyModel proxyModel; + proxyModel.setSourceModel(&plainModel); + QVERIFY(!plainModel.setHeaderData(0, Qt::Horizontal, QObject::tr("ID"))); + // And it should not crash. +} + QTEST_MAIN(tst_QSqlQueryModel) #include "tst_qsqlquerymodel.moc" diff --git a/tests/auto/qtableview/tst_qtableview.cpp b/tests/auto/qtableview/tst_qtableview.cpp index d8110e1..227ca6f 100644 --- a/tests/auto/qtableview/tst_qtableview.cpp +++ b/tests/auto/qtableview/tst_qtableview.cpp @@ -41,6 +41,7 @@ #include <QtGui/QtGui> +#include <private/qtablewidget_p.h> #include <QtTest/QtTest> #include "../../shared/util.h" #include "private/qapplication_p.h" @@ -58,6 +59,13 @@ } \ } while(0) +#ifdef QT_BUILD_INTERNAL +#define VERIFY_SPANS_CONSISTENCY(TEST_VIEW_) \ + QVERIFY(static_cast<QTableViewPrivate*>(QObjectPrivate::get(TEST_VIEW_))->spans.checkConsistency()) +#else +#define VERIFY_SPANS_CONSISTENCY(TEST_VIEW_) (void)false +#endif + typedef QList<int> IntList; Q_DECLARE_METATYPE(IntList) @@ -188,12 +196,15 @@ private slots: void task248688_autoScrollNavigation(); void task259308_scrollVerticalHeaderSwappedSections(); void task191545_dragSelectRows(); + void taskQTBUG_5062_spansInconsistency(); void mouseWheel_data(); void mouseWheel(); void addColumnWhileEditing(); void task234926_setHeaderSorting(); + + void changeHeaderData(); }; // Testing get/set functions @@ -2017,8 +2028,9 @@ void tst_QTableView::resizeRowsToContents() view.resizeRowsToContents(); QCOMPARE(resizedSpy.count(), model.rowCount()); - for (int r = 0; r < model.rowCount(); ++r) + for (int r = 0; r < model.rowCount(); ++r) { QCOMPARE(view.rowHeight(r), rowHeight); + } } void tst_QTableView::resizeColumnsToContents_data() @@ -2898,6 +2910,8 @@ void tst_QTableView::span() view.clearSpans(); QCOMPARE(view.rowSpan(row, column), 1); QCOMPARE(view.columnSpan(row, column), 1); + + VERIFY_SPANS_CONSISTENCY(&view); } typedef QVector<QRect> SpanList; @@ -3033,6 +3047,8 @@ void tst_QTableView::spans() QCOMPARE(view.columnSpan(pos.x(), pos.y()), expectedColumnSpan); QCOMPARE(view.rowSpan(pos.x(), pos.y()), expectedRowSpan); + + VERIFY_SPANS_CONSISTENCY(&view); } void tst_QTableView::spansAfterRowInsertion() @@ -3067,6 +3083,8 @@ void tst_QTableView::spansAfterRowInsertion() view.model()->insertRows(12, 2); QCOMPARE(view.rowSpan(7, 3), 5); QCOMPARE(view.columnSpan(7, 3), 3); + + VERIFY_SPANS_CONSISTENCY(&view); } void tst_QTableView::spansAfterColumnInsertion() @@ -3101,6 +3119,8 @@ void tst_QTableView::spansAfterColumnInsertion() view.model()->insertColumns(12, 2); QCOMPARE(view.rowSpan(3, 7), 3); QCOMPARE(view.columnSpan(3, 7), 5); + + VERIFY_SPANS_CONSISTENCY(&view); } void tst_QTableView::spansAfterRowRemoval() @@ -3138,6 +3158,8 @@ void tst_QTableView::spansAfterRowRemoval() QCOMPARE(view.columnSpan(span.top(), span.left()), span.width()); QCOMPARE(view.rowSpan(span.top(), span.left()), span.height()); } + + VERIFY_SPANS_CONSISTENCY(&view); } void tst_QTableView::spansAfterColumnRemoval() @@ -3176,6 +3198,8 @@ void tst_QTableView::spansAfterColumnRemoval() QCOMPARE(view.columnSpan(span.left(), span.top()), span.height()); QCOMPARE(view.rowSpan(span.left(), span.top()), span.width()); } + + VERIFY_SPANS_CONSISTENCY(&view); } class Model : public QAbstractTableModel { @@ -3267,12 +3291,12 @@ void tst_QTableView::resizeToContents() //now let's check the row/col sizes for(int i = 0;i<table.columnCount();i++) { - QVERIFY( table.columnWidth(i) == table2.columnWidth(i)); - QVERIFY( table2.columnWidth(i) == table3.columnWidth(i)); + QCOMPARE( table.columnWidth(i), table2.columnWidth(i)); + QCOMPARE( table2.columnWidth(i), table3.columnWidth(i)); } for(int i = 0;i<table.rowCount();i++) { - QVERIFY( table.rowHeight(i) == table2.rowHeight(i)); - QVERIFY( table2.rowHeight(i) == table3.rowHeight(i)); + QCOMPARE( table.rowHeight(i), table2.rowHeight(i)); + QCOMPARE( table2.rowHeight(i), table3.rowHeight(i)); } } @@ -3844,5 +3868,41 @@ void tst_QTableView::task234926_setHeaderSorting() QCOMPARE(model.stringList() , sortedDataD); } +void tst_QTableView::taskQTBUG_5062_spansInconsistency() +{ + const int nRows = 5; + const int nColumns = 5; + + QtTestTableModel model(nRows, nColumns); + QtTestTableView view; + view.setModel(&model); + + for (int i = 0; i < nRows; ++i) + view.setSpan(i, 0, 1, nColumns); + view.setSpan(2, 0, 1, 1); + view.setSpan(3, 0, 1, 1); + + VERIFY_SPANS_CONSISTENCY(&view); +} + +void tst_QTableView::changeHeaderData() +{ + QTableView view; + QStandardItemModel model(5,5); + view.setModel(&model); + view.show(); + QTest::qWaitForWindowShown(&view); + + QString text = "long long long text"; + const int textWidth = view.fontMetrics().width(text); + QVERIFY(view.verticalHeader()->width() < textWidth); + + model.setHeaderData(2, Qt::Vertical, text); + QTest::qWait(100); //leave time for layout + + QVERIFY(view.verticalHeader()->width() > textWidth); +} + + QTEST_MAIN(tst_QTableView) #include "tst_qtableview.moc" diff --git a/tests/auto/qtextdocument/qtextdocument.pro b/tests/auto/qtextdocument/qtextdocument.pro index d3ec45d..1e44a9c 100644 --- a/tests/auto/qtextdocument/qtextdocument.pro +++ b/tests/auto/qtextdocument/qtextdocument.pro @@ -1,4 +1,5 @@ load(qttest_p4) +QT += xml HEADERS += common.h SOURCES += tst_qtextdocument.cpp diff --git a/tests/auto/qtextdocument/tst_qtextdocument.cpp b/tests/auto/qtextdocument/tst_qtextdocument.cpp index f393393..5237438 100644 --- a/tests/auto/qtextdocument/tst_qtextdocument.cpp +++ b/tests/auto/qtextdocument/tst_qtextdocument.cpp @@ -59,6 +59,7 @@ #include <qfontmetrics.h> #include <qimage.h> #include <qtextlayout.h> +#include <QDomDocument> #include "common.h" @@ -175,6 +176,8 @@ private slots: void testUndoBlocks(); void receiveCursorPositionChangedAfterContentsChange(); + void escape_data(); + void escape(); private: void backgroundImage_checkExpectedHtml(const QTextDocument &doc); @@ -576,7 +579,7 @@ void tst_QTextDocument::task240325() } void tst_QTextDocument::stylesheetFont_data() -{ +{ QTest::addColumn<QString>("stylesheet"); QTest::addColumn<QFont>("font"); @@ -732,7 +735,7 @@ void tst_QTextDocument::toHtml_data() cursor.insertText("Blah", fmt); QTest::newRow("font-family-with-quotes1") << QTextDocumentFragment(&doc) - << QString("<p DEFAULTBLOCKSTYLE><span style=\" font-family:\"Foo's Family\";\">Blah</span></p>"); + << QString("<p DEFAULTBLOCKSTYLE><span style=\" font-family:"Foo's Family";\">Blah</span></p>"); } { @@ -743,7 +746,7 @@ void tst_QTextDocument::toHtml_data() cursor.insertText("Blah", fmt); QTest::newRow("font-family-with-quotes2") << QTextDocumentFragment(&doc) - << QString("<p DEFAULTBLOCKSTYLE><span style=\" font-family:'Foo\"s Family';\">Blah</span></p>"); + << QString("<p DEFAULTBLOCKSTYLE><span style=\" font-family:'Foo"s Family';\">Blah</span></p>"); } { @@ -974,6 +977,30 @@ void tst_QTextDocument::toHtml_data() { CREATE_DOC_AND_CURSOR(); + QTextCharFormat fmt; + fmt.setAnchor(true); + fmt.setAnchorHref("http://www.kde.org/?a=1&b=2"); + cursor.insertText("Blah", fmt); + + QTest::newRow("href anchor with &") << QTextDocumentFragment(&doc) + << QString("<p DEFAULTBLOCKSTYLE><a href=\"http://www.kde.org/?a=1&b=2\">Blah</a></p>"); + } + + { + CREATE_DOC_AND_CURSOR(); + + QTextCharFormat fmt; + fmt.setAnchor(true); + fmt.setAnchorHref("http://www.kde.org/?a='&b=\""); + cursor.insertText("Blah", fmt); + + QTest::newRow("href anchor with ' and \"") << QTextDocumentFragment(&doc) + << QString("<p DEFAULTBLOCKSTYLE><a href=\"http://www.kde.org/?a='&b="\">Blah</a></p>"); + } + + { + CREATE_DOC_AND_CURSOR(); + cursor.insertTable(2, 2); QTest::newRow("simpletable") << QTextDocumentFragment(&doc) @@ -1541,6 +1568,9 @@ void tst_QTextDocument::toHtml() QString output = doc->toHtml(); QCOMPARE(output, expectedOutput); + + QDomDocument document; + QVERIFY2(document.setContent(output), "Output was not valid XML"); } void tst_QTextDocument::toHtml2() @@ -2652,5 +2682,25 @@ void tst_QTextDocument::receiveCursorPositionChangedAfterContentsChange() QCOMPARE(rec.first, QString("contentsChanged")); } +void tst_QTextDocument::escape_data() +{ + QTest::addColumn<QString>("original"); + QTest::addColumn<QString>("expected"); + + QTest::newRow("1") << "Hello World\n" << "Hello World\n"; + QTest::newRow("2") << "#include <QtCore>" << "#include <QtCore>"; + QTest::newRow("3") << "<p class=\"cool\"><a href=\"http://example.com/?foo=bar&bar=foo\">plop --> </a></p>" + << "<p class="cool"><a href="http://example.com/?foo=bar&amp;bar=foo">plop --&gt; </a></p>"; + QTest::newRow("4") << QString::fromUtf8("<\320\222\321\201>") << QString::fromUtf8("<\320\222\321\201>"); +} + +void tst_QTextDocument::escape() +{ + QFETCH(QString, original); + QFETCH(QString, expected); + + QCOMPARE(Qt::escape(original), expected); +} + QTEST_MAIN(tst_QTextDocument) #include "tst_qtextdocument.moc" diff --git a/tests/auto/qtextedit/fullWidthSelection/centered-fully-selected.png b/tests/auto/qtextedit/fullWidthSelection/centered-fully-selected.png Binary files differindex 7467478..ced6eb6 100644 --- a/tests/auto/qtextedit/fullWidthSelection/centered-fully-selected.png +++ b/tests/auto/qtextedit/fullWidthSelection/centered-fully-selected.png diff --git a/tests/auto/qtextedit/fullWidthSelection/centered-partly-selected.png b/tests/auto/qtextedit/fullWidthSelection/centered-partly-selected.png Binary files differindex 7a10e63..481b99c 100644 --- a/tests/auto/qtextedit/fullWidthSelection/centered-partly-selected.png +++ b/tests/auto/qtextedit/fullWidthSelection/centered-partly-selected.png diff --git a/tests/auto/qtextedit/fullWidthSelection/last-char-on-line.png b/tests/auto/qtextedit/fullWidthSelection/last-char-on-line.png Binary files differindex df5b92e..292d3f9 100644 --- a/tests/auto/qtextedit/fullWidthSelection/last-char-on-line.png +++ b/tests/auto/qtextedit/fullWidthSelection/last-char-on-line.png diff --git a/tests/auto/qtextedit/fullWidthSelection/last-char-on-parag.png b/tests/auto/qtextedit/fullWidthSelection/last-char-on-parag.png Binary files differindex d58d4cc..69b72ed 100644 --- a/tests/auto/qtextedit/fullWidthSelection/last-char-on-parag.png +++ b/tests/auto/qtextedit/fullWidthSelection/last-char-on-parag.png diff --git a/tests/auto/qtextedit/fullWidthSelection/multiple-full-width-lines.png b/tests/auto/qtextedit/fullWidthSelection/multiple-full-width-lines.png Binary files differindex c5c3c22..467b91e 100644 --- a/tests/auto/qtextedit/fullWidthSelection/multiple-full-width-lines.png +++ b/tests/auto/qtextedit/fullWidthSelection/multiple-full-width-lines.png diff --git a/tests/auto/qtextedit/fullWidthSelection/nowrap_long.png b/tests/auto/qtextedit/fullWidthSelection/nowrap_long.png Binary files differindex 7ded254..cce921b 100644 --- a/tests/auto/qtextedit/fullWidthSelection/nowrap_long.png +++ b/tests/auto/qtextedit/fullWidthSelection/nowrap_long.png diff --git a/tests/auto/qtextedit/fullWidthSelection/single-full-width-line.png b/tests/auto/qtextedit/fullWidthSelection/single-full-width-line.png Binary files differindex d2fd629..937494a 100644 --- a/tests/auto/qtextedit/fullWidthSelection/single-full-width-line.png +++ b/tests/auto/qtextedit/fullWidthSelection/single-full-width-line.png diff --git a/tests/auto/qtextedit/tst_qtextedit.cpp b/tests/auto/qtextedit/tst_qtextedit.cpp index 59abbd5..fee030c 100644 --- a/tests/auto/qtextedit/tst_qtextedit.cpp +++ b/tests/auto/qtextedit/tst_qtextedit.cpp @@ -1967,7 +1967,7 @@ void tst_QTextEdit::fullWidthSelection() qt_setQtEnableTestFont(true); QFont testFont; testFont.setFamily("__Qt__Box__Engine__"); - testFont.setPixelSize(12); + testFont.setPixelSize(11); testFont.setWeight(QFont::Normal); QTextCharFormat cf; cf.setFont(testFont); @@ -2015,7 +2015,7 @@ void tst_QTextEdit::fullWidthSelection2() qt_setQtEnableTestFont(true); QFont testFont; testFont.setFamily("__Qt__Box__Engine__"); - testFont.setPixelSize(12); + testFont.setPixelSize(11); testFont.setWeight(QFont::Normal); QTextCharFormat cf; cf.setFont(testFont); diff --git a/tests/auto/qtreeview/tst_qtreeview.cpp b/tests/auto/qtreeview/tst_qtreeview.cpp index da58725..90e6c5c 100644 --- a/tests/auto/qtreeview/tst_qtreeview.cpp +++ b/tests/auto/qtreeview/tst_qtreeview.cpp @@ -235,6 +235,7 @@ private slots: void task254234_proxySort(); void task248022_changeSelection(); void task245654_changeModelAndExpandAll(); + void doubleClickedWithSpans(); }; class QtTestModel: public QAbstractItemModel @@ -2891,7 +2892,10 @@ void tst_QTreeView::styleOptionViewItem() QVERIFY(!opt.text.isEmpty()); QCOMPARE(opt.index, index); - QCOMPARE(!(opt.features & QStyleOptionViewItemV2::Alternate), !(index.row() % 2)); + //qDebug() << index << opt.text; + + if (allCollapsed) + QCOMPARE(!(opt.features & QStyleOptionViewItemV2::Alternate), !(index.row() % 2)); QCOMPARE(!(opt.features & QStyleOptionViewItemV2::HasCheckIndicator), !opt.text.contains("Checkable")); if (opt.text.contains("Beginning")) @@ -2911,12 +2915,16 @@ void tst_QTreeView::styleOptionViewItem() else QCOMPARE(opt.checkState, Qt::Unchecked); + QCOMPARE(!(opt.state & QStyle::State_Children) , !opt.text.contains("HasChildren")); + QCOMPARE(!!(opt.state & QStyle::State_Sibling) , !opt.text.contains("Last")); + QVERIFY(!opt.text.contains("Assert")); QStyledItemDelegate::paint(painter, option, index); count++; } mutable int count; + bool allCollapsed; }; QTreeView view; @@ -2926,8 +2934,9 @@ void tst_QTreeView::styleOptionViewItem() view.setItemDelegate(&delegate); model.appendRow(QList<QStandardItem*>() << new QStandardItem("Beginning") << new QStandardItem("Middle") << new QStandardItem("Middle") << new QStandardItem("End") ); + QStandardItem *par1 = new QStandardItem("Beginning HasChildren"); model.appendRow(QList<QStandardItem*>() - << new QStandardItem("Beginning") << new QStandardItem("Middle") << new QStandardItem("Middle") << new QStandardItem("End") ); + << par1 << new QStandardItem("Middle HasChildren") << new QStandardItem("Middle HasChildren") << new QStandardItem("End HasChildren") ); model.appendRow(QList<QStandardItem*>() << new QStandardItem("OnlyOne") << new QStandardItem("Assert") << new QStandardItem("Assert") << new QStandardItem("Assert") ); QStandardItem *checkable = new QStandardItem("Checkable"); @@ -2937,13 +2946,143 @@ void tst_QTreeView::styleOptionViewItem() checked->setCheckState(Qt::Checked); model.appendRow(QList<QStandardItem*>() << new QStandardItem("Beginning") << checkable << checked << new QStandardItem("End") ); + model.appendRow(QList<QStandardItem*>() + << new QStandardItem("Beginning Last") << new QStandardItem("Middle Last") << new QStandardItem("Middle Last") << new QStandardItem("End Last") ); + + par1->appendRow(QList<QStandardItem*>() + << new QStandardItem("Beginning") << new QStandardItem("Middle") << new QStandardItem("Middle") << new QStandardItem("End") ); + QStandardItem *par2 = new QStandardItem("Beginning HasChildren"); + par1->appendRow(QList<QStandardItem*>() + << par2 << new QStandardItem("Middle HasChildren") << new QStandardItem("Middle HasChildren") << new QStandardItem("End HasChildren") ); + par2->appendRow(QList<QStandardItem*>() + << new QStandardItem("Beginning Last") << new QStandardItem("Middle Last") << new QStandardItem("Middle Last") << new QStandardItem("End Last") ); + + QStandardItem *par3 = new QStandardItem("Beginning Last"); + par1->appendRow(QList<QStandardItem*>() + << par3 << new QStandardItem("Middle Last") << new QStandardItem("Middle Last") << new QStandardItem("End Last") ); + par3->appendRow(QList<QStandardItem*>() + << new QStandardItem("Assert") << new QStandardItem("Assert") << new QStandardItem("Assert") << new QStandardItem("Asser") ); + view.setRowHidden(0, par3->index(), true); + par1->appendRow(QList<QStandardItem*>() + << new QStandardItem("Assert") << new QStandardItem("Assert") << new QStandardItem("Assert") << new QStandardItem("Asser") ); + view.setRowHidden(3, par1->index(), true); + view.setFirstColumnSpanned(2, QModelIndex(), true); view.setAlternatingRowColors(true); delegate.count = 0; + delegate.allCollapsed = true; view.showMaximized(); + QApplication::processEvents(); QTRY_VERIFY(delegate.count >= 13); + delegate.count = 0; + delegate.allCollapsed = false; + view.expandAll(); + QApplication::processEvents(); + QTRY_VERIFY(delegate.count >= 13); + delegate.count = 0; + view.collapse(par2->index()); + QApplication::processEvents(); + QTRY_VERIFY(delegate.count >= 4); + + + //test dynamic models + { + delegate.count = 0; + QStandardItemModel model2; + QStandardItem *item0 = new QStandardItem("OnlyOne Last"); + model2.appendRow(QList<QStandardItem*>() << item0); + view.setModel(&model2); + QApplication::processEvents(); + QTRY_VERIFY(delegate.count >= 1); + QApplication::processEvents(); + + QStandardItem *item00 = new QStandardItem("OnlyOne Last"); + item0->appendRow(QList<QStandardItem*>() << item00); + item0->setText("OnlyOne Last HasChildren"); + QApplication::processEvents(); + delegate.count = 0; + view.expandAll(); + QApplication::processEvents(); + QTRY_VERIFY(delegate.count >= 2); + QApplication::processEvents(); + + QStandardItem *item1 = new QStandardItem("OnlyOne Last"); + delegate.count = 0; + item0->setText("OnlyOne HasChildren"); + model2.appendRow(QList<QStandardItem*>() << item1); + QApplication::processEvents(); + QTRY_VERIFY(delegate.count >= 3); + QApplication::processEvents(); + + QStandardItem *item01 = new QStandardItem("OnlyOne Last"); + delegate.count = 0; + item00->setText("OnlyOne"); + item0->appendRow(QList<QStandardItem*>() << item01); + QApplication::processEvents(); + QTRY_VERIFY(delegate.count >= 4); + QApplication::processEvents(); + + QStandardItem *item000 = new QStandardItem("OnlyOne Last"); + delegate.count = 0; + item00->setText("OnlyOne HasChildren"); + item00->appendRow(QList<QStandardItem*>() << item000); + QApplication::processEvents(); + QTRY_VERIFY(delegate.count >= 5); + QApplication::processEvents(); + + delegate.count = 0; + item0->removeRow(0); + QApplication::processEvents(); + QTRY_VERIFY(delegate.count >= 3); + QApplication::processEvents(); + + item00 = new QStandardItem("OnlyOne"); + item0->insertRow(0, QList<QStandardItem*>() << item00); + QApplication::processEvents(); + delegate.count = 0; + view.expandAll(); + QApplication::processEvents(); + QTRY_VERIFY(delegate.count >= 4); + QApplication::processEvents(); + + delegate.count = 0; + item0->removeRow(1); + item00->setText("OnlyOne Last"); + QApplication::processEvents(); + QTRY_VERIFY(delegate.count >= 3); + QApplication::processEvents(); + + delegate.count = 0; + item0->removeRow(0); + item0->setText("OnlyOne"); + QApplication::processEvents(); + QTRY_VERIFY(delegate.count >= 2); + QApplication::processEvents(); + + //with hidden items + item0->setText("OnlyOne HasChildren"); + item00 = new QStandardItem("OnlyOne"); + item0->appendRow(QList<QStandardItem*>() << item00); + item01 = new QStandardItem("Assert"); + item0->appendRow(QList<QStandardItem*>() << item01); + view.setRowHidden(1, item0->index(), true); + view.expandAll(); + QStandardItem *item02 = new QStandardItem("OnlyOne Last"); + item0->appendRow(QList<QStandardItem*>() << item02); + delegate.count = 0; + QApplication::processEvents(); + QTRY_VERIFY(delegate.count >= 4); + QApplication::processEvents(); + + item0->removeRow(2); + item00->setText("OnlyOne Last"); + delegate.count = 0; + QApplication::processEvents(); + QTRY_VERIFY(delegate.count >= 3); + QApplication::processEvents(); + } } class task174627_TreeView : public QTreeView @@ -3507,7 +3646,35 @@ void tst_QTreeView::task245654_changeModelAndExpandAll() } +void tst_QTreeView::doubleClickedWithSpans() +{ + QTreeView view; + QStandardItemModel model(1, 2); + view.setModel(&model); + view.setFirstColumnSpanned(0, QModelIndex(), true); + view.show(); + QTest::qWaitForWindowShown(&view); + + QPoint p(10, 10); + QCOMPARE(view.indexAt(p), model.index(0, 0)); + QSignalSpy spy(&view, SIGNAL(doubleClicked(QModelIndex))); + QTest::mousePress(view.viewport(), Qt::LeftButton, 0, p); + QTest::mouseDClick(view.viewport(), Qt::LeftButton, 0, p); + QTest::mouseRelease(view.viewport(), Qt::LeftButton, 0, p); + QCOMPARE(spy.count(), 1); + //let's click on the 2nd column + p.setX(p.x() + view.header()->sectionSize(0)); + QCOMPARE(view.indexAt(p), model.index(0, 0)); + + //end the previous edition + QTest::mouseClick(view.viewport(), Qt::LeftButton, 0, p); + QTest::qWait(100); + QTest::mousePress(view.viewport(), Qt::LeftButton, 0, p); + QTest::mouseDClick(view.viewport(), Qt::LeftButton, 0, p); + QTest::mouseRelease(view.viewport(), Qt::LeftButton, 0, p); + QCOMPARE(spy.count(), 2); +} QTEST_MAIN(tst_QTreeView) #include "tst_qtreeview.moc" diff --git a/tests/auto/qvariant/tst_qvariant.cpp b/tests/auto/qvariant/tst_qvariant.cpp index 9295897..e2a606f 100644 --- a/tests/auto/qvariant/tst_qvariant.cpp +++ b/tests/auto/qvariant/tst_qvariant.cpp @@ -270,6 +270,8 @@ private slots: void task256984_setValue(); void numericalConvert(); + void moreCustomTypes(); + void variantInVariant(); }; Q_DECLARE_METATYPE(QDate) @@ -318,6 +320,14 @@ void tst_QVariant::constructor() QVariant var6(qlonglong(0)); QCOMPARE(var6.type(), QVariant::LongLong); QCOMPARE(var6.typeName(), "qlonglong"); + + QVariant var7 = 5; + QVERIFY(var7.isValid()); + QVERIFY(!var7.isNull()); + QVariant var8; + var8.setValue<int>(5); + QVERIFY(var8.isValid()); + QVERIFY(!var8.isNull()); } void tst_QVariant::copy_constructor() @@ -3127,7 +3137,254 @@ void tst_QVariant::numericalConvert() } +template<class T> void playWithVariant(const T &orig, bool isNull, const QString &toString, double toDouble, bool toBool) +{ + QVariant v = QVariant::fromValue(orig); + QVERIFY(v.isValid()); + QCOMPARE(v.isNull(), isNull); + QCOMPARE(v.toString(), toString); + QCOMPARE(v.toDouble(), toDouble); + QCOMPARE(v.toBool(), toBool); + QCOMPARE(qvariant_cast<T>(v), orig); + + { + QVariant v2 = v; + QCOMPARE(v2, v); + QVERIFY(v2.isValid()); + QCOMPARE(v2.isNull(), isNull); + QCOMPARE(v2.toString(), toString); + QCOMPARE(v2.toDouble(), toDouble); + QCOMPARE(v2.toBool(), toBool); + QCOMPARE(qvariant_cast<T>(v2), orig); + + QVariant v3; + v = QVariant(); + QCOMPARE(v3, v); + v = v2; + QCOMPARE(v, v2); + QCOMPARE(qvariant_cast<T>(v2), qvariant_cast<T>(v)); + QCOMPARE(v2.toString(), toString); + v3 = qVariantFromValue(orig); + + QVERIFY(v3.isValid()); + QCOMPARE(v3.isNull(), isNull); + QCOMPARE(v3.toString(), toString); + QCOMPARE(v3.toDouble(), toDouble); + QCOMPARE(v3.toBool(), toBool); + QCOMPARE(qvariant_cast<T>(v3), qvariant_cast<T>(v)); + } + + QVERIFY(v.isValid()); + QCOMPARE(v.isNull(), isNull); + QCOMPARE(v.toString(), toString); + QCOMPARE(v.toDouble(), toDouble); + QCOMPARE(v.toBool(), toBool); + QCOMPARE(qvariant_cast<T>(v), orig); + + if (qMetaTypeId<T>() != qMetaTypeId<QVariant>()) { + QCOMPARE(v.userType(), qMetaTypeId<T>()); + QCOMPARE(QVariant::typeToName(QVariant::Type(v.userType())), QMetaType::typeName(qMetaTypeId<T>())); + } +} + + +struct MyPrimitive +{ + char x, y; + bool operator==(const MyPrimitive &o) const + { + return x == o.x && y == o.y; + } +}; +Q_DECLARE_TYPEINFO(MyPrimitive, Q_PRIMITIVE_TYPE); + +struct MyData +{ + void *ptr; + MyData() : ptr(this) {} + ~MyData() { Q_ASSERT(ptr == this); } + MyData(const MyData& o) : ptr(this) { Q_ASSERT(o.ptr == &o); } + MyData &operator=(const MyData &o) + { + Q_ASSERT(ptr == this); + Q_ASSERT(o.ptr == &o); + return *this; + } + bool operator==(const MyData &o) const + { + Q_ASSERT(ptr == this); + Q_ASSERT(o.ptr == &o); + return true; + } +}; + +struct MyMovable +{ + static int count; + int v; + MyMovable() { v = count++; } + ~MyMovable() { count--; } + MyMovable(const MyMovable &o) : v(o.v) { count++; } + + bool operator==(const MyMovable &o) const + { + return v == o.v; + } +}; + +int MyMovable::count = 0; + + +Q_DECLARE_TYPEINFO(MyMovable, Q_MOVABLE_TYPE); + +Q_DECLARE_METATYPE(QList<QSize>) +Q_DECLARE_METATYPE(MyPrimitive) +Q_DECLARE_METATYPE(MyData) +Q_DECLARE_METATYPE(MyMovable) +Q_DECLARE_METATYPE(QList<MyPrimitive>) +Q_DECLARE_METATYPE(QList<MyData>) +Q_DECLARE_METATYPE(QList<MyMovable>) +Q_DECLARE_METATYPE(MyPrimitive *) +Q_DECLARE_METATYPE(MyData *) +Q_DECLARE_METATYPE(MyMovable *) +void tst_QVariant::moreCustomTypes() +{ + { + QList<QSize> listSize; + playWithVariant(listSize, false, QString(), 0, false); + listSize << QSize(4,5) << QSize(89,23) << QSize(5,6); + playWithVariant(listSize, false, QString(), 0, false); + } + + { + QString str; + playWithVariant(str, true, QString(), 0, false); + str = QString::fromLatin1("123456789.123"); + playWithVariant(str, false, str, 123456789.123, true); + } + + { + QSize size; + playWithVariant(size, false, QString(), 0, false); + playWithVariant(QSize(45,78), false, QString(), 0, false); + } + + { + MyData d; + playWithVariant(d, false, QString(), 0, false); + playWithVariant(&d, false, QString(), 0, false); + QList<MyData> l; + playWithVariant(l, false, QString(), 0, false); + l << MyData() << MyData(); + playWithVariant(l, false, QString(), 0, false); + } + + { + MyPrimitive d = { 4, 5 }; + playWithVariant(d, false, QString(), 0, false); + playWithVariant(&d, false, QString(), 0, false); + QList<MyPrimitive> l; + playWithVariant(l, false, QString(), 0, false); + l << d; + playWithVariant(l, false, QString(), 0, false); + } + + { + MyMovable d; + playWithVariant(d, false, QString(), 0, false); + playWithVariant(&d, false, QString(), 0, false); + QList<MyMovable> l; + playWithVariant(l, false, QString(), 0, false); + l << MyMovable() << d; + playWithVariant(l, false, QString(), 0, false); + } + QCOMPARE(MyMovable::count, 0); + + { + playWithVariant(12.12, false, "12.12", 12.12, true); + playWithVariant(12.12f, false, "12.12", 12.12f, true); + playWithVariant('a', false, "a", 'a', true); + playWithVariant((unsigned char)('a'), false, "a", 'a', true); + playWithVariant( quint8(12), false, "\xc", 12, true); + playWithVariant( qint8(13), false, "\xd", 13, true); + playWithVariant(quint16(14), false, "14", 14, true); + playWithVariant( qint16(15), false, "15", 15, true); + playWithVariant(quint32(16), false, "16", 16, true); + playWithVariant( qint32(17), false, "17", 17, true); + playWithVariant(quint64(18), false, "18", 18, true); + playWithVariant( qint64(19), false, "19", 19, true); + playWithVariant( qint8(-12), false, "\xf4", -12, true); + playWithVariant( qint16(-13), false, "-13", -13, true); + playWithVariant( qint32(-14), false, "-14", -14, true); + playWithVariant( qint64(-15), false, "-15", -15, true); + playWithVariant(quint64(0), false, "0", 0, false); + playWithVariant( true, false, "true", 1, true); + playWithVariant( false, false, "false", 0, false); + + playWithVariant(QString("hello\n"), false, "hello\n", 0, true); + } + + { + int i = 5; + playWithVariant((void *)(&i), false, QString(), 0, false); + playWithVariant((void *)(0), false, QString(), 0, false); + } + + { + QVariant v1 = QVariant::fromValue(5); + QVariant v2 = QVariant::fromValue(5.0); + QVariant v3 = QVariant::fromValue(quint16(5)); + QVariant v4 = 5; + QVariant v5 = QVariant::fromValue(MyPrimitive()); + QVariant v6 = QVariant::fromValue(MyMovable()); + QVariant v7 = QVariant::fromValue(MyData()); + playWithVariant(v1, false, "5", 5, true); + playWithVariant(v2, false, "5", 5, true); + playWithVariant(v3, false, "5", 5, true); + playWithVariant(v4, false, "5", 5, true); + + playWithVariant(v5, false, QString(), 0, false); + } +} + + +void tst_QVariant::variantInVariant() +{ + QVariant var1 = 5; + QCOMPARE(var1.type(), QVariant::Int); + QVariant var2 = var1; + QCOMPARE(var2, var1); + QCOMPARE(var2.type(), QVariant::Int); + QVariant var3 = QVariant::fromValue(var1); + QCOMPARE(var3, var1); + QCOMPARE(var3.type(), QVariant::Int); + QVariant var4 = qvariant_cast<QVariant>(var1); + QCOMPARE(var4, var1); + QCOMPARE(var4.type(), QVariant::Int); + QVariant var5; + var5 = var1; + QCOMPARE(var5, var1); + QCOMPARE(var5.type(), QVariant::Int); + QVariant var6; + var6.setValue(var1); + QCOMPARE(var6, var1); + QCOMPARE(var6.type(), QVariant::Int); + + QCOMPARE(QVariant::fromValue(var1), QVariant::fromValue(var2)); + QCOMPARE(qvariant_cast<QVariant>(var3), QVariant::fromValue(var4)); + QCOMPARE(qvariant_cast<QVariant>(var5), qvariant_cast<QVariant>(var6)); + + QString str("hello"); + QVariant var8 = qvariant_cast<QVariant>(QVariant::fromValue(QVariant::fromValue(str))); + QCOMPARE((int)var8.type(), (int)QVariant::String); + QCOMPARE(qvariant_cast<QString>(QVariant(qvariant_cast<QVariant>(var8))), str); + + QVariant var9(qMetaTypeId<QVariant>(), &var1); + QCOMPARE(var9.userType(), qMetaTypeId<QVariant>()); + QCOMPARE(qvariant_cast<QVariant>(var9), var1); +} + QTEST_MAIN(tst_QVariant) #include "tst_qvariant.moc" diff --git a/tests/auto/qwidget/tst_qwidget.cpp b/tests/auto/qwidget/tst_qwidget.cpp index 5630370..3d801cc 100644 --- a/tests/auto/qwidget/tst_qwidget.cpp +++ b/tests/auto/qwidget/tst_qwidget.cpp @@ -332,6 +332,7 @@ private slots: void doubleRepaint(); #ifndef Q_WS_MAC void resizeInPaintEvent(); + void opaqueChildren(); #endif void setMaskInResizeEvent(); @@ -6319,6 +6320,7 @@ void tst_QWidget::compatibilityChildInsertedEvents() widget.show(); expected = EventRecorder::EventList() + << qMakePair(&widget, QEvent::WinIdChange) << qMakePair(&widget, QEvent::Polish) << qMakePair(&widget, QEvent::Move) << qMakePair(&widget, QEvent::Resize) @@ -6404,6 +6406,7 @@ void tst_QWidget::compatibilityChildInsertedEvents() widget.show(); expected = EventRecorder::EventList() + << qMakePair(&widget, QEvent::WinIdChange) << qMakePair(&widget, QEvent::Polish) #ifdef QT_HAS_QT3SUPPORT << qMakePair(&widget, QEvent::ChildInserted) @@ -6501,6 +6504,7 @@ void tst_QWidget::compatibilityChildInsertedEvents() widget.show(); expected = EventRecorder::EventList() + << qMakePair(&widget, QEvent::WinIdChange) << qMakePair(&widget, QEvent::Polish) #ifdef QT_HAS_QT3SUPPORT << qMakePair(&widget, QEvent::ChildInserted) @@ -8272,6 +8276,47 @@ void tst_QWidget::resizeInPaintEvent() // Make sure the resize triggers another update. QTRY_COMPARE(widget.numPaintEvents, 1); } + +void tst_QWidget::opaqueChildren() +{ + QWidget widget; + widget.resize(200, 200); + + QWidget child(&widget); + child.setGeometry(-700, -700, 200, 200); + + QWidget grandChild(&child); + grandChild.resize(200, 200); + + QWidget greatGrandChild(&grandChild); + greatGrandChild.setGeometry(50, 50, 200, 200); + greatGrandChild.setPalette(Qt::red); + greatGrandChild.setAutoFillBackground(true); // Opaque child widget. + + widget.show(); +#ifdef Q_WS_X11 + qt_x11_wait_for_window_manager(&widget); +#endif + QTest::qWait(100); + + // Child, grandChild and greatGrandChild are outside the ancestor clip. + QRegion expectedOpaqueRegion(50, 50, 150, 150); + QCOMPARE(qt_widget_private(&grandChild)->getOpaqueChildren(), expectedOpaqueRegion); + + // Now they are all inside the ancestor clip. + child.setGeometry(50, 50, 150, 150); + QCOMPARE(qt_widget_private(&grandChild)->getOpaqueChildren(), expectedOpaqueRegion); + + // Set mask on greatGrandChild. + const QRegion mask(10, 10, 50, 50); + greatGrandChild.setMask(mask); + expectedOpaqueRegion &= mask.translated(50, 50); + QCOMPARE(qt_widget_private(&grandChild)->getOpaqueChildren(), expectedOpaqueRegion); + + // Make greatGrandChild "transparent". + greatGrandChild.setAutoFillBackground(false); + QCOMPARE(qt_widget_private(&grandChild)->getOpaqueChildren(), QRegion()); +} #endif diff --git a/tests/manual/gestures/graphicsview/main.cpp b/tests/manual/gestures/graphicsview/main.cpp index e9065eb..de92afe 100644 --- a/tests/manual/gestures/graphicsview/main.cpp +++ b/tests/manual/gestures/graphicsview/main.cpp @@ -152,8 +152,8 @@ private: MainWindow::MainWindow() { - (void)qApp->registerGestureRecognizer(new MousePanGestureRecognizer); - ThreeFingerSlideGesture::Type = qApp->registerGestureRecognizer(new ThreeFingerSlideGestureRecognizer); + (void)QApplication::registerGestureRecognizer(new MousePanGestureRecognizer); + ThreeFingerSlideGesture::Type = QApplication::registerGestureRecognizer(new ThreeFingerSlideGestureRecognizer); tabWidget = new QTabWidget; diff --git a/tests/manual/gestures/scrollarea/mousepangesturerecognizer.cpp b/tests/manual/gestures/scrollarea/mousepangesturerecognizer.cpp index 5f94dbc..63d3e76 100644 --- a/tests/manual/gestures/scrollarea/mousepangesturerecognizer.cpp +++ b/tests/manual/gestures/scrollarea/mousepangesturerecognizer.cpp @@ -49,7 +49,7 @@ MousePanGestureRecognizer::MousePanGestureRecognizer() { } -QGesture* MousePanGestureRecognizer::createGesture(QObject *) const +QGesture* MousePanGestureRecognizer::createGesture(QObject *) { return new QPanGesture; } diff --git a/tests/manual/gestures/scrollarea/mousepangesturerecognizer.h b/tests/manual/gestures/scrollarea/mousepangesturerecognizer.h index c92d477..b062fd0 100644 --- a/tests/manual/gestures/scrollarea/mousepangesturerecognizer.h +++ b/tests/manual/gestures/scrollarea/mousepangesturerecognizer.h @@ -49,7 +49,7 @@ class MousePanGestureRecognizer : public QGestureRecognizer public: MousePanGestureRecognizer(); - QGesture* createGesture(QObject *target) const; + QGesture* createGesture(QObject *target); QGestureRecognizer::Result filterEvent(QGesture *state, QObject *watched, QEvent *event); void reset(QGesture *state); }; diff --git a/tests/manual/textrendering/textperformance/main.cpp b/tests/manual/textrendering/textperformance/main.cpp new file mode 100644 index 0000000..47e0a88 --- /dev/null +++ b/tests/manual/textrendering/textperformance/main.cpp @@ -0,0 +1,231 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QtGui> + +static const int lastMeasurementsCount = 50; + +class FontBlaster: public QWidget +{ + Q_OBJECT + +public: + FontBlaster(QWidget *parent = 0) + : QWidget(parent) + , m_currentMode(0) + { + setFocusPolicy(Qt::StrongFocus); + } + + void paintEvent(QPaintEvent *event) + { + Q_UNUSED(event); + QPainter p(this); + + if (!m_timer.isNull()) + m_lastMeasurements.append(m_timer.elapsed()); + m_timer.start(); + + p.save(); + m_modes[m_currentMode].function(p, size()); + p.restore(); + + const QFontMetrics fm = p.fontMetrics(); + p.setOpacity(0.7); + p.fillRect(0, 0, width(), fm.height(), Qt::gray); + p.fillRect(0, height() - fm.height(), width(), height(), Qt::gray); + p.setOpacity(1); + p.setPen(palette().color(QPalette::Text)); + p.drawText(2, fm.ascent(), m_modes[m_currentMode].name); + + if (m_lastMeasurements.count() == lastMeasurementsCount) { + m_lastMeasurements.removeFirst(); + int lastMsecsSum = 0; + foreach(const int measurement, m_lastMeasurements) + lastMsecsSum += measurement; + + p.drawText(2, height() - fm.descent(), + QLatin1String("Fps: ") + + QString::number(1000 / ((qreal)lastMsecsSum / lastMeasurementsCount), 'f', 1) + ); + } + + QTimer::singleShot(0, this, SLOT(repaint())); + } + + /* + Creating all kinds of size/weight/italic combinations, stress testing + the glyph cache. + Also: painting with different opacities, stress testing blitting. + */ + static void paintDifferentFontStyles(QPainter &p, const QSize &size) + { + static const QString text = QLatin1String("Qt rocks!!!"); + static const int textsPerPaint = 30; + for (int i = 0; i < textsPerPaint; i++) { + const int fontSize = 4 + (qrand() % 5); + const int fontWeight = (qrand() % 2) == 1 ? QFont::Normal : QFont::Bold; + const bool fontItalic = (qrand() % 2) == 1; + const QFont font("Default", fontSize, fontWeight, fontItalic); + p.setFont(font); + p.setPen(QColor::fromHsv(qrand() % 359, 155 + qrand() % 100, + 155 + qrand() % 100, 100 + qrand() % 155)); + const QSize textSize(p.fontMetrics().boundingRect(text).size()); + const QPoint position( + -textSize.width() / 2 + (qrand() % size.width()), + textSize.height() / 2 + (qrand() % size.height())); + p.drawText(position, text); + } + } + + /* + Drawing a multiline latin text, stress testing the text layout system. + */ + static void paintLongLatinText(QPainter &p, const QSize &size) + { + static const char* const pieces[] = { + "lorem ipsum", + "dolor sit amet", + "consectetuer", + "sed diam nonumy", + "eos et accusam", + "sea takimata sanctus" + }; + static const int piecesCount = (int)(sizeof pieces / sizeof pieces[0]); + static const int piecesPerPaint = 30; + + QString text; + for (int i = 0; i < piecesPerPaint; ++i) { + QString piece = QLatin1String(pieces[qrand() % piecesCount]); + if (i == 0 || qrand() % 2) { + // Make this piece the beginning of a new sentence. + piece[0] = piece[0].toUpper(); + if (i > 0) + piece.prepend(QLatin1String(". ")); + } else { + piece.prepend(QLatin1String(", ")); + } + text.append(piece); + } + text.append(QLatin1Char('.')); + + p.drawText(QRectF(QPointF(0, 0), QSizeF(size)), + Qt::AlignTop | Qt::AlignAbsolute | Qt::TextWordWrap, text); + } + + /* + Drawing one text with several snippets of different writingSystems, stress + testing the font merging in the font database. + */ + static void paintInternationalText(QPainter &p, const QSize &size) + { + static QStringList samples; + if (samples.isEmpty()) { + foreach (const QFontDatabase::WritingSystem system, QFontDatabase().writingSystems()) + if (system != QFontDatabase::Ogham && system != QFontDatabase::Runic) + samples.append(QFontDatabase::writingSystemSample(system)); + } + static const int systemsPerPaint = 65; + QString text; + for (int i = 0; i < systemsPerPaint; i++) { + if (i > 0) + text.append(QLatin1Char(' ')); + text.append(samples.at(qrand() % samples.count())); + } + p.drawText(QRectF(QPointF(0, 0), QSizeF(size)), + Qt::AlignTop | Qt::AlignAbsolute | Qt::TextWordWrap, text); + } + +protected: + void nextMode() + { + m_currentMode = (m_currentMode + 1) % m_modesCount; + m_lastMeasurements.clear(); + } + + void keyPressEvent(QKeyEvent *event) + { + Q_UNUSED(event); + nextMode(); + } + + void mousePressEvent(QMouseEvent *event) + { + Q_UNUSED(event); + nextMode(); + } + +private: + static const struct mode { + QString name; + void (*function)(QPainter &, const QSize&); + } m_modes[]; + static const int m_modesCount; + + int m_currentMode; + QList<int> m_lastMeasurements; + QTime m_timer; +}; + +const struct FontBlaster::mode FontBlaster::m_modes[] = { + { QLatin1String("Qt rocks!!!"), FontBlaster::paintDifferentFontStyles }, + { QLatin1String("Latin"), FontBlaster::paintLongLatinText }, + { QLatin1String("International"), FontBlaster::paintInternationalText } +}; + +const int FontBlaster::m_modesCount = + (int)(sizeof m_modes / sizeof m_modes[0]); + +int main(int argc, char *argv[]) +{ + QApplication a(argc, argv); + + FontBlaster dlg; +#ifdef Q_OS_SYMBIAN + dlg.showFullScreen(); +#else + dlg.show(); +#endif + + return a.exec(); +} + +#include "main.moc" diff --git a/tests/manual/textrendering/textperformance/textperformance.pro b/tests/manual/textrendering/textperformance/textperformance.pro new file mode 100644 index 0000000..bba41b9 --- /dev/null +++ b/tests/manual/textrendering/textperformance/textperformance.pro @@ -0,0 +1 @@ +SOURCES = main.cpp diff --git a/tools/assistant/tools/assistant/assistant.qch b/tools/assistant/tools/assistant/assistant.qch Binary files differindex 3e66bd9..78fe9f3 100644 --- a/tools/assistant/tools/assistant/assistant.qch +++ b/tools/assistant/tools/assistant/assistant.qch diff --git a/tools/assistant/tools/assistant/centralwidget.cpp b/tools/assistant/tools/assistant/centralwidget.cpp index 04739d4..2722b2f 100644 --- a/tools/assistant/tools/assistant/centralwidget.cpp +++ b/tools/assistant/tools/assistant/centralwidget.cpp @@ -230,6 +230,7 @@ CentralWidget::CentralWidget(QHelpEngine *engine, MainWindow *parent) #endif tabWidget = new QTabWidget(this); + tabWidget->setDocumentMode(true); connect(tabWidget, SIGNAL(currentChanged(int)), this, SLOT(currentPageChanged(int))); diff --git a/tools/assistant/translations/translations.pro b/tools/assistant/translations/translations.pro index 6ff1fc9..95501ab 100644 --- a/tools/assistant/translations/translations.pro +++ b/tools/assistant/translations/translations.pro @@ -44,6 +44,7 @@ TR_DIR = $$PWD/../../../translations TRANSLATIONS = \ $$TR_DIR/assistant_da.ts \ $$TR_DIR/assistant_de.ts \ + $$TR_DIR/assistant_fr.ts \ $$TR_DIR/assistant_ja.ts \ $$TR_DIR/assistant_pl.ts \ $$TR_DIR/assistant_ru.ts \ diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp index f75b51b..dd3823b 100644 --- a/tools/configure/configureapp.cpp +++ b/tools/configure/configureapp.cpp @@ -1448,10 +1448,10 @@ void Configure::applySpecSpecifics() dictionary[ "IWMMXT" ] = "no"; dictionary[ "CE_CRT" ] = "no"; dictionary[ "DIRECT3D" ] = "no"; - dictionary[ "WEBKIT" ] = "no"; + dictionary[ "WEBKIT" ] = "yes"; dictionary[ "ASSISTANT_WEBKIT" ] = "no"; dictionary[ "PHONON" ] = "yes"; - dictionary[ "XMLPATTERNS" ] = "no"; + dictionary[ "XMLPATTERNS" ] = "yes"; dictionary[ "QT_GLIB" ] = "no"; dictionary[ "S60" ] = "yes"; // iconv makes makes apps start and run ridiculously slowly in symbian emulator (HW not tested) @@ -2438,14 +2438,17 @@ void Configure::generateOutputVars() if ( dictionary["OPENGL_ES_CM"] == "yes" ) { qtConfig += "opengles1"; + qtConfig += "egl"; } if ( dictionary["OPENGL_ES_2"] == "yes" ) { qtConfig += "opengles2"; + qtConfig += "egl"; } if ( dictionary["OPENGL_ES_CL"] == "yes" ) { qtConfig += "opengles1cl"; + qtConfig += "egl"; } if ( dictionary["OPENVG"] == "yes" ) { @@ -2780,17 +2783,6 @@ QString Configure::addDefine(QString def) } #if !defined(EVAL) -// ### This should be removed once Qt for S60 is out. -static void applyTemporarySymbianFlags(QStringList &qconfigList) -{ - qconfigList += "QT_NO_CONCURRENT"; - qconfigList += "QT_NO_QFUTURE"; - // This is removed because it uses UNIX signals which are not implemented yet - qconfigList += "QT_NO_CRASHHANDLER"; - qconfigList += "QT_NO_PRINTER"; - qconfigList += "QT_NO_SYSTEMTRAYICON"; -} - void Configure::generateConfigfiles() { QDir(buildPath).mkpath("src/corelib/global"); @@ -2913,9 +2905,14 @@ void Configure::generateConfigfiles() if (dictionary["GRAPHICS_SYSTEM"] == "openvg") qconfigList += "QT_GRAPHICSSYSTEM_OPENVG"; if (dictionary["GRAPHICS_SYSTEM"] == "opengl") qconfigList += "QT_GRAPHICSSYSTEM_OPENGL"; if (dictionary["GRAPHICS_SYSTEM"] == "raster") qconfigList += "QT_GRAPHICSSYSTEM_RASTER"; - // ### This block should be removed once Qt for S60 is out. + if (dictionary.contains("XQMAKESPEC") && dictionary["XQMAKESPEC"].startsWith("symbian")) { - applyTemporarySymbianFlags(qconfigList); + // These features are not ported to Symbian (yet) + qconfigList += "QT_NO_CONCURRENT"; + qconfigList += "QT_NO_QFUTURE"; + qconfigList += "QT_NO_CRASHHANDLER"; + qconfigList += "QT_NO_PRINTER"; + qconfigList += "QT_NO_SYSTEMTRAYICON"; } qconfigList.sort(); diff --git a/tools/linguist/lupdate/cpp.cpp b/tools/linguist/lupdate/cpp.cpp index 6374912..4d89156 100644 --- a/tools/linguist/lupdate/cpp.cpp +++ b/tools/linguist/lupdate/cpp.cpp @@ -1896,25 +1896,26 @@ void CppParser::parseInternal(ConversionData &cd, QSet<QString> &inclusions) prospectiveContext.clear(); } break; - case Tok_Comment: + case Tok_Comment: { if (!tor) goto case_default; - if (yyWord.at(0) == QLatin1Char(':') && yyWord.at(1).isSpace()) { + const QChar *ptr = yyWord.unicode(); + if (*ptr == QLatin1Char(':') && ptr[1].isSpace()) { yyWord.remove(0, 2); extracomment += yyWord; extracomment.detach(); - } else if (yyWord.at(0) == QLatin1Char('=') && yyWord.at(1).isSpace()) { + } else if (*ptr == QLatin1Char('=') && ptr[1].isSpace()) { yyWord.remove(0, 2); msgid = yyWord.simplified(); msgid.detach(); - } else if (yyWord.at(0) == QLatin1Char('~') && yyWord.at(1).isSpace()) { + } else if (*ptr == QLatin1Char('~') && ptr[1].isSpace()) { yyWord.remove(0, 2); text = yyWord.trimmed(); int k = text.indexOf(QLatin1Char(' ')); if (k > -1) extra.insert(text.left(k), text.mid(k + 1).trimmed()); text.clear(); - } else if (yyWord.at(0) == QLatin1Char('%') && yyWord.at(1).isSpace()) { + } else if (*ptr == QLatin1Char('%') && ptr[1].isSpace()) { sourcetext.reserve(sourcetext.length() + yyWord.length() - 2); ushort *ptr = (ushort *)sourcetext.data() + sourcetext.length(); int p = 2, c; @@ -1977,6 +1978,7 @@ void CppParser::parseInternal(ConversionData &cd, QSet<QString> &inclusions) } yyTok = getToken(); break; + } case Tok_Arrow: yyTok = getToken(); if (yyTok == Tok_tr || yyTok == Tok_trUtf8) diff --git a/tools/linguist/phrasebooks/french.qph b/tools/linguist/phrasebooks/french.qph index d38da5a..9440345 100644 --- a/tools/linguist/phrasebooks/french.qph +++ b/tools/linguist/phrasebooks/french.qph @@ -1326,4 +1326,24 @@ <source>Close All Except %1</source> <target>Fermer tout sauf %1</target> </phrase> +<phrase> + <source>Remove</source> + <target>Suppression</target> +</phrase> +<phrase> + <source>About...</source> + <target>À propos…</target> +</phrase> +<phrase> + <source>Minimize</source> + <target>Minimiser</target> +</phrase> +<phrase> + <source>Remove</source> + <target>Supprimer</target> +</phrase> +<phrase> + <source>Select All</source> + <target>Sélectionner tout</target> +</phrase> </QPH> diff --git a/translations/assistant_fr.ts b/translations/assistant_fr.ts new file mode 100644 index 0000000..91fcc1a --- /dev/null +++ b/translations/assistant_fr.ts @@ -0,0 +1,1080 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0" language="fr_FR"> +<context> + <name>AboutDialog</name> + <message> + <location filename="../tools/assistant/tools/assistant/aboutdialog.cpp" line="110"/> + <source>&Close</source> + <translation>&Fermer</translation> + </message> +</context> +<context> + <name>AboutLabel</name> + <message> + <location filename="../tools/assistant/tools/assistant/aboutdialog.cpp" line="96"/> + <source>Warning</source> + <translation>Avertissement</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/aboutdialog.cpp" line="97"/> + <source>Unable to launch external application. +</source> + <translation>Impossible d'ouvrir l'application externe. +</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/aboutdialog.cpp" line="98"/> + <source>OK</source> + <translation>OK</translation> + </message> +</context> +<context> + <name>BookmarkDialog</name> + <message> + <location filename="../tools/assistant/tools/assistant/bookmarkdialog.ui" line="19"/> + <source>Add Bookmark</source> + <translation>Ajouter un signet</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/bookmarkdialog.ui" line="29"/> + <source>Bookmark:</source> + <translation>Signet :</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/bookmarkdialog.ui" line="36"/> + <source>Add in Folder:</source> + <translation>Ajouter dans le dossier :</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/bookmarkdialog.ui" line="65"/> + <source>+</source> + <translation>+</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/bookmarkdialog.ui" line="93"/> + <source>New Folder</source> + <translation>Nouveau dossier</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="184"/> + <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="202"/> + <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="241"/> + <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="259"/> + <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="289"/> + <source>Bookmarks</source> + <translation>Signets</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="228"/> + <source>Delete Folder</source> + <translation>Supprimer le dossier</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="229"/> + <source>Rename Folder</source> + <translation>Renommer le dossier</translation> + </message> +</context> +<context> + <name>BookmarkManager</name> + <message> + <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="663"/> + <source>Bookmarks</source> + <translation>Signets</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="700"/> + <source>Remove</source> + <translation>Suppression</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="701"/> + <source>You are going to delete a Folder, this will also<br>remove it's content. Are you sure to continue?</source> + <translation>Vous allez supprimer un dossier, ceci va aussi<br>supprimer son contenu. Voulez-vous continuer?</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="844"/> + <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="853"/> + <source>New Folder</source> + <translation>Nouveau dossier</translation> + </message> +</context> +<context> + <name>BookmarkWidget</name> + <message> + <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="391"/> + <source>Delete Folder</source> + <translation>Supprimer le dossier</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="392"/> + <source>Rename Folder</source> + <translation>Renommer le dossier</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="394"/> + <source>Show Bookmark</source> + <translation>Afficher le signet</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="395"/> + <source>Show Bookmark in New Tab</source> + <translation>Afficher le signet dans un nouvel onglet</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="398"/> + <source>Delete Bookmark</source> + <translation>Supprimer le signet</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="399"/> + <source>Rename Bookmark</source> + <translation>Renommer le signet</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="437"/> + <source>Filter:</source> + <translation>Filtre :</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="461"/> + <source>Add</source> + <translation>Ajouter</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="470"/> + <source>Remove</source> + <translation>Retirer</translation> + </message> +</context> +<context> + <name>CentralWidget</name> + <message> + <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="238"/> + <source>Add new page</source> + <translation>Créer une nouvelle page</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="247"/> + <source>Close current page</source> + <translation>Fermer la page courante</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="559"/> + <source>Print Document</source> + <translation>Imprimer le document</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="707"/> + <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="709"/> + <source>unknown</source> + <translation>inconnu</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="802"/> + <source>Add New Page</source> + <translation>Créer une nouvelle page</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="805"/> + <source>Close This Page</source> + <translation>Fermer cette page</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="808"/> + <source>Close Other Pages</source> + <translation>Fermer les autres pages</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="813"/> + <source>Add Bookmark for this Page...</source> + <translation>Ajouter un signet pour cette page...</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="1068"/> + <source>Search</source> + <translation>Recherche</translation> + </message> +</context> +<context> + <name>ContentWindow</name> + <message> + <location filename="../tools/assistant/tools/assistant/contentwindow.cpp" line="158"/> + <source>Open Link</source> + <translation>Ouvrir le lien</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/contentwindow.cpp" line="159"/> + <source>Open Link in New Tab</source> + <translation>Ouvrir le lien dans un nouvel onglet</translation> + </message> +</context> +<context> + <name>FilterNameDialogClass</name> + <message> + <location filename="../tools/assistant/tools/assistant/filternamedialog.ui" line="13"/> + <source>Add Filter Name</source> + <translation>Ajouter un filtre</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/filternamedialog.ui" line="25"/> + <source>Filter Name:</source> + <translation>Nom du filtre :</translation> + </message> +</context> +<context> + <name>FindWidget</name> + <message> + <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="113"/> + <source>Previous</source> + <translation>Précédent</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="117"/> + <source>Next</source> + <translation>Suivant</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="121"/> + <source>Case Sensitive</source> + <translation>Sensible à la casse</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="124"/> + <source>Whole words</source> + <translation>Mots complets</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="136"/> + <source><img src=":/trolltech/assistant/images/wrap.png">&nbsp;Search wrapped</source> + <translation><img src=":/trolltech/assistant/images/wrap.png">&nbsp;Recherche à partir du début</translation> + </message> +</context> +<context> + <name>FontPanel</name> + <message> + <location filename="../tools/shared/fontpanel/fontpanel.cpp" line="63"/> + <source>Font</source> + <translation>Police</translation> + </message> + <message> + <location filename="../tools/shared/fontpanel/fontpanel.cpp" line="74"/> + <source>&Writing system</source> + <translation>&Système d'écriture</translation> + </message> + <message> + <location filename="../tools/shared/fontpanel/fontpanel.cpp" line="77"/> + <source>&Family</source> + <translation>&Famille</translation> + </message> + <message> + <location filename="../tools/shared/fontpanel/fontpanel.cpp" line="81"/> + <source>&Style</source> + <translation>&Style</translation> + </message> + <message> + <location filename="../tools/shared/fontpanel/fontpanel.cpp" line="85"/> + <source>&Point size</source> + <translation>&Taille en points</translation> + </message> +</context> +<context> + <name>HelpViewer</name> + <message> + <location filename="../tools/assistant/tools/assistant/helpviewer.cpp" line="284"/> + <source>Open Link in New Tab</source> + <translation>Ouvrir le lien dans un nouvel onglet</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/helpviewer.cpp" line="431"/> + <source><title>Error 404...</title><div align="center"><br><br><h1>The page could not be found</h1><br><h3>'%1'</h3></div></source> + <translation><title>Erreur 404...</title><div align="center"><br><br><h1>La page n'a pas pu être trouvée</h1><br><h3>'%1'</h3></div></translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/helpviewer.cpp" line="492"/> + <source>Help</source> + <translation>Aide</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/helpviewer.cpp" line="493"/> + <source>Unable to launch external application. +</source> + <translation>Impossible de lancer l'application externe. +</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/helpviewer.cpp" line="493"/> + <source>OK</source> + <translation>OK</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/helpviewer.cpp" line="556"/> + <source>Copy &Link Location</source> + <translation>Copier l'&adresse cible</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/helpviewer.cpp" line="559"/> + <source>Open Link in New Tab Ctrl+LMB</source> + <translatorcomment>LMB? ← ouais exactement pareil...</translatorcomment> + <translation>Ouvrir dans un nouvel onglet Ctrl+clic gauche</translation> + </message> +</context> +<context> + <name>IndexWindow</name> + <message> + <location filename="../tools/assistant/tools/assistant/indexwindow.cpp" line="66"/> + <source>&Look for:</source> + <translation>&Rechercher :</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/indexwindow.cpp" line="134"/> + <source>Open Link</source> + <translation>Ouvrir le lien</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/indexwindow.cpp" line="135"/> + <source>Open Link in New Tab</source> + <translation>Ouvrir le lien dans un nouvel onglet</translation> + </message> +</context> +<context> + <name>InstallDialog</name> + <message> + <location filename="../tools/assistant/tools/assistant/installdialog.ui" line="13"/> + <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="76"/> + <source>Install Documentation</source> + <translation>Installer la documentation</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/installdialog.ui" line="19"/> + <source>Available Documentation:</source> + <translation>Documentation disponible :</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/installdialog.ui" line="29"/> + <source>Install</source> + <translation>Installer</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/installdialog.ui" line="36"/> + <source>Cancel</source> + <translation>Annuler</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/installdialog.ui" line="43"/> + <source>Close</source> + <translation>Fermer</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/installdialog.ui" line="63"/> + <source>Installation Path:</source> + <translation>Chemin d'installation :</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/installdialog.ui" line="73"/> + <source>...</source> + <translation>…</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="106"/> + <source>Downloading documentation info...</source> + <translation>Téléchargement des informations de la documentation…</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="154"/> + <source>Download canceled.</source> + <translation>Téléchargement annulé.</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="180"/> + <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="258"/> + <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="285"/> + <source>Done.</source> + <translation>Terminé.</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="195"/> + <source>The file %1 already exists. Do you want to overwrite it?</source> + <translation>Le fichier %1 existe déjà. Voulez-vous l'écraser?</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="206"/> + <source>Unable to save the file %1: %2.</source> + <translation>Impossible de sauver le fichier %1 : %2.</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="214"/> + <source>Downloading %1...</source> + <translation>Téléchargement de %1 en cours…</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="233"/> + <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="275"/> + <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="313"/> + <source>Download failed: %1.</source> + <translation>Échec du téléchargement : %1.</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="243"/> + <source>Documentation info file is corrupt!</source> + <translation>Le fichier d'information de documentation est corrompu!</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="280"/> + <source>Download failed: Downloaded file is corrupted.</source> + <translation>Échec du téléchargement : le fichier téléchargé est corrompu.</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="282"/> + <source>Installing documentation %1...</source> + <translation>Installation de la documentation %1…</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="304"/> + <source>Error while installing documentation: +%1</source> + <translation>Erreur durant l'installation de la documentation : +%1</translation> + </message> +</context> +<context> + <name>MainWindow</name> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="110"/> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="501"/> + <source>Index</source> + <translation>Index</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="116"/> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="499"/> + <source>Contents</source> + <translation>Sommaire</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="121"/> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="503"/> + <source>Bookmarks</source> + <translation>Signets</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="133"/> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="348"/> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="860"/> + <source>Qt Assistant</source> + <translation>Qt Assistant</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="316"/> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="321"/> + <source>Unfiltered</source> + <translation>Non-filtré</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="342"/> + <source>Looking for Qt Documentation...</source> + <translation>Recherche la documentation de Qt…</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="426"/> + <source>&File</source> + <translation>&Fichier</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="428"/> + <source>Page Set&up...</source> + <translation>&Mise en page…</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="430"/> + <source>Print Preview...</source> + <translation>Aperçu avant impression…</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="433"/> + <source>&Print...</source> + <translation>&Imprimer…</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="440"/> + <source>New &Tab</source> + <translation>Nouvel ongle&t</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="443"/> + <source>&Close Tab</source> + <translation>&Fermer l'onglet</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="447"/> + <source>&Quit</source> + <translation>&Quitter</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="451"/> + <source>&Edit</source> + <translation>&Édition</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="452"/> + <source>&Copy selected Text</source> + <translation>&Copier le texte selectionné</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="460"/> + <source>&Find in Text...</source> + <translation>&Trouver dans le texte…</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="466"/> + <source>Find &Next</source> + <translation>Rechercher le suiva&nt</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="470"/> + <source>Find &Previous</source> + <translation>Rechercher le &précédent</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="475"/> + <source>Preferences...</source> + <translation>Préférences…</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="478"/> + <source>&View</source> + <translation>&Affichage</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="479"/> + <source>Zoom &in</source> + <translation>Zoom &avant</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="485"/> + <source>Zoom &out</source> + <translation>Zoom a&rrière</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="491"/> + <source>Normal &Size</source> + <translation>&Taille normale</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="495"/> + <source>Ctrl+0</source> + <translation>Ctrl+0</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="500"/> + <source>ALT+C</source> + <translation>ALT+C</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="502"/> + <source>ALT+I</source> + <translation>ALT+I</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="504"/> + <source>ALT+O</source> + <translation>ALT+O</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="505"/> + <source>Search</source> + <translation>Recherche</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="506"/> + <source>ALT+S</source> + <translation>ALT+S</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="508"/> + <source>&Go</source> + <translation>&Aller</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="509"/> + <source>&Home</source> + <translation>&Accueil</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="510"/> + <source>ALT+Home</source> + <translation>ALT+Home</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="513"/> + <source>&Back</source> + <translation>&Précédent</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="518"/> + <source>&Forward</source> + <translation>&Suivant</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="524"/> + <source>Sync with Table of Contents</source> + <translation>Synchroniser la table des matières</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="531"/> + <source>Next Page</source> + <translation>Page suivante</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="532"/> + <source>Ctrl+Alt+Right</source> + <translation>Ctrl+Alt+Right</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="535"/> + <source>Previous Page</source> + <translation>Page précédente</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="536"/> + <source>Ctrl+Alt+Left</source> + <translation>Ctrl+Alt+Left</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="539"/> + <source>&Bookmarks</source> + <translation>&Signets</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="540"/> + <source>Add Bookmark...</source> + <translation>Ajouter un signet…</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="542"/> + <source>CTRL+D</source> + <translation>CTRL+D</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="544"/> + <source>&Help</source> + <translation>&Aide</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="545"/> + <source>About...</source> + <translation>À propos…</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="561"/> + <source>Navigation Toolbar</source> + <translation>Barre d'outils de navigation</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="583"/> + <source>&Window</source> + <translation>&Fenêtre</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="585"/> + <source>Zoom</source> + <translation>Zoom</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="586"/> + <source>Minimize</source> + <translation>Minimiser</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="587"/> + <source>Ctrl+M</source> + <translation>Ctrl+M</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="637"/> + <source>Toolbars</source> + <translation>Barres d'outils</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="652"/> + <source>Filter Toolbar</source> + <translation>Barre d'outils de filtrage</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="654"/> + <source>Filtered by:</source> + <translation>Filtré par :</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="677"/> + <source>Address Toolbar</source> + <translation>Barre d'outils d'adresse</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="681"/> + <source>Address:</source> + <translation>Adresse :</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="795"/> + <source>Could not find the associated content item.</source> + <translatorcomment>what is item in this context? ← same question here</translatorcomment> + <translation>Impossible de trouver l'élément de contenu associé.</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="866"/> + <source>About %1</source> + <translation>À propos de %1</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="980"/> + <source>Updating search index</source> + <translation>Mise à jour de l'index de recherche</translation> + </message> +</context> +<context> + <name>PreferencesDialog</name> + <message> + <location filename="../tools/assistant/tools/assistant/preferencesdialog.cpp" line="259"/> + <location filename="../tools/assistant/tools/assistant/preferencesdialog.cpp" line="302"/> + <source>Add Documentation</source> + <translation>Ajouter de la documentation</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/preferencesdialog.cpp" line="259"/> + <source>Qt Compressed Help Files (*.qch)</source> + <translation>Fichiers d'aide Qt compressés (*.qch)</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/preferencesdialog.cpp" line="288"/> + <source>The namespace %1 is already registered!</source> + <translation>L'espace de nom %1 existe déjà!</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/preferencesdialog.cpp" line="296"/> + <source>The specified file is not a valid Qt Help File!</source> + <translation>Le fichier spécifié n'est pas un fichier d'aide Qt valide!</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/preferencesdialog.cpp" line="319"/> + <source>Remove Documentation</source> + <translation>Supprimer la documentation</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/preferencesdialog.cpp" line="320"/> + <source>Some documents currently opened in Assistant reference the documentation you are attempting to remove. Removing the documentation will close those documents.</source> + <translation>Certains documents ouverts dans Assistant ont des références vers la documentation que vous allez supprimer. Supprimer la documentation fermera ces documents.</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/preferencesdialog.cpp" line="322"/> + <source>Cancel</source> + <translation>Annuler</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/preferencesdialog.cpp" line="323"/> + <source>OK</source> + <translation>OK</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/preferencesdialog.cpp" line="411"/> + <source>Use custom settings</source> + <translation>Utiliser des paramètres personnalisés</translation> + </message> +</context> +<context> + <name>PreferencesDialogClass</name> + <message> + <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui" line="14"/> + <source>Preferences</source> + <translation>Préférences</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui" line="24"/> + <source>Fonts</source> + <translation>Polices</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui" line="38"/> + <source>Font settings:</source> + <translation>Configuration des polices :</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui" line="46"/> + <source>Browser</source> + <translation>Navigateur</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui" line="51"/> + <source>Application</source> + <translation>Application</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui" line="70"/> + <source>Filters</source> + <translation>Filtres</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui" line="76"/> + <source>Filter:</source> + <translation>Filtre :</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui" line="86"/> + <source>Attributes:</source> + <translation>Attributs :</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui" line="97"/> + <source>1</source> + <translation>1</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui" line="105"/> + <source>Add</source> + <translation>Ajouter</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui" line="112"/> + <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui" line="163"/> + <source>Remove</source> + <translation>Supprimer</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui" line="120"/> + <source>Documentation</source> + <translation>Documentation</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui" line="126"/> + <source>Registered Documentation:</source> + <translatorcomment>documentation enregistrée ? ← je préfère référencée pour les deux...</translatorcomment> + <translation>Documentation référencée :</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui" line="156"/> + <source>Add...</source> + <translation>Ajouter…</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui" line="188"/> + <source>Options</source> + <translation>Options</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui" line="206"/> + <source>On help start:</source> + <translation>Au démarrage :</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui" line="220"/> + <source>Show my home page</source> + <translation>Afficher ma page d'accueil</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui" line="225"/> + <source>Show a blank page</source> + <translation>Afficher une page blanche</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui" line="230"/> + <source>Show my tabs from last session</source> + <translation>Afficher mes onglets de la dernière session</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui" line="262"/> + <source>Homepage</source> + <translation>Page d'accueil</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui" line="289"/> + <source>Current Page</source> + <translation>Page courante</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui" line="296"/> + <source>Blank Page</source> + <translation>Page blanche</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui" line="303"/> + <source>Restore to default</source> + <translation>Restaurer les valeurs par défaut</translation> + </message> +</context> +<context> + <name>QObject</name> + <message> + <location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="112"/> + <source>The specified collection file does not exist!</source> + <translation>Le fichier de collection spécifié n'existe pas!</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="116"/> + <source>Missing collection file!</source> + <translation>Fichier de collection manquant!</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="125"/> + <source>Invalid URL!</source> + <translation>URL invalide!</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="129"/> + <source>Missing URL!</source> + <translation>URL manquante!</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="146"/> + <location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="165"/> + <location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="184"/> + <source>Unknown widget: %1</source> + <translation>Widget inconnu : %1</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="150"/> + <location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="169"/> + <location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="188"/> + <source>Missing widget!</source> + <translation>Widget manquant!</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="195"/> + <location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="207"/> + <source>The specified Qt help file does not exist!</source> + <translation>Le fichier d'aide Qt spécifié n'existe pas!</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="200"/> + <location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="212"/> + <source>Missing help file!</source> + <translation>Fichier d'aide manquant!</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="219"/> + <source>Missing filter argument!</source> + <translation>Argument de filtre manquant!</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="231"/> + <source>Unknown option: %1</source> + <translation>Option inconnue : %1</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="261"/> + <location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="263"/> + <source>Qt Assistant</source> + <translation>Qt Assistant</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/main.cpp" line="217"/> + <source>Could not register documentation file +%1 + +Reason: +%2</source> + <translation>Impossible d'enregistrer le fichier de documentation +%1 + +Raison : +%2</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/main.cpp" line="221"/> + <source>Documentation successfully registered.</source> + <translation>Documentation enregistrée avec succès.</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/main.cpp" line="229"/> + <source>Documentation successfully unregistered.</source> + <translation>Documentation retirée avec succès.</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/main.cpp" line="232"/> + <source>Could not unregister documentation file +%1 + +Reason: +%2</source> + <translation>Impossible d'enregistrer le fichier de documentation +%1 + +Raison : +%2</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/main.cpp" line="269"/> + <source>Cannot load sqlite database driver!</source> + <translation>Impossible de charger le driver de la base de données sqlite!</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/main.cpp" line="278"/> + <source>The specified collection file could not be read!</source> + <translation>Le fichier de collection spécifié ne peut pas être lu!</translation> + </message> +</context> +<context> + <name>RemoteControl</name> + <message> + <location filename="../tools/assistant/tools/assistant/remotecontrol.cpp" line="163"/> + <source>Debugging Remote Control</source> + <translation>Débogage du contrôle à distance</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/remotecontrol.cpp" line="164"/> + <source>Received Command: %1 %2</source> + <translation>Commande reçue : %1 %2</translation> + </message> +</context> +<context> + <name>SearchWidget</name> + <message> + <location filename="../tools/assistant/tools/assistant/searchwidget.cpp" line="195"/> + <source>&Copy</source> + <translation>&Copier</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/searchwidget.cpp" line="199"/> + <source>Copy &Link Location</source> + <translation>Copier &l'adresse du lien</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/searchwidget.cpp" line="203"/> + <source>Open Link in New Tab</source> + <translation>Ouvrir le lien dans un nouvel onglet</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/searchwidget.cpp" line="211"/> + <source>Select All</source> + <translation>Sélectionner tout</translation> + </message> +</context> +<context> + <name>TopicChooser</name> + <message> + <location filename="../tools/assistant/tools/assistant/topicchooser.ui" line="16"/> + <source>Choose Topic</source> + <translation>Choisir le domaine</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/topicchooser.ui" line="37"/> + <source>&Topics</source> + <translation>&Domaines</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/topicchooser.ui" line="88"/> + <source>&Display</source> + <translation>&Afficher</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/topicchooser.ui" line="104"/> + <source>&Close</source> + <translation>&Fermer</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/topicchooser.cpp" line="54"/> + <source>Choose a topic for <b>%1</b>:</source> + <translation>Choisir le domaine pour <b>%1</b> :</translation> + </message> +</context> +</TS> diff --git a/translations/designer_pl.ts b/translations/designer_pl.ts index 0c196d8..f9c6dd0 100644 --- a/translations/designer_pl.ts +++ b/translations/designer_pl.ts @@ -6103,7 +6103,7 @@ Klasa: %2</translation> <message> <location line="+1"/> <source>Change toolTip...</source> - <translation>Zmień tekst chmurki...</translation> + <translation>Zmień podpowiedź...</translation> </message> <message> <location line="+1"/> @@ -6909,7 +6909,7 @@ Klasa: %2</translation> <message> <location line="+263"/> <source>Expand all</source> - <translation>Rozszerz wszystkie</translation> + <translation>Rozwiń wszystkie</translation> </message> <message> <location line="+1"/> diff --git a/translations/linguist_pl.ts b/translations/linguist_pl.ts index b59ebc3..cdff54b 100644 --- a/translations/linguist_pl.ts +++ b/translations/linguist_pl.ts @@ -312,7 +312,7 @@ Przyjmie on uniwersalną formę liczby pojedynczej.</translation> <context> <name>LRelease</name> <message numerus="yes"> - <location filename="../tools/linguist/shared/qm.cpp" line="+747"/> + <location filename="../tools/linguist/shared/qm.cpp" line="+748"/> <source>Dropped %n message(s) which had no ID.</source> <translation> <numerusform>Opuszczono %n wyrażenie które nie miało identyfikatora.</numerusform> diff --git a/translations/qt_help_pl.ts b/translations/qt_help_pl.ts index 0e6bbbf..220f70c 100644 --- a/translations/qt_help_pl.ts +++ b/translations/qt_help_pl.ts @@ -32,33 +32,61 @@ <context> <name>QHelpCollectionHandler</name> <message> - <location filename="../tools/assistant/lib/qhelpcollectionhandler.cpp" line="+79"/> <source>The collection file is not set up yet!</source> - <translation>Plik z kolekcją nie jest jeszcze ustawiony!</translation> + <translation type="obsolete">Plik z kolekcją nie jest jeszcze ustawiony!</translation> </message> <message> - <location line="+22"/> + <location filename="../tools/assistant/lib/qhelpcollectionhandler.cpp" line="+79"/> + <source>The collection file '%1' is not set up yet!</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+23"/> <source>Cannot load sqlite database driver!</source> <translation>Nie można załadować sterownika bazy danych sqlite!</translation> </message> <message> <location line="+11"/> - <location line="+48"/> + <location line="+49"/> <source>Cannot open collection file: %1</source> <translation>Nie można otworzyć pliku z kolekcją: %1</translation> </message> <message> - <location line="-39"/> + <location line="-40"/> <source>Cannot create tables in file %1!</source> <translation>Nie można utworzyć tabel w pliku %1!</translation> </message> <message> <location line="+16"/> + <source>The collection file '%1' already exists!</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+148"/> + <source>Unknown filter '%1'!</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+105"/> + <source>Invalid documentation file '%1'!</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+167"/> + <source>Cannot register namespace '%1'!</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+24"/> + <source>Cannot open database '%1' to optimize!</source> + <translation type="unfinished"></translation> + </message> + <message> <source>The specified collection file already exists!</source> - <translation>Podany plik z kolekcją już istnieje!</translation> + <translation type="obsolete">Podany plik z kolekcją już istnieje!</translation> </message> <message> - <location line="+5"/> + <location line="-438"/> <source>Cannot create directory: %1</source> <translation>Nie można utworzyć katalogu: %1</translation> </message> @@ -68,12 +96,11 @@ <translation>Nie można skopiować pliku z kolekcją: %1</translation> </message> <message> - <location line="+119"/> <source>Unknown filter!</source> - <translation>Nieznany filtr!</translation> + <translation type="obsolete">Nieznany filtr!</translation> </message> <message> - <location line="+55"/> + <location line="+174"/> <source>Cannot register filter %1!</source> <translation>Nie można zarejestrować pliku %1!</translation> </message> @@ -83,12 +110,11 @@ <translation>Nie można otworzyć pliku z dokumentacją %1!</translation> </message> <message> - <location line="+6"/> <source>Invalid documentation file!</source> - <translation>Niepoprawny plik z dokumentacją!</translation> + <translation type="obsolete">Niepoprawny plik z dokumentacją!</translation> </message> <message> - <location line="+34"/> + <location line="+40"/> <source>The namespace %1 was not registered!</source> <translation>Przestrzeń nazw %1 nie została zarejestrowana!</translation> </message> @@ -98,14 +124,12 @@ <translation>Przestrzeń nazw %1 już istnieje!</translation> </message> <message> - <location line="+13"/> <source>Cannot register namespace!</source> - <translation>Nie można zarejestrować przestrzeni nazw!</translation> + <translation type="obsolete">Nie można zarejestrować przestrzeni nazw!</translation> </message> <message> - <location line="+24"/> <source>Cannot open database to optimize!</source> - <translation>Nie można otworzyć bazy danych do zoptymalizowania!</translation> + <translation type="obsolete">Nie można otworzyć bazy danych do zoptymalizowania!</translation> </message> </context> <context> diff --git a/translations/qt_pl.ts b/translations/qt_pl.ts index 424fd31..f79ecb0 100644 --- a/translations/qt_pl.ts +++ b/translations/qt_pl.ts @@ -12,7 +12,7 @@ <context> <name>FakeReply</name> <message> - <location filename="../src/3rdparty/webkit/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp" line="+2191"/> + <location filename="../src/3rdparty/webkit/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp" line="+2193"/> <source>Fake error !</source> <translation type="unfinished"></translation> </message> @@ -932,7 +932,7 @@ na <translation>Operacja na gnieździe nieobsługiwana</translation> </message> <message> - <location line="+567"/> + <location line="+580"/> <source>Socket is not connected</source> <translation>Gniazdo nie jest podłączone</translation> </message> @@ -966,6 +966,14 @@ na </message> </context> <context> + <name>QAccessibleButton</name> + <message> + <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="+250"/> + <source>Press</source> + <translation type="unfinished">Wciśnij</translation> + </message> +</context> +<context> <name>QApplication</name> <message> <location filename="../src/gui/accessible/qaccessibleobject.cpp" line="+376"/> @@ -988,7 +996,7 @@ na <translation>Niekompatybilność biblioteki Qt</translation> </message> <message> - <location filename="../src/gui/kernel/qapplication.cpp" line="+2293"/> + <location filename="../src/gui/kernel/qapplication.cpp" line="+2290"/> <source>QT_LAYOUT_DIRECTION</source> <comment>Translate this string to the string 'LTR' in left-to-right languages or to 'RTL' in right-to-left languages (such as Hebrew and Arabic) to get proper widget layout.</comment> <translation>LTR</translation> @@ -1020,7 +1028,7 @@ na <context> <name>QCheckBox</name> <message> - <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="+117"/> + <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="-133"/> <source>Check</source> <translation>Zaznacz</translation> </message> @@ -1276,7 +1284,7 @@ na <context> <name>QDialogButtonBox</name> <message> - <location filename="../src/gui/widgets/qdialogbuttonbox.cpp" line="+654"/> + <location filename="../src/gui/widgets/qdialogbuttonbox.cpp" line="+653"/> <source>Abort</source> <translation>Przerwij</translation> </message> @@ -1472,7 +1480,7 @@ na <translation>Błąd krytyczny:</translation> </message> <message> - <location line="+200"/> + <location line="+201"/> <source>&OK</source> <translation>&OK</translation> </message> @@ -1482,7 +1490,7 @@ na <translation>&Pokaż ten komunikat ponownie</translation> </message> <message> - <location line="-202"/> + <location line="-203"/> <source>Warning:</source> <translation>Ostrzeżenie:</translation> </message> @@ -1851,52 +1859,52 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation> <name>QFontDatabase</name> <message> <location filename="../src/gui/text/qfontdatabase.cpp" line="+102"/> - <location line="+1334"/> + <location line="+1335"/> <source>Normal</source> <translation>Normalny</translation> </message> <message> - <location line="-1331"/> + <location line="-1332"/> <location line="+12"/> - <location line="+1307"/> + <location line="+1308"/> <source>Bold</source> <translation>Pogrubiony</translation> </message> <message> - <location line="-1316"/> - <location line="+1318"/> + <location line="-1317"/> + <location line="+1319"/> <source>Demi Bold</source> <translation>Na wpół pogrubiony</translation> </message> <message> - <location line="-1315"/> + <location line="-1316"/> <location line="+18"/> - <location line="+1293"/> + <location line="+1294"/> <source>Black</source> <translatorcomment>it's about font weight</translatorcomment> <translation>Bardzo gruby</translation> </message> <message> - <location line="-1303"/> + <location line="-1304"/> <source>Demi</source> <translation>Na wpół</translation> </message> <message> <location line="+6"/> - <location line="+1303"/> + <location line="+1304"/> <source>Light</source> <translatorcomment>it's about font weight</translatorcomment> <translation>Cienki</translation> </message> <message> - <location line="-1157"/> - <location line="+1160"/> + <location line="-1158"/> + <location line="+1161"/> <source>Italic</source> <translation>Kursywa</translation> </message> <message> - <location line="-1157"/> - <location line="+1159"/> + <location line="-1158"/> + <location line="+1160"/> <source>Oblique</source> <translation>Pochyły</translation> </message> @@ -2340,7 +2348,7 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation> <translation>Host %1 znaleziony</translation> </message> <message> - <location filename="../src/network/access/qhttp.cpp" line="+2634"/> + <location filename="../src/network/access/qhttp.cpp" line="+2639"/> <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="-4"/> <location filename="../src/qt3support/network/q3http.cpp" line="-453"/> <source>Host %1 not found</source> @@ -2360,7 +2368,7 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation> <translation>Komenda HTTP zakończona błędem</translation> </message> <message> - <location line="+198"/> + <location line="+219"/> <location line="+48"/> <location filename="../src/qt3support/network/q3http.cpp" line="+109"/> <location line="+47"/> @@ -2374,7 +2382,7 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation> <translation>Niepoprawny nagłówek odpowiedzi HTTP</translation> </message> <message> - <location line="-319"/> + <location line="-340"/> <location filename="../src/qt3support/network/q3http.cpp" line="-173"/> <source>No server set to connect to</source> <translation>Brak serwera do podłączenia</translation> @@ -2411,7 +2419,7 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation> <translation>Błędna długość zawartości</translation> </message> <message> - <location line="+183"/> + <location line="+204"/> <source>Unknown authentication method</source> <translation>Nieznana metoda autoryzacji</translation> </message> @@ -2456,7 +2464,7 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation> <translation>Nawiązanie sesji SSL nie powiodło się</translation> </message> <message> - <location filename="../src/network/access/qhttp.cpp" line="-307"/> + <location filename="../src/network/access/qhttp.cpp" line="-328"/> <source>Connection refused (or timed out)</source> <translation>Połączenie odrzucone (przekroczony czas połączenia)</translation> </message> @@ -3105,7 +3113,7 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation> <context> <name>QMenuBar</name> <message> - <location filename="../src/gui/widgets/qmenu_symbian.cpp" line="+404"/> + <location filename="../src/gui/widgets/qmenu_symbian.cpp" line="+410"/> <source>Actions</source> <translation>Akcje</translation> </message> @@ -4361,7 +4369,7 @@ Proszę wybrać inną nazwę pliku.</translation> <message> <location/> <source>Selection</source> - <translation>Wybór</translation> + <translation>Wybrane strony</translation> </message> <message> <location/> @@ -4449,7 +4457,7 @@ Proszę wybrać inną nazwę pliku.</translation> <message> <location/> <source>Location:</source> - <translation>Lokalizacja:</translation> + <translation>Położenie:</translation> </message> <message> <location/> @@ -4505,7 +4513,7 @@ Proszę wybrać inną nazwę pliku.</translation> <translation>Przekroczony czas operacji procesu</translation> </message> <message> - <location filename="../src/corelib/io/qprocess.cpp" line="+851"/> + <location filename="../src/corelib/io/qprocess.cpp" line="+855"/> <location line="+52"/> <location filename="../src/corelib/io/qprocess_win.cpp" line="-211"/> <location line="+50"/> @@ -4726,7 +4734,7 @@ Proszę wybrać inną nazwę pliku.</translation> <message> <location line="+2"/> <source>Location</source> - <translation>Miejsce</translation> + <translation>Położenie</translation> </message> <message> <location line="+2"/> @@ -4967,7 +4975,7 @@ Proszę wybrać inną nazwę pliku.</translation> <message> <location line="+2"/> <source>Location</source> - <translation>Miejsce</translation> + <translation>Położenie</translation> </message> </context> <context> @@ -5847,7 +5855,7 @@ Proszę wybrać inną nazwę pliku.</translation> <translation>Anuluj</translation> </message> <message> - <location line="+152"/> + <location line="+151"/> <source>Exit</source> <translation>Wyjście</translation> </message> @@ -6071,7 +6079,7 @@ Proszę wybrać inną nazwę pliku.</translation> <context> <name>QTextControl</name> <message> - <location filename="../src/gui/text/qtextcontrol.cpp" line="+2014"/> + <location filename="../src/gui/text/qtextcontrol.cpp" line="+2018"/> <source>&Copy</source> <translation>S&kopiuj</translation> </message> @@ -6114,7 +6122,7 @@ Proszę wybrać inną nazwę pliku.</translation> <context> <name>QToolButton</name> <message> - <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="+256"/> + <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="+312"/> <location line="+8"/> <source>Open</source> <translation>Otwórz</translation> @@ -6229,7 +6237,7 @@ Proszę wybrać inną nazwę pliku.</translation> <context> <name>QWebFrame</name> <message> - <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp" line="+704"/> + <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp" line="+711"/> <source>Request cancelled</source> <translation>Prośba anulowana</translation> </message> @@ -6262,7 +6270,7 @@ Proszę wybrać inną nazwę pliku.</translation> <context> <name>QWebPage</name> <message> - <location filename="../src/3rdparty/webkit/WebCore/platform/qt/Localizations.cpp" line="+41"/> + <location filename="../src/3rdparty/webkit/WebCore/platform/qt/Localizations.cpp" line="+42"/> <source>Submit</source> <comment>default label for Submit buttons in forms on web pages</comment> <translation>Wyślij</translation> @@ -6280,7 +6288,7 @@ Proszę wybrać inną nazwę pliku.</translation> <translation>Wyczyść</translation> </message> <message> - <location line="+15"/> + <location line="+16"/> <source>Choose File</source> <comment>title for file button used in HTML forms</comment> <translation>Wybierz plik</translation> @@ -6766,12 +6774,12 @@ Proszę wybrać inną nazwę pliku.</translation> <translation>Nieznany</translation> </message> <message> - <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp" line="+170"/> + <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp" line="+167"/> <source>Web Inspector - %2</source> <translation>Wizytator sieciowy - %2</translation> </message> <message> - <location filename="../src/3rdparty/webkit/WebCore/platform/network/qt/QNetworkReplyHandler.cpp" line="+416"/> + <location filename="../src/3rdparty/webkit/WebCore/platform/network/qt/QNetworkReplyHandler.cpp" line="+406"/> <source>Bad HTTP request</source> <translation>Niepoprawna komenda HTTP</translation> </message> @@ -6875,7 +6883,7 @@ Proszę wybrać inną nazwę pliku.</translation> </translation> </message> <message> - <location filename="../src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp" line="+1727"/> + <location filename="../src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp" line="+1708"/> <source>JavaScript Alert - %1</source> <translation>Ostrzeżenie JavaScript - %1</translation> </message> @@ -7121,7 +7129,7 @@ Proszę wybrać inną nazwę pliku.</translation> <context> <name>QWidget</name> <message> - <location filename="../src/gui/kernel/qwidget.cpp" line="+5652"/> + <location filename="../src/gui/kernel/qwidget.cpp" line="+5672"/> <source>*</source> <translation>*</translation> </message> @@ -9596,32 +9604,32 @@ Proszę wybrać inną nazwę pliku.</translation> <message> <location line="+15"/> <source>Duration content does not match the maxInclusive facet.</source> - <translation>Wartość czasu trwania koliduje z aspektem "maxInclusive".</translation> + <translation>Wartość długości okresu czasu koliduje z aspektem "maxInclusive".</translation> </message> <message> <location line="+9"/> <source>Duration content does not match the maxExclusive facet.</source> - <translation>Wartość czasu trwania koliduje z aspektem "maxExclusive".</translation> + <translation>Wartość długości okresu czasu koliduje z aspektem "maxExclusive".</translation> </message> <message> <location line="+9"/> <source>Duration content does not match the minInclusive facet.</source> - <translation>Wartość czasu trwania koliduje z aspektem "minInclusive".</translation> + <translation>Wartość długości okresu czasu koliduje z aspektem "minInclusive".</translation> </message> <message> <location line="+9"/> <source>Duration content does not match the minExclusive facet.</source> - <translation>Wartość czasu trwania koliduje z aspektem "minExclusive".</translation> + <translation>Wartość długości okresu czasu koliduje z aspektem "minExclusive".</translation> </message> <message> <location line="+18"/> <source>Duration content is not listed in the enumeration facet.</source> - <translation>Wartość czasu trwania nie widnieje na liście aspektu "enumeration".</translation> + <translation>Wartość długości okresu czasu nie widnieje na liście aspektu "enumeration".</translation> </message> <message> <location line="+18"/> <source>Duration content does not match pattern facet.</source> - <translation>Wartość czasu trwania koliduje z aspektem "pattern".</translation> + <translation>Wartość długości okresu czasu koliduje z aspektem "pattern".</translation> </message> <message> <location line="+27"/> diff --git a/util/s60pixelmetrics/pixel_metrics.cpp b/util/s60pixelmetrics/pixel_metrics.cpp index 939a718..9507c67 100644 --- a/util/s60pixelmetrics/pixel_metrics.cpp +++ b/util/s60pixelmetrics/pixel_metrics.cpp @@ -50,7 +50,7 @@ // so that we can keep dynamic and static values inline. // Please adjust version data if correcting dynamic PM calculations. const TInt KPMMajorVersion = 1; -const TInt KPMMinorVersion = 14; +const TInt KPMMinorVersion = 15; TPixelMetricsVersion PixelMetrics::Version() { @@ -726,6 +726,7 @@ TInt PixelMetrics::PixelMetricValue(QStyle::PixelMetric metric) value = -1; //disable - not in S60 } break; + case QStyle::PM_SplitterWidth: case QStyle::PM_ScrollBarExtent: { TAknLayoutRect miscGraphicsRect; @@ -1000,7 +1001,7 @@ TInt PixelMetrics::PixelMetricValue(QStyle::PixelMetric metric) case QStyle::PM_ButtonShiftVertical: value = 0; break; - + case QStyle::PM_ToolBarExtensionExtent: value = PixelMetricTabValue(QStyle::PM_TabBarScrollButtonWidth, appWindow.Rect(), landscape); break; @@ -1016,7 +1017,6 @@ TInt PixelMetrics::PixelMetricValue(QStyle::PixelMetric metric) case QStyle::PM_DockWidgetSeparatorExtent: // not in S60 case QStyle::PM_MdiSubWindowMinimizedWidth: //no such thing in S60 case QStyle::PM_HeaderGripMargin: // not in S60 - case QStyle::PM_SplitterWidth: // not in S60 case QStyle::PM_ToolBarSeparatorExtent: // not in S60 case QStyle::PM_ToolBarHandleExtent: // not in s60 case QStyle::PM_MenuButtonIndicator: // none??? diff --git a/util/s60pixelmetrics/pm_mapper.mmp b/util/s60pixelmetrics/pm_mapper.mmp index 7777a3d..a2e2571 100644 --- a/util/s60pixelmetrics/pm_mapper.mmp +++ b/util/s60pixelmetrics/pm_mapper.mmp @@ -40,7 +40,7 @@ ****************************************************************************/ #include <data_caging_paths.hrh> -#include <domain\osextensions\platform_paths.hrh> +#include <platform_paths.hrh> TARGET pm_mapper.exe TARGETTYPE exe diff --git a/util/s60pixelmetrics/pm_mapperapp.cpp b/util/s60pixelmetrics/pm_mapperapp.cpp index e24ed29..de6af0d 100644 --- a/util/s60pixelmetrics/pm_mapperapp.cpp +++ b/util/s60pixelmetrics/pm_mapperapp.cpp @@ -138,7 +138,7 @@ void CPixelMetricsMapperAppUi::ConstructL() // TKeyResponse CPixelMetricsMapperAppUi::HandleKeyEventL( const TKeyEvent& /*aKeyEvent*/, - TEventCode aType ) + TEventCode /*aType*/ ) { return EKeyWasNotConsumed; } |