diff options
Diffstat (limited to 'demos')
239 files changed, 43111 insertions, 1859 deletions
diff --git a/demos/affine/affine.pro b/demos/affine/affine.pro index b928753..7f9e444 100644 --- a/demos/affine/affine.pro +++ b/demos/affine/affine.pro @@ -18,6 +18,8 @@ sources.files = $$SOURCES $$HEADERS $$RESOURCES *.pro *.html *.jpg sources.path = $$[QT_INSTALL_DEMOS]/affine INSTALLS += target sources +symbian: include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) + wince*: { DEPLOYMENT_PLUGIN += qjpeg } diff --git a/demos/arthurplugin/arthurplugin.pro b/demos/arthurplugin/arthurplugin.pro index e9eb1f3..3114293 100644 --- a/demos/arthurplugin/arthurplugin.pro +++ b/demos/arthurplugin/arthurplugin.pro @@ -44,6 +44,8 @@ sources.files = $$SOURCES $$HEADERS $$RESOURCES *.pro *.jpg *.png sources.path = $$[QT_INSTALL_DEMOS]/arthurplugin INSTALLS += target sources +symbian: include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) + win32-msvc* { QMAKE_CFLAGS += /Zm500 QMAKE_CXXFLAGS += /Zm500 diff --git a/demos/arthurplugin/plugin.cpp b/demos/arthurplugin/plugin.cpp index 19fecbc..727fd12 100644 --- a/demos/arthurplugin/plugin.cpp +++ b/demos/arthurplugin/plugin.cpp @@ -55,7 +55,26 @@ QT_FORWARD_DECLARE_CLASS(QDesignerFormEditorInterface) -static inline QString customWidgetDomXml(const QString &className) +// Specify "text" to be a singleline property (no richtext) +static inline QString textSingleLinePropertyDeclaration(const QString &className) +{ + QString rc = QLatin1String( + "<customwidgets>\n" + " <customwidget>\n" + " <class>"); + rc += className; + rc += QLatin1String("</class>\n" + " <propertyspecifications>\n" + " <stringpropertyspecification name=\"text\" type=\"singleline\"/>\n" + " </propertyspecifications>\n" + " </customwidget>\n" + "</customwidgets>\n"); + return rc; +} + +// Plain XML for a custom widget +static inline QString customWidgetDomXml(const QString &className, + const QString &customSection = QString()) { QString rc = QLatin1String("<ui language=\"c++\"><widget class=\""); rc += className; @@ -63,7 +82,9 @@ static inline QString customWidgetDomXml(const QString &className) QString objectName = className; objectName[0] = objectName.at(0).toLower(); rc += objectName; - rc += QLatin1String("\"/></ui>"); + rc += QLatin1String("\"/>"); + rc += customSection; + rc += QLatin1String("</ui>"); return rc; } @@ -80,7 +101,7 @@ class DemoPlugin : public QDesignerCustomWidgetInterface Q_INTERFACES(QDesignerCustomWidgetInterface) protected: - DemoPlugin(const QString &className); + explicit DemoPlugin(const QString &className, const QString &customSection = QString()); public: QString name() const { return m_className; } @@ -105,9 +126,9 @@ private: bool m_initialized; }; -DemoPlugin::DemoPlugin(const QString &className) : +DemoPlugin::DemoPlugin(const QString &className, const QString &customSection) : m_className(className), - m_domXml(customWidgetDomXml(className)), + m_domXml(customWidgetDomXml(className, customSection)), m_initialized(false) { } @@ -117,8 +138,8 @@ class DeformPlugin : public QObject, public DemoPlugin Q_OBJECT public: - DeformPlugin(QObject *parent = 0) : QObject(parent), DemoPlugin(QLatin1String("PathDeformRendererEx")) { } - QString includeFile() const { return "deform.h"; } + explicit DeformPlugin(QObject *parent = 0); + QString includeFile() const { return QLatin1String("deform.h"); } QWidget *createWidget(QWidget *parent) { @@ -126,12 +147,19 @@ public: deform->setRadius(70); deform->setAnimated(false); deform->setFontSize(20); - deform->setText("Arthur Widgets Demo"); + deform->setText(QLatin1String("Arthur Widgets Demo")); return deform; } }; +DeformPlugin::DeformPlugin(QObject *parent) : + QObject(parent), + DemoPlugin(QLatin1String("PathDeformRendererEx"), + textSingleLinePropertyDeclaration(QLatin1String("PathDeformRendererEx"))) +{ +} + class XFormRendererEx : public XFormView { Q_OBJECT @@ -144,24 +172,30 @@ class XFormPlugin : public QObject, public DemoPlugin { Q_OBJECT public: - XFormPlugin(QObject *parent = 0) : QObject(parent), DemoPlugin(QLatin1String("XFormRendererEx")) { } - QString includeFile() const { return "xform.h"; } + explicit XFormPlugin(QObject *parent = 0); + QString includeFile() const { return QLatin1String("xform.h"); } QWidget *createWidget(QWidget *parent) { XFormRendererEx *xform = new XFormRendererEx(parent); - xform->setText("Qt - Hello World!!"); - xform->setPixmap(QPixmap(":/trolltech/arthurplugin/bg1.jpg")); + xform->setText(QLatin1String("Qt - Hello World!!")); + xform->setPixmap(QPixmap(QLatin1String(":/trolltech/arthurplugin/bg1.jpg"))); return xform; } }; +XFormPlugin::XFormPlugin(QObject *parent) : + QObject(parent), + DemoPlugin(QLatin1String("XFormRendererEx"), + textSingleLinePropertyDeclaration(QLatin1String("XFormRendererEx"))) +{ +} class GradientEditorPlugin : public QObject, public DemoPlugin { Q_OBJECT public: - GradientEditorPlugin(QObject *parent = 0) : QObject(parent), DemoPlugin(QLatin1String("GradientEditor")) { } + explicit GradientEditorPlugin(QObject *parent = 0) : QObject(parent), DemoPlugin(QLatin1String("GradientEditor")) { } QString includeFile() const { return "gradients.h"; } QWidget *createWidget(QWidget *parent) @@ -184,7 +218,7 @@ class GradientRendererPlugin : public QObject, public DemoPlugin Q_OBJECT public: GradientRendererPlugin(QObject *parent = 0) : QObject(parent), DemoPlugin(QLatin1String("GradientRendererEx")) { } - QString includeFile() const { return "gradients.h"; } + QString includeFile() const { return QLatin1String("gradients.h"); } QWidget *createWidget(QWidget *parent) { @@ -198,7 +232,7 @@ class PathStrokeRendererEx : public PathStrokeRenderer { Q_OBJECT public: - PathStrokeRendererEx(QWidget *p) : PathStrokeRenderer(p) { } + explicit PathStrokeRendererEx(QWidget *p) : PathStrokeRenderer(p) { } QSize sizeHint() const { return QSize(300, 200); } }; @@ -206,8 +240,8 @@ class StrokeRenderPlugin : public QObject, public DemoPlugin { Q_OBJECT public: - StrokeRenderPlugin(QObject *parent = 0) : QObject(parent), DemoPlugin(QLatin1String("PathStrokeRendererEx")) { } - QString includeFile() const { return "pathstroke.h"; } + explicit StrokeRenderPlugin(QObject *parent = 0) : QObject(parent), DemoPlugin(QLatin1String("PathStrokeRendererEx")) { } + QString includeFile() const { return QLatin1String("pathstroke.h"); } QWidget *createWidget(QWidget *parent) { @@ -221,8 +255,8 @@ class CompositionModePlugin : public QObject, public DemoPlugin { Q_OBJECT public: - CompositionModePlugin(QObject *parent = 0) : QObject(parent), DemoPlugin(QLatin1String("CompositionRenderer")) { } - QString includeFile() const { return "composition.h"; } + explicit CompositionModePlugin(QObject *parent = 0) : QObject(parent), DemoPlugin(QLatin1String("CompositionRenderer")) { } + QString includeFile() const { return QLatin1String("composition.h"); } QWidget *createWidget(QWidget *parent) { @@ -239,7 +273,7 @@ class ArthurPlugins : public QObject, public QDesignerCustomWidgetCollectionInte Q_INTERFACES(QDesignerCustomWidgetCollectionInterface) public: - ArthurPlugins(QObject *parent = 0); + explicit ArthurPlugins(QObject *parent = 0); QList<QDesignerCustomWidgetInterface*> customWidgets() const { return m_plugins; } private: diff --git a/demos/books/books.pro b/demos/books/books.pro index a2cd33f..a5e44e5 100644 --- a/demos/books/books.pro +++ b/demos/books/books.pro @@ -13,9 +13,11 @@ sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS *.pro images sources.path = $$[QT_INSTALL_DEMOS]/books INSTALLS += target sources +symbian: include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) + wince*: { CONFIG(debug, debug|release):sqlPlugins.sources = $$QT_BUILD_TREE/plugins/sqldrivers/*d4.dll CONFIG(release, debug|release):sqlPlugins.sources = $$QT_BUILD_TREE/plugins/sqldrivers/*[^d]4.dll sqlPlugins.path = sqldrivers DEPLOYMENT += sqlPlugins -}
\ No newline at end of file +} diff --git a/demos/boxes/boxes.pro b/demos/boxes/boxes.pro index 6c1a331..59c9132 100644 --- a/demos/boxes/boxes.pro +++ b/demos/boxes/boxes.pro @@ -11,17 +11,14 @@ INCLUDEPATH += . HEADERS += 3rdparty/fbm.h \ glbuffers.h \ glextensions.h \ - glshaders.h \ gltrianglemesh.h \ qtbox.h \ roundedbox.h \ scene.h \ - trackball.h \ - vector.h + trackball.h SOURCES += 3rdparty/fbm.c \ glbuffers.cpp \ glextensions.cpp \ - glshaders.cpp \ main.cpp \ qtbox.cpp \ roundedbox.cpp \ @@ -45,6 +42,8 @@ wince*: { } win32-msvc* { - QMAKE_CXXFLAGS += /Zm1200 - QMAKE_CFLAGS += /Zm1200 + QMAKE_CXXFLAGS -= -Zm200 + QMAKE_CFLAGS -= -Zm200 + QMAKE_CXXFLAGS += -Zm1200 + QMAKE_CFLAGS += -Zm1200 } diff --git a/demos/boxes/glbuffers.cpp b/demos/boxes/glbuffers.cpp index 69d7ad8..a3d26f6 100644 --- a/demos/boxes/glbuffers.cpp +++ b/demos/boxes/glbuffers.cpp @@ -40,6 +40,7 @@ ****************************************************************************/ #include "glbuffers.h" +#include <QtGui/qmatrix4x4.h> //============================================================================// // GLTexture // @@ -346,7 +347,7 @@ void GLRenderTargetCube::end() m_fbo.setAsRenderTarget(false); } -void GLRenderTargetCube::getViewMatrix(gfx::Matrix4x4f& mat, int face) +void GLRenderTargetCube::getViewMatrix(QMatrix4x4& mat, int face) { if (face < 0 || face >= 6) { qWarning("GLRenderTargetCube::getViewMatrix: 'face' must be in the range [0, 6). (face == %d)", face); @@ -371,20 +372,21 @@ void GLRenderTargetCube::getViewMatrix(gfx::Matrix4x4f& mat, int face) {-1.0f, -1.0f, +1.0f}, }; - memset(mat.bits(), 0, sizeof(float) * 16); + memset(mat.data(), 0, sizeof(float) * 16); for (int i = 0; i < 3; ++i) - mat(perm[face][i], i) = signs[face][i]; + mat(i, perm[face][i]) = signs[face][i]; mat(3, 3) = 1.0f; } -void GLRenderTargetCube::getProjectionMatrix(gfx::Matrix4x4f& mat, float nearZ, float farZ) +void GLRenderTargetCube::getProjectionMatrix(QMatrix4x4& mat, float nearZ, float farZ) { - float proj[] = { - 1.0f, 0.0f, 0.0f, 0.0f, - 0.0f, 1.0f, 0.0f, 0.0f, - 0.0f, 0.0f, (nearZ+farZ)/(nearZ-farZ), -1.0f, - 0.0f, 0.0f, 2.0f*nearZ*farZ/(nearZ-farZ), 0.0f, - }; - - memcpy(mat.bits(), proj, sizeof(float) * 16); + static const QMatrix4x4 reference( + 1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 1.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, -1.0f, 0.0f); + + mat = reference; + mat(2, 2) = (nearZ+farZ)/(nearZ-farZ); + mat(2, 3) = 2.0f*nearZ*farZ/(nearZ-farZ); } diff --git a/demos/boxes/glbuffers.h b/demos/boxes/glbuffers.h index 71c4012..2cce006 100644 --- a/demos/boxes/glbuffers.h +++ b/demos/boxes/glbuffers.h @@ -48,8 +48,6 @@ #include <QtGui> #include <QtOpenGL> -#include "vector.h" - #define BUFFER_OFFSET(i) ((char*)0 + (i)) #define SIZE_OF_MEMBER(cls, member) sizeof(static_cast<cls *>(0)->member) @@ -60,6 +58,10 @@ if (m_failed || !(assertion)) { returnStatement; \ } +QT_BEGIN_NAMESPACE +class QMatrix4x4; +QT_END_NAMESPACE + class GLTexture { public: @@ -135,8 +137,8 @@ public: void end(); virtual bool failed() {return m_failed || m_fbo.failed();} - static void getViewMatrix(gfx::Matrix4x4f& mat, int face); - static void getProjectionMatrix(gfx::Matrix4x4f& mat, float nearZ, float farZ); + static void getViewMatrix(QMatrix4x4& mat, int face); + static void getProjectionMatrix(QMatrix4x4& mat, float nearZ, float farZ); private: GLFrameBufferObject m_fbo; }; diff --git a/demos/boxes/glextensions.cpp b/demos/boxes/glextensions.cpp index 20aaebe..6e11284 100644 --- a/demos/boxes/glextensions.cpp +++ b/demos/boxes/glextensions.cpp @@ -47,23 +47,6 @@ bool GLExtensionFunctions::resolve(const QGLContext *context) { bool ok = true; - RESOLVE_GL_FUNC(CreateShaderObjectARB) - RESOLVE_GL_FUNC(ShaderSourceARB) - RESOLVE_GL_FUNC(CompileShaderARB) - RESOLVE_GL_FUNC(GetObjectParameterivARB) - RESOLVE_GL_FUNC(DeleteObjectARB) - RESOLVE_GL_FUNC(GetInfoLogARB) - RESOLVE_GL_FUNC(CreateProgramObjectARB) - RESOLVE_GL_FUNC(AttachObjectARB) - RESOLVE_GL_FUNC(DetachObjectARB) - RESOLVE_GL_FUNC(LinkProgramARB) - RESOLVE_GL_FUNC(UseProgramObjectARB) - RESOLVE_GL_FUNC(GetUniformLocationARB) - RESOLVE_GL_FUNC(Uniform1iARB) - RESOLVE_GL_FUNC(Uniform1fARB) - RESOLVE_GL_FUNC(Uniform4fARB) - RESOLVE_GL_FUNC(UniformMatrix4fvARB) - RESOLVE_GL_FUNC(GenFramebuffersEXT) RESOLVE_GL_FUNC(GenRenderbuffersEXT) RESOLVE_GL_FUNC(BindRenderbufferEXT) @@ -88,26 +71,6 @@ bool GLExtensionFunctions::resolve(const QGLContext *context) return ok; } -bool GLExtensionFunctions::glslSupported() { - return CreateShaderObjectARB - && CreateShaderObjectARB - && ShaderSourceARB - && CompileShaderARB - && GetObjectParameterivARB - && DeleteObjectARB - && GetInfoLogARB - && CreateProgramObjectARB - && AttachObjectARB - && DetachObjectARB - && LinkProgramARB - && UseProgramObjectARB - && GetUniformLocationARB - && Uniform1iARB - && Uniform1fARB - && Uniform4fARB - && UniformMatrix4fvARB; -} - bool GLExtensionFunctions::fboSupported() { return GenFramebuffersEXT && GenRenderbuffersEXT diff --git a/demos/boxes/glextensions.h b/demos/boxes/glextensions.h index 7520a57..70d6c33 100644 --- a/demos/boxes/glextensions.h +++ b/demos/boxes/glextensions.h @@ -47,23 +47,6 @@ /* Functions resolved: -glCreateShaderObjectARB -glShaderSourceARB -glCompileShaderARB -glGetObjectParameterivARB -glDeleteObjectARB -glGetInfoLogARB -glCreateProgramObjectARB -glAttachObjectARB -glDetachObjectARB -glLinkProgramARB -glUseProgramObjectARB -glGetUniformLocationARB -glUniform1iARB -glUniform1fARB -glUniform4fARB -glUniformMatrix4fvARB - glGenFramebuffersEXT glGenRenderbuffersEXT glBindRenderbufferEXT @@ -139,39 +122,6 @@ typedef ptrdiff_t GLsizeiptrARB; #define GL_DEPTH_ATTACHMENT_EXT 0x8D00 #endif -#ifndef GL_ARB_vertex_shader -#define GL_VERTEX_SHADER_ARB 0x8B31 -#endif - -#ifndef GL_ARB_fragment_shader -#define GL_FRAGMENT_SHADER_ARB 0x8B30 -#endif - -#ifndef GL_ARB_shader_objects -typedef char GLcharARB; -typedef unsigned int GLhandleARB; -#define GL_OBJECT_COMPILE_STATUS_ARB 0x8B81 -#define GL_OBJECT_LINK_STATUS_ARB 0x8B82 -#define GL_OBJECT_INFO_LOG_LENGTH_ARB 0x8B84 -#endif - -typedef GLhandleARB (APIENTRY *_glCreateShaderObjectARB) (GLenum); -typedef void (APIENTRY *_glShaderSourceARB) (GLhandleARB, GLuint, const GLcharARB**, GLint *); -typedef void (APIENTRY *_glCompileShaderARB) (GLhandleARB); -typedef void (APIENTRY *_glGetObjectParameterivARB) (GLhandleARB, GLenum, int *); -typedef void (APIENTRY *_glDeleteObjectARB) (GLhandleARB); -typedef void (APIENTRY *_glGetInfoLogARB) (GLhandleARB, GLsizei, GLsizei *, GLcharARB *); -typedef GLhandleARB (APIENTRY *_glCreateProgramObjectARB) (); -typedef void (APIENTRY *_glAttachObjectARB) (GLhandleARB, GLhandleARB); -typedef void (APIENTRY *_glDetachObjectARB) (GLhandleARB, GLhandleARB); -typedef void (APIENTRY *_glLinkProgramARB) (GLhandleARB); -typedef void (APIENTRY *_glUseProgramObjectARB) (GLhandleARB); -typedef GLint (APIENTRY *_glGetUniformLocationARB) (GLhandleARB, const GLcharARB *); -typedef void (APIENTRY *_glUniform1iARB) (GLint, GLint); -typedef void (APIENTRY *_glUniform1fARB) (GLint, GLfloat); -typedef void (APIENTRY *_glUniform4fARB) (GLint, GLfloat, GLfloat, GLfloat, GLfloat); -typedef void (APIENTRY *_glUniformMatrix4fvARB) (GLint, GLuint, GLboolean, const GLfloat *); - typedef void (APIENTRY *_glGenFramebuffersEXT) (GLsizei, GLuint *); typedef void (APIENTRY *_glGenRenderbuffersEXT) (GLsizei, GLuint *); typedef void (APIENTRY *_glBindRenderbufferEXT) (GLenum, GLuint); @@ -197,27 +147,9 @@ struct GLExtensionFunctions { bool resolve(const QGLContext *context); - bool glslSupported(); bool fboSupported(); bool openGL15Supported(); // the rest: multi-texture, 3D-texture, vertex buffer objects - _glCreateShaderObjectARB CreateShaderObjectARB; - _glShaderSourceARB ShaderSourceARB; - _glCompileShaderARB CompileShaderARB; - _glGetObjectParameterivARB GetObjectParameterivARB; - _glDeleteObjectARB DeleteObjectARB; - _glGetInfoLogARB GetInfoLogARB; - _glCreateProgramObjectARB CreateProgramObjectARB; - _glAttachObjectARB AttachObjectARB; - _glDetachObjectARB DetachObjectARB; - _glLinkProgramARB LinkProgramARB; - _glUseProgramObjectARB UseProgramObjectARB; - _glGetUniformLocationARB GetUniformLocationARB; - _glUniform1iARB Uniform1iARB; - _glUniform1fARB Uniform1fARB; - _glUniform4fARB Uniform4fARB; - _glUniformMatrix4fvARB UniformMatrix4fvARB; - _glGenFramebuffersEXT GenFramebuffersEXT; _glGenRenderbuffersEXT GenRenderbuffersEXT; _glBindRenderbufferEXT BindRenderbufferEXT; @@ -246,23 +178,6 @@ inline GLExtensionFunctions &getGLExtensionFunctions() return funcs; } -#define glCreateShaderObjectARB getGLExtensionFunctions().CreateShaderObjectARB -#define glShaderSourceARB getGLExtensionFunctions().ShaderSourceARB -#define glCompileShaderARB getGLExtensionFunctions().CompileShaderARB -#define glGetObjectParameterivARB getGLExtensionFunctions().GetObjectParameterivARB -#define glDeleteObjectARB getGLExtensionFunctions().DeleteObjectARB -#define glGetInfoLogARB getGLExtensionFunctions().GetInfoLogARB -#define glCreateProgramObjectARB getGLExtensionFunctions().CreateProgramObjectARB -#define glAttachObjectARB getGLExtensionFunctions().AttachObjectARB -#define glDetachObjectARB getGLExtensionFunctions().DetachObjectARB -#define glLinkProgramARB getGLExtensionFunctions().LinkProgramARB -#define glUseProgramObjectARB getGLExtensionFunctions().UseProgramObjectARB -#define glGetUniformLocationARB getGLExtensionFunctions().GetUniformLocationARB -#define glUniform1iARB getGLExtensionFunctions().Uniform1iARB -#define glUniform1fARB getGLExtensionFunctions().Uniform1fARB -#define glUniform4fARB getGLExtensionFunctions().Uniform4fARB -#define glUniformMatrix4fvARB getGLExtensionFunctions().UniformMatrix4fvARB - #define glGenFramebuffersEXT getGLExtensionFunctions().GenFramebuffersEXT #define glGenRenderbuffersEXT getGLExtensionFunctions().GenRenderbuffersEXT #define glBindRenderbufferEXT getGLExtensionFunctions().BindRenderbufferEXT diff --git a/demos/boxes/glshaders.cpp b/demos/boxes/glshaders.cpp deleted file mode 100644 index 7622858..0000000 --- a/demos/boxes/glshaders.cpp +++ /dev/null @@ -1,266 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the demonstration applications 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 "glshaders.h" - -#define GLSHADERS_ASSERT_OPENGL(prefix, assertion, returnStatement) \ -if (m_failed || !(assertion)) { \ - if (!m_failed) qCritical(prefix ": The necessary OpenGL functions are not available."); \ - m_failed = true; \ - returnStatement; \ -} - - -GLShader::GLShader(const char *data, int size, GLenum shaderType) -: m_compileError(false), m_failed(false) -{ - GLSHADERS_ASSERT_OPENGL("GLShader::GLShader", - glCreateShaderObjectARB && glShaderSourceARB && glCompileShaderARB && glGetObjectParameterivARB, return) - - m_shader = glCreateShaderObjectARB(shaderType); - - GLint glSize = size; - glShaderSourceARB(m_shader, 1, reinterpret_cast<const GLcharARB**>(&data), &glSize); - glCompileShaderARB(m_shader); - int status; - glGetObjectParameterivARB(m_shader, GL_OBJECT_COMPILE_STATUS_ARB, &status); - m_compileError = (status != 1); -} - -GLShader::GLShader(const QString& fileName, GLenum shaderType) - : m_compileError(false), m_failed(false) -{ - GLSHADERS_ASSERT_OPENGL("GLShader::GLShader", - glCreateShaderObjectARB && glShaderSourceARB && glCompileShaderARB && glGetObjectParameterivARB, return) - - m_shader = glCreateShaderObjectARB(shaderType); - - QFile file(fileName); - if (file.open(QIODevice::ReadOnly)) { - QByteArray bytes = file.readAll(); - GLint size = file.size(); - const char *p = bytes.data(); - file.close(); - glShaderSourceARB(m_shader, 1, reinterpret_cast<const GLcharARB**>(&p), &size); - glCompileShaderARB(m_shader); - int status; - glGetObjectParameterivARB(m_shader, GL_OBJECT_COMPILE_STATUS_ARB, &status); - m_compileError = (status != 1); - } else { - m_compileError = true; - } -} - -GLShader::~GLShader() -{ - GLSHADERS_ASSERT_OPENGL("GLShader::~GLShader", glDeleteObjectARB, return) - - glDeleteObjectARB(m_shader); -} - -QString GLShader::log() -{ - GLSHADERS_ASSERT_OPENGL("GLShader::log", glGetObjectParameterivARB - && glGetInfoLogARB, return QLatin1String("GLSL not supported.")) - - int length; - glGetObjectParameterivARB(m_shader, GL_OBJECT_INFO_LOG_LENGTH_ARB, &length); - char *log = new char[length + 1]; - GLsizei glLength = length; - glGetInfoLogARB(m_shader, glLength, &glLength, reinterpret_cast<GLcharARB*>(log)); - log[glLength] = '\0'; - QString result(log); - delete log; - return result; -} - -GLVertexShader::GLVertexShader(const char *data, int size) : GLShader(data, size, GL_VERTEX_SHADER_ARB) -{ -} - -GLVertexShader::GLVertexShader(const QString& fileName) : GLShader(fileName, GL_VERTEX_SHADER_ARB) -{ -} - -GLFragmentShader::GLFragmentShader(const char *data, int size) : GLShader(data, size, GL_FRAGMENT_SHADER_ARB) -{ -} - -GLFragmentShader::GLFragmentShader(const QString& fileName) : GLShader(fileName, GL_FRAGMENT_SHADER_ARB) -{ -} - -GLProgram::GLProgram() : m_linked(false), m_linkError(false), m_failed(false) -{ - GLSHADERS_ASSERT_OPENGL("GLProgram::GLProgram", glCreateProgramObjectARB, return) - - m_program = glCreateProgramObjectARB(); -} - -GLProgram::~GLProgram() -{ - GLSHADERS_ASSERT_OPENGL("GLProgram::~GLProgram", glDeleteObjectARB, return) - - glDeleteObjectARB(m_program); -} - -void GLProgram::attach(const GLShader &shader) -{ - GLSHADERS_ASSERT_OPENGL("GLProgram::attach", glAttachObjectARB, return) - - glAttachObjectARB(m_program, shader.m_shader); - m_linked = m_linkError = false; -} - -void GLProgram::detach(const GLShader &shader) -{ - GLSHADERS_ASSERT_OPENGL("GLProgram::detach", glDetachObjectARB, return) - - glDetachObjectARB(m_program, shader.m_shader); - m_linked = m_linkError = false; -} - -bool GLProgram::failed() -{ - if (m_failed || m_linkError) - return true; - - if (m_linked) - return false; - - GLSHADERS_ASSERT_OPENGL("GLProgram::failed", glLinkProgramARB && glGetObjectParameterivARB, return true) - - glLinkProgramARB(m_program); - int status; - glGetObjectParameterivARB(m_program, GL_OBJECT_LINK_STATUS_ARB, &status); - m_linkError = !(m_linked = (status == 1)); - return m_linkError; -} - -QString GLProgram::log() -{ - GLSHADERS_ASSERT_OPENGL("GLProgram::log", glGetObjectParameterivARB && glGetInfoLogARB, - return QLatin1String("Failed.")) - - int length; - glGetObjectParameterivARB(m_program, GL_OBJECT_INFO_LOG_LENGTH_ARB, &length); - char *log = new char[length + 1]; - GLsizei glLength = length; - glGetInfoLogARB(m_program, glLength, &glLength, reinterpret_cast<GLcharARB*>(log)); - log[glLength] = '\0'; - QString result(log); - delete log; - return result; -} - -void GLProgram::bind() -{ - GLSHADERS_ASSERT_OPENGL("GLProgram::bind", glUseProgramObjectARB, return) - - if (!failed()) - glUseProgramObjectARB(m_program); -} - -void GLProgram::unbind() -{ - GLSHADERS_ASSERT_OPENGL("GLProgram::bind", glUseProgramObjectARB, return) - - glUseProgramObjectARB(0); -} - -bool GLProgram::hasParameter(const QString& name) -{ - GLSHADERS_ASSERT_OPENGL("GLProgram::hasParameter", glGetUniformLocationARB, return false) - - if (!failed()) { - QByteArray asciiName = name.toAscii(); - return -1 != glGetUniformLocationARB(m_program, reinterpret_cast<const GLcharARB*>(asciiName.data())); - } - return false; -} - -void GLProgram::setInt(const QString& name, int value) -{ - GLSHADERS_ASSERT_OPENGL("GLProgram::setInt", glGetUniformLocationARB && glUniform1iARB, return) - - if (!failed()) { - QByteArray asciiName = name.toAscii(); - int loc = glGetUniformLocationARB(m_program, reinterpret_cast<const GLcharARB*>(asciiName.data())); - glUniform1iARB(loc, value); - } -} - -void GLProgram::setFloat(const QString& name, float value) -{ - GLSHADERS_ASSERT_OPENGL("GLProgram::setFloat", glGetUniformLocationARB && glUniform1fARB, return) - - if (!failed()) { - QByteArray asciiName = name.toAscii(); - int loc = glGetUniformLocationARB(m_program, reinterpret_cast<const GLcharARB*>(asciiName.data())); - glUniform1fARB(loc, value); - } -} - -void GLProgram::setColor(const QString& name, QRgb value) -{ - GLSHADERS_ASSERT_OPENGL("GLProgram::setColor", glGetUniformLocationARB && glUniform4fARB, return) - - //qDebug() << "Setting color" << name; - if (!failed()) { - QByteArray asciiName = name.toAscii(); - int loc = glGetUniformLocationARB(m_program, reinterpret_cast<const GLcharARB*>(asciiName.data())); - //qDebug() << "Location of" << name << "is" << loc; - QColor color(value); - glUniform4fARB(loc, color.redF(), color.greenF(), color.blueF(), color.alphaF()); - } -} - -void GLProgram::setMatrix(const QString& name, const gfx::Matrix4x4f &mat) -{ - GLSHADERS_ASSERT_OPENGL("GLProgram::setMatrix", glGetUniformLocationARB && glUniformMatrix4fvARB, return) - - if (!failed()) { - QByteArray asciiName = name.toAscii(); - int loc = glGetUniformLocationARB(m_program, reinterpret_cast<const GLcharARB*>(asciiName.data())); - //qDebug() << "Location of" << name << "is" << loc; - glUniformMatrix4fvARB(loc, 1, GL_FALSE, mat.bits()); - } -} diff --git a/demos/boxes/glshaders.h b/demos/boxes/glshaders.h deleted file mode 100644 index 7380c4d..0000000 --- a/demos/boxes/glshaders.h +++ /dev/null @@ -1,108 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the demonstration applications 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$ -** -****************************************************************************/ - -#ifndef GLSHADERS_H -#define GLSHADERS_H - -//#include <GL/glew.h> -#include "glextensions.h" - -#include <QtGui> -#include <QtOpenGL> - -#include "vector.h" - -class GLShader -{ -public: - friend class GLProgram; - virtual ~GLShader(); - bool failed() const {return m_failed;} - QString log(); -protected: - GLShader(const char *data, int size, GLenum shaderType); - GLShader(const QString& fileName, GLenum shaderType); - - GLhandleARB m_shader; - bool m_compileError; - bool m_failed; -}; - -class GLVertexShader : public GLShader -{ -public: - GLVertexShader(const char *data, int size); - GLVertexShader(const QString& fileName); -}; - -class GLFragmentShader : public GLShader -{ -public: - GLFragmentShader(const char *data, int size); - GLFragmentShader(const QString& fileName); -}; - -class GLProgram -{ -public: - GLProgram(); - ~GLProgram(); - void attach(const GLShader &shader); - void detach(const GLShader &shader); - void bind(); - void unbind(); - bool failed(); - QString log(); - bool hasParameter(const QString& name); - // use program before setting values - void setInt(const QString& name, int value); - void setFloat(const QString& name, float value); - void setColor(const QString& name, QRgb value); - void setMatrix(const QString& name, const gfx::Matrix4x4f &mat); - // TODO: add a bunch of set-functions for different types. -private: - GLhandleARB m_program; - bool m_linked; - bool m_linkError; - bool m_failed; -}; - -#endif diff --git a/demos/boxes/qtbox.cpp b/demos/boxes/qtbox.cpp index 2255a38..015bc95 100644 --- a/demos/boxes/qtbox.cpp +++ b/demos/boxes/qtbox.cpp @@ -269,19 +269,20 @@ bool ItemBase::isInResizeArea(const QPointF &pos) QtBox::QtBox(int size, int x, int y) : ItemBase(size, x, y), m_texture(0) { for (int i = 0; i < 8; ++i) { - m_vertices[i][0] = (i & 1 ? 0.5f : -0.5f); - m_vertices[i][1] = (i & 2 ? 0.5f : -0.5f); - m_vertices[i][2] = (i & 4 ? 0.5f : -0.5f); + m_vertices[i].setX(i & 1 ? 0.5f : -0.5f); + m_vertices[i].setY(i & 2 ? 0.5f : -0.5f); + m_vertices[i].setZ(i & 4 ? 0.5f : -0.5f); } for (int i = 0; i < 4; ++i) { - m_texCoords[i][0] = (i & 1 ? 1.0f : 0.0f); - m_texCoords[i][1] = (i & 2 ? 1.0f : 0.0f); - } - memset(m_normals, 0, sizeof(m_normals)); - for (int i = 0; i < 3; ++i) { - m_normals[2 * i + 0][i] = -1.0f; - m_normals[2 * i + 1][i] = 1.0f; + m_texCoords[i].setX(i & 1 ? 1.0f : 0.0f); + m_texCoords[i].setY(i & 2 ? 1.0f : 0.0f); } + m_normals[0] = QVector3D(-1.0f, 0.0f, 0.0f); + m_normals[1] = QVector3D(1.0f, 0.0f, 0.0f); + m_normals[2] = QVector3D(0.0f, -1.0f, 0.0f); + m_normals[3] = QVector3D(0.0f, 1.0f, 0.0f); + m_normals[4] = QVector3D(0.0f, 0.0f, -1.0f); + m_normals[5] = QVector3D(0.0f, 0.0f, 1.0f); } QtBox::~QtBox() @@ -351,21 +352,21 @@ void QtBox::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWi glColor4f(1.0f, 1.0f, 1.0f, 1.0); glBegin(GL_TRIANGLE_STRIP); - glNormal3fv(m_normals[2 * dir + 0].bits()); + glNormal3fv(reinterpret_cast<float *>(&m_normals[2 * dir + 0])); for (int i = 0; i < 2; ++i) { for (int j = 0; j < 2; ++j) { - glTexCoord2fv(m_texCoords[(j << 1) | i].bits()); - glVertex3fv(m_vertices[(i << ((dir + 2) % 3)) | (j << ((dir + 1) % 3))].bits()); + glTexCoord2fv(reinterpret_cast<float *>(&m_texCoords[(j << 1) | i])); + glVertex3fv(reinterpret_cast<float *>(&m_vertices[(i << ((dir + 2) % 3)) | (j << ((dir + 1) % 3))])); } } glEnd(); glBegin(GL_TRIANGLE_STRIP); - glNormal3fv(m_normals[2 * dir + 1].bits()); + glNormal3fv(reinterpret_cast<float *>(&m_normals[2 * dir + 1])); for (int i = 0; i < 2; ++i) { for (int j = 0; j < 2; ++j) { - glTexCoord2fv(m_texCoords[(j << 1) | i].bits()); - glVertex3fv(m_vertices[(1 << dir) | (i << ((dir + 1) % 3)) | (j << ((dir + 2) % 3))].bits()); + glTexCoord2fv(reinterpret_cast<float *>(&m_texCoords[(j << 1) | i])); + glVertex3fv(reinterpret_cast<float *>(&m_vertices[(1 << dir) | (i << ((dir + 1) % 3)) | (j << ((dir + 2) % 3))])); } } glEnd(); diff --git a/demos/boxes/qtbox.h b/demos/boxes/qtbox.h index 260e134..6f39b0d 100644 --- a/demos/boxes/qtbox.h +++ b/demos/boxes/qtbox.h @@ -44,7 +44,7 @@ #include <QtGui> -#include "vector.h" +#include <QtGui/qvector3d.h> #include "glbuffers.h" class ItemBase : public QObject, public QGraphicsItem @@ -85,9 +85,9 @@ public: protected: virtual ItemBase *createNew(int size, int x, int y); private: - gfx::Vector3f m_vertices[8]; - gfx::Vector2f m_texCoords[4]; - gfx::Vector3f m_normals[6]; + QVector3D m_vertices[8]; + QVector3D m_texCoords[4]; + QVector3D m_normals[6]; GLTexture *m_texture; }; diff --git a/demos/boxes/roundedbox.cpp b/demos/boxes/roundedbox.cpp index 16e9616..e01f6b8 100644 --- a/demos/boxes/roundedbox.cpp +++ b/demos/boxes/roundedbox.cpp @@ -46,9 +46,10 @@ //============================================================================// VertexDescription P3T2N3Vertex::description[] = { - {VertexDescription::Position, GL_FLOAT, SIZE_OF_MEMBER(P3T2N3Vertex, position) / sizeof(float), offsetof(P3T2N3Vertex, position), 0}, - {VertexDescription::TexCoord, GL_FLOAT, SIZE_OF_MEMBER(P3T2N3Vertex, texCoord) / sizeof(float), offsetof(P3T2N3Vertex, texCoord), 0}, - {VertexDescription::Normal, GL_FLOAT, SIZE_OF_MEMBER(P3T2N3Vertex, normal) / sizeof(float), offsetof(P3T2N3Vertex, normal), 0}, + {VertexDescription::Position, GL_FLOAT, SIZE_OF_MEMBER(P3T2N3Vertex, position) / sizeof(float), 0, 0}, + {VertexDescription::TexCoord, GL_FLOAT, SIZE_OF_MEMBER(P3T2N3Vertex, texCoord) / sizeof(float), sizeof(QVector3D), 0}, + {VertexDescription::Normal, GL_FLOAT, SIZE_OF_MEMBER(P3T2N3Vertex, normal) / sizeof(float), sizeof(QVector3D) + sizeof(QVector2D), 0}, + {VertexDescription::Null, 0, 0, 0, 0}, }; @@ -78,10 +79,9 @@ GLRoundedBox::GLRoundedBox(float r, float scale, int n) } for (int corner = 0; corner < 8; ++corner) { - gfx::Vector3f centre; - centre[0] = (corner & 1 ? 1.0f : -1.0f); - centre[1] = (corner & 2 ? 1.0f : -1.0f); - centre[2] = (corner & 4 ? 1.0f : -1.0f); + QVector3D centre(corner & 1 ? 1.0f : -1.0f, + corner & 2 ? 1.0f : -1.0f, + corner & 4 ? 1.0f : -1.0f); int winding = (corner & 1) ^ ((corner >> 1) & 1) ^ (corner >> 2); int offsX = ((corner ^ 1) - corner) * vertexCountPerCorner; int offsY = ((corner ^ 2) - corner) * vertexCountPerCorner; @@ -129,12 +129,13 @@ GLRoundedBox::GLRoundedBox(float r, float scale, int n) } for (int j = 0; j <= i; ++j) { - gfx::Vector3f normal = gfx::Vector3f::vector(i - j, j, n + 1 - i).normalized(); - gfx::Vector3f pos = centre * (0.5f - r + r * normal); + QVector3D normal = QVector3D(i - j, j, n + 1 - i).normalized(); + QVector3D offset(0.5f - r, 0.5f - r, 0.5f - r); + QVector3D pos = centre * (offset + r * normal); vp[vidx].position = scale * pos; vp[vidx].normal = centre * normal; - vp[vidx].texCoord = gfx::Vector2f::vector(pos[0], pos[1]) + 0.5f; + vp[vidx].texCoord = QVector2D(pos.x() + 0.5f, pos.y() + 0.5f); // Corner polygons if (i < n + 1) { diff --git a/demos/boxes/roundedbox.h b/demos/boxes/roundedbox.h index 4f10bde..11069a1 100644 --- a/demos/boxes/roundedbox.h +++ b/demos/boxes/roundedbox.h @@ -49,14 +49,15 @@ #include <QtOpenGL> #include "gltrianglemesh.h" -#include "vector.h" +#include <QtGui/qvector3d.h> +#include <QtGui/qvector2d.h> #include "glbuffers.h" struct P3T2N3Vertex { - gfx::Vector3f position; - gfx::Vector2f texCoord; - gfx::Vector3f normal; + QVector3D position; + QVector2D texCoord; + QVector3D normal; static VertexDescription description[]; }; diff --git a/demos/boxes/scene.cpp b/demos/boxes/scene.cpp index 29aece9..016ba17 100644 --- a/demos/boxes/scene.cpp +++ b/demos/boxes/scene.cpp @@ -39,7 +39,10 @@ ** ****************************************************************************/ +#include <QDebug> #include "scene.h" +#include <QtGui/qmatrix4x4.h> +#include <QtGui/qvector3d.h> #include "3rdparty/fbm.h" @@ -484,9 +487,9 @@ Scene::Scene(int width, int height, int maxTextureSize) { setSceneRect(0, 0, width, height); - m_trackBalls[0] = TrackBall(0.0005f, gfx::Vector3f::vector(0, 1, 0), TrackBall::Sphere); - m_trackBalls[1] = TrackBall(0.0001f, gfx::Vector3f::vector(0, 0, 1), TrackBall::Sphere); - m_trackBalls[2] = TrackBall(0.0f, gfx::Vector3f::vector(0, 1, 0), TrackBall::Plane); + m_trackBalls[0] = TrackBall(0.05f, QVector3D(0, 1, 0), TrackBall::Sphere); + m_trackBalls[1] = TrackBall(0.005f, QVector3D(0, 0, 1), TrackBall::Sphere); + m_trackBalls[2] = TrackBall(0.0f, QVector3D(0, 1, 0), TrackBall::Plane); m_renderOptions = new RenderOptionsDialog; m_renderOptions->move(20, 120); @@ -531,11 +534,11 @@ Scene::~Scene() if (texture) delete texture; if (m_mainCubemap) delete m_mainCubemap; - foreach (GLProgram *program, m_programs) + foreach (QGLShaderProgram *program, m_programs) if (program) delete program; if (m_vertexShader) delete m_vertexShader; - foreach (GLFragmentShader *shader, m_fragmentShaders) + foreach (QGLShader *shader, m_fragmentShaders) if (shader) delete shader; foreach (GLRenderTargetCube *rt, m_cubemaps) if (rt) delete rt; @@ -549,16 +552,18 @@ void Scene::initGL() { m_box = new GLRoundedBox(0.25f, 1.0f, 10); - m_vertexShader = new GLVertexShader(":/res/boxes/basic.vsh"); + m_vertexShader = new QGLShader(":/res/boxes/basic.vsh", QGLShader::VertexShader); QStringList list; list << ":/res/boxes/cubemap_posx.jpg" << ":/res/boxes/cubemap_negx.jpg" << ":/res/boxes/cubemap_posy.jpg" << ":/res/boxes/cubemap_negy.jpg" << ":/res/boxes/cubemap_posz.jpg" << ":/res/boxes/cubemap_negz.jpg"; m_environment = new GLTextureCube(list, qMin(1024, m_maxTextureSize)); - m_environmentShader = new GLFragmentShader(environmentShaderText, strlen(environmentShaderText)); - m_environmentProgram = new GLProgram; - m_environmentProgram->attach(*m_vertexShader); - m_environmentProgram->attach(*m_environmentShader); + m_environmentShader = new QGLShader(QGLShader::FragmentShader); + m_environmentShader->compile(environmentShaderText); + m_environmentProgram = new QGLShaderProgram; + m_environmentProgram->addShader(m_vertexShader); + m_environmentProgram->addShader(m_environmentShader); + m_environmentProgram->link(); const int NOISE_SIZE = 128; // for a different size, B and BM in fbm.c must also be changed m_noise = new GLTexture3D(NOISE_SIZE, NOISE_SIZE, NOISE_SIZE); @@ -610,12 +615,12 @@ void Scene::initGL() filter = QStringList("*.fsh"); files = QDir(":/res/boxes/").entryInfoList(filter, QDir::Files | QDir::Readable); foreach (QFileInfo file, files) { - GLProgram *program = new GLProgram; - GLFragmentShader* shader = new GLFragmentShader(file.absoluteFilePath()); + QGLShaderProgram *program = new QGLShaderProgram; + QGLShader* shader = new QGLShader(file.absoluteFilePath(), QGLShader::FragmentShader); // The program does not take ownership over the shaders, so store them in a vector so they can be deleted afterwards. - program->attach(*m_vertexShader); - program->attach(*shader); - if (program->failed()) { + program->addShader(m_vertexShader); + program->addShader(shader); + if (!program->link()) { qWarning("Failed to compile and link shader program"); qWarning("Vertex shader log:"); qWarning() << m_vertexShader->log(); @@ -633,22 +638,22 @@ void Scene::initGL() m_programs << program; m_renderOptions->addShader(file.baseName()); - program->bind(); - m_cubemaps << (program->hasParameter("env") ? new GLRenderTargetCube(qMin(256, m_maxTextureSize)) : 0); - program->unbind(); + program->enable(); + m_cubemaps << ((program->uniformLocation("env") != -1) ? new GLRenderTargetCube(qMin(256, m_maxTextureSize)) : 0); + program->disable(); } if (m_programs.size() == 0) - m_programs << new GLProgram; + m_programs << new QGLShaderProgram; m_renderOptions->emitParameterChanged(); } // If one of the boxes should not be rendered, set excludeBox to its index. // If the main box should not be rendered, set excludeBox to -1. -void Scene::renderBoxes(const gfx::Matrix4x4f &view, int excludeBox) +void Scene::renderBoxes(const QMatrix4x4 &view, int excludeBox) { - gfx::Matrix4x4f invView = view.inverse(); + QMatrix4x4 invView = view.inverted(); // If multi-texturing is supported, use three saplers. if (glActiveTexture) { @@ -664,26 +669,26 @@ void Scene::renderBoxes(const gfx::Matrix4x4f &view, int excludeBox) glDisable(GL_LIGHTING); glDisable(GL_CULL_FACE); - gfx::Matrix4x4f viewRotation(view); + QMatrix4x4 viewRotation(view); viewRotation(3, 0) = viewRotation(3, 1) = viewRotation(3, 2) = 0.0f; viewRotation(0, 3) = viewRotation(1, 3) = viewRotation(2, 3) = 0.0f; viewRotation(3, 3) = 1.0f; - glLoadMatrixf(viewRotation.bits()); + glLoadMatrixf(viewRotation.data()); glScalef(20.0f, 20.0f, 20.0f); // Don't render the environment if the environment texture can't be set for the correct sampler. if (glActiveTexture) { m_environment->bind(); - m_environmentProgram->bind(); - m_environmentProgram->setInt("tex", 0); - m_environmentProgram->setInt("env", 1); - m_environmentProgram->setInt("noise", 2); + m_environmentProgram->enable(); + m_environmentProgram->setUniformValue("tex", GLint(0)); + m_environmentProgram->setUniformValue("env", GLint(1)); + m_environmentProgram->setUniformValue("noise", GLint(2)); m_box->draw(); - m_environmentProgram->unbind(); + m_environmentProgram->disable(); m_environment->unbind(); } - glLoadMatrixf(view.bits()); + glLoadMatrixf(view.data()); glEnable(GL_CULL_FACE); glEnable(GL_LIGHTING); @@ -693,9 +698,11 @@ void Scene::renderBoxes(const gfx::Matrix4x4f &view, int excludeBox) continue; glPushMatrix(); - gfx::Matrix4x4f m; - m_trackBalls[1].rotation().matrix(m); - glMultMatrixf(m.bits()); + QMatrix4x4 m; + m.rotate(m_trackBalls[1].rotation()); + m = m.transposed(); + + glMultMatrixf(m.data()); glRotatef(360.0f * i / m_programs.size(), 0.0f, 0.0f, 1.0f); glTranslatef(2.0f, 0.0f, 0.0f); @@ -707,14 +714,14 @@ void Scene::renderBoxes(const gfx::Matrix4x4f &view, int excludeBox) else m_environment->bind(); } - m_programs[i]->bind(); - m_programs[i]->setInt("tex", 0); - m_programs[i]->setInt("env", 1); - m_programs[i]->setInt("noise", 2); - m_programs[i]->setMatrix("view", view); - m_programs[i]->setMatrix("invView", invView); + m_programs[i]->enable(); + m_programs[i]->setUniformValue("tex", GLint(0)); + m_programs[i]->setUniformValue("env", GLint(1)); + m_programs[i]->setUniformValue("noise", GLint(2)); + m_programs[i]->setUniformValue("view", view); + m_programs[i]->setUniformValue("invView", invView); m_box->draw(); - m_programs[i]->unbind(); + m_programs[i]->disable(); if (glActiveTexture) { if (m_dynamicCubemap && m_cubemaps[i]) @@ -726,9 +733,10 @@ void Scene::renderBoxes(const gfx::Matrix4x4f &view, int excludeBox) } if (-1 != excludeBox) { - gfx::Matrix4x4f m; - m_trackBalls[0].rotation().matrix(m); - glMultMatrixf(m.bits()); + QMatrix4x4 m; + m.rotate(m_trackBalls[0].rotation()); + m = m.transposed(); + glMultMatrixf(m.data()); if (glActiveTexture) { if (m_dynamicCubemap) @@ -737,14 +745,14 @@ void Scene::renderBoxes(const gfx::Matrix4x4f &view, int excludeBox) m_environment->bind(); } - m_programs[m_currentShader]->bind(); - m_programs[m_currentShader]->setInt("tex", 0); - m_programs[m_currentShader]->setInt("env", 1); - m_programs[m_currentShader]->setInt("noise", 2); - m_programs[m_currentShader]->setMatrix("view", view); - m_programs[m_currentShader]->setMatrix("invView", invView); + m_programs[m_currentShader]->enable(); + m_programs[m_currentShader]->setUniformValue("tex", GLint(0)); + m_programs[m_currentShader]->setUniformValue("env", GLint(1)); + m_programs[m_currentShader]->setUniformValue("noise", GLint(2)); + m_programs[m_currentShader]->setUniformValue("view", view); + m_programs[m_currentShader]->setUniformValue("invView", invView); m_box->draw(); - m_programs[m_currentShader]->unbind(); + m_programs[m_currentShader]->disable(); if (glActiveTexture) { if (m_dynamicCubemap) @@ -829,31 +837,32 @@ void Scene::renderCubemaps() // To speed things up, only update the cubemaps for the small cubes every N frames. const int N = (m_updateAllCubemaps ? 1 : 3); - gfx::Matrix4x4f mat; + QMatrix4x4 mat; GLRenderTargetCube::getProjectionMatrix(mat, 0.1f, 100.0f); glMatrixMode(GL_PROJECTION); glPushMatrix(); - glLoadMatrixf(mat.bits()); + glLoadMatrixf(mat.data()); glMatrixMode(GL_MODELVIEW); glPushMatrix(); - gfx::Vector3f center; + QVector3D center; for (int i = m_frame % N; i < m_cubemaps.size(); i += N) { if (0 == m_cubemaps[i]) continue; float angle = 2.0f * PI * i / m_cubemaps.size(); - center = m_trackBalls[1].rotation().transform(gfx::Vector3f::vector(cos(angle), sin(angle), 0)); + + center = m_trackBalls[1].rotation().rotateVector(QVector3D(cos(angle), sin(angle), 0.0f)); for (int face = 0; face < 6; ++face) { m_cubemaps[i]->begin(face); GLRenderTargetCube::getViewMatrix(mat, face); - gfx::Vector4f v = gfx::Vector4f::vector(-center[0], -center[1], -center[2], 1.0); - mat[3] = v * mat; + QVector4D v = QVector4D(-center.x(), -center.y(), -center.z(), 1.0); + mat.setColumn(3, v * mat); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); renderBoxes(mat, i); @@ -897,12 +906,9 @@ void Scene::drawBackground(QPainter *painter, const QRectF &) glMatrixMode(GL_MODELVIEW); - //gfx::Matrix4x4f view = gfx::Matrix4x4f::identity(); - //view(3, 2) -= 2.0f * exp(m_distExp / 1200.0f); - - gfx::Matrix4x4f view; - m_trackBalls[2].rotation().matrix(view); - view(3, 2) -= 2.0f * exp(m_distExp / 1200.0f); + QMatrix4x4 view; + view.rotate(m_trackBalls[2].rotation()); + view(2, 3) -= 2.0f * exp(m_distExp / 1200.0f); renderBoxes(view); defaultStates(); @@ -936,10 +942,10 @@ void Scene::mouseMoveEvent(QGraphicsSceneMouseEvent *event) } if (event->buttons() & Qt::MidButton) { - m_trackBalls[2].move(pixelPosToViewPos(event->scenePos()), gfx::Quaternionf::identity()); + m_trackBalls[2].move(pixelPosToViewPos(event->scenePos()), QQuaternion()); event->accept(); } else { - m_trackBalls[2].release(pixelPosToViewPos(event->scenePos()), gfx::Quaternionf::identity()); + m_trackBalls[2].release(pixelPosToViewPos(event->scenePos()), QQuaternion()); } } @@ -960,7 +966,7 @@ void Scene::mousePressEvent(QGraphicsSceneMouseEvent *event) } if (event->buttons() & Qt::MidButton) { - m_trackBalls[2].push(pixelPosToViewPos(event->scenePos()), gfx::Quaternionf::identity()); + m_trackBalls[2].push(pixelPosToViewPos(event->scenePos()), QQuaternion()); event->accept(); } } @@ -982,7 +988,7 @@ void Scene::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) } if (event->button() == Qt::MidButton) { - m_trackBalls[2].release(pixelPosToViewPos(event->scenePos()), gfx::Quaternionf::identity()); + m_trackBalls[2].release(pixelPosToViewPos(event->scenePos()), QQuaternion()); event->accept(); } } @@ -1021,20 +1027,20 @@ void Scene::toggleDynamicCubemap(int state) void Scene::setColorParameter(const QString &name, QRgb color) { // set the color in all programs - foreach (GLProgram *program, m_programs) { - program->bind(); - program->setColor(name, color); - program->unbind(); + foreach (QGLShaderProgram *program, m_programs) { + program->enable(); + program->setUniformValue(program->uniformLocation(name), QColor(color)); + program->disable(); } } void Scene::setFloatParameter(const QString &name, float value) { // set the color in all programs - foreach (GLProgram *program, m_programs) { - program->bind(); - program->setFloat(name, value); - program->unbind(); + foreach (QGLShaderProgram *program, m_programs) { + program->enable(); + program->setUniformValue(program->uniformLocation(name), value); + program->disable(); } } diff --git a/demos/boxes/scene.h b/demos/boxes/scene.h index cc1dace..efe1e3f 100644 --- a/demos/boxes/scene.h +++ b/demos/boxes/scene.h @@ -50,14 +50,16 @@ #include "roundedbox.h" #include "gltrianglemesh.h" -#include "vector.h" #include "trackball.h" #include "glbuffers.h" -#include "glshaders.h" #include "qtbox.h" #define PI 3.14159265358979 +QT_BEGIN_NAMESPACE +class QMatrix4x4; +QT_END_NAMESPACE + class ParameterEdit : public QWidget { public: @@ -195,7 +197,7 @@ public slots: void setFloatParameter(const QString &name, float value); void newItem(ItemDialog::ItemType type); protected: - void renderBoxes(const gfx::Matrix4x4f &view, int excludeBox = -2); + void renderBoxes(const QMatrix4x4 &view, int excludeBox = -2); void setStates(); void setLights(); void defaultStates(); @@ -231,13 +233,11 @@ private: GLTexture3D *m_noise; GLRenderTargetCube *m_mainCubemap; QVector<GLRenderTargetCube *> m_cubemaps; - QVector<GLProgram *> m_programs; - GLVertexShader *m_vertexShader; - QVector<GLFragmentShader *> m_fragmentShaders; - GLFragmentShader *m_environmentShader; - GLProgram *m_environmentProgram; + QVector<QGLShaderProgram *> m_programs; + QGLShader *m_vertexShader; + QVector<QGLShader *> m_fragmentShaders; + QGLShader *m_environmentShader; + QGLShaderProgram *m_environmentProgram; }; - - #endif diff --git a/demos/boxes/trackball.cpp b/demos/boxes/trackball.cpp index 2dec679..9898441 100644 --- a/demos/boxes/trackball.cpp +++ b/demos/boxes/trackball.cpp @@ -40,6 +40,7 @@ ****************************************************************************/ #include "trackball.h" +#include "scene.h" //============================================================================// // TrackBall // @@ -51,23 +52,23 @@ TrackBall::TrackBall(TrackMode mode) , m_pressed(false) , m_mode(mode) { - m_axis = gfx::Vector3f::vector(0, 1, 0); - m_rotation = gfx::Quaternionf::quaternion(1.0f, 0.0f, 0.0f, 0.0f); + m_axis = QVector3D(0, 1, 0); + m_rotation = QQuaternion(); m_lastTime = QTime::currentTime(); } -TrackBall::TrackBall(float angularVelocity, const gfx::Vector3f& axis, TrackMode mode) +TrackBall::TrackBall(float angularVelocity, const QVector3D& axis, TrackMode mode) : m_axis(axis) , m_angularVelocity(angularVelocity) , m_paused(false) , m_pressed(false) , m_mode(mode) { - m_rotation = gfx::Quaternionf::quaternion(1.0f, 0.0f, 0.0f, 0.0f); + m_rotation = QQuaternion(); m_lastTime = QTime::currentTime(); } -void TrackBall::push(const QPointF& p, const gfx::Quaternionf &) +void TrackBall::push(const QPointF& p, const QQuaternion &) { m_rotation = rotation(); m_pressed = true; @@ -76,7 +77,7 @@ void TrackBall::push(const QPointF& p, const gfx::Quaternionf &) m_angularVelocity = 0.0f; } -void TrackBall::move(const QPointF& p, const gfx::Quaternionf &transformation) +void TrackBall::move(const QPointF& p, const QQuaternion &transformation) { if (!m_pressed) return; @@ -90,44 +91,45 @@ void TrackBall::move(const QPointF& p, const gfx::Quaternionf &transformation) case Plane: { QLineF delta(m_lastPos, p); - m_angularVelocity = delta.length() / msecs; - m_axis = gfx::Vector3f::vector(delta.dy(), -delta.dx(), 0.0f).normalized(); - m_axis = transformation.transform(m_axis); - m_rotation *= gfx::Quaternionf::rotation(delta.length(), m_axis); + m_angularVelocity = 180*delta.length() / (PI*msecs); + m_axis = QVector3D(delta.dy(), -delta.dx(), 0.0f).normalized(); + m_axis = transformation.rotateVector(m_axis); + m_rotation *= QQuaternion::fromAxisAndAngle(m_axis, delta.length()); } break; case Sphere: { - gfx::Vector3f lastPos3D = gfx::Vector3f::vector(m_lastPos.x(), m_lastPos.y(), 0); - float sqrZ = 1 - lastPos3D.sqrNorm(); + QVector3D lastPos3D = QVector3D(m_lastPos.x(), m_lastPos.y(), 0.0f); + float sqrZ = 1 - QVector3D::dotProduct(lastPos3D, lastPos3D); if (sqrZ > 0) - lastPos3D[2] = sqrt(sqrZ); + lastPos3D.setZ(sqrt(sqrZ)); else lastPos3D.normalize(); - gfx::Vector3f currentPos3D = gfx::Vector3f::vector(p.x(), p.y(), 0); - sqrZ = 1 - currentPos3D.sqrNorm(); + QVector3D currentPos3D = QVector3D(p.x(), p.y(), 0.0f); + sqrZ = 1 - QVector3D::dotProduct(currentPos3D, currentPos3D); if (sqrZ > 0) - currentPos3D[2] = sqrt(sqrZ); + currentPos3D.setZ(sqrt(sqrZ)); else currentPos3D.normalize(); - m_axis = gfx::Vector3f::cross(currentPos3D, lastPos3D); - float angle = asin(sqrt(m_axis.sqrNorm())); + m_axis = QVector3D::crossProduct(currentPos3D, lastPos3D); + float angle = asin(sqrt(QVector3D::dotProduct(m_axis, m_axis))); - m_angularVelocity = angle / msecs; + m_angularVelocity = 180*angle / (PI*msecs); m_axis.normalize(); - m_axis = transformation.transform(m_axis); - m_rotation *= gfx::Quaternionf::rotation(angle, m_axis); + m_axis = transformation.rotateVector(m_axis); + m_rotation *= QQuaternion::fromAxisAndAngle(m_axis, angle); } break; } + m_lastPos = p; m_lastTime = currentTime; } -void TrackBall::release(const QPointF& p, const gfx::Quaternionf &transformation) +void TrackBall::release(const QPointF& p, const QQuaternion &transformation) { // Calling move() caused the rotation to stop if the framerate was too low. move(p, transformation); @@ -146,13 +148,13 @@ void TrackBall::stop() m_paused = true; } -gfx::Quaternionf TrackBall::rotation() const +QQuaternion TrackBall::rotation() const { if (m_paused || m_pressed) return m_rotation; QTime currentTime = QTime::currentTime(); float angle = m_angularVelocity * m_lastTime.msecsTo(currentTime); - return m_rotation * gfx::Quaternionf::rotation(angle, m_axis); + return m_rotation * QQuaternion::fromAxisAndAngle(m_axis, angle); } diff --git a/demos/boxes/trackball.h b/demos/boxes/trackball.h index 817595f..323424b 100644 --- a/demos/boxes/trackball.h +++ b/demos/boxes/trackball.h @@ -44,7 +44,8 @@ #include <QtGui> -#include "vector.h" +#include <QtGui/qvector3d.h> +#include <QtGui/qquaternion.h> class TrackBall { @@ -55,17 +56,17 @@ public: Sphere, }; TrackBall(TrackMode mode = Sphere); - TrackBall(float angularVelocity, const gfx::Vector3f& axis, TrackMode mode = Sphere); + TrackBall(float angularVelocity, const QVector3D& axis, TrackMode mode = Sphere); // coordinates in [-1,1]x[-1,1] - void push(const QPointF& p, const gfx::Quaternionf &transformation); - void move(const QPointF& p, const gfx::Quaternionf &transformation); - void release(const QPointF& p, const gfx::Quaternionf &transformation); + void push(const QPointF& p, const QQuaternion &transformation); + void move(const QPointF& p, const QQuaternion &transformation); + void release(const QPointF& p, const QQuaternion &transformation); void start(); // starts clock void stop(); // stops clock - gfx::Quaternionf rotation() const; + QQuaternion rotation() const; private: - gfx::Quaternionf m_rotation; - gfx::Vector3f m_axis; + QQuaternion m_rotation; + QVector3D m_axis; float m_angularVelocity; QPointF m_lastPos; diff --git a/demos/boxes/vector.h b/demos/boxes/vector.h deleted file mode 100644 index 0923b63..0000000 --- a/demos/boxes/vector.h +++ /dev/null @@ -1,602 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the demonstration applications 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$ -** -****************************************************************************/ - -#ifndef VECTOR_H -#define VECTOR_H - -#include <cassert> -#include <cmath> -#include <iostream> - -namespace gfx -{ - -template<class T, int n> -struct Vector -{ - // Keep the Vector struct a plain old data (POD) struct by avoiding constructors - - static Vector vector(T x) - { - Vector result; - for (int i = 0; i < n; ++i) - result.v[i] = x; - return result; - } - - // Use only for 2D vectors - static Vector vector(T x, T y) - { - assert(n == 2); - Vector result; - result.v[0] = x; - result.v[1] = y; - return result; - } - - // Use only for 3D vectors - static Vector vector(T x, T y, T z) - { - assert(n == 3); - Vector result; - result.v[0] = x; - result.v[1] = y; - result.v[2] = z; - return result; - } - - // Use only for 4D vectors - static Vector vector(T x, T y, T z, T w) - { - assert(n == 4); - Vector result; - result.v[0] = x; - result.v[1] = y; - result.v[2] = z; - result.v[3] = w; - return result; - } - - // Pass 'n' arguments to this function. - static Vector vector(T *v) - { - Vector result; - for (int i = 0; i < n; ++i) - result.v[i] = v[i]; - return result; - } - - T &operator [] (int i) {return v[i];} - T operator [] (int i) const {return v[i];} - -#define VECTOR_BINARY_OP(op, arg, rhs) \ - Vector operator op (arg) const \ - { \ - Vector result; \ - for (int i = 0; i < n; ++i) \ - result.v[i] = v[i] op rhs; \ - return result; \ - } - - VECTOR_BINARY_OP(+, const Vector &u, u.v[i]) - VECTOR_BINARY_OP(-, const Vector &u, u.v[i]) - VECTOR_BINARY_OP(*, const Vector &u, u.v[i]) - VECTOR_BINARY_OP(/, const Vector &u, u.v[i]) - VECTOR_BINARY_OP(+, T s, s) - VECTOR_BINARY_OP(-, T s, s) - VECTOR_BINARY_OP(*, T s, s) - VECTOR_BINARY_OP(/, T s, s) -#undef VECTOR_BINARY_OP - - Vector operator - () const - { - Vector result; - for (int i = 0; i < n; ++i) - result.v[i] = -v[i]; - return result; - } - -#define VECTOR_ASSIGN_OP(op, arg, rhs) \ - Vector &operator op (arg) \ - { \ - for (int i = 0; i < n; ++i) \ - v[i] op rhs; \ - return *this; \ - } - - VECTOR_ASSIGN_OP(+=, const Vector &u, u.v[i]) - VECTOR_ASSIGN_OP(-=, const Vector &u, u.v[i]) - VECTOR_ASSIGN_OP(=, T s, s) - VECTOR_ASSIGN_OP(*=, T s, s) - VECTOR_ASSIGN_OP(/=, T s, s) -#undef VECTOR_ASSIGN_OP - - static T dot(const Vector &u, const Vector &v) - { - T sum(0); - for (int i = 0; i < n; ++i) - sum += u.v[i] * v.v[i]; - return sum; - } - - static Vector cross(const Vector &u, const Vector &v) - { - assert(n == 3); - return vector(u.v[1] * v.v[2] - u.v[2] * v.v[1], - u.v[2] * v.v[0] - u.v[0] * v.v[2], - u.v[0] * v.v[1] - u.v[1] * v.v[0]); - } - - T sqrNorm() const - { - return dot(*this, *this); - } - - // requires floating point type T - void normalize() - { - T s = sqrNorm(); - if (s != 0) - *this /= sqrt(s); - } - - // requires floating point type T - Vector normalized() const - { - T s = sqrNorm(); - if (s == 0) - return *this; - return *this / sqrt(s); - } - - T *bits() {return v;} - const T *bits() const {return v;} - - T v[n]; -}; - -#define SCALAR_VECTOR_BINARY_OP(op) \ -template<class T, int n> \ -Vector<T, n> operator op (T s, const Vector<T, n>& u) \ -{ \ - Vector<T, n> result; \ - for (int i = 0; i < n; ++i) \ - result[i] = s op u[i]; \ - return result; \ -} - -SCALAR_VECTOR_BINARY_OP(+) -SCALAR_VECTOR_BINARY_OP(-) -SCALAR_VECTOR_BINARY_OP(*) -SCALAR_VECTOR_BINARY_OP(/) -#undef SCALAR_VECTOR_BINARY_OP - -template<class T, int n> -std::ostream &operator << (std::ostream &os, const Vector<T, n> &v) -{ - assert(n > 0); - os << "[" << v[0]; - for (int i = 1; i < n; ++i) - os << ", " << v[i]; - os << "]"; - return os; -} - -typedef Vector<float, 2> Vector2f; -typedef Vector<float, 3> Vector3f; -typedef Vector<float, 4> Vector4f; - -template<class T, int rows, int cols> -struct Matrix -{ - // Keep the Matrix struct a plain old data (POD) struct by avoiding constructors - - static Matrix matrix(T x) - { - Matrix result; - for (int i = 0; i < rows; ++i) { - for (int j = 0; j < cols; ++j) - result.v[i][j] = x; - } - return result; - } - - static Matrix matrix(T *m) - { - Matrix result; - for (int i = 0; i < rows; ++i) { - for (int j = 0; j < cols; ++j) { - result.v[i][j] = *m; - ++m; - } - } - return result; - } - - T &operator () (int i, int j) {return v[i][j];} - T operator () (int i, int j) const {return v[i][j];} - Vector<T, cols> &operator [] (int i) {return v[i];} - const Vector<T, cols> &operator [] (int i) const {return v[i];} - - // TODO: operators, methods - - Vector<T, rows> operator * (const Vector<T, cols> &u) const - { - Vector<T, rows> result; - for (int i = 0; i < rows; ++i) - result[i] = Vector<T, cols>::dot(v[i], u); - return result; - } - - template<int k> - Matrix<T, rows, k> operator * (const Matrix<T, cols, k> &m) - { - Matrix<T, rows, k> result; - for (int i = 0; i < rows; ++i) - result[i] = v[i] * m; - return result; - } - - T* bits() {return reinterpret_cast<T *>(this);} - const T* bits() const {return reinterpret_cast<const T *>(this);} - - // Simple Gauss elimination. - // TODO: Optimize and improve stability. - Matrix inverse(bool *ok = 0) const - { - assert(rows == cols); - Matrix rhs = identity(); - Matrix lhs(*this); - T temp; - // Down - for (int i = 0; i < rows; ++i) { - // Pivoting - int pivot = i; - for (int j = i; j < rows; ++j) { - if (qAbs(lhs(j, i)) > lhs(pivot, i)) - pivot = j; - } - // TODO: fuzzy compare. - if (lhs(pivot, i) == T(0)) { - if (ok) - *ok = false; - return rhs; - } - if (pivot != i) { - for (int j = i; j < cols; ++j) { - temp = lhs(pivot, j); - lhs(pivot, j) = lhs(i, j); - lhs(i, j) = temp; - } - for (int j = 0; j < cols; ++j) { - temp = rhs(pivot, j); - rhs(pivot, j) = rhs(i, j); - rhs(i, j) = temp; - } - } - - // Normalize i-th row - rhs[i] /= lhs(i, i); - for (int j = cols - 1; j > i; --j) - lhs(i, j) /= lhs(i, i); - - // Eliminate non-zeros in i-th column below the i-th row. - for (int j = i + 1; j < rows; ++j) { - rhs[j] -= lhs(j, i) * rhs[i]; - for (int k = i + 1; k < cols; ++k) - lhs(j, k) -= lhs(j, i) * lhs(i, k); - } - } - // Up - for (int i = rows - 1; i > 0; --i) { - for (int j = i - 1; j >= 0; --j) - rhs[j] -= lhs(j, i) * rhs[i]; - } - if (ok) - *ok = true; - return rhs; - } - - Matrix<T, cols, rows> transpose() const - { - Matrix<T, cols, rows> result; - for (int i = 0; i < rows; ++i) { - for (int j = 0; j < cols; ++j) - result.v[j][i] = v[i][j]; - } - return result; - } - - static Matrix identity() - { - Matrix result = matrix(T(0)); - for (int i = 0; i < rows && i < cols; ++i) - result.v[i][i] = T(1); - return result; - } - - Vector<T, cols> v[rows]; -}; - -template<class T, int rows, int cols> -Vector<T, cols> operator * (const Vector<T, rows> &u, const Matrix<T, rows, cols> &m) -{ - Vector<T, cols> result = Vector<T, cols>::vector(T(0)); - for (int i = 0; i < rows; ++i) - result += m[i] * u[i]; - return result; -} - -template<class T, int rows, int cols> -std::ostream &operator << (std::ostream &os, const Matrix<T, rows, cols> &m) -{ - assert(rows > 0); - os << "[" << m[0]; - for (int i = 1; i < rows; ++i) - os << ", " << m[i]; - os << "]"; - return os; -} - - -typedef Matrix<float, 2, 2> Matrix2x2f; -typedef Matrix<float, 3, 3> Matrix3x3f; -typedef Matrix<float, 4, 4> Matrix4x4f; - -template<class T> -struct Quaternion -{ - // Keep the Quaternion struct a plain old data (POD) struct by avoiding constructors - - static Quaternion quaternion(T s, T x, T y, T z) - { - Quaternion result; - result.scalar = s; - result.vector[0] = x; - result.vector[1] = y; - result.vector[2] = z; - return result; - } - - static Quaternion quaternion(T s, const Vector<T, 3> &v) - { - Quaternion result; - result.scalar = s; - result.vector = v; - return result; - } - - static Quaternion identity() - { - return quaternion(T(1), T(0), T(0), T(0)); - } - - // assumes that all the elements are packed tightly - T& operator [] (int i) {return reinterpret_cast<T *>(this)[i];} - T operator [] (int i) const {return reinterpret_cast<const T *>(this)[i];} - -#define QUATERNION_BINARY_OP(op, arg, rhs) \ - Quaternion operator op (arg) const \ - { \ - Quaternion result; \ - for (int i = 0; i < 4; ++i) \ - result[i] = (*this)[i] op rhs; \ - return result; \ - } - - QUATERNION_BINARY_OP(+, const Quaternion &q, q[i]) - QUATERNION_BINARY_OP(-, const Quaternion &q, q[i]) - QUATERNION_BINARY_OP(*, T s, s) - QUATERNION_BINARY_OP(/, T s, s) -#undef QUATERNION_BINARY_OP - - Quaternion operator - () const - { - return Quaternion(-scalar, -vector); - } - - Quaternion operator * (const Quaternion &q) const - { - Quaternion result; - result.scalar = scalar * q.scalar - Vector<T, 3>::dot(vector, q.vector); - result.vector = scalar * q.vector + vector * q.scalar + Vector<T, 3>::cross(vector, q.vector); - return result; - } - - Quaternion operator * (const Vector<T, 3> &v) const - { - Quaternion result; - result.scalar = -Vector<T, 3>::dot(vector, v); - result.vector = scalar * v + Vector<T, 3>::cross(vector, v); - return result; - } - - friend Quaternion operator * (const Vector<T, 3> &v, const Quaternion &q) - { - Quaternion result; - result.scalar = -Vector<T, 3>::dot(v, q.vector); - result.vector = v * q.scalar + Vector<T, 3>::cross(v, q.vector); - return result; - } - -#define QUATERNION_ASSIGN_OP(op, arg, rhs) \ - Quaternion &operator op (arg) \ - { \ - for (int i = 0; i < 4; ++i) \ - (*this)[i] op rhs; \ - return *this; \ - } - - QUATERNION_ASSIGN_OP(+=, const Quaternion &q, q[i]) - QUATERNION_ASSIGN_OP(-=, const Quaternion &q, q[i]) - QUATERNION_ASSIGN_OP(=, T s, s) - QUATERNION_ASSIGN_OP(*=, T s, s) - QUATERNION_ASSIGN_OP(/=, T s, s) -#undef QUATERNION_ASSIGN_OP - - Quaternion& operator *= (const Quaternion &q) - { - Quaternion result; - result.scalar = scalar * q.scalar - Vector<T, 3>::dot(vector, q.vector); - result.vector = scalar * q.vector + vector * q.scalar + Vector<T, 3>::cross(vector, q.vector); - return (*this = result); - } - - Quaternion& operator *= (const Vector<T, 3> &v) - { - Quaternion result; - result.scalar = -Vector<T, 3>::dot(vector, v); - result.vector = scalar * v + Vector<T, 3>::cross(vector, v); - return (*this = result); - } - - Quaternion conjugate() const - { - return quaternion(scalar, -vector); - } - - T sqrNorm() const - { - return scalar * scalar + vector.sqrNorm(); - } - - Quaternion inverse() const - { - return conjugate() / sqrNorm(); - } - - // requires floating point type T - Quaternion normalized() const - { - T s = sqrNorm(); - if (s == 0) - return *this; - return *this / sqrt(s); - } - - void matrix(Matrix<T, 3, 3>& m) const - { - T bb = vector[0] * vector[0]; - T cc = vector[1] * vector[1]; - T dd = vector[2] * vector[2]; - T diag = scalar * scalar - bb - cc - dd; - T ab = scalar * vector[0]; - T ac = scalar * vector[1]; - T ad = scalar * vector[2]; - T bc = vector[0] * vector[1]; - T cd = vector[1] * vector[2]; - T bd = vector[2] * vector[0]; - m(0, 0) = diag + 2 * bb; - m(0, 1) = 2 * (bc - ad); - m(0, 2) = 2 * (ac + bd); - m(1, 0) = 2 * (ad + bc); - m(1, 1) = diag + 2 * cc; - m(1, 2) = 2 * (cd - ab); - m(2, 0) = 2 * (bd - ac); - m(2, 1) = 2 * (ab + cd); - m(2, 2) = diag + 2 * dd; - } - - void matrix(Matrix<T, 4, 4>& m) const - { - T bb = vector[0] * vector[0]; - T cc = vector[1] * vector[1]; - T dd = vector[2] * vector[2]; - T diag = scalar * scalar - bb - cc - dd; - T ab = scalar * vector[0]; - T ac = scalar * vector[1]; - T ad = scalar * vector[2]; - T bc = vector[0] * vector[1]; - T cd = vector[1] * vector[2]; - T bd = vector[2] * vector[0]; - m(0, 0) = diag + 2 * bb; - m(0, 1) = 2 * (bc - ad); - m(0, 2) = 2 * (ac + bd); - m(0, 3) = 0; - m(1, 0) = 2 * (ad + bc); - m(1, 1) = diag + 2 * cc; - m(1, 2) = 2 * (cd - ab); - m(1, 3) = 0; - m(2, 0) = 2 * (bd - ac); - m(2, 1) = 2 * (ab + cd); - m(2, 2) = diag + 2 * dd; - m(2, 3) = 0; - m(3, 0) = 0; - m(3, 1) = 0; - m(3, 2) = 0; - m(3, 3) = 1; - } - - // assumes that 'this' is normalized - Vector<T, 3> transform(const Vector<T, 3> &v) const - { - Matrix<T, 3, 3> m; - matrix(m); - return v * m; - } - - // assumes that all the elements are packed tightly - T* bits() {return reinterpret_cast<T *>(this);} - const T* bits() const {return reinterpret_cast<const T *>(this);} - - // requires floating point type T - static Quaternion rotation(T angle, const Vector<T, 3> &unitAxis) - { - T s = sin(angle / 2); - T c = cos(angle / 2); - return quaternion(c, unitAxis * s); - } - - T scalar; - Vector<T, 3> vector; -}; - -template<class T> -Quaternion<T> operator * (T s, const Quaternion<T>& q) -{ - return Quaternion<T>::quaternion(s * q.scalar, s * q.vector); -} - -typedef Quaternion<float> Quaternionf; - -} // end namespace gfx - -#endif diff --git a/demos/browser/browser.pro b/demos/browser/browser.pro index 13e8a1d..f54afe4 100644 --- a/demos/browser/browser.pro +++ b/demos/browser/browser.pro @@ -3,7 +3,7 @@ TARGET = browser QT += webkit network CONFIG += qt warn_on -contains(QT_BUILD_PARTS, tools): CONFIG += uitools +contains(QT_BUILD_PARTS, tools):!symbian: CONFIG += uitools else: DEFINES += QT_NO_UITOOLS FORMS += \ @@ -89,3 +89,8 @@ target.path = $$[QT_INSTALL_DEMOS]/browser sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS *.plist *.icns *.ico *.rc *.pro *.html *.doc images htmls data sources.path = $$[QT_INSTALL_DEMOS]/browser INSTALLS += target sources + +symbian { + include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) + TARGET.UID3 = 0xA000CF70 +} diff --git a/demos/browser/browsermainwindow.cpp b/demos/browser/browsermainwindow.cpp index 8f68c07..2489467 100644 --- a/demos/browser/browsermainwindow.cpp +++ b/demos/browser/browsermainwindow.cpp @@ -81,6 +81,7 @@ BrowserMainWindow::BrowserMainWindow(QWidget *parent, Qt::WindowFlags flags) , m_stop(0) , m_reload(0) { + setToolButtonStyle(Qt::ToolButtonFollowStyle); setAttribute(Qt::WA_DeleteOnClose, true); statusBar()->setSizeGripEnabled(true); setupMenu(); @@ -575,7 +576,7 @@ QUrl BrowserMainWindow::guessUrlFromString(const QString &string) int dotIndex = urlStr.indexOf(QLatin1Char('.')); if (dotIndex != -1) { QString prefix = urlStr.left(dotIndex).toLower(); - QByteArray schema = (prefix == QLatin1String("ftp")) ? prefix.toLatin1() : "http"; + QByteArray schema = (prefix == QLatin1String("ftp")) ? prefix.toLatin1() : QByteArray("http"); QUrl url = QUrl::fromEncoded(schema + "://" + urlStr.toUtf8(), QUrl::TolerantMode); if (url.isValid()) diff --git a/demos/browser/data/defaultbookmarks.xbel b/demos/browser/data/defaultbookmarks.xbel index 1d20ac0..dce5297 100644 --- a/demos/browser/data/defaultbookmarks.xbel +++ b/demos/browser/data/defaultbookmarks.xbel @@ -30,6 +30,9 @@ <bookmark href="http://xkcd.com/"> <title>xkcd</title> </bookmark> + <bookmark href="http://twitter.com/qtbynokia"> + <title>Twitter</title> + </bookmark> </folder> <folder folded="yes"> <title>Bookmarks Menu</title> diff --git a/demos/browser/networkaccessmanager.cpp b/demos/browser/networkaccessmanager.cpp index c420e5b..6f53091 100644 --- a/demos/browser/networkaccessmanager.cpp +++ b/demos/browser/networkaccessmanager.cpp @@ -57,16 +57,21 @@ #include <QtNetwork/QAuthenticator> #include <QtNetwork/QNetworkDiskCache> #include <QtNetwork/QNetworkProxy> +#include <QtNetwork/QNetworkRequest> #include <QtNetwork/QNetworkReply> #include <QtNetwork/QSslError> NetworkAccessManager::NetworkAccessManager(QObject *parent) - : QNetworkAccessManager(parent) + : QNetworkAccessManager(parent), + requestFinishedCount(0), requestFinishedFromCacheCount(0), requestFinishedPipelinedCount(0), + requestFinishedSecureCount(0) { connect(this, SIGNAL(authenticationRequired(QNetworkReply*, QAuthenticator*)), SLOT(authenticationRequired(QNetworkReply*,QAuthenticator*))); connect(this, SIGNAL(proxyAuthenticationRequired(const QNetworkProxy&, QAuthenticator*)), SLOT(proxyAuthenticationRequired(const QNetworkProxy&, QAuthenticator*))); + connect(this, SIGNAL(finished(QNetworkReply *)), + SLOT(requestFinished(QNetworkReply *))); #ifndef QT_NO_OPENSSL connect(this, SIGNAL(sslErrors(QNetworkReply*, const QList<QSslError>&)), SLOT(sslErrors(QNetworkReply*, const QList<QSslError>&))); @@ -79,6 +84,38 @@ NetworkAccessManager::NetworkAccessManager(QObject *parent) setCache(diskCache); } +QNetworkReply* NetworkAccessManager::createRequest(Operation op, const QNetworkRequest & req, QIODevice * outgoingData) +{ + QNetworkRequest request = req; // copy so we can modify + // this is a temporary hack until we properly use the pipelining flags from QtWebkit + // pipeline everything! :) + request.setAttribute(QNetworkRequest::HttpPipeliningAllowedAttribute, true); + return QNetworkAccessManager::createRequest(op, request, outgoingData); +} + +void NetworkAccessManager::requestFinished(QNetworkReply *reply) +{ + requestFinishedCount++; + + if (reply->attribute(QNetworkRequest::SourceIsFromCacheAttribute).toBool() == true) + requestFinishedFromCacheCount++; + + if (reply->attribute(QNetworkRequest::HttpPipeliningWasUsedAttribute).toBool() == true) + requestFinishedPipelinedCount++; + + if (reply->attribute(QNetworkRequest::ConnectionEncryptedAttribute).toBool() == true) + requestFinishedSecureCount++; + + if (requestFinishedCount % 10) + return; + + double pctCached = (double(requestFinishedFromCacheCount) * 100.0/ double(requestFinishedCount)); + double pctPipelined = (double(requestFinishedPipelinedCount) * 100.0/ double(requestFinishedCount)); + double pctSecure = (double(requestFinishedSecureCount) * 100.0/ double(requestFinishedCount)); + qDebug("STATS [%lli requests total] [%3.2f%% from cache] [%3.2f%% pipelined] [%3.2f%% SSL/TLS]", requestFinishedCount, pctCached, pctPipelined, pctSecure); + +} + void NetworkAccessManager::loadSettings() { QSettings settings; diff --git a/demos/browser/networkaccessmanager.h b/demos/browser/networkaccessmanager.h index 58757f3..636aa22 100644 --- a/demos/browser/networkaccessmanager.h +++ b/demos/browser/networkaccessmanager.h @@ -43,6 +43,7 @@ #define NETWORKACCESSMANAGER_H #include <QtNetwork/QNetworkAccessManager> +#include <QtNetwork/QNetworkRequest> class NetworkAccessManager : public QNetworkAccessManager { @@ -51,11 +52,18 @@ class NetworkAccessManager : public QNetworkAccessManager public: NetworkAccessManager(QObject *parent = 0); + virtual QNetworkReply* createRequest ( Operation op, const QNetworkRequest & req, QIODevice * outgoingData = 0 ); + private: QList<QString> sslTrustedHostList; + qint64 requestFinishedCount; + qint64 requestFinishedFromCacheCount; + qint64 requestFinishedPipelinedCount; + qint64 requestFinishedSecureCount; public slots: void loadSettings(); + void requestFinished(QNetworkReply *reply); private slots: void authenticationRequired(QNetworkReply *reply, QAuthenticator *auth); diff --git a/demos/browser/searchlineedit.cpp b/demos/browser/searchlineedit.cpp index f7cb878..9662590 100644 --- a/demos/browser/searchlineedit.cpp +++ b/demos/browser/searchlineedit.cpp @@ -50,7 +50,9 @@ ClearButton::ClearButton(QWidget *parent) : QAbstractButton(parent) { +#ifndef QT_NO_CURSOR setCursor(Qt::ArrowCursor); +#endif // QT_NO_CURSOR setToolTip(tr("Clear")); setVisible(false); setFocusPolicy(Qt::NoFocus); @@ -103,7 +105,9 @@ SearchButton::SearchButton(QWidget *parent) m_menu(0) { setObjectName(QLatin1String("SearchButton")); +#ifndef QT_NO_CURSOR setCursor(Qt::ArrowCursor); +#endif //QT_NO_CURSOR setFocusPolicy(Qt::NoFocus); } diff --git a/demos/browser/webview.cpp b/demos/browser/webview.cpp index 32299bc..7b5a42a 100644 --- a/demos/browser/webview.cpp +++ b/demos/browser/webview.cpp @@ -54,7 +54,9 @@ #include <QtWebKit/QWebHitTestResult> +#ifndef QT_NO_UITOOLS #include <QtUiTools/QUiLoader> +#endif //QT_NO_UITOOLS #include <QtCore/QDebug> #include <QtCore/QBuffer> diff --git a/demos/browser/xbel.cpp b/demos/browser/xbel.cpp index 2449d3c..06ceda3 100644 --- a/demos/browser/xbel.cpp +++ b/demos/browser/xbel.cpp @@ -133,16 +133,13 @@ BookmarkNode *XbelReader::read(QIODevice *device) { BookmarkNode *root = new BookmarkNode(BookmarkNode::Root); setDevice(device); - while (!atEnd()) { - readNext(); - if (isStartElement()) { - QString version = attributes().value(QLatin1String("version")).toString(); - if (name() == QLatin1String("xbel") - && (version.isEmpty() || version == QLatin1String("1.0"))) { - readXBEL(root); - } else { - raiseError(QObject::tr("The file is not an XBEL version 1.0 file.")); - } + if (readNextStartElement()) { + QString version = attributes().value(QLatin1String("version")).toString(); + if (name() == QLatin1String("xbel") + && (version.isEmpty() || version == QLatin1String("1.0"))) { + readXBEL(root); + } else { + raiseError(QObject::tr("The file is not an XBEL version 1.0 file.")); } } return root; @@ -152,21 +149,15 @@ void XbelReader::readXBEL(BookmarkNode *parent) { Q_ASSERT(isStartElement() && name() == QLatin1String("xbel")); - while (!atEnd()) { - readNext(); - if (isEndElement()) - break; - - if (isStartElement()) { - if (name() == QLatin1String("folder")) - readFolder(parent); - else if (name() == QLatin1String("bookmark")) - readBookmarkNode(parent); - else if (name() == QLatin1String("separator")) - readSeparator(parent); - else - skipUnknownElement(); - } + while (readNextStartElement()) { + if (name() == QLatin1String("folder")) + readFolder(parent); + else if (name() == QLatin1String("bookmark")) + readBookmarkNode(parent); + else if (name() == QLatin1String("separator")) + readSeparator(parent); + else + skipCurrentElement(); } } @@ -177,26 +168,19 @@ void XbelReader::readFolder(BookmarkNode *parent) BookmarkNode *folder = new BookmarkNode(BookmarkNode::Folder, parent); folder->expanded = (attributes().value(QLatin1String("folded")) == QLatin1String("no")); - while (!atEnd()) { - readNext(); - - if (isEndElement()) - break; - - if (isStartElement()) { - if (name() == QLatin1String("title")) - readTitle(folder); - else if (name() == QLatin1String("desc")) - readDescription(folder); - else if (name() == QLatin1String("folder")) - readFolder(folder); - else if (name() == QLatin1String("bookmark")) - readBookmarkNode(folder); - else if (name() == QLatin1String("separator")) - readSeparator(folder); - else - skipUnknownElement(); - } + while (readNextStartElement()) { + if (name() == QLatin1String("title")) + readTitle(folder); + else if (name() == QLatin1String("desc")) + readDescription(folder); + else if (name() == QLatin1String("folder")) + readFolder(folder); + else if (name() == QLatin1String("bookmark")) + readBookmarkNode(folder); + else if (name() == QLatin1String("separator")) + readSeparator(folder); + else + skipCurrentElement(); } } @@ -224,39 +208,18 @@ void XbelReader::readBookmarkNode(BookmarkNode *parent) Q_ASSERT(isStartElement() && name() == QLatin1String("bookmark")); BookmarkNode *bookmark = new BookmarkNode(BookmarkNode::Bookmark, parent); bookmark->url = attributes().value(QLatin1String("href")).toString(); - while (!atEnd()) { - readNext(); - if (isEndElement()) - break; - - if (isStartElement()) { - if (name() == QLatin1String("title")) - readTitle(bookmark); - else if (name() == QLatin1String("desc")) - readDescription(bookmark); - else - skipUnknownElement(); - } + while (readNextStartElement()) { + if (name() == QLatin1String("title")) + readTitle(bookmark); + else if (name() == QLatin1String("desc")) + readDescription(bookmark); + else + skipCurrentElement(); } if (bookmark->title.isEmpty()) bookmark->title = QObject::tr("Unknown title"); } -void XbelReader::skipUnknownElement() -{ - Q_ASSERT(isStartElement()); - - while (!atEnd()) { - readNext(); - - if (isEndElement()) - break; - - if (isStartElement()) - skipUnknownElement(); - } -} - XbelWriter::XbelWriter() { diff --git a/demos/browser/xbel.h b/demos/browser/xbel.h index ece5505..6b2e2b2 100644 --- a/demos/browser/xbel.h +++ b/demos/browser/xbel.h @@ -87,7 +87,6 @@ public: BookmarkNode *read(QIODevice *device); private: - void skipUnknownElement(); void readXBEL(BookmarkNode *parent); void readTitle(BookmarkNode *parent); void readDescription(BookmarkNode *parent); diff --git a/demos/chip/chip.cpp b/demos/chip/chip.cpp index 7940156..903af25 100644 --- a/demos/chip/chip.cpp +++ b/demos/chip/chip.cpp @@ -74,8 +74,9 @@ void Chip::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWid if (option->state & QStyle::State_MouseOver) fillColor = fillColor.light(125); - if (option->levelOfDetail < 0.2) { - if (option->levelOfDetail < 0.125) { + const qreal lod = option->levelOfDetailFromTransform(painter->worldTransform()); + if (lod < 0.2) { + if (lod < 0.125) { painter->fillRect(QRectF(0, 0, 110, 70), fillColor); return; } @@ -100,7 +101,7 @@ void Chip::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWid painter->drawRect(QRect(14, 14, 79, 39)); painter->setBrush(b); - if (option->levelOfDetail >= 1) { + if (lod >= 1) { painter->setPen(QPen(Qt::gray, 1)); painter->drawLine(15, 54, 94, 54); painter->drawLine(94, 53, 94, 15); @@ -108,7 +109,7 @@ void Chip::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWid } // Draw text - if (option->levelOfDetail >= 2) { + if (lod >= 2) { QFont font("Times", 10); font.setStyleStrategy(QFont::ForceOutline); painter->setFont(font); @@ -122,17 +123,17 @@ void Chip::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWid // Draw lines QVarLengthArray<QLineF, 36> lines; - if (option->levelOfDetail >= 0.5) { - for (int i = 0; i <= 10; i += (option->levelOfDetail > 0.5 ? 1 : 2)) { + if (lod >= 0.5) { + for (int i = 0; i <= 10; i += (lod > 0.5 ? 1 : 2)) { lines.append(QLineF(18 + 7 * i, 13, 18 + 7 * i, 5)); lines.append(QLineF(18 + 7 * i, 54, 18 + 7 * i, 62)); } - for (int i = 0; i <= 6; i += (option->levelOfDetail > 0.5 ? 1 : 2)) { + for (int i = 0; i <= 6; i += (lod > 0.5 ? 1 : 2)) { lines.append(QLineF(5, 18 + i * 5, 13, 18 + i * 5)); lines.append(QLineF(94, 18 + i * 5, 102, 18 + i * 5)); } } - if (option->levelOfDetail >= 0.4) { + if (lod >= 0.4) { const QLineF lineData[] = { QLineF(25, 35, 35, 35), QLineF(35, 30, 35, 40), diff --git a/demos/chip/chip.pro b/demos/chip/chip.pro index 53fa23b..4339f82 100644 --- a/demos/chip/chip.pro +++ b/demos/chip/chip.pro @@ -17,3 +17,4 @@ sources.files = $$SOURCES $$HEADERS $$RESOURCES *.png *.pro *.html *.doc images sources.path = $$[QT_INSTALL_DEMOS]/chip INSTALLS += target sources +symbian: include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) diff --git a/demos/composition/composition.pro b/demos/composition/composition.pro index d5c4a60..c820a8b 100644 --- a/demos/composition/composition.pro +++ b/demos/composition/composition.pro @@ -17,6 +17,8 @@ sources.files = $$SOURCES $$HEADERS $$RESOURCES *.png *.jpg *.pro *.html sources.path = $$[QT_INSTALL_DEMOS]/composition INSTALLS += target sources +symbian: include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) + win32-msvc* { QMAKE_CXXFLAGS += /Zm500 QMAKE_CFLAGS += /Zm500 diff --git a/demos/deform/deform.pro b/demos/deform/deform.pro index db8484d..4cce195 100644 --- a/demos/deform/deform.pro +++ b/demos/deform/deform.pro @@ -17,3 +17,8 @@ target.path = $$[QT_INSTALL_DEMOS]/deform sources.files = $$SOURCES $$HEADERS $$RESOURCES *.pro *.html sources.path = $$[QT_INSTALL_DEMOS]/deform INSTALLS += target sources + +symbian { + include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) + TARGET.UID3 = 0xA000A63D +} diff --git a/demos/deform/pathdeform.cpp b/demos/deform/pathdeform.cpp index beee7ff..e391225 100644 --- a/demos/deform/pathdeform.cpp +++ b/demos/deform/pathdeform.cpp @@ -53,7 +53,6 @@ #include <QDesktopWidget> #include <qmath.h> - PathDeformControls::PathDeformControls(QWidget *parent, PathDeformRenderer* renderer, bool smallScreen) : QWidget(parent) { @@ -241,6 +240,7 @@ void PathDeformControls::layoutForSmallScreen() QRect screen_size = QApplication::desktop()->screenGeometry(); radiusSlider->setValue(qMin(screen_size.width(), screen_size.height())/5); + m_renderer->setText(tr("Qt")); } diff --git a/demos/demos.pro b/demos/demos.pro index 6084550..c4b8872 100644 --- a/demos/demos.pro +++ b/demos/demos.pro @@ -1,26 +1,32 @@ TEMPLATE = subdirs SUBDIRS = \ - demos_shared \ - demos_deform \ - demos_gradients \ - demos_pathstroke \ - demos_affine \ - demos_composition \ - demos_books \ - demos_interview \ - demos_mainwindow \ - demos_spreadsheet \ - demos_textedit \ - demos_chip \ - demos_embeddeddialogs \ - demos_undo + demos_shared \ + demos_deform \ + demos_gradients \ + demos_pathstroke \ + demos_affine \ + demos_composition \ + demos_books \ + demos_interview \ + demos_mainwindow \ + demos_spreadsheet \ + demos_textedit \ + demos_chip \ + demos_embeddeddialogs \ + demos_undo \ + demos_sub-attaq + +symbian: SUBDIRS = \ + demos_shared \ + demos_deform \ + demos_pathstroke contains(QT_CONFIG, opengl):!contains(QT_CONFIG, opengles1):!contains(QT_CONFIG, opengles1cl):!contains(QT_CONFIG, opengles2):{ SUBDIRS += demos_boxes } mac*: SUBDIRS += demos_macmainwindow -wince*|embedded: SUBDIRS += embedded +wince*|symbian|embedded: SUBDIRS += embedded !contains(QT_EDITION, Console):!cross_compile:!embedded:!wince*:SUBDIRS += demos_arthurplugin @@ -38,6 +44,8 @@ sources.files = README *.pro sources.path = $$[QT_INSTALL_DEMOS] INSTALLS += sources +symbian: include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) + demos_chip.subdir = chip demos_embeddeddialogs.subdir = embeddeddialogs demos_shared.subdir = shared @@ -61,6 +69,7 @@ demos_mediaplayer.subdir = mediaplayer demos_browser.subdir = browser demos_boxes.subdir = boxes +demos_sub-attaq.subdir = sub-attaq #CONFIG += ordered !ordered { diff --git a/demos/embedded/anomaly/README.TXT b/demos/embedded/anomaly/README.TXT new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/demos/embedded/anomaly/README.TXT diff --git a/demos/embedded/anomaly/anomaly.pro b/demos/embedded/anomaly/anomaly.pro new file mode 100644 index 0000000..8fb1265 --- /dev/null +++ b/demos/embedded/anomaly/anomaly.pro @@ -0,0 +1,31 @@ +QT += network \ + webkit +HEADERS += src/BrowserWindow.h \ + src/BrowserView.h \ + src/TitleBar.h \ + src/HomeView.h \ + src/AddressBar.h \ + src/BookmarksView.h \ + src/flickcharm.h \ + src/ZoomStrip.h \ + src/ControlStrip.h +SOURCES += src/Main.cpp \ + src/BrowserWindow.cpp \ + src/BrowserView.cpp \ + src/TitleBar.cpp \ + src/HomeView.cpp \ + src/AddressBar.cpp \ + src/BookmarksView.cpp \ + src/flickcharm.cpp \ + src/ZoomStrip.cpp \ + src/ControlStrip.cpp +RESOURCES += src/anomaly.qrc + +symbian { + include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) + HEADERS += $$QT_SOURCE_TREE/examples/network/ftp/sym_iap_util.h + LIBS += -lesock -lconnmon + TARGET.CAPABILITY = NetworkServices + TARGET.EPOCHEAPSIZE = 0x20000 0x2000000 + TARGET.UID3 = 0xA000CF71 +} diff --git a/demos/embedded/anomaly/src/AddressBar.cpp b/demos/embedded/anomaly/src/AddressBar.cpp new file mode 100644 index 0000000..bb6292f --- /dev/null +++ b/demos/embedded/anomaly/src/AddressBar.cpp @@ -0,0 +1,109 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the demos 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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "AddressBar.h" + +#include <QtCore> +#include <QtGui> + +class LineEdit: public QLineEdit +{ +public: + LineEdit(QWidget *parent = 0): QLineEdit(parent) {} + + void paintEvent(QPaintEvent *event) { + QLineEdit::paintEvent(event); + if (text().isEmpty()) { + QPainter p(this); + int flags = Qt::AlignLeft | Qt::AlignVCenter; + p.setPen(palette().color(QPalette::Disabled, QPalette::Text)); + p.drawText(rect().adjusted(10, 0, 0, 0), flags, "Enter address or search terms"); + p.end(); + } + } +}; + +AddressBar::AddressBar(QWidget *parent) + : QWidget(parent) +{ + m_lineEdit = new LineEdit(parent); + connect(m_lineEdit, SIGNAL(returnPressed()), SLOT(processAddress())); + m_toolButton = new QToolButton(parent); + m_toolButton->setText("Go"); + connect(m_toolButton, SIGNAL(clicked()), SLOT(processAddress())); +} + +QSize AddressBar::sizeHint() const +{ + return m_lineEdit->sizeHint(); +} + +void AddressBar::processAddress() +{ + if (!m_lineEdit->text().isEmpty()) + emit addressEntered(m_lineEdit->text()); +} + +void AddressBar::resizeEvent(QResizeEvent *event) +{ + int x, y, w, h; + + m_toolButton->adjustSize(); + x = width() - m_toolButton->width(); + y = 0; + w = m_toolButton->width(); + h = height() - 1; + m_toolButton->setGeometry(x, y, w, h); + m_toolButton->show(); + + x = 0; + y = 0; + w = width() - m_toolButton->width(); + h = height() - 1; + m_lineEdit->setGeometry(x, y, w, h); + m_lineEdit->show(); +} + +void AddressBar::focusInEvent(QFocusEvent *event) +{ + m_lineEdit->setFocus(); + QWidget::focusInEvent(event); +} diff --git a/demos/embedded/anomaly/src/AddressBar.h b/demos/embedded/anomaly/src/AddressBar.h new file mode 100644 index 0000000..6322531 --- /dev/null +++ b/demos/embedded/anomaly/src/AddressBar.h @@ -0,0 +1,73 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the demos 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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef ADDRESSBAR_H +#define ADDRESSBAR_H + +#include <QWidget> + +class QLineEdit; +class QToolButton; + +class AddressBar : public QWidget +{ + Q_OBJECT + +public: + AddressBar(QWidget *parent = 0); + QSize sizeHint() const; + +protected: + void resizeEvent(QResizeEvent *event); + void focusInEvent(QFocusEvent *event); + +signals: + void addressEntered(const QString &address); + +private slots: + void processAddress(); + +private: + QLineEdit *m_lineEdit; + QToolButton *m_toolButton; +}; + +#endif // ADDRESSBAR_H diff --git a/demos/embedded/anomaly/src/BookmarksView.cpp b/demos/embedded/anomaly/src/BookmarksView.cpp new file mode 100644 index 0000000..11593fd --- /dev/null +++ b/demos/embedded/anomaly/src/BookmarksView.cpp @@ -0,0 +1,70 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the demos 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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "BookmarksView.h" + +#include <QtGui> + +BookmarksView::BookmarksView(QWidget *parent) + : QWidget(parent) +{ + QListWidget *m_iconView = new QListWidget(this); + connect(m_iconView, SIGNAL(itemActivated(QListWidgetItem*)), SLOT(activate(QListWidgetItem*))); + + QVBoxLayout *layout = new QVBoxLayout(this); + setLayout(layout); + layout->addWidget(m_iconView); + + m_iconView->addItem("www.google.com"); + m_iconView->addItem("qt.nokia.com/doc/4.5"); + m_iconView->addItem("news.bbc.co.uk/text_only.stm"); + m_iconView->addItem("mobile.wikipedia.org"); + m_iconView->addItem("qt.nokia.com"); + m_iconView->addItem("en.wikipedia.org"); + + setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); +} + +void BookmarksView::activate(QListWidgetItem *item) +{ + QUrl url = item->text().prepend("http://"); + emit urlSelected(url); +} diff --git a/demos/embedded/anomaly/src/BookmarksView.h b/demos/embedded/anomaly/src/BookmarksView.h new file mode 100644 index 0000000..9cbfad9 --- /dev/null +++ b/demos/embedded/anomaly/src/BookmarksView.h @@ -0,0 +1,64 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the demos 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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef BOOKMARKSVIEW_H +#define BOOKMARKSVIEW_H + +#include <QWidget> + +class QListWidgetItem; +class QUrl; + +class BookmarksView : public QWidget +{ + Q_OBJECT + +public: + BookmarksView(QWidget *parent = 0); + +signals: + void urlSelected(const QUrl &url); + +private slots: + void activate(QListWidgetItem *item); +}; + +#endif // BOOKMARKSVIEW_H diff --git a/demos/embedded/anomaly/src/BrowserView.cpp b/demos/embedded/anomaly/src/BrowserView.cpp new file mode 100644 index 0000000..398694f --- /dev/null +++ b/demos/embedded/anomaly/src/BrowserView.cpp @@ -0,0 +1,185 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the demos 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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "BrowserView.h" + +#include <QtGui> +#include <QtNetwork> +#include <QtWebKit> + +#include "ControlStrip.h" +#include "TitleBar.h" +#include "flickcharm.h" +#include "ZoomStrip.h" + +#if defined (Q_OS_SYMBIAN) +#include "sym_iap_util.h" +#endif + +BrowserView::BrowserView(QWidget *parent) + : QWidget(parent) + , m_titleBar(0) + , m_webView(0) + , m_progress(0) + , m_currentZoom(100) +{ + m_titleBar = new TitleBar(this); + m_webView = new QWebView(this); + m_zoomStrip = new ZoomStrip(this); + m_controlStrip = new ControlStrip(this); + + m_zoomLevels << 30 << 50 << 67 << 80 << 90; + m_zoomLevels << 100; + m_zoomLevels << 110 << 120 << 133 << 150 << 170 << 200 << 240 << 300; + + QTimer::singleShot(0, this, SLOT(initialize())); +} + +void BrowserView::initialize() +{ + connect(m_zoomStrip, SIGNAL(zoomInClicked()), SLOT(zoomIn())); + connect(m_zoomStrip, SIGNAL(zoomOutClicked()), SLOT(zoomOut())); + + connect(m_controlStrip, SIGNAL(menuClicked()), SIGNAL(menuButtonClicked())); + connect(m_controlStrip, SIGNAL(backClicked()), m_webView, SLOT(back())); + connect(m_controlStrip, SIGNAL(forwardClicked()), m_webView, SLOT(forward())); + + QPalette pal = m_webView->palette(); + pal.setBrush(QPalette::Base, Qt::white); + m_webView->setPalette(pal); + + FlickCharm *flickCharm = new FlickCharm(this); + flickCharm->activateOn(m_webView); + + m_webView->setZoomFactor(static_cast<qreal>(m_currentZoom)/100.0); + connect(m_webView, SIGNAL(loadStarted()), SLOT(start())); + connect(m_webView, SIGNAL(loadProgress(int)), SLOT(setProgress(int))); + connect(m_webView, SIGNAL(loadFinished(bool)), SLOT(finish(bool))); + connect(m_webView, SIGNAL(urlChanged(QUrl)), SLOT(updateTitleBar())); + + m_webView->setHtml("Will try to load page soon!"); + m_webView->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); + m_webView->setFocus(); +#ifdef Q_OS_SYMBIAN + QTimer::singleShot(0, this, SLOT(setDefaultIap())); +#endif +} + +void BrowserView::start() +{ + m_progress = 0; + updateTitleBar(); + //m_titleBar->setText(m_webView->url().toString()); +} + +void BrowserView::setProgress(int percent) +{ + m_progress = percent; + updateTitleBar(); + //m_titleBar->setText(QString("Loading %1%").arg(percent)); +} + +void BrowserView::updateTitleBar() +{ + QUrl url = m_webView->url(); + m_titleBar->setHost(url.host()); + m_titleBar->setTitle(m_webView->title()); + m_titleBar->setProgress(m_progress); +} + +void BrowserView::finish(bool ok) +{ + m_progress = 0; + updateTitleBar(); + + // TODO: handle error + if (!ok) { + //m_titleBar->setText("Loading failed."); + } +} + +void BrowserView::zoomIn() +{ + int i = m_zoomLevels.indexOf(m_currentZoom); + Q_ASSERT(i >= 0); + if (i < m_zoomLevels.count() - 1) + m_currentZoom = m_zoomLevels[i + 1]; + + m_webView->setZoomFactor(static_cast<qreal>(m_currentZoom)/100.0); +} + +void BrowserView::zoomOut() +{ + int i = m_zoomLevels.indexOf(m_currentZoom); + Q_ASSERT(i >= 0); + if (i > 0) + m_currentZoom = m_zoomLevels[i - 1]; + + m_webView->setZoomFactor(static_cast<qreal>(m_currentZoom)/100.0); +} + +void BrowserView::resizeEvent(QResizeEvent *event) +{ + QWidget::resizeEvent(event); + + int h1 = m_titleBar->sizeHint().height(); + int h2 = m_controlStrip->sizeHint().height(); + + m_titleBar->setGeometry(0, 0, width(), h1); + m_controlStrip->setGeometry(0, height() - h2, width(), h2); + m_webView->setGeometry(0, h1, width(), height() - h1); + + int zw = m_zoomStrip->sizeHint().width(); + int zh = m_zoomStrip->sizeHint().height(); + m_zoomStrip->move(width() - zw, (height() - zh) / 2); +} +#ifdef Q_OS_SYMBIAN +void BrowserView::setDefaultIap() +{ + qt_SetDefaultIap(); + m_webView->load(QUrl("http://news.bbc.co.uk/text_only.stm")); +} +#endif + +void BrowserView::navigate(const QUrl &url) +{ + m_webView->load(url); +} diff --git a/demos/embedded/anomaly/src/BrowserView.h b/demos/embedded/anomaly/src/BrowserView.h new file mode 100644 index 0000000..0d388a6 --- /dev/null +++ b/demos/embedded/anomaly/src/BrowserView.h @@ -0,0 +1,92 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the demos 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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef BROWSERVIEW_H +#define BROWSERVIEW_H + +#include <QWidget> +#include <QVector> + +class QUrl; +class QWebView; +class TitleBar; +class ControlStrip; +class ZoomStrip; + +class BrowserView : public QWidget +{ + Q_OBJECT + +public: + BrowserView(QWidget *parent = 0); + +public slots: + void navigate(const QUrl &url); + void zoomIn(); + void zoomOut(); +#ifdef Q_OS_SYMBIAN + void setDefaultIap(); +#endif + +private slots: + void initialize(); + void start(); + void setProgress(int percent); + void finish(bool); + void updateTitleBar(); + +signals: + void menuButtonClicked(); + +protected: + void resizeEvent(QResizeEvent *event); + +private: + TitleBar *m_titleBar; + QWebView *m_webView; + ZoomStrip *m_zoomStrip; + ControlStrip *m_controlStrip; + int m_progress; + int m_currentZoom; + QVector<int> m_zoomLevels; +}; + +#endif // BROWSERVIEW_H diff --git a/demos/embedded/anomaly/src/BrowserWindow.cpp b/demos/embedded/anomaly/src/BrowserWindow.cpp new file mode 100644 index 0000000..6a2a518 --- /dev/null +++ b/demos/embedded/anomaly/src/BrowserWindow.cpp @@ -0,0 +1,187 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the demos 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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "BrowserWindow.h" + +#include <QtCore> +#include <QtGui> + +#include "BrowserView.h" +#include "HomeView.h" + +BrowserWindow::BrowserWindow() + : QWidget() + , m_homeView(0) + , m_browserView(0) +{ + m_timeLine = new QTimeLine(300, this); + m_timeLine->setCurveShape(QTimeLine::EaseInOutCurve); + QTimer::singleShot(0, this, SLOT(initialize())); +} + +void BrowserWindow::initialize() +{ + m_homeView = new HomeView(this); + m_browserView = new BrowserView(this); + + m_homeView->hide(); + m_homeView->resize(size()); + m_homeView->move(0, 0); + + m_browserView->hide(); + m_browserView->resize(size()); + m_browserView->move(0, 0); + + connect(m_homeView, SIGNAL(addressEntered(QString)), SLOT(gotoAddress(QString))); + connect(m_homeView, SIGNAL(urlActivated(QUrl)), SLOT(navigate(QUrl))); + + connect(m_browserView, SIGNAL(menuButtonClicked()), SLOT(showHomeView())); + + m_homeView->setVisible(false); + m_browserView->setVisible(false); + slide(0); + + connect(m_timeLine, SIGNAL(frameChanged(int)), SLOT(slide(int))); +} + + +// from Demo Browser +QUrl guessUrlFromString(const QString &string) +{ + QString urlStr = string.trimmed(); + QRegExp test(QLatin1String("^[a-zA-Z]+\\:.*")); + + // Check if it looks like a qualified URL. Try parsing it and see. + bool hasSchema = test.exactMatch(urlStr); + if (hasSchema) { + QUrl url = QUrl::fromEncoded(urlStr.toUtf8(), QUrl::TolerantMode); + if (url.isValid()) + return url; + } + + // Might be a file. + if (QFile::exists(urlStr)) { + QFileInfo info(urlStr); + return QUrl::fromLocalFile(info.absoluteFilePath()); + } + + // Might be a shorturl - try to detect the schema. + if (!hasSchema) { + int dotIndex = urlStr.indexOf(QLatin1Char('.')); + if (dotIndex != -1) { + QString prefix = urlStr.left(dotIndex).toLower(); + QString schema = (prefix == QString("ftp")) ? prefix.toLatin1() : QString("http"); + QString location = schema + "://" + urlStr; + QUrl url = QUrl::fromEncoded(location.toUtf8(), QUrl::TolerantMode); + if (url.isValid()) + return url; + } + } + + // Fall back to QUrl's own tolerant parser. + QUrl url = QUrl::fromEncoded(string.toUtf8(), QUrl::TolerantMode); + + // finally for cases where the user just types in a hostname add http + if (url.scheme().isEmpty()) + url = QUrl::fromEncoded("http://" + string.toUtf8(), QUrl::TolerantMode); + return url; +} + +void BrowserWindow::gotoAddress(const QString &address) +{ + m_browserView->navigate(guessUrlFromString(address)); + showBrowserView(); +} + +void BrowserWindow::navigate(const QUrl &url) +{ + m_browserView->navigate(url); + showBrowserView(); +} + +void BrowserWindow::slide(int pos) +{ + m_browserView->move(pos, 0); + m_homeView->move(pos - width(), 0); + m_browserView->show(); + m_homeView->show(); +} + +void BrowserWindow::showHomeView() +{ + if (m_timeLine->state() != QTimeLine::NotRunning) + return; + + m_timeLine->setFrameRange(0, width()); + m_timeLine->start(); + m_homeView->setFocus(); +} + +void BrowserWindow::showBrowserView() +{ + if (m_timeLine->state() != QTimeLine::NotRunning) + return; + + m_timeLine->setFrameRange(width(), 0); + m_timeLine->start(); + m_browserView->setFocus(); +} + +void BrowserWindow::keyReleaseEvent(QKeyEvent *event) +{ + QWidget::keyReleaseEvent(event); + + if (event->key() == Qt::Key_F3) { + if (m_homeView->isVisible()) + showBrowserView(); + else + showHomeView(); + } +} + +void BrowserWindow::resizeEvent(QResizeEvent *event) +{ + if (m_homeView) + m_homeView->resize(size()); + + if (m_browserView) + m_browserView->resize(size()); +} diff --git a/demos/embedded/anomaly/src/BrowserWindow.h b/demos/embedded/anomaly/src/BrowserWindow.h new file mode 100644 index 0000000..51660ba --- /dev/null +++ b/demos/embedded/anomaly/src/BrowserWindow.h @@ -0,0 +1,79 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the demos 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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef BROWSERWINDOW_H +#define BROWSERWINDOW_H + +#include <QWidget> +class QTimeLine; +class QUrl; + +class BrowserView; +class HomeView; + +class BrowserWindow : public QWidget +{ + Q_OBJECT + +public: + BrowserWindow(); + +private slots: + void initialize(); + void navigate(const QUrl &url); + void gotoAddress(const QString &address); + +public slots: + void showBrowserView(); + void showHomeView(); + void slide(int); + +protected: + void keyReleaseEvent(QKeyEvent *event); + void resizeEvent(QResizeEvent *event); + +private: + HomeView *m_homeView; + BrowserView *m_browserView; + QTimeLine *m_timeLine; +}; + +#endif // BROWSERWINDOW_H diff --git a/demos/embedded/anomaly/src/ControlStrip.cpp b/demos/embedded/anomaly/src/ControlStrip.cpp new file mode 100644 index 0000000..564f1f2 --- /dev/null +++ b/demos/embedded/anomaly/src/ControlStrip.cpp @@ -0,0 +1,101 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the demos 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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "ControlStrip.h" + +#include <QtCore> +#include <QtGui> + +ControlStrip::ControlStrip(QWidget *parent) + : QWidget(parent) +{ + menuPixmap.load(":/images/edit-find.png"); + backPixmap.load(":/images/go-previous.png"); + forwardPixmap.load(":/images/go-next.png"); +} + +QSize ControlStrip::sizeHint() const +{ + return minimumSizeHint(); +} + +QSize ControlStrip::minimumSizeHint() const +{ + return QSize(320, 48); +} + +void ControlStrip::mousePressEvent(QMouseEvent *event) +{ + int h = height(); + int x = event->pos().x(); + + if (x < h) { + emit menuClicked(); + event->accept(); + return; + } + + if (x > width() - h) { + emit forwardClicked(); + event->accept(); + return; + } + + if ((x < width() - 2 * h) && (x > width() - 3 * h)) { + emit backClicked(); + event->accept(); + return; + } +} + +void ControlStrip::paintEvent(QPaintEvent *event) +{ + int h = height(); + int s = (h - menuPixmap.height()) / 2; + + QPainter p(this); + p.fillRect(event->rect(), QColor(32, 32, 32, 192)); + p.setCompositionMode(QPainter::CompositionMode_SourceOver); + p.drawPixmap(s, s, menuPixmap); + p.drawPixmap(width() - 3 * h + s, s, backPixmap); + p.drawPixmap(width() - h + s, s, forwardPixmap); + p.end(); +} diff --git a/demos/embedded/anomaly/src/ControlStrip.h b/demos/embedded/anomaly/src/ControlStrip.h new file mode 100644 index 0000000..0788bb9 --- /dev/null +++ b/demos/embedded/anomaly/src/ControlStrip.h @@ -0,0 +1,72 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the demos 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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef CONTROLSTRIP_H +#define CONTROLSTRIP_H + +#include <QWidget> + +class ControlStrip : public QWidget +{ + Q_OBJECT + +public: + ControlStrip(QWidget *parent = 0); + + QSize sizeHint() const; + QSize minimumSizeHint() const; + +signals: + void menuClicked(); + void backClicked(); + void forwardClicked(); + +protected: + void paintEvent(QPaintEvent *event); + void mousePressEvent(QMouseEvent *event); + +private: + QPixmap menuPixmap; + QPixmap backPixmap; + QPixmap forwardPixmap; +}; + +#endif // CONTROLSTRIP_H diff --git a/demos/embedded/anomaly/src/HomeView.cpp b/demos/embedded/anomaly/src/HomeView.cpp new file mode 100644 index 0000000..18de6ef --- /dev/null +++ b/demos/embedded/anomaly/src/HomeView.cpp @@ -0,0 +1,76 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the demos 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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "HomeView.h" + +#include <QtCore> +#include <QtGui> + +#include "AddressBar.h" +#include "BookmarksView.h" + +HomeView::HomeView(QWidget *parent) + : QWidget(parent) + , m_addressBar(0) +{ + m_addressBar = new AddressBar(parent); + connect(m_addressBar, SIGNAL(addressEntered(QString)), SLOT(gotoAddress(QString))); + + m_bookmarks = new BookmarksView(parent); + connect(m_bookmarks, SIGNAL(urlSelected(QUrl)), SIGNAL(urlActivated(QUrl))); + + QVBoxLayout *layout = new QVBoxLayout(this); + layout->setMargin(4); + layout->setSpacing(4); + layout->addWidget(m_addressBar); + layout->addWidget(m_bookmarks); +} + +void HomeView::gotoAddress(const QString &address) +{ + emit addressEntered(address); +} + +void HomeView::focusInEvent(QFocusEvent *event) +{ + m_addressBar->setFocus(); + QWidget::focusInEvent(event); +} diff --git a/demos/embedded/anomaly/src/HomeView.h b/demos/embedded/anomaly/src/HomeView.h new file mode 100644 index 0000000..92889fb --- /dev/null +++ b/demos/embedded/anomaly/src/HomeView.h @@ -0,0 +1,74 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the demos 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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef HOMEVIEW_H +#define HOMEVIEW_H + +#include <QWidget> + +class QUrl; + +class AddressBar; +class BookmarksView; + +class HomeView : public QWidget +{ + Q_OBJECT + +public: + HomeView(QWidget *parent); + +signals: + void urlActivated(const QUrl &url); + void addressEntered(const QString &address); + +private slots: + void gotoAddress(const QString &address); + +protected: + void focusInEvent(QFocusEvent *event); + +private: + AddressBar *m_addressBar; + BookmarksView *m_bookmarks; +}; + +#endif // HOMEVIEW_H diff --git a/demos/embedded/anomaly/src/Main.cpp b/demos/embedded/anomaly/src/Main.cpp new file mode 100644 index 0000000..16c3676 --- /dev/null +++ b/demos/embedded/anomaly/src/Main.cpp @@ -0,0 +1,71 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the demos 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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QtCore> +#include <QtGui> +#include <QtWebKit> + +#include "BrowserWindow.h" + +int main(int argc, char *argv[]) +{ +#if !defined(Q_WS_S60) + QApplication::setGraphicsSystem("raster"); +#endif + + QApplication app(argc, argv); + + app.setApplicationName("Anomaly"); + app.setApplicationVersion("0.0.0"); + + BrowserWindow window; +#ifdef Q_OS_SYMBIAN + window.showFullScreen(); + QWebSettings::globalSettings()->setObjectCacheCapacities(128*1024, 1024*1024, 1024*1024); + QWebSettings::globalSettings()->setMaximumPagesInCache(3); +#else + window.resize(360, 640); + window.show(); + app.setStyle("windows"); +#endif + + return app.exec(); +} diff --git a/demos/embedded/anomaly/src/TitleBar.cpp b/demos/embedded/anomaly/src/TitleBar.cpp new file mode 100644 index 0000000..31e9264 --- /dev/null +++ b/demos/embedded/anomaly/src/TitleBar.cpp @@ -0,0 +1,124 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the demos 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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "TitleBar.h" + +#include <QtCore> +#include <QtGui> + +TitleBar::TitleBar(QWidget *parent) + : QWidget(parent) + , m_progress(0) +{ + setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Minimum); +} + +void TitleBar::setHost(const QString &host) +{ + m_host = host; + update(); +} + +void TitleBar::setTitle(const QString &title) +{ + m_title = title; + update(); +} + +void TitleBar::setProgress(int percent) +{ + m_progress = percent; + update(); +} + +QSize TitleBar::sizeHint() const +{ + return minimumSizeHint(); +} + +QSize TitleBar::minimumSizeHint() const +{ + QFontMetrics fm = fontMetrics(); + return QSize(100, fm.height()); +} + +void TitleBar::paintEvent(QPaintEvent *event) +{ + QString title = m_host; + if (!m_title.isEmpty()) + title.append(": ").append(m_title); + + QPalette pal = palette(); + QPainter p(this); + p.fillRect(event->rect(), pal.color(QPalette::Highlight)); + + if (m_progress > 0) { + + QRect box = rect(); + box.setLeft(16); + box.setWidth(width() - box.left() - 110); + + p.setPen(pal.color(QPalette::HighlightedText)); + p.setOpacity(0.8); + p.drawText(box, Qt::AlignLeft + Qt::AlignVCenter, title); + + int x = width() - 100 - 5; + int y = 1; + int h = height() - 4; + + p.setOpacity(1.0); + p.setBrush(Qt::NoBrush); + p.setPen(pal.color(QPalette::HighlightedText)); + p.drawRect(x, y, 100, h); + p.setPen(Qt::NoPen); + p.setBrush(pal.color(QPalette::HighlightedText)); + p.drawRect(x, y, m_progress, h); + } else { + + QRect box = rect(); + box.setLeft(16); + box.setWidth(width() - box.left() - 5); + p.setPen(pal.color(QPalette::HighlightedText)); + p.drawText(box, Qt::AlignLeft + Qt::AlignVCenter, title); + } + + p.end(); +} diff --git a/demos/embedded/anomaly/src/TitleBar.h b/demos/embedded/anomaly/src/TitleBar.h new file mode 100644 index 0000000..7d9524f --- /dev/null +++ b/demos/embedded/anomaly/src/TitleBar.h @@ -0,0 +1,70 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the demos 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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef TITLEBAR_H +#define TITLEBAR_H + +#include <QWidget> + +class TitleBar : public QWidget +{ + Q_OBJECT + +public: + TitleBar(QWidget *parent = 0); + + void setHost(const QString &host); + void setTitle(const QString &title); + void setProgress(int percent); + + QSize sizeHint() const; + QSize minimumSizeHint() const; + +protected: + void paintEvent(QPaintEvent *event); + +private: + QString m_host; + QString m_title; + int m_progress; +}; + +#endif // TITLEBAR_H diff --git a/demos/embedded/anomaly/src/ZoomStrip.cpp b/demos/embedded/anomaly/src/ZoomStrip.cpp new file mode 100644 index 0000000..ce3acd0 --- /dev/null +++ b/demos/embedded/anomaly/src/ZoomStrip.cpp @@ -0,0 +1,82 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the demos 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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "ZoomStrip.h" + +#include <QtCore> +#include <QtGui> + +ZoomStrip::ZoomStrip(QWidget *parent) + : QWidget(parent) +{ + zoomInPixmap.load(":/images/list-add.png"); + zoomOutPixmap.load(":/images/list-remove.png"); +} + +QSize ZoomStrip::sizeHint() const +{ + return minimumSizeHint(); +} + +QSize ZoomStrip::minimumSizeHint() const +{ + return QSize(48, 96); +} + +void ZoomStrip::mousePressEvent(QMouseEvent *event) +{ + if (event->pos().y() < height() / 2) + emit zoomInClicked(); + else + emit zoomOutClicked(); +} + +void ZoomStrip::paintEvent(QPaintEvent *event) +{ + int w = width(); + int s = (w - zoomInPixmap.width()) / 2; + + QPainter p(this); + p.fillRect(event->rect(), QColor(128, 128, 128, 128)); + p.drawPixmap(s, s, zoomInPixmap); + p.drawPixmap(s, s + w, zoomOutPixmap); + p.end(); +} diff --git a/demos/embedded/anomaly/src/ZoomStrip.h b/demos/embedded/anomaly/src/ZoomStrip.h new file mode 100644 index 0000000..dda09cf --- /dev/null +++ b/demos/embedded/anomaly/src/ZoomStrip.h @@ -0,0 +1,70 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the demos 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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef ZOOMSTRIP_H +#define ZOOMSTRIP_H + +#include <QWidget> + +class ZoomStrip : public QWidget +{ + Q_OBJECT + +public: + ZoomStrip(QWidget *parent = 0); + + QSize sizeHint() const; + QSize minimumSizeHint() const; + +signals: + void zoomInClicked(); + void zoomOutClicked(); + +protected: + void paintEvent(QPaintEvent *event); + void mousePressEvent(QMouseEvent *event); + +private: + QPixmap zoomInPixmap; + QPixmap zoomOutPixmap; +}; + +#endif // ZOOMSTRIP_H diff --git a/demos/embedded/anomaly/src/anomaly.qrc b/demos/embedded/anomaly/src/anomaly.qrc new file mode 100644 index 0000000..601a34e --- /dev/null +++ b/demos/embedded/anomaly/src/anomaly.qrc @@ -0,0 +1,9 @@ +<RCC> + <qresource prefix="/" > + <file>images/go-next.png</file> + <file>images/go-previous.png</file> + <file>images/edit-find.png</file> + <file>images/list-add.png</file> + <file>images/list-remove.png</file> + </qresource> +</RCC> diff --git a/demos/embedded/anomaly/src/flickcharm.cpp b/demos/embedded/anomaly/src/flickcharm.cpp new file mode 100644 index 0000000..8f137b0 --- /dev/null +++ b/demos/embedded/anomaly/src/flickcharm.cpp @@ -0,0 +1,327 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the demos 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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "flickcharm.h" + +#include <QAbstractScrollArea> +#include <QApplication> +#include <QBasicTimer> +#include <QEvent> +#include <QHash> +#include <QList> +#include <QMouseEvent> +#include <QScrollBar> +#include <QWebFrame> +#include <QWebView> + +#include <QDebug> + +struct FlickData { + typedef enum { Steady, Pressed, ManualScroll, AutoScroll, Stop } State; + State state; + QWidget *widget; + QPoint pressPos; + QPoint offset; + QPoint dragPos; + QPoint speed; + QList<QEvent*> ignored; +}; + +class FlickCharmPrivate +{ +public: + QHash<QWidget*, FlickData*> flickData; + QBasicTimer ticker; +}; + +FlickCharm::FlickCharm(QObject *parent): QObject(parent) +{ + d = new FlickCharmPrivate; +} + +FlickCharm::~FlickCharm() +{ + delete d; +} + +void FlickCharm::activateOn(QWidget *widget) +{ + QAbstractScrollArea *scrollArea = dynamic_cast<QAbstractScrollArea*>(widget); + if (scrollArea) { + scrollArea->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); + scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); + + QWidget *viewport = scrollArea->viewport(); + + viewport->installEventFilter(this); + scrollArea->installEventFilter(this); + + d->flickData.remove(viewport); + d->flickData[viewport] = new FlickData; + d->flickData[viewport]->widget = widget; + d->flickData[viewport]->state = FlickData::Steady; + + return; + } + + QWebView *webView = dynamic_cast<QWebView*>(widget); + if (webView) { + QWebFrame *frame = webView->page()->mainFrame(); + frame->setScrollBarPolicy(Qt::Vertical, Qt::ScrollBarAlwaysOff); + frame->setScrollBarPolicy(Qt::Horizontal, Qt::ScrollBarAlwaysOff); + + webView->installEventFilter(this); + + d->flickData.remove(webView); + d->flickData[webView] = new FlickData; + d->flickData[webView]->widget = webView; + d->flickData[webView]->state = FlickData::Steady; + + return; + } + + qWarning() << "FlickCharm only works on QAbstractScrollArea (and derived classes)"; + qWarning() << "or QWebView (and derived classes)"; +} + +void FlickCharm::deactivateFrom(QWidget *widget) +{ + QAbstractScrollArea *scrollArea = dynamic_cast<QAbstractScrollArea*>(widget); + if (scrollArea) { + QWidget *viewport = scrollArea->viewport(); + + viewport->removeEventFilter(this); + scrollArea->removeEventFilter(this); + + delete d->flickData[viewport]; + d->flickData.remove(viewport); + + return; + } + + QWebView *webView = dynamic_cast<QWebView*>(widget); + if (webView) { + webView->removeEventFilter(this); + + delete d->flickData[webView]; + d->flickData.remove(webView); + + return; + } +} + +static QPoint scrollOffset(QWidget *widget) +{ + int x = 0, y = 0; + + QAbstractScrollArea *scrollArea = dynamic_cast<QAbstractScrollArea*>(widget); + if (scrollArea) { + x = scrollArea->horizontalScrollBar()->value(); + y = scrollArea->verticalScrollBar()->value(); + } + + QWebView *webView = dynamic_cast<QWebView*>(widget); + if (webView) { + QWebFrame *frame = webView->page()->mainFrame(); + x = frame->evaluateJavaScript("window.scrollX").toInt(); + y = frame->evaluateJavaScript("window.scrollY").toInt(); + } + + return QPoint(x, y); +} + +static void setScrollOffset(QWidget *widget, const QPoint &p) +{ + QAbstractScrollArea *scrollArea = dynamic_cast<QAbstractScrollArea*>(widget); + if (scrollArea) { + scrollArea->horizontalScrollBar()->setValue(p.x()); + scrollArea->verticalScrollBar()->setValue(p.y()); + } + + QWebView *webView = dynamic_cast<QWebView*>(widget); + QWebFrame *frame = webView ? webView->page()->mainFrame() : 0; + if (frame) + frame->evaluateJavaScript(QString("window.scrollTo(%1,%2);").arg(p.x()).arg(p.y())); +} + +static QPoint deaccelerate(const QPoint &speed, int a = 1, int max = 64) +{ + int x = qBound(-max, speed.x(), max); + int y = qBound(-max, speed.y(), max); + x = (x == 0) ? x : (x > 0) ? qMax(0, x - a) : qMin(0, x + a); + y = (y == 0) ? y : (y > 0) ? qMax(0, y - a) : qMin(0, y + a); + return QPoint(x, y); +} + +bool FlickCharm::eventFilter(QObject *object, QEvent *event) +{ + if (!object->isWidgetType()) + return false; + + QEvent::Type type = event->type(); + if (type != QEvent::MouseButtonPress && + type != QEvent::MouseButtonRelease && + type != QEvent::MouseMove) + return false; + + QMouseEvent *mouseEvent = dynamic_cast<QMouseEvent*>(event); + if (!mouseEvent || mouseEvent->modifiers() != Qt::NoModifier) + return false; + + QWidget *viewport = dynamic_cast<QWidget*>(object); + FlickData *data = d->flickData.value(viewport); + if (!viewport || !data || data->ignored.removeAll(event)) + return false; + + bool consumed = false; + switch (data->state) { + + case FlickData::Steady: + if (mouseEvent->type() == QEvent::MouseButtonPress) + if (mouseEvent->buttons() == Qt::LeftButton) { + consumed = true; + data->state = FlickData::Pressed; + data->pressPos = mouseEvent->pos(); + data->offset = scrollOffset(data->widget); + } + break; + + case FlickData::Pressed: + if (mouseEvent->type() == QEvent::MouseButtonRelease) { + consumed = true; + data->state = FlickData::Steady; + + QMouseEvent *event1 = new QMouseEvent(QEvent::MouseButtonPress, + data->pressPos, Qt::LeftButton, + Qt::LeftButton, Qt::NoModifier); + QMouseEvent *event2 = new QMouseEvent(*mouseEvent); + + data->ignored << event1; + data->ignored << event2; + QApplication::postEvent(object, event1); + QApplication::postEvent(object, event2); + } + if (mouseEvent->type() == QEvent::MouseMove) { + consumed = true; + data->state = FlickData::ManualScroll; + data->dragPos = QCursor::pos(); + if (!d->ticker.isActive()) + d->ticker.start(20, this); + } + break; + + case FlickData::ManualScroll: + if (mouseEvent->type() == QEvent::MouseMove) { + consumed = true; + QPoint delta = mouseEvent->pos() - data->pressPos; + setScrollOffset(data->widget, data->offset - delta); + } + if (mouseEvent->type() == QEvent::MouseButtonRelease) { + consumed = true; + data->state = FlickData::AutoScroll; + } + break; + + case FlickData::AutoScroll: + if (mouseEvent->type() == QEvent::MouseButtonPress) { + consumed = true; + data->state = FlickData::Stop; + data->speed = QPoint(0, 0); + data->pressPos = mouseEvent->pos(); + data->offset = scrollOffset(data->widget); + } + if (mouseEvent->type() == QEvent::MouseButtonRelease) { + consumed = true; + data->state = FlickData::Steady; + data->speed = QPoint(0, 0); + } + break; + + case FlickData::Stop: + if (mouseEvent->type() == QEvent::MouseButtonRelease) { + consumed = true; + data->state = FlickData::Steady; + } + if (mouseEvent->type() == QEvent::MouseMove) { + consumed = true; + data->state = FlickData::ManualScroll; + data->dragPos = QCursor::pos(); + if (!d->ticker.isActive()) + d->ticker.start(20, this); + } + break; + + default: + break; + } + + return consumed; +} + +void FlickCharm::timerEvent(QTimerEvent *event) +{ + int count = 0; + QHashIterator<QWidget*, FlickData*> item(d->flickData); + while (item.hasNext()) { + item.next(); + FlickData *data = item.value(); + + if (data->state == FlickData::ManualScroll) { + count++; + data->speed = QCursor::pos() - data->dragPos; + data->dragPos = QCursor::pos(); + } + + if (data->state == FlickData::AutoScroll) { + count++; + data->speed = deaccelerate(data->speed); + QPoint p = scrollOffset(data->widget); + setScrollOffset(data->widget, p - data->speed); + if (data->speed == QPoint(0, 0)) + data->state = FlickData::Steady; + } + } + + if (!count) + d->ticker.stop(); + + QObject::timerEvent(event); +} diff --git a/demos/embedded/anomaly/src/flickcharm.h b/demos/embedded/anomaly/src/flickcharm.h new file mode 100644 index 0000000..971b517 --- /dev/null +++ b/demos/embedded/anomaly/src/flickcharm.h @@ -0,0 +1,67 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the demos 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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef FLICKCHARM_H +#define FLICKCHARM_H + +#include <QObject> + +class FlickCharmPrivate; +class QWidget; + +class FlickCharm: public QObject +{ + Q_OBJECT +public: + FlickCharm(QObject *parent = 0); + ~FlickCharm(); + void activateOn(QWidget *widget); + void deactivateFrom(QWidget *widget); + bool eventFilter(QObject *object, QEvent *event); + +protected: + void timerEvent(QTimerEvent *event); + +private: + FlickCharmPrivate *d; +}; + +#endif // FLICKCHARM_H diff --git a/demos/embedded/anomaly/src/images/edit-find.png b/demos/embedded/anomaly/src/images/edit-find.png Binary files differnew file mode 100644 index 0000000..5594785 --- /dev/null +++ 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 differnew file mode 100644 index 0000000..a68e2db --- /dev/null +++ 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 differnew file mode 100644 index 0000000..c37bc04 --- /dev/null +++ b/demos/embedded/anomaly/src/images/go-previous.png diff --git a/demos/embedded/anomaly/src/images/list-add.png b/demos/embedded/anomaly/src/images/list-add.png Binary files differnew file mode 100644 index 0000000..2acdd8f --- /dev/null +++ b/demos/embedded/anomaly/src/images/list-add.png diff --git a/demos/embedded/anomaly/src/images/list-remove.png b/demos/embedded/anomaly/src/images/list-remove.png Binary files differnew file mode 100644 index 0000000..c5524f7 --- /dev/null +++ b/demos/embedded/anomaly/src/images/list-remove.png diff --git a/demos/embedded/desktopservices/contenttab.cpp b/demos/embedded/desktopservices/contenttab.cpp new file mode 100644 index 0000000..d1b7a02 --- /dev/null +++ b/demos/embedded/desktopservices/contenttab.cpp @@ -0,0 +1,154 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the demonstration applications 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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +// EXTERNAL INCLUDES +#include <QKeyEvent> +#include <QMessageBox> +#include <QListWidget> +#include <QVBoxLayout> +#include <QFileInfoList> +#include <QListWidgetItem> + +// INTERNAL INCLUDES + +// CLASS HEADER +#include "contenttab.h" + + +// CONSTRUCTORS & DESTRUCTORS +ContentTab::ContentTab(QWidget *parent) : + QListWidget(parent) +{ + setDragEnabled(false); + setIconSize(QSize(45, 45)); +} + +ContentTab::~ContentTab() +{ +} + +// NEW PUBLIC METHODS +void ContentTab::init(const QDesktopServices::StandardLocation &location, + const QString &filter, + const QString &icon) +{ + setContentDir(location); + QStringList filterList; + filterList = filter.split(";"); + m_ContentDir.setNameFilters(filterList); + setIcon(icon); + + connect(this, SIGNAL(itemClicked(QListWidgetItem *)), + this, SLOT(openItem(QListWidgetItem *))); + + populateListWidget(); +} + +// NEW PROTECTED METHODS +void ContentTab::setContentDir(const QDesktopServices::StandardLocation &location) +{ + m_ContentDir.setPath(QDesktopServices::storageLocation(location)); +} + +void ContentTab::setIcon(const QString &icon) +{ + m_Icon = QIcon(icon); +} + +void ContentTab::populateListWidget() +{ + QFileInfoList fileList = m_ContentDir.entryInfoList(QDir::Files, QDir::Time); + foreach(QFileInfo item, fileList) { + new QListWidgetItem(m_Icon, itemName(item), this); + } +} + +QString ContentTab::itemName(const QFileInfo &item) +{ + return QString(item.baseName() + "." + item.completeSuffix()); +} + +QUrl ContentTab::itemUrl(QListWidgetItem *item) +{ + return QUrl("file:///" + m_ContentDir.absolutePath() + "/" + item->text()); +} + +void ContentTab::keyPressEvent(QKeyEvent *event) +{ + switch (event->key()) { + case Qt::Key_Up: + if (currentRow() == 0) { + setCurrentRow(count() - 1); + } else { + setCurrentRow(currentRow() - 1); + } + break; + case Qt::Key_Down: + if (currentRow() == (count() - 1)) { + setCurrentRow(0); + } else { + setCurrentRow(currentRow() + 1); + } + break; + case Qt::Key_Select: + openItem(currentItem()); + default: + QListWidget::keyPressEvent(event); + break; + } +} + +void ContentTab::handleErrorInOpen(QListWidgetItem *item) +{ + Q_UNUSED(item); + QMessageBox::warning(this, tr("Operation Failed"), tr("Unkown error!"), QMessageBox::Close); +} + +// NEW SLOTS +void ContentTab::openItem(QListWidgetItem *item) +{ + bool ret = QDesktopServices::openUrl(itemUrl(item)); + if (!ret) + handleErrorInOpen(item); +} + + +// End of File diff --git a/demos/embedded/desktopservices/contenttab.h b/demos/embedded/desktopservices/contenttab.h new file mode 100644 index 0000000..1840827 --- /dev/null +++ b/demos/embedded/desktopservices/contenttab.h @@ -0,0 +1,101 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the demonstration applications 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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef CONTENTTAB_H_ +#define CONTENTTAB_H_ + +// EXTERNAL INCLUDES +#include <QDir> +#include <QUrl> +#include <QIcon> +#include <QFileInfo> +#include <QListWidget> +#include <QDesktopServices> + +// INTERNAL INCLUDES + +// FORWARD DECLARATIONS +QT_BEGIN_NAMESPACE +class QListWidgetItem; +QT_END_NAMESPACE + +// CLASS DECLARATION + +/** +* ContentTab class. +* +* This class implements general purpose tab for media files. +*/ +class ContentTab : public QListWidget +{ + Q_OBJECT + +public: // Constructors & Destructors + ContentTab(QWidget *parent); + virtual ~ContentTab(); + +public: // New Methods + virtual void init(const QDesktopServices::StandardLocation &location, + const QString &filter, + const QString &icon); + +protected: // New Methods + virtual void setContentDir(const QDesktopServices::StandardLocation &location); + virtual void setIcon(const QString &icon); + virtual void populateListWidget(); + virtual QString itemName(const QFileInfo &item); + virtual QUrl itemUrl(QListWidgetItem *item); + virtual void handleErrorInOpen(QListWidgetItem *item); +protected: + void keyPressEvent(QKeyEvent *event); + +public slots: // New Slots + virtual void openItem(QListWidgetItem *item); + +protected: // Owned variables + QDir m_ContentDir; + QIcon m_Icon; +}; + + +#endif // CONTENTTAB_H_ + +// End of File diff --git a/demos/embedded/desktopservices/data/Explosion.wav b/demos/embedded/desktopservices/data/Explosion.wav Binary files differnew file mode 100644 index 0000000..7b140b1 --- /dev/null +++ b/demos/embedded/desktopservices/data/Explosion.wav diff --git a/demos/embedded/desktopservices/data/designer.png b/demos/embedded/desktopservices/data/designer.png Binary files differnew file mode 100644 index 0000000..0988fce --- /dev/null +++ b/demos/embedded/desktopservices/data/designer.png diff --git a/demos/embedded/desktopservices/data/monkey_on_64x64.png b/demos/embedded/desktopservices/data/monkey_on_64x64.png Binary files differnew file mode 100644 index 0000000..990f604 --- /dev/null +++ b/demos/embedded/desktopservices/data/monkey_on_64x64.png diff --git a/demos/embedded/desktopservices/data/sax.mp3 b/demos/embedded/desktopservices/data/sax.mp3 Binary files differnew file mode 100644 index 0000000..0a078b1 --- /dev/null +++ b/demos/embedded/desktopservices/data/sax.mp3 diff --git a/demos/embedded/desktopservices/desktopservices.pro b/demos/embedded/desktopservices/desktopservices.pro new file mode 100644 index 0000000..81fe16d --- /dev/null +++ b/demos/embedded/desktopservices/desktopservices.pro @@ -0,0 +1,22 @@ +TEMPLATE = app +TARGET = +INCLUDEPATH += . + +HEADERS += desktopwidget.h contenttab.h linktab.h +SOURCES += desktopwidget.cpp contenttab.cpp linktab.cpp main.cpp + +RESOURCES += desktopservices.qrc + +music.sources = data/*.mp3 data/*.wav +music.path = /data/sounds/ + +image.sources = data/*.png +image.path = /data/images/ + +DEPLOYMENT += music image + +symbian { + include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) + TARGET.UID3 = 0xA000C611 + ICON = ./resources/heart.svg +} diff --git a/demos/embedded/desktopservices/desktopservices.qrc b/demos/embedded/desktopservices/desktopservices.qrc new file mode 100644 index 0000000..410175f --- /dev/null +++ b/demos/embedded/desktopservices/desktopservices.qrc @@ -0,0 +1,8 @@ +<!DOCTYPE RCC><RCC version="1.0"> +<qresource prefix="/"> + <file>resources/music.png</file> + <file>resources/photo.png</file> + <file>resources/browser.png</file> + <file>resources/message.png</file> +</qresource> +</RCC> diff --git a/demos/embedded/desktopservices/desktopwidget.cpp b/demos/embedded/desktopservices/desktopwidget.cpp new file mode 100644 index 0000000..015e8f3 --- /dev/null +++ b/demos/embedded/desktopservices/desktopwidget.cpp @@ -0,0 +1,90 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the demonstration applications 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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +// EXTERNAL INCLUDES +#include <QTabWidget> +#include <QVBoxLayout> +#include <QDesktopServices> + +// INTERNAL INCLUDES +#include "linktab.h" +#include "contenttab.h" + +// CLASS HEADER +#include "desktopwidget.h" + +// CONSTRUCTORS & DESTRUCTORS +DesktopWidget::DesktopWidget(QWidget *parent) : QWidget(parent) + +{ + QTabWidget *tabWidget = new QTabWidget(this); + + // Images + ContentTab* imageTab = new ContentTab(tabWidget); + imageTab->init(QDesktopServices::PicturesLocation, + "*.png;*.jpg;*.jpeg;*.bmp;*.gif", + ":/resources/photo.png"); + tabWidget->addTab(imageTab, tr("Images")); + + // Music + ContentTab* musicTab = new ContentTab(tabWidget); + musicTab->init(QDesktopServices::MusicLocation, + "*.wav;*.mp3;*.mp4", + ":/resources/music.png"); + tabWidget->addTab(musicTab, tr("Music")); + + // Links + LinkTab* othersTab = new LinkTab(tabWidget);; + // Given icon file will be overriden by LinkTab + othersTab->init(QDesktopServices::PicturesLocation, "", ""); + tabWidget->addTab(othersTab, tr("Links")); + + // Layout + QVBoxLayout *layout = new QVBoxLayout; + layout->addWidget(tabWidget); + setLayout(layout); +} + +DesktopWidget::~DesktopWidget() +{ +} + +// End of file diff --git a/demos/embedded/desktopservices/desktopwidget.h b/demos/embedded/desktopservices/desktopwidget.h new file mode 100644 index 0000000..960127a --- /dev/null +++ b/demos/embedded/desktopservices/desktopwidget.h @@ -0,0 +1,73 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the demonstration applications 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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef DESKTOPWIDGET_H_ +#define DESKTOPWIDGET_H_ + +// EXTERNAL INCLUDES +#include <QWidget> + +// INTERNAL INCLUDES + +// FORWARD DECLARATIONS +QT_BEGIN_NAMESPACE +class QTabWidget; +QT_END_NAMESPACE + +// CLASS DECLARATION +/** +* DesktopWidget class. +* +* Implements the main top level widget for QDesktopServices demo app. +*/ +class DesktopWidget : public QWidget +{ + Q_OBJECT + +public: // Constructors & Destructors + DesktopWidget(QWidget *parent); + ~DesktopWidget(); + +}; + +#endif // DESKTOPWIDGET_H_ + +// End of file diff --git a/demos/embedded/desktopservices/linktab.cpp b/demos/embedded/desktopservices/linktab.cpp new file mode 100644 index 0000000..4ae43f0 --- /dev/null +++ b/demos/embedded/desktopservices/linktab.cpp @@ -0,0 +1,88 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the demonstration applications 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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +// EXTERNAL INCLUDES +#include <QUrl> +#include <QMessageBox> +#include <QListWidgetItem> + +// INTERNAL INCLUDES + +// CLASS HEADER +#include "linktab.h" + +LinkTab::LinkTab(QWidget *parent) : + ContentTab(parent) +{ +} + +LinkTab::~LinkTab() +{ +} + +void LinkTab::populateListWidget() +{ + m_WebItem = new QListWidgetItem(QIcon(":/resources/browser.png"), tr("Launch Browser"), this); + m_MailToItem = new QListWidgetItem(QIcon(":/resources/message.png"), tr("New e-mail"), this); +} + +QUrl LinkTab::itemUrl(QListWidgetItem *item) +{ + if (m_WebItem == item) { + return QUrl(tr("http://qt.nokia.com")); + } else if (m_MailToItem == item) { + return QUrl(tr("mailto:qts60-feedback@trolltech.com?subject=QtS60 feedback&body=Hello")); + } else { + // We should never endup here + Q_ASSERT(false); + return QUrl(); + } +} +void LinkTab::handleErrorInOpen(QListWidgetItem *item) +{ + if (m_MailToItem == item) { + QMessageBox::warning(this, tr("Operation Failed"), tr("Please check that you have\ne-mail account defined."), QMessageBox::Close); + } else { + ContentTab::handleErrorInOpen(item); + } +} + +// End of file diff --git a/demos/embedded/desktopservices/linktab.h b/demos/embedded/desktopservices/linktab.h new file mode 100644 index 0000000..1ddd354 --- /dev/null +++ b/demos/embedded/desktopservices/linktab.h @@ -0,0 +1,86 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the demonstration applications 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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef LINKTAB_H_ +#define LINKTAB_H_ + +// EXTERNAL INCLUDES + +// INTERNAL INCLUDES +#include "contenttab.h" + +// FORWARD DECLARATIONS +QT_BEGIN_NAMESPACE +class QWidget; +class QListWidgetItem; +QT_END_NAMESPACE + +// CLASS DECLARATION + +/** +* LinkTab class. +* +* This class implements tab for opening http and mailto links. +*/ +class LinkTab : public ContentTab +{ + Q_OBJECT + +public: // Constructors & Destructors + LinkTab(QWidget *parent); + ~LinkTab(); + +protected: // Derived Methods + virtual void populateListWidget(); + virtual QUrl itemUrl(QListWidgetItem *item); + virtual void handleErrorInOpen(QListWidgetItem *item); + +private: // Used variables + QListWidgetItem *m_WebItem; + QListWidgetItem *m_MailToItem; + +private: // Owned variables + +}; + +#endif // CONTENTTAB_H_ + +// End of File diff --git a/demos/embedded/desktopservices/main.cpp b/demos/embedded/desktopservices/main.cpp new file mode 100644 index 0000000..c200f4b --- /dev/null +++ b/demos/embedded/desktopservices/main.cpp @@ -0,0 +1,56 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the demonstration applications 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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QApplication> +#include "desktopwidget.h" + +int main(int argc, char *argv[]) +{ + Q_INIT_RESOURCE(desktopservices); + + QApplication app(argc, argv); + DesktopWidget* myWidget = new DesktopWidget(0); + myWidget->showMaximized(); + + return app.exec(); +} + +// End of file diff --git a/demos/embedded/desktopservices/resources/browser.png b/demos/embedded/desktopservices/resources/browser.png Binary files differnew file mode 100644 index 0000000..28561e1 --- /dev/null +++ b/demos/embedded/desktopservices/resources/browser.png diff --git a/demos/embedded/desktopservices/resources/heart.svg b/demos/embedded/desktopservices/resources/heart.svg new file mode 100644 index 0000000..ba5f050 --- /dev/null +++ b/demos/embedded/desktopservices/resources/heart.svg @@ -0,0 +1,55 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --><svg viewBox="100 200 550 500" height="595.27559pt" id="svg1" inkscape:version="0.40+cvs" sodipodi:docbase="C:\Documents and Settings\Jon Phillips\My Documents\projects\clipart-project\submissions" sodipodi:docname="heart-left-highlight.svg" sodipodi:version="0.32" width="595.27559pt" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://web.resource.org/cc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:svg="http://www.w3.org/2000/svg"> +<metadata> +<rdf:RDF xmlns:cc="http://web.resource.org/cc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> +<cc:Work rdf:about=""> +<dc:title>Heart Left-Highlight</dc:title> +<dc:description>This is a normal valentines day heart.</dc:description> +<dc:subject> +<rdf:Bag> +<rdf:li>holiday</rdf:li> +<rdf:li>valentines</rdf:li> +<rdf:li></rdf:li> +<rdf:li>valentine</rdf:li> +<rdf:li>hash(0x8a091c0)</rdf:li> +<rdf:li>hash(0x8a0916c)</rdf:li> +<rdf:li>signs_and_symbols</rdf:li> +<rdf:li>hash(0x8a091f0)</rdf:li> +<rdf:li>day</rdf:li> +</rdf:Bag> +</dc:subject> +<dc:publisher> +<cc:Agent rdf:about="http://www.openclipart.org"> +<dc:title>Jon Phillips</dc:title> +</cc:Agent> +</dc:publisher> +<dc:creator> +<cc:Agent> +<dc:title>Jon Phillips</dc:title> +</cc:Agent> +</dc:creator> +<dc:rights> +<cc:Agent> +<dc:title>Jon Phillips</dc:title> +</cc:Agent> +</dc:rights> +<dc:date></dc:date> +<dc:format>image/svg+xml</dc:format> +<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> +<cc:license rdf:resource="http://web.resource.org/cc/PublicDomain"/> +<dc:language>en</dc:language> +</cc:Work> +<cc:License rdf:about="http://web.resource.org/cc/PublicDomain"> +<cc:permits rdf:resource="http://web.resource.org/cc/Reproduction"/> +<cc:permits rdf:resource="http://web.resource.org/cc/Distribution"/> +<cc:permits rdf:resource="http://web.resource.org/cc/DerivativeWorks"/> +</cc:License> +</rdf:RDF> +</metadata> +<defs id="defs3"/> +<sodipodi:namedview bordercolor="#666666" borderopacity="1.0" id="base" inkscape:current-layer="layer1" inkscape:cx="549.40674" inkscape:cy="596.00159" inkscape:document-units="px" inkscape:guide-bbox="true" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:window-height="615" inkscape:window-width="866" inkscape:window-x="88" inkscape:window-y="116" inkscape:zoom="0.35000000" pagecolor="#ffffff" showguides="true"/> +<g id="layer1" inkscape:groupmode="layer" inkscape:label="Layer 1"> +<path d="M 263.41570,235.14588 C 197.17570,235.14588 143.41575,288.90587 143.41575,355.14588 C 143.41575,489.90139 279.34890,525.23318 371.97820,658.45392 C 459.55244,526.05056 600.54070,485.59932 600.54070,355.14588 C 600.54070,288.90588 546.78080,235.14587 480.54070,235.14588 C 432.49280,235.14588 391.13910,263.51631 371.97820,304.33338 C 352.81740,263.51630 311.46370,235.14587 263.41570,235.14588 z " id="path7" sodipodi:nodetypes="ccccccc" style="fill:#e60000;fill-opacity:1.0000000;stroke:#000000;stroke-width:18.700001;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"/> +<path d="M 265.00000,253.59375 C 207.04033,253.59375 160.00000,300.63407 160.00000,358.59375 C 160.00000,476.50415 278.91857,507.43251 359.96875,624.00000 C 366.52868,614.08205 220.00000,478.47309 220.00000,378.59375 C 220.00000,320.63407 267.04033,273.59375 325.00000,273.59375 C 325.50453,273.59375 325.99718,273.64912 326.50000,273.65625 C 309.22436,261.07286 288.00557,253.59374 265.00000,253.59375 z " id="path220" sodipodi:nodetypes="ccccccc" style="fill:#e6e6e6;fill-opacity:0.64556962;stroke:none;stroke-width:18.700001;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"/> +</g> +</svg> diff --git a/demos/embedded/desktopservices/resources/message.png b/demos/embedded/desktopservices/resources/message.png Binary files differnew file mode 100644 index 0000000..e30052b --- /dev/null +++ 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 differnew file mode 100644 index 0000000..11a57bb --- /dev/null +++ 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 differnew file mode 100644 index 0000000..5ba15c1 --- /dev/null +++ b/demos/embedded/desktopservices/resources/photo.png diff --git a/demos/embedded/digiflip/digiflip.cpp b/demos/embedded/digiflip/digiflip.cpp new file mode 100644 index 0000000..b822659 --- /dev/null +++ b/demos/embedded/digiflip/digiflip.cpp @@ -0,0 +1,425 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the demonstration applications 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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QtCore> +#include <QtGui> + +class Digits: public QWidget +{ + Q_OBJECT + +public: + + enum { + Slide, + Flip, + Rotate + }; + + Digits(QWidget *parent) + : QWidget(parent) + , m_number(0) + , m_transition(Slide) + { + setAttribute(Qt::WA_OpaquePaintEvent, true); + setAttribute(Qt::WA_NoSystemBackground, true); + connect(&m_animator, SIGNAL(frameChanged(int)), SLOT(update())); + m_animator.setFrameRange(0, 100); + m_animator.setDuration(600); + m_animator.setCurveShape(QTimeLine::EaseInOutCurve); + } + + void setTransition(int tr) { + m_transition = tr; + } + + int transition() const { + return m_transition; + } + + void setNumber(int n) { + if (m_number != n) { + m_number = qBound(0, n, 99); + preparePixmap(); + update(); + } + } + + void flipTo(int n) { + if (m_number != n) { + m_number = qBound(0, n, 99); + m_lastPixmap = m_pixmap; + preparePixmap(); + m_animator.stop(); + m_animator.start(); + } + } + +protected: + + void drawFrame(QPainter *p, const QRect &rect) { + p->setPen(Qt::NoPen); + QLinearGradient gradient(rect.topLeft(), rect.bottomLeft()); + gradient.setColorAt(0.00, QColor(245, 245, 245)); + gradient.setColorAt(0.49, QColor(192, 192, 192)); + gradient.setColorAt(0.51, QColor(245, 245, 245)); + gradient.setColorAt(1.00, QColor(192, 192, 192)); + p->setBrush(gradient); + QRect r = rect; + p->drawRoundedRect(r, 15, 15, Qt::RelativeSize); + r.adjust(1, 4, -1, -4); + p->setPen(QColor(181, 181, 181)); + p->setBrush(Qt::NoBrush); + p->drawRoundedRect(r, 15, 15, Qt::RelativeSize); + p->setPen(QColor(159, 159, 159)); + int y = rect.top() + rect.height() / 2 - 1; + p->drawLine(rect.left(), y, rect.right(), y); + } + + QPixmap drawDigits(int n, const QRect &rect) { + + int scaleFactor = 2; +#if defined(Q_OS_SYMBIAN) + if (rect.height() > 240) + scaleFactor = 1; +#endif + + QString str = QString::number(n); + if (str.length() == 1) + str.prepend("0"); + + QFont font; + font.setFamily("Helvetica"); + int fontHeight = scaleFactor * 0.55 * rect.height(); + font.setPixelSize(fontHeight); + font.setBold(true); + + QPixmap pixmap(rect.size() * scaleFactor); + pixmap.fill(Qt::transparent); + + QLinearGradient gradient(QPoint(0, 0), QPoint(0, pixmap.height())); + gradient.setColorAt(0.00, QColor(128, 128, 128)); + gradient.setColorAt(0.49, QColor(64, 64, 64)); + gradient.setColorAt(0.51, QColor(128, 128, 128)); + gradient.setColorAt(1.00, QColor(16, 16, 16)); + + QPainter p; + p.begin(&pixmap); + p.setFont(font); + QPen pen; + pen.setBrush(QBrush(gradient)); + p.setPen(pen); + p.drawText(pixmap.rect(), Qt::AlignCenter, str); + p.end(); + + return pixmap.scaledToWidth(width(), Qt::SmoothTransformation); + } + + void preparePixmap() { + m_pixmap = QPixmap(size()); + m_pixmap.fill(Qt::transparent); + QPainter p; + p.begin(&m_pixmap); + p.drawPixmap(0, 0, drawDigits(m_number, rect())); + p.end(); + } + + void resizeEvent(QResizeEvent*) { + preparePixmap(); + update(); + } + + void paintStatic() { + QPainter p(this); + p.fillRect(rect(), Qt::black); + + int pad = width() / 10; + drawFrame(&p, rect().adjusted(pad, pad, -pad, -pad)); + p.drawPixmap(0, 0, m_pixmap); + } + + void paintSlide() { + QPainter p(this); + p.fillRect(rect(), Qt::black); + + int pad = width() / 10; + QRect fr = rect().adjusted(pad, pad, -pad, -pad); + drawFrame(&p, fr); + p.setClipRect(fr); + + int y = height() * m_animator.currentFrame() / 100; + p.drawPixmap(0, y, m_lastPixmap); + p.drawPixmap(0, y - height(), m_pixmap); + } + + void paintFlip() { + QPainter p(this); +#if !defined(Q_OS_SYMBIAN) + p.setRenderHint(QPainter::SmoothPixmapTransform, true); + p.setRenderHint(QPainter::Antialiasing, true); +#endif + p.fillRect(rect(), Qt::black); + + int hw = width() / 2; + int hh = height() / 2; + + // behind is the new pixmap + int pad = width() / 10; + QRect fr = rect().adjusted(pad, pad, -pad, -pad); + drawFrame(&p, fr); + p.drawPixmap(0, 0, m_pixmap); + + int index = m_animator.currentFrame(); + + if (index <= 50) { + + // the top part of the old pixmap is flipping + int angle = -180 * index / 100; + QTransform transform; + transform.translate(hw, hh); + transform.rotate(angle, Qt::XAxis); + p.setTransform(transform); + drawFrame(&p, fr.adjusted(-hw, -hh, -hw, -hh)); + p.drawPixmap(-hw, -hh, m_lastPixmap); + + // the bottom part is still the old pixmap + p.resetTransform(); + p.setClipRect(0, hh, width(), hh); + drawFrame(&p, fr); + p.drawPixmap(0, 0, m_lastPixmap); + } else { + + p.setClipRect(0, hh, width(), hh); + + // the bottom part is still the old pixmap + drawFrame(&p, fr); + p.drawPixmap(0, 0, m_lastPixmap); + + // the bottom part of the new pixmap is flipping + int angle = 180 - 180 * m_animator.currentFrame() / 100; + QTransform transform; + transform.translate(hw, hh); + transform.rotate(angle, Qt::XAxis); + p.setTransform(transform); + drawFrame(&p, fr.adjusted(-hw, -hh, -hw, -hh)); + p.drawPixmap(-hw, -hh, m_pixmap); + + } + + } + + void paintRotate() { + QPainter p(this); + + int pad = width() / 10; + QRect fr = rect().adjusted(pad, pad, -pad, -pad); + drawFrame(&p, fr); + p.setClipRect(fr); + + int angle1 = -180 * m_animator.currentFrame() / 100; + int angle2 = 180 - 180 * m_animator.currentFrame() / 100; + int angle = (m_animator.currentFrame() <= 50) ? angle1 : angle2; + QPixmap pix = (m_animator.currentFrame() <= 50) ? m_lastPixmap : m_pixmap; + + QTransform transform; + transform.translate(width() / 2, height() / 2); + transform.rotate(angle, Qt::XAxis); + + p.setTransform(transform); + p.setRenderHint(QPainter::SmoothPixmapTransform, true); + p.drawPixmap(-width() / 2, -height() / 2, pix); + } + + void paintEvent(QPaintEvent *event) { + Q_UNUSED(event); + if (m_animator.state() == QTimeLine::Running) { + if (m_transition == Slide) + paintSlide(); + if (m_transition == Flip) + paintFlip(); + if (m_transition == Rotate) + paintRotate(); + } else { + paintStatic(); + } + } + +private: + int m_number; + int m_transition; + QPixmap m_pixmap; + QPixmap m_lastPixmap; + QTimeLine m_animator; +}; + +class DigiFlip : public QMainWindow +{ + Q_OBJECT + +public: + DigiFlip(QWidget *parent = 0) + : QMainWindow(parent) + { + m_hour = new Digits(this); + m_hour->show(); + m_minute = new Digits(this); + m_minute->show(); + + QPalette pal = palette(); + pal.setColor(QPalette::Window, Qt::black); + setPalette(pal); + + m_ticker.start(1000, this); + QTime t = QTime::currentTime(); + m_hour->setNumber(t.hour()); + m_minute->setNumber(t.minute()); + updateTime(); + + QAction *slideAction = new QAction("&Slide", this); + QAction *flipAction = new QAction("&Flip", this); + QAction *rotateAction = new QAction("&Rotate", this); + connect(slideAction, SIGNAL(triggered()), SLOT(chooseSlide())); + connect(flipAction, SIGNAL(triggered()), SLOT(chooseFlip())); + connect(rotateAction, SIGNAL(triggered()), SLOT(chooseRotate())); +#if defined(Q_OS_SYMBIAN) + menuBar()->addAction(slideAction); + menuBar()->addAction(flipAction); + menuBar()->addAction(rotateAction); +#else + addAction(slideAction); + addAction(flipAction); + addAction(rotateAction); + setContextMenuPolicy(Qt::ActionsContextMenu); +#endif + } + + void updateTime() { + QTime t = QTime::currentTime(); + m_hour->flipTo(t.hour()); + m_minute->flipTo(t.minute()); + QString str = t.toString("hh:mm:ss"); + str.prepend(": "); + if (m_hour->transition() == Digits::Slide) + str.prepend("Slide"); + if (m_hour->transition() == Digits::Flip) + str.prepend("Flip"); + if (m_hour->transition() == Digits::Rotate) + str.prepend("Rotate"); + setWindowTitle(str); + } + + void switchTransition(int delta) { + int i = (m_hour->transition() + delta + 3) % 3; + m_hour->setTransition(i); + m_minute->setTransition(i); + updateTime(); + } + +protected: + void resizeEvent(QResizeEvent*) { + int digitsWidth = width() / 2; + int digitsHeight = digitsWidth * 1.2; + + int y = (height() - digitsHeight) / 3; + + m_hour->resize(digitsWidth, digitsHeight); + m_hour->move(0, y); + + m_minute->resize(digitsWidth, digitsHeight); + m_minute->move(width() / 2, y); + } + + void timerEvent(QTimerEvent*) { + updateTime(); + } + + void keyPressEvent(QKeyEvent *event) { + if (event->key() == Qt::Key_Right) { + switchTransition(1); + event->accept(); + } + if (event->key() == Qt::Key_Left) { + switchTransition(-1); + event->accept(); + } + } + +private slots: + void chooseSlide() { + m_hour->setTransition(0); + m_minute->setTransition(0); + updateTime(); + } + + void chooseFlip() { + m_hour->setTransition(1); + m_minute->setTransition(1); + updateTime(); + } + + void chooseRotate() { + m_hour->setTransition(2); + m_minute->setTransition(2); + updateTime(); + } + +private: + QBasicTimer m_ticker; + Digits *m_hour; + Digits *m_minute; +}; + +#include "digiflip.moc" + +int main(int argc, char *argv[]) +{ + QApplication app(argc, argv); + + DigiFlip time; +#if defined(Q_OS_SYMBIAN) + time.showMaximized(); +#else + time.resize(320, 240); + time.show(); +#endif + + return app.exec(); +} diff --git a/demos/embedded/digiflip/digiflip.pro b/demos/embedded/digiflip/digiflip.pro new file mode 100644 index 0000000..6654088 --- /dev/null +++ b/demos/embedded/digiflip/digiflip.pro @@ -0,0 +1 @@ +SOURCES = digiflip.cpp diff --git a/demos/embedded/embedded.pro b/demos/embedded/embedded.pro index 7428b9f..3d814f7 100644 --- a/demos/embedded/embedded.pro +++ b/demos/embedded/embedded.pro @@ -1,9 +1,22 @@ TEMPLATE = subdirs -SUBDIRS = styledemo +SUBDIRS = styledemo raycasting flickable digiflip contains(QT_CONFIG, svg) { SUBDIRS += embeddedsvgviewer \ - fluidlauncher + desktopservices + !vxworks:!qnx:SUBDIRS += fluidlauncher +} + +contains(QT_CONFIG, network) { + SUBDIRS += lightmaps + SUBDIRS += flightinfo + contains(QT_CONFIG, svg) { + SUBDIRS += weatherinfo + } +} + +contains(QT_CONFIG, webkit) { + SUBDIRS += anomaly } # install @@ -11,3 +24,4 @@ sources.files = README *.pro sources.path = $$[QT_INSTALL_DEMOS]/embedded INSTALLS += sources +symbian: include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) diff --git a/demos/embedded/embeddedsvgviewer/embeddedsvgviewer.cpp b/demos/embedded/embeddedsvgviewer/embeddedsvgviewer.cpp index 949dc9f..9ca3530 100644 --- a/demos/embedded/embeddedsvgviewer/embeddedsvgviewer.cpp +++ b/demos/embedded/embeddedsvgviewer/embeddedsvgviewer.cpp @@ -143,7 +143,7 @@ void EmbeddedSvgViewer::updateImageScale() } -void EmbeddedSvgViewer::resizeEvent ( QResizeEvent * event ) +void EmbeddedSvgViewer::resizeEvent ( QResizeEvent * /* event */ ) { qreal origZoom = m_zoomLevel; diff --git a/demos/embedded/embeddedsvgviewer/embeddedsvgviewer.pro b/demos/embedded/embeddedsvgviewer/embeddedsvgviewer.pro index 505e607..9401871 100644 --- a/demos/embedded/embeddedsvgviewer/embeddedsvgviewer.pro +++ b/demos/embedded/embeddedsvgviewer/embeddedsvgviewer.pro @@ -9,8 +9,13 @@ RESOURCES += embeddedsvgviewer.qrc target.path = $$[QT_INSTALL_DEMOS]/embedded/embeddedsvgviewer sources.files = $$SOURCES $$HEADERS $$RESOURCES *.pro *.html *.svg files sources.path = $$[QT_INSTALL_DEMOS]/embedded/embeddedsvgviewer -INSTALLS += target sources +INSTALLS += target sources -wince*: { +wince* { DEPLOYMENT_PLUGIN += qsvg } + +symbian { + include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) + TARGET.UID3 = 0xA000A640 +} diff --git a/demos/embedded/flickable/flickable.cpp b/demos/embedded/flickable/flickable.cpp new file mode 100644 index 0000000..8fbefe6 --- /dev/null +++ b/demos/embedded/flickable/flickable.cpp @@ -0,0 +1,284 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the demonstration applications 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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "flickable.h" + +#include <QtCore> +#include <QtGui> + +class FlickableTicker: QObject +{ +public: + FlickableTicker(Flickable *scroller) { + m_scroller = scroller; + } + + void start(int interval) { + if (!m_timer.isActive()) + m_timer.start(interval, this); + } + + void stop() { + m_timer.stop(); + } + +protected: + void timerEvent(QTimerEvent *event) { + Q_UNUSED(event); + m_scroller->tick(); + } + +private: + Flickable *m_scroller; + QBasicTimer m_timer; +}; + +class FlickablePrivate +{ +public: + typedef enum { + Steady, + Pressed, + ManualScroll, + AutoScroll, + Stop + } State; + + State state; + int threshold; + QPoint pressPos; + QPoint offset; + QPoint delta; + QPoint speed; + FlickableTicker *ticker; + QTime timeStamp; + QWidget *target; + QList<QEvent*> ignoreList; +}; + +Flickable::Flickable() +{ + d = new FlickablePrivate; + d->state = FlickablePrivate::Steady; + d->threshold = 10; + d->ticker = new FlickableTicker(this); + d->timeStamp = QTime::currentTime(); + d->target = 0; +} + +Flickable::~Flickable() +{ + delete d; +} + +void Flickable::setThreshold(int th) +{ + if (th >= 0) + d->threshold = th; +} + +int Flickable::threshold() const +{ + return d->threshold; +} + +void Flickable::setAcceptMouseClick(QWidget *target) +{ + d->target = target; +} + +static QPoint deaccelerate(const QPoint &speed, int a = 1, int max = 64) +{ + int x = qBound(-max, speed.x(), max); + int y = qBound(-max, speed.y(), max); + x = (x == 0) ? x : (x > 0) ? qMax(0, x - a) : qMin(0, x + a); + y = (y == 0) ? y : (y > 0) ? qMax(0, y - a) : qMin(0, y + a); + return QPoint(x, y); +} + +void Flickable::handleMousePress(QMouseEvent *event) +{ + event->ignore(); + + if (event->button() != Qt::LeftButton) + return; + + if (d->ignoreList.removeAll(event)) + return; + + switch (d->state) { + + case FlickablePrivate::Steady: + event->accept(); + d->state = FlickablePrivate::Pressed; + d->pressPos = event->pos(); + break; + + case FlickablePrivate::AutoScroll: + event->accept(); + d->state = FlickablePrivate::Stop; + d->speed = QPoint(0, 0); + d->pressPos = event->pos(); + d->offset = scrollOffset(); + d->ticker->stop(); + break; + + default: + break; + } +} + +void Flickable::handleMouseRelease(QMouseEvent *event) +{ + event->ignore(); + + if (event->button() != Qt::LeftButton) + return; + + if (d->ignoreList.removeAll(event)) + return; + + QPoint delta; + + switch (d->state) { + + case FlickablePrivate::Pressed: + event->accept(); + d->state = FlickablePrivate::Steady; + if (d->target) { + QMouseEvent *event1 = new QMouseEvent(QEvent::MouseButtonPress, + d->pressPos, Qt::LeftButton, + Qt::LeftButton, Qt::NoModifier); + QMouseEvent *event2 = new QMouseEvent(*event); + d->ignoreList << event1; + d->ignoreList << event2; + QApplication::postEvent(d->target, event1); + QApplication::postEvent(d->target, event2); + } + break; + + case FlickablePrivate::ManualScroll: + event->accept(); + delta = event->pos() - d->pressPos; + if (d->timeStamp.elapsed() > 100) { + d->timeStamp = QTime::currentTime(); + d->speed = delta - d->delta; + d->delta = delta; + } + d->offset = scrollOffset(); + d->pressPos = event->pos(); + if (d->speed == QPoint(0, 0)) { + d->state = FlickablePrivate::Steady; + } else { + d->speed /= 4; + d->state = FlickablePrivate::AutoScroll; + d->ticker->start(20); + } + break; + + case FlickablePrivate::Stop: + event->accept(); + d->state = FlickablePrivate::Steady; + d->offset = scrollOffset(); + break; + + default: + break; + } +} + +void Flickable::handleMouseMove(QMouseEvent *event) +{ + event->ignore(); + + if (!(event->buttons() & Qt::LeftButton)) + return; + + if (d->ignoreList.removeAll(event)) + return; + + QPoint delta; + + switch (d->state) { + + case FlickablePrivate::Pressed: + case FlickablePrivate::Stop: + delta = event->pos() - d->pressPos; + if (delta.x() > d->threshold || delta.x() < -d->threshold || + delta.y() > d->threshold || delta.y() < -d->threshold) { + d->timeStamp = QTime::currentTime(); + d->state = FlickablePrivate::ManualScroll; + d->delta = QPoint(0, 0); + d->pressPos = event->pos(); + event->accept(); + } + break; + + case FlickablePrivate::ManualScroll: + event->accept(); + delta = event->pos() - d->pressPos; + setScrollOffset(d->offset - delta); + if (d->timeStamp.elapsed() > 100) { + d->timeStamp = QTime::currentTime(); + d->speed = delta - d->delta; + d->delta = delta; + } + break; + + default: + break; + } +} + +void Flickable::tick() +{ + if (d->state == FlickablePrivate:: AutoScroll) { + d->speed = deaccelerate(d->speed); + setScrollOffset(d->offset - d->speed); + d->offset = scrollOffset(); + if (d->speed == QPoint(0, 0)) { + d->state = FlickablePrivate::Steady; + d->ticker->stop(); + } + } else { + d->ticker->stop(); + } +} diff --git a/demos/embedded/flickable/flickable.h b/demos/embedded/flickable/flickable.h new file mode 100644 index 0000000..26497db --- /dev/null +++ b/demos/embedded/flickable/flickable.h @@ -0,0 +1,80 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the demonstration applications 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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef FLICKABLE_H +#define FLICKABLE_H + +class QMouseEvent; +class QPoint; +class QWidget; + +class FlickableTicker; +class FlickablePrivate; + +class Flickable +{ +public: + + Flickable(); + virtual ~Flickable(); + + void setThreshold(int threshold); + int threshold() const; + + void setAcceptMouseClick(QWidget *target); + + void handleMousePress(QMouseEvent *event); + void handleMouseMove(QMouseEvent *event); + void handleMouseRelease(QMouseEvent *event); + +protected: + virtual QPoint scrollOffset() const = 0; + virtual void setScrollOffset(const QPoint &offset) = 0; + +private: + void tick(); + +private: + FlickablePrivate *d; + friend class FlickableTicker; +}; + +#endif // FLICKABLE_H diff --git a/demos/embedded/flickable/flickable.pro b/demos/embedded/flickable/flickable.pro new file mode 100644 index 0000000..3c021dd --- /dev/null +++ b/demos/embedded/flickable/flickable.pro @@ -0,0 +1,2 @@ +SOURCES = flickable.cpp main.cpp +HEADERS = flickable.h diff --git a/demos/embedded/flickable/main.cpp b/demos/embedded/flickable/main.cpp new file mode 100644 index 0000000..cc024d9 --- /dev/null +++ b/demos/embedded/flickable/main.cpp @@ -0,0 +1,233 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the demonstration applications 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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QtCore> +#include <QtGui> + +#include "flickable.h" + +// Returns a list of two-word color names +static QStringList colorPairs(int max) +{ + // capitalize the first letter + QStringList colors = QColor::colorNames(); + colors.removeAll("transparent"); + int num = colors.count(); + for (int c = 0; c < num; ++c) + colors[c] = colors[c][0].toUpper() + colors[c].mid(1); + + // combine two colors, e.g. "lime skyblue" + QStringList combinedColors; + for (int i = 0; i < num; ++i) + for (int j = 0; j < num; ++j) + combinedColors << QString("%1 %2").arg(colors[i]).arg(colors[j]); + + // randomize it + colors.clear(); + while (combinedColors.count()) { + int i = qrand() % combinedColors.count(); + colors << combinedColors[i]; + combinedColors.removeAt(i); + if (colors.count() == max) + break; + } + + return colors; +} + +class ColorList : public QWidget, public Flickable +{ + Q_OBJECT + +public: + ColorList(QWidget *parent = 0) + : QWidget(parent) { + m_offset = 0; + m_height = QFontMetrics(font()).height() + 5; + m_highlight = -1; + m_selected = -1; + + QStringList colors = colorPairs(999); + for (int i = 0; i < colors.count(); ++i) { + QString c = colors[i]; + QString str; + str.sprintf("%4d", i + 1); + m_colorNames << (str + " " + c); + + QStringList duet = c.split(' '); + m_firstColor << duet[0]; + m_secondColor << duet[1]; + } + + setAttribute(Qt::WA_OpaquePaintEvent, true); + setAttribute(Qt::WA_NoSystemBackground, true); + + setMouseTracking(true); + Flickable::setAcceptMouseClick(this); + } + +protected: + // reimplement from Flickable + virtual QPoint scrollOffset() const { + return QPoint(0, m_offset); + } + + // reimplement from Flickable + virtual void setScrollOffset(const QPoint &offset) { + int yy = offset.y(); + if (yy != m_offset) { + m_offset = qBound(0, yy, m_height * m_colorNames.count() - height()); + update(); + } + } + +protected: + void paintEvent(QPaintEvent *event) { + QPainter p(this); + p.fillRect(event->rect(), Qt::white); + int start = m_offset / m_height; + int y = start * m_height - m_offset; + if (m_offset <= 0) { + start = 0; + y = -m_offset; + } + int end = start + height() / m_height + 1; + if (end > m_colorNames.count() - 1) + end = m_colorNames.count() - 1; + for (int i = start; i <= end; ++i, y += m_height) { + + p.setBrush(Qt::NoBrush); + p.setPen(Qt::black); + if (i == m_highlight) { + p.fillRect(0, y, width(), m_height, QColor(0, 64, 128)); + p.setPen(Qt::white); + } + if (i == m_selected) { + p.fillRect(0, y, width(), m_height, QColor(0, 128, 240)); + p.setPen(Qt::white); + } + + p.drawText(m_height + 2, y, width(), m_height, Qt::AlignVCenter, m_colorNames[i]); + + p.setPen(Qt::NoPen); + p.setBrush(m_firstColor[i]); + p.drawRect(1, y + 1, m_height - 2, m_height - 2); + p.setBrush(m_secondColor[i]); + p.drawRect(5, y + 5, m_height - 11, m_height - 11); + } + p.end(); + } + + void keyReleaseEvent(QKeyEvent *event) { + if (event->key() == Qt::Key_Down) { + m_offset += 20; + event->accept(); + update(); + return; + } + if (event->key() == Qt::Key_Up) { + m_offset -= 20; + event->accept(); + update(); + return; + } + } + + void mousePressEvent(QMouseEvent *event) { + Flickable::handleMousePress(event); + if (event->isAccepted()) + return; + + if (event->button() == Qt::LeftButton) { + int y = event->pos().y() + m_offset; + int i = y / m_height; + if (i != m_highlight) { + m_highlight = i; + m_selected = -1; + update(); + } + event->accept(); + } + } + + void mouseMoveEvent(QMouseEvent *event) { + Flickable::handleMouseMove(event); + } + + void mouseReleaseEvent(QMouseEvent *event) { + Flickable::handleMouseRelease(event); + if (event->isAccepted()) + return; + + if (event->button() == Qt::LeftButton) { + m_selected = m_highlight; + event->accept(); + update(); + } + } + +private: + int m_offset; + int m_height; + int m_highlight; + int m_selected; + QStringList m_colorNames; + QList<QColor> m_firstColor; + QList<QColor> m_secondColor; +}; + +#include "main.moc" + +int main(int argc, char *argv[]) +{ + QApplication app(argc, argv); + + ColorList list; + list.setWindowTitle("Kinetic Scrolling"); +#ifdef Q_OS_SYMBIAN + list.showMaximized(); +#else + list.resize(320, 320); + list.show(); +#endif + + return app.exec(); +} diff --git a/demos/embedded/flightinfo/aircraft.png b/demos/embedded/flightinfo/aircraft.png Binary files differnew file mode 100644 index 0000000..0845cb4 --- /dev/null +++ b/demos/embedded/flightinfo/aircraft.png diff --git a/demos/embedded/flightinfo/flightinfo.cpp b/demos/embedded/flightinfo/flightinfo.cpp new file mode 100644 index 0000000..de3a9e9 --- /dev/null +++ b/demos/embedded/flightinfo/flightinfo.cpp @@ -0,0 +1,415 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the demonstration applications 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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QtCore> +#include <QtGui> +#include <QtNetwork> + +#if defined (Q_OS_SYMBIAN) +#include "sym_iap_util.h" +#endif + +#include "ui_form.h" + +#define FLIGHTVIEW_URL "http://mobile.flightview.com/TrackByFlight.aspx" +#define FLIGHTVIEW_RANDOM "http://mobile.flightview.com/TrackSampleFlight.aspx" + +// strips all invalid constructs that might trip QXmlStreamReader +static QString sanitized(const QString &xml) +{ + QString data = xml; + + // anything up to the html tag + int i = data.indexOf("<html"); + if (i > 0) + data.remove(0, i - 1); + + // everything inside the head tag + i = data.indexOf("<head"); + if (i > 0) + data.remove(i, data.indexOf("</head>") - i + 7); + + // invalid link for JavaScript code + while (true) { + i = data.indexOf("onclick=\"gotoUrl("); + if (i < 0) + break; + data.remove(i, data.indexOf('\"', i + 9) - i + 1); + } + + // all inline frames + while (true) { + i = data.indexOf("<iframe"); + if (i < 0) + break; + data.remove(i, data.indexOf("</iframe>") - i + 8); + } + + // entities + data.remove(" "); + data.remove("©"); + + return data; +} + +class FlightInfo : public QMainWindow +{ + Q_OBJECT + +private: + + Ui_Form ui; + QUrl m_url; + QDate m_searchDate; + QPixmap m_map; + +public: + + FlightInfo(QMainWindow *parent = 0): QMainWindow(parent) { + + QWidget *w = new QWidget(this); + ui.setupUi(w); + setCentralWidget(w); + + ui.searchBar->hide(); + ui.infoBox->hide(); + connect(ui.searchButton, SIGNAL(clicked()), SLOT(startSearch())); + connect(ui.flightEdit, SIGNAL(returnPressed()), SLOT(startSearch())); + + setWindowTitle("Flight Info"); + QTimer::singleShot(0, this, SLOT(delayedInit())); + + // Rendered from the public-domain vectorized aircraft + // http://openclipart.org/media/people/Jarno + m_map = QPixmap(":/aircraft.png"); + + QAction *searchTodayAction = new QAction("Today's Flight", this); + QAction *searchYesterdayAction = new QAction("Yesterday's Flight", this); + QAction *randomAction = new QAction("Random Flight", this); + connect(searchTodayAction, SIGNAL(triggered()), SLOT(today())); + connect(searchYesterdayAction, SIGNAL(triggered()), SLOT(yesterday())); + connect(randomAction, SIGNAL(triggered()), SLOT(randomFlight())); +#if defined(Q_OS_SYMBIAN) + menuBar()->addAction(searchTodayAction); + menuBar()->addAction(searchYesterdayAction); + menuBar()->addAction(randomAction); +#else + addAction(searchTodayAction); + addAction(searchYesterdayAction); + addAction(randomAction); + setContextMenuPolicy(Qt::ActionsContextMenu); +#endif + } + +private slots: + void delayedInit() { +#if defined(Q_OS_SYMBIAN) + qt_SetDefaultIap(); +#endif + } + + + void handleNetworkData(QNetworkReply *networkReply) { + if (!networkReply->error()) { + // Assume UTF-8 encoded + QByteArray data = networkReply->readAll(); + QString xml = QString::fromUtf8(data); + digest(xml); + } + networkReply->deleteLater(); + networkReply->manager()->deleteLater(); + } + + void handleMapData(QNetworkReply *networkReply) { + if (!networkReply->error()) { + m_map.loadFromData(networkReply->readAll()); + update(); + } + networkReply->deleteLater(); + networkReply->manager()->deleteLater(); + } + + void today() { + QDateTime timestamp = QDateTime::currentDateTime(); + m_searchDate = timestamp.date(); + searchFlight(); + } + + void yesterday() { + QDateTime timestamp = QDateTime::currentDateTime(); + timestamp = timestamp.addDays(-1); + m_searchDate = timestamp.date(); + searchFlight(); + } + + void searchFlight() { + ui.searchBar->show(); + ui.infoBox->hide(); + ui.flightStatus->hide(); + ui.flightName->setText("Enter flight number"); + m_map = QPixmap(); + update(); + } + + void startSearch() { + ui.searchBar->hide(); + QString flight = ui.flightEdit->text().simplified(); + if (!flight.isEmpty()) + request(flight, m_searchDate); + } + + void randomFlight() { + request(QString(), QDate::currentDate()); + } + +public slots: + + void request(const QString &flightCode, const QDate &date) { + + setWindowTitle("Loading..."); + + QString code = flightCode.simplified(); + QString airlineCode = code.left(2).toUpper(); + QString flightNumber = code.mid(2, code.length()); + + ui.flightName->setText("Searching for " + code); + + m_url = QUrl(FLIGHTVIEW_URL); + m_url.addEncodedQueryItem("view", "detail"); + m_url.addEncodedQueryItem("al", QUrl::toPercentEncoding(airlineCode)); + m_url.addEncodedQueryItem("fn", QUrl::toPercentEncoding(flightNumber)); + m_url.addEncodedQueryItem("dpdat", QUrl::toPercentEncoding(date.toString("yyyyMMdd"))); + + if (code.isEmpty()) { + // random flight as sample + m_url = QUrl(FLIGHTVIEW_RANDOM); + ui.flightName->setText("Getting a random flight..."); + } + + QNetworkAccessManager *manager = new QNetworkAccessManager(this); + connect(manager, SIGNAL(finished(QNetworkReply*)), + this, SLOT(handleNetworkData(QNetworkReply*))); + manager->get(QNetworkRequest(m_url)); + } + + +private: + + void digest(const QString &content) { + + setWindowTitle("Flight Info"); + QString data = sanitized(content); + + // do we only get the flight list? + // we grab the first leg in the flight list + // then fetch another URL for the real flight info + int i = data.indexOf("a href=\"?view=detail"); + if (i > 0) { + QString href = data.mid(i, data.indexOf('\"', i + 8) - i + 1); + QRegExp regex("dpap=([A-Za-z0-9]+)"); + regex.indexIn(href); + QString airport = regex.cap(1); + m_url.addEncodedQueryItem("dpap", QUrl::toPercentEncoding(airport)); + QNetworkAccessManager *manager = new QNetworkAccessManager(this); + connect(manager, SIGNAL(finished(QNetworkReply*)), + this, SLOT(handleNetworkData(QNetworkReply*))); + manager->get(QNetworkRequest(m_url)); + return; + } + + QXmlStreamReader xml(data); + bool inFlightName = false; + bool inFlightStatus = false; + bool inFlightMap = false; + bool inFieldName = false; + bool inFieldValue = false; + + QString flightName; + QString flightStatus; + QStringList fieldNames; + QStringList fieldValues; + + while (!xml.atEnd()) { + xml.readNext(); + + if (xml.tokenType() == QXmlStreamReader::StartElement) { + QStringRef className = xml.attributes().value("class"); + inFlightName |= xml.name() == "h1"; + inFlightStatus |= className == "FlightDetailHeaderStatus"; + inFlightMap |= className == "flightMap"; + if (xml.name() == "td" && !className.isEmpty()) { + QString cn = className.toString(); + if (cn.contains("fieldTitle")) { + inFieldName = true; + fieldNames += QString(); + fieldValues += QString(); + } + if (cn.contains("fieldValue")) + inFieldValue = true; + } + if (xml.name() == "img" && inFlightMap) { + QString src = xml.attributes().value("src").toString(); + src.prepend("http://mobile.flightview.com"); + QUrl url = QUrl::fromPercentEncoding(src.toAscii()); + QNetworkAccessManager *manager = new QNetworkAccessManager(this); + connect(manager, SIGNAL(finished(QNetworkReply*)), + this, SLOT(handleMapData(QNetworkReply*))); + manager->get(QNetworkRequest(url)); + } + } + + if (xml.tokenType() == QXmlStreamReader::EndElement) { + inFlightName &= xml.name() != "h1"; + inFlightStatus &= xml.name() != "div"; + inFlightMap &= xml.name() != "div"; + inFieldName &= xml.name() != "td"; + inFieldValue &= xml.name() != "td"; + } + + if (xml.tokenType() == QXmlStreamReader::Characters) { + if (inFlightName) + flightName += xml.text(); + if (inFlightStatus) + flightStatus += xml.text(); + if (inFieldName) + fieldNames.last() += xml.text(); + if (inFieldValue) + fieldValues.last() += xml.text(); + } + } + + if (fieldNames.isEmpty()) { + QString code = ui.flightEdit->text().simplified().left(10); + QString msg = QString("Flight %1 is not found").arg(code); + ui.flightName->setText(msg); + return; + } + + ui.flightName->setText(flightName); + flightStatus.remove("Status: "); + ui.flightStatus->setText(flightStatus); + ui.flightStatus->show(); + + QStringList whiteList; + whiteList << "Departure"; + whiteList << "Arrival"; + whiteList << "Scheduled"; + whiteList << "Takeoff"; + whiteList << "Estimated"; + whiteList << "Term-Gate"; + + QString text; + text = QString("<table width=%1>").arg(width() - 25); + for (int i = 0; i < fieldNames.count(); i++) { + QString fn = fieldNames[i].simplified(); + if (fn.endsWith(':')) + fn = fn.left(fn.length() - 1); + if (!whiteList.contains(fn)) + continue; + + QString fv = fieldValues[i].simplified(); + bool special = false; + special |= fn.startsWith("Departure"); + special |= fn.startsWith("Arrival"); + text += "<tr>"; + if (special) { + text += "<td align=center colspan=2>"; + text += "<b><font size=+1>" + fv + "</font></b>"; + text += "</td>"; + } else { + text += "<td align=right>"; + text += fn; + text += " : "; + text += " "; + text += "</td>"; + text += "<td>"; + text += fv; + text += "</td>"; + } + text += "</tr>"; + } + text += "</table>"; + ui.detailedInfo->setText(text); + ui.infoBox->show(); + } + + void resizeEvent(QResizeEvent *event) { + Q_UNUSED(event); + ui.detailedInfo->setMaximumWidth(width() - 25); + } + + void paintEvent(QPaintEvent *event) { + QMainWindow::paintEvent(event); + QPainter p(this); + p.fillRect(rect(), QColor(131, 171, 210)); + if (!m_map.isNull()) { + int x = (width() - m_map.width()) / 2; + int space = ui.infoBox->pos().y(); + if (!ui.infoBox->isVisible()) + space = height(); + int top = ui.titleBox->height(); + int y = qMax(top, (space - m_map.height()) / 2); + p.drawPixmap(x, y, m_map); + } + p.end(); + } + +}; + + +#include "flightinfo.moc" + +int main(int argc, char **argv) +{ + Q_INIT_RESOURCE(flightinfo); + + QApplication app(argc, argv); + + FlightInfo w; +#if defined(Q_OS_SYMBIAN) + w.showMaximized(); +#else + w.resize(360, 504); + w.show(); +#endif + + return app.exec(); +} diff --git a/demos/embedded/flightinfo/flightinfo.pro b/demos/embedded/flightinfo/flightinfo.pro new file mode 100644 index 0000000..5edb175 --- /dev/null +++ b/demos/embedded/flightinfo/flightinfo.pro @@ -0,0 +1,12 @@ +TEMPLATE = app +TARGET = flightinfo +SOURCES = flightinfo.cpp +FORMS += form.ui +RESOURCES = flightinfo.qrc +QT += network + +symbian { + HEADERS += $$QT_SOURCE_TREE/examples/network/ftp/sym_iap_util.h + LIBS += -lesock -lconnmon + TARGET.CAPABILITY = NetworkServices +} diff --git a/demos/embedded/flightinfo/flightinfo.qrc b/demos/embedded/flightinfo/flightinfo.qrc new file mode 100644 index 0000000..babea7e --- /dev/null +++ b/demos/embedded/flightinfo/flightinfo.qrc @@ -0,0 +1,5 @@ +<RCC> + <qresource prefix="/" > + <file>aircraft.png</file> + </qresource> +</RCC> diff --git a/demos/embedded/flightinfo/form.ui b/demos/embedded/flightinfo/form.ui new file mode 100644 index 0000000..3a24c75 --- /dev/null +++ b/demos/embedded/flightinfo/form.ui @@ -0,0 +1,226 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>Form</class> + <widget class="QWidget" name="Form"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>220</width> + <height>171</height> + </rect> + </property> + <property name="windowTitle"> + <string>Form</string> + </property> + <layout class="QVBoxLayout" name="verticalLayout"> + <property name="spacing"> + <number>0</number> + </property> + <property name="margin"> + <number>0</number> + </property> + <item> + <widget class="QFrame" name="titleBox"> + <property name="styleSheet"> + <string>QFrame { +background-color: #45629a; +} + +QLabel { +color: white; +}</string> + </property> + <property name="frameShape"> + <enum>QFrame::NoFrame</enum> + </property> + <property name="frameShadow"> + <enum>QFrame::Raised</enum> + </property> + <property name="lineWidth"> + <number>0</number> + </property> + <layout class="QHBoxLayout" name="horizontalLayout"> + <property name="spacing"> + <number>0</number> + </property> + <property name="margin"> + <number>4</number> + </property> + <item> + <widget class="QLabel" name="flightName"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text"> + <string>Powered by FlightView</string> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="flightStatus"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Minimum" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="font"> + <font> + <weight>75</weight> + <bold>true</bold> + </font> + </property> + <property name="styleSheet"> + <string>background-color: white; +color: #45629a;</string> + </property> + <property name="lineWidth"> + <number>0</number> + </property> + <property name="text"> + <string>Ready</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <property name="margin"> + <number>4</number> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QFrame" name="searchBar"> + <property name="frameShape"> + <enum>QFrame::NoFrame</enum> + </property> + <property name="frameShadow"> + <enum>QFrame::Raised</enum> + </property> + <layout class="QHBoxLayout" name="horizontalLayout_2"> + <property name="margin"> + <number>5</number> + </property> + <item> + <widget class="QLineEdit" name="flightEdit"> + <property name="styleSheet"> + <string>color: black; +border: 1px solid black; +background: white; +selection-background-color: lightgray;</string> + </property> + </widget> + </item> + <item> + <widget class="QToolButton" name="searchButton"> + <property name="styleSheet"> + <string>color: rgb(255, 255, 255); +background-color: rgb(85, 85, 255); +padding: 2px; +border: 2px solid rgb(0, 0, 127);</string> + </property> + <property name="text"> + <string>Search</string> + </property> + <property name="toolButtonStyle"> + <enum>Qt::ToolButtonTextBesideIcon</enum> + </property> + </widget> + </item> + <item> + <spacer name="horizontalSpacer"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> + </widget> + </item> + <item> + <spacer name="verticalSpacer"> + <property name="orientation"> + <enum>Qt::Vertical</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>20</width> + <height>58</height> + </size> + </property> + </spacer> + </item> + <item> + <widget class="QFrame" name="infoBox"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Minimum" vsizetype="MinimumExpanding"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="styleSheet"> + <string>QFrame { border: 2px solid white; +border-radius: 10px; +margin: 5px; +background-color: rgba(69, 98, 154, 192); }</string> + </property> + <property name="frameShape"> + <enum>QFrame::NoFrame</enum> + </property> + <property name="frameShadow"> + <enum>QFrame::Raised</enum> + </property> + <layout class="QVBoxLayout" name="verticalLayout_3"> + <property name="spacing"> + <number>0</number> + </property> + <property name="margin"> + <number>5</number> + </property> + <item> + <widget class="QLabel" name="detailedInfo"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Minimum" vsizetype="MinimumExpanding"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="styleSheet"> + <string>color: white; +border: none; +background-color: none;</string> + </property> + <property name="text"> + <string/> + </property> + <property name="textFormat"> + <enum>Qt::RichText</enum> + </property> + <property name="wordWrap"> + <bool>true</bool> + </property> + <property name="textInteractionFlags"> + <set>Qt::NoTextInteraction</set> + </property> + </widget> + </item> + </layout> + </widget> + </item> + </layout> + </widget> + <resources/> + <connections/> +</ui> diff --git a/demos/embedded/fluidlauncher/config_s60/config.xml b/demos/embedded/fluidlauncher/config_s60/config.xml new file mode 100644 index 0000000..192a2e3 --- /dev/null +++ b/demos/embedded/fluidlauncher/config_s60/config.xml @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="iso-8859-1"?> +<demolauncher> + <demos> + <example filename="embeddedsvgviewer" name="SVG Viewer" image="screenshots/embeddedsvgviewer_s60.png" args="/data/images/qt/demos/embeddedsvgviewer/shapes.svg"/> + <example filename="styledemo" name="Stylesheets" image="screenshots/styledemo_s60.png"/> + <example filename="deform" name="Vector Deformation" image="screenshots/deform.png" args="-small-screen"/> + <example filename="pathstroke" name="Path Stroking" image="screenshots/pathstroke.png" args="-small-screen"/> + <example filename="wiggly" name="Wiggly Text" image="screenshots/wiggly_s60.png" args="-small-screen"/> + <example filename="ftp" name="Ftp Client" image="screenshots/ftp_s60.png"/> + <example filename="context2d" name="Context2d" image="screenshots/context2d_s60.png"/> + <example filename="saxbookmarks" name="SaxBookmarks" image="screenshots/saxbookmarks_s60.png"/> + <example filename="desktopservices" name="Desktop Services" image="screenshots/desktopservices_s60.png"/> + <example filename="fridgemagnets" name="Fridge Magnets" image="screenshots/fridgemagnets_s60.png" args="-small-screen"/> + <example filename="drilldown" name="Drilldown" image="screenshots/drilldown_s60.png"/> + <example filename="softkeys" name="Softkeys" image="screenshots/softkeys_s60.png"/> + <example filename="anomaly" name="Anomaly Browser" image="screenshots/anomaly_s60.png"/> + <example filename="raycasting" name="Ray casting" image="screenshots/raycasting.png"/> + <example filename="lightmaps" name="OpenStreetMap" image="screenshots/lightmaps.png"/> + <example filename="flightinfo" name="Flight Info" image="screenshots/flightinfo_s60.png"/> + <example filename="weatherinfo" name="Weather Info" image="screenshots/weatherinfo.png"/> + <example filename="flickable" name="Kinetic Scrolling" image="screenshots/flickable.png"/> + <example filename="digiflip" name="Flipping Clock" image="screenshots/digiflip.png"/> + </demos> + <slideshow timeout="60000" interval="10000"> + <imagedir dir="slides"/> + </slideshow> +</demolauncher> diff --git a/demos/embedded/fluidlauncher/fluidlauncher.cpp b/demos/embedded/fluidlauncher/fluidlauncher.cpp index f8bd008..3655f27 100644 --- a/demos/embedded/fluidlauncher/fluidlauncher.cpp +++ b/demos/embedded/fluidlauncher/fluidlauncher.cpp @@ -39,12 +39,14 @@ ** ****************************************************************************/ -#include <QtXml> +#include <QXmlStreamReader> #include "fluidlauncher.h" #define DEFAULT_INPUT_TIMEOUT 10000 +#define SIZING_FACTOR_HEIGHT 6/10 +#define SIZING_FACTOR_WIDTH 6/10 FluidLauncher::FluidLauncher(QStringList* args) { @@ -62,7 +64,11 @@ FluidLauncher::FluidLauncher(QStringList* args) inputTimer->setSingleShot(true); inputTimer->setInterval(DEFAULT_INPUT_TIMEOUT); - pictureFlowWidget->setSlideSize(QSize( (screen_size.width()*2)/5, (screen_size.height()*2)/5 )); + const int h = screen_size.height() * SIZING_FACTOR_HEIGHT; + const int w = screen_size.width() * SIZING_FACTOR_WIDTH; + const int hh = qMin(h, w); + const int ww = hh / 3 * 2; + pictureFlowWidget->setSlideSize(QSize(ww, hh)); bool success; int configIndex = args->indexOf("-config"); @@ -100,61 +106,97 @@ bool FluidLauncher::loadConfig(QString configPath) slideShowWidget->clearImages(); - QDomDocument xmlDoc; - xmlDoc.setContent(&xmlFile, true); + xmlFile.open(QIODevice::ReadOnly); + QXmlStreamReader reader(&xmlFile); + while (!reader.atEnd()) { + reader.readNext(); - QDomElement rootElement = xmlDoc.documentElement(); - - // Process the demos node: - QDomNodeList demoNodes = rootElement.firstChildElement("demos").elementsByTagName("example"); - for (int i=0; i<demoNodes.size(); i++) { - QDomElement element = demoNodes.item(i).toElement(); - - if (element.hasAttribute("filename")) { - DemoApplication* newDemo = new DemoApplication( - element.attribute("filename"), - element.attribute("name", "Unamed Demo"), - element.attribute("image"), - element.attribute("args").split(" ")); - demoList.append(newDemo); + if (reader.isStartElement()) { + if (reader.name() == "demos") + parseDemos(reader); + else if(reader.name() == "slideshow") + parseSlideshow(reader); } } + if (reader.hasError()) { + qDebug() << QString("Error parsing %1 on line %2 column %3: \n%4") + .arg(configPath) + .arg(reader.lineNumber()) + .arg(reader.columnNumber()) + .arg(reader.errorString()); + } - // Process the slideshow node: - QDomElement slideshowElement = rootElement.firstChildElement("slideshow"); + // Append an exit Item + DemoApplication* exitItem = new DemoApplication(QString(), QLatin1String("Exit Embedded Demo"), QString(), QStringList()); + demoList.append(exitItem); - if (slideshowElement.hasAttribute("timeout")) { - bool valid; - int timeout = slideshowElement.attribute("timeout").toInt(&valid); - if (valid) - inputTimer->setInterval(timeout); - } + return true; +} - if (slideshowElement.hasAttribute("interval")) { - bool valid; - int interval = slideshowElement.attribute("interval").toInt(&valid); - if (valid) - slideShowWidget->setSlideInterval(interval); + +void FluidLauncher::parseDemos(QXmlStreamReader& reader) +{ + while (!reader.atEnd()) { + reader.readNext(); + if (reader.isStartElement() && reader.name() == "example") { + QXmlStreamAttributes attrs = reader.attributes(); + QStringRef filename = attrs.value("filename"); + if (!filename.isEmpty()) { + QStringRef name = attrs.value("name"); + QStringRef image = attrs.value("image"); + QStringRef args = attrs.value("args"); + + DemoApplication* newDemo = new DemoApplication( + filename.toString(), + name.isEmpty() ? "Unamed Demo" : name.toString(), + image.toString(), + args.toString().split(" ")); + demoList.append(newDemo); + } + } else if(reader.isEndElement() && reader.name() == "demos") { + return; + } } +} - for (QDomNode node=slideshowElement.firstChild(); !node.isNull(); node=node.nextSibling()) { - QDomElement element = node.toElement(); +void FluidLauncher::parseSlideshow(QXmlStreamReader& reader) +{ + QXmlStreamAttributes attrs = reader.attributes(); + + QStringRef timeout = attrs.value("timeout"); + bool valid; + if (!timeout.isEmpty()) { + int t = timeout.toString().toInt(&valid); + if (valid) + inputTimer->setInterval(t); + } - if (element.tagName() == "imagedir") - slideShowWidget->addImageDir(element.attribute("dir")); - else if (element.tagName() == "image") - slideShowWidget->addImage(element.attribute("image")); + QStringRef interval = attrs.value("interval"); + if (!interval.isEmpty()) { + int i = interval.toString().toInt(&valid); + if (valid) + slideShowWidget->setSlideInterval(i); } - // Append an exit Item - DemoApplication* exitItem = new DemoApplication(QString(), QLatin1String("Exit Embedded Demo"), QString(), QStringList()); - demoList.append(exitItem); + while (!reader.atEnd()) { + reader.readNext(); + if (reader.isStartElement()) { + QXmlStreamAttributes attrs = reader.attributes(); + if (reader.name() == "imagedir") { + QStringRef dir = attrs.value("dir"); + slideShowWidget->addImageDir(dir.toString()); + } else if(reader.name() == "image") { + QStringRef image = attrs.value("image"); + slideShowWidget->addImage(image.toString()); + } + } else if(reader.isEndElement() && reader.name() == "slideshow") { + return; + } + } - return true; } - void FluidLauncher::populatePictureFlow() { pictureFlowWidget->setSlideCount(demoList.count()); diff --git a/demos/embedded/fluidlauncher/fluidlauncher.h b/demos/embedded/fluidlauncher/fluidlauncher.h index cf6bd3a..a280a2e 100644 --- a/demos/embedded/fluidlauncher/fluidlauncher.h +++ b/demos/embedded/fluidlauncher/fluidlauncher.h @@ -44,6 +44,7 @@ #include <QtGui> #include <QTimer> +#include <QStringRef> #include "pictureflow.h" #include "slideshow.h" @@ -73,7 +74,8 @@ private: bool loadConfig(QString configPath); void populatePictureFlow(); void switchToSlideshow(); - + void parseDemos(QXmlStreamReader& reader); + void parseSlideshow(QXmlStreamReader& reader); }; diff --git a/demos/embedded/fluidlauncher/fluidlauncher.pro b/demos/embedded/fluidlauncher/fluidlauncher.pro index 76d12ad..522ccf3 100644 --- a/demos/embedded/fluidlauncher/fluidlauncher.pro +++ b/demos/embedded/fluidlauncher/fluidlauncher.pro @@ -1,8 +1,7 @@ TEMPLATE = app -TARGET = +TARGET = DEPENDPATH += . INCLUDEPATH += . -QT += xml # Input HEADERS += \ @@ -40,7 +39,8 @@ wince*{ $$QT_BUILD_TREE/demos/pathstroke/$${BUILD_DIR}/pathstroke.exe \ $$QT_BUILD_TREE/examples/graphicsview/elasticnodes/$${BUILD_DIR}/elasticnodes.exe \ $$QT_BUILD_TREE/examples/widgets/wiggly/$${BUILD_DIR}/wiggly.exe \ - $$QT_BUILD_TREE/examples/painting/concentriccircles/$${BUILD_DIR}/concentriccircles.exe + $$QT_BUILD_TREE/examples/painting/concentriccircles/$${BUILD_DIR}/concentriccircles.exe \ + $$QT_BUILD_TREE/examples/draganddrop/$${BUILD_DIR}/fridgemagnets.exe executables.path = . @@ -54,3 +54,92 @@ wince*{ DEPLOYMENT_PLUGIN += qgif qjpeg qmng qsvg } + +symbian { + load(data_caging_paths) + + TARGET.UID3 = 0xA000A641 + + executables.sources = \ + embeddedsvgviewer.exe \ + styledemo.exe \ + deform.exe \ + pathstroke.exe \ + wiggly.exe \ + ftp.exe \ + saxbookmarks.exe \ + desktopservices.exe \ + fridgemagnets.exe \ + drilldown.exe \ + softkeys.exe + + contains(QT_CONFIG, webkit): executables.sources += anomaly.exe + contains(QT_CONFIG, script): executables.sources += context2d.exe + + executables.path = /sys/bin + + reg_resource.sources = \ + $${EPOCROOT}$$HW_ZDIR$$REG_RESOURCE_IMPORT_DIR/embeddedsvgviewer_reg.rsc \ + $${EPOCROOT}$$HW_ZDIR$$REG_RESOURCE_IMPORT_DIR/styledemo_reg.rsc \ + $${EPOCROOT}$$HW_ZDIR$$REG_RESOURCE_IMPORT_DIR/deform_reg.rsc \ + $${EPOCROOT}$$HW_ZDIR$$REG_RESOURCE_IMPORT_DIR/pathstroke_reg.rsc \ + $${EPOCROOT}$$HW_ZDIR$$REG_RESOURCE_IMPORT_DIR/wiggly_reg.rsc \ + $${EPOCROOT}$$HW_ZDIR$$REG_RESOURCE_IMPORT_DIR/ftp_reg.rsc\ + $${EPOCROOT}$$HW_ZDIR$$REG_RESOURCE_IMPORT_DIR/saxbookmarks_reg.rsc \ + $${EPOCROOT}$$HW_ZDIR$$REG_RESOURCE_IMPORT_DIR/desktopservices_reg.rsc \ + $${EPOCROOT}$$HW_ZDIR$$REG_RESOURCE_IMPORT_DIR/fridgemagnets_reg.rsc \ + $${EPOCROOT}$$HW_ZDIR$$REG_RESOURCE_IMPORT_DIR/drilldown_reg.rsc \ + $${EPOCROOT}$$HW_ZDIR$$REG_RESOURCE_IMPORT_DIR/softkeys_reg.rsc + + contains(QT_CONFIG, webkit): reg_resource.sources += $${EPOCROOT}$$HW_ZDIR$$REG_RESOURCE_IMPORT_DIR/anomaly_reg.rsc + contains(QT_CONFIG, script): reg_resource.sources += $${EPOCROOT}$$HW_ZDIR$$REG_RESOURCE_IMPORT_DIR/context2d_reg.rsc + + reg_resource.path = $$REG_RESOURCE_IMPORT_DIR + + resource.sources = \ + $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/embeddedsvgviewer.rsc \ + $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/styledemo.rsc \ + $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/deform.rsc \ + $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/pathstroke.rsc \ + $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/wiggly.rsc \ + $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/ftp.rsc\ + $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/saxbookmarks.rsc \ + $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/desktopservices.rsc \ + $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/fridgemagnets.rsc \ + $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/drilldown.rsc \ + $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/softkeys.rsc + contains(QT_CONFIG, webkit): resource.sources += $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/anomaly.rsc + contains(QT_CONFIG, script): resource.sources += $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/context2d.rsc + + resource.path = $$APP_RESOURCE_DIR + + mifs.sources = \ + $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/0xA000C611.mif + mifs.path = $$APP_RESOURCE_DIR + + files.sources = $$PWD/screenshots $$PWD/slides + files.path = . + + config.sources = $$PWD/config_s60/config.xml + config.path = . + + viewerimages.sources = $$PWD/../embeddedsvgviewer/shapes.svg + viewerimages.path = /data/images/qt/demos/embeddedsvgviewer + + desktopservices_music.sources = \ + $$PWD/../desktopservices/data/*.mp3 \ + $$PWD/../desktopservices/data/*.wav + desktopservices_music.path = /data/sounds + + desktopservices_images.sources = $$PWD/../desktopservices/data/*.png + desktopservices_images.path = /data/images + + saxbookmarks.sources = $$PWD/../../../examples/xml/saxbookmarks/frank.xbel + saxbookmarks.sources += $$PWD/../../../examples/xml/saxbookmarks/jennifer.xbel + saxbookmarks.path = /data/qt/saxbookmarks + + DEPLOYMENT += config files executables viewerimages saxbookmarks reg_resource resource \ + mifs desktopservices_music desktopservices_images + + TARGET.EPOCHEAPSIZE = 100000 20000000 +} diff --git a/demos/embedded/fluidlauncher/pictureflow.cpp b/demos/embedded/fluidlauncher/pictureflow.cpp index 16e58a0..9eeaa26 100644 --- a/demos/embedded/fluidlauncher/pictureflow.cpp +++ b/demos/embedded/fluidlauncher/pictureflow.cpp @@ -3,6 +3,10 @@ ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). ** Contact: Nokia Corporation (qt-info@nokia.com) ** +** This file is part of the QtGui module of the Qt Toolkit. +** +** This is a version of the Pictureflow animated image show widget modified by Nokia. +** ** This file is part of the ActiveQt framework of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:BSD$ @@ -82,6 +86,14 @@ #include <QDebug> +static const int captionFontSize = +#ifdef Q_WS_S60 + 8; +#else + 14; +#endif + + // uncomment this to enable bilinear filtering for texture mapping // gives much better rendering, at the cost of memory space // #define PICTUREFLOW_BILINEAR_FILTER @@ -134,134 +146,134 @@ inline PFreal floatToFixed(float val) // warning: regenerate the table if IANGLE_MAX and PFREAL_SHIFT are changed! static const PFreal sinTable[IANGLE_MAX] = { - 3, 9, 15, 21, 28, 34, 40, 47, - 53, 59, 65, 72, 78, 84, 90, 97, - 103, 109, 115, 122, 128, 134, 140, 147, - 153, 159, 165, 171, 178, 184, 190, 196, - 202, 209, 215, 221, 227, 233, 239, 245, - 251, 257, 264, 270, 276, 282, 288, 294, - 300, 306, 312, 318, 324, 330, 336, 342, - 347, 353, 359, 365, 371, 377, 383, 388, - 394, 400, 406, 412, 417, 423, 429, 434, - 440, 446, 451, 457, 463, 468, 474, 479, - 485, 491, 496, 501, 507, 512, 518, 523, - 529, 534, 539, 545, 550, 555, 561, 566, - 571, 576, 581, 587, 592, 597, 602, 607, - 612, 617, 622, 627, 632, 637, 642, 647, - 652, 656, 661, 666, 671, 675, 680, 685, - 690, 694, 699, 703, 708, 712, 717, 721, - 726, 730, 735, 739, 743, 748, 752, 756, - 760, 765, 769, 773, 777, 781, 785, 789, - 793, 797, 801, 805, 809, 813, 816, 820, - 824, 828, 831, 835, 839, 842, 846, 849, - 853, 856, 860, 863, 866, 870, 873, 876, - 879, 883, 886, 889, 892, 895, 898, 901, - 904, 907, 910, 913, 916, 918, 921, 924, - 927, 929, 932, 934, 937, 939, 942, 944, - 947, 949, 951, 954, 956, 958, 960, 963, - 965, 967, 969, 971, 973, 975, 977, 978, - 980, 982, 984, 986, 987, 989, 990, 992, - 994, 995, 997, 998, 999, 1001, 1002, 1003, - 1004, 1006, 1007, 1008, 1009, 1010, 1011, 1012, - 1013, 1014, 1015, 1015, 1016, 1017, 1018, 1018, - 1019, 1019, 1020, 1020, 1021, 1021, 1022, 1022, - 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, - 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1022, - 1022, 1022, 1021, 1021, 1020, 1020, 1019, 1019, - 1018, 1018, 1017, 1016, 1015, 1015, 1014, 1013, - 1012, 1011, 1010, 1009, 1008, 1007, 1006, 1004, - 1003, 1002, 1001, 999, 998, 997, 995, 994, - 992, 990, 989, 987, 986, 984, 982, 980, - 978, 977, 975, 973, 971, 969, 967, 965, - 963, 960, 958, 956, 954, 951, 949, 947, - 944, 942, 939, 937, 934, 932, 929, 927, - 924, 921, 918, 916, 913, 910, 907, 904, - 901, 898, 895, 892, 889, 886, 883, 879, - 876, 873, 870, 866, 863, 860, 856, 853, - 849, 846, 842, 839, 835, 831, 828, 824, - 820, 816, 813, 809, 805, 801, 797, 793, - 789, 785, 781, 777, 773, 769, 765, 760, - 756, 752, 748, 743, 739, 735, 730, 726, - 721, 717, 712, 708, 703, 699, 694, 690, - 685, 680, 675, 671, 666, 661, 656, 652, - 647, 642, 637, 632, 627, 622, 617, 612, - 607, 602, 597, 592, 587, 581, 576, 571, - 566, 561, 555, 550, 545, 539, 534, 529, - 523, 518, 512, 507, 501, 496, 491, 485, - 479, 474, 468, 463, 457, 451, 446, 440, - 434, 429, 423, 417, 412, 406, 400, 394, - 388, 383, 377, 371, 365, 359, 353, 347, - 342, 336, 330, 324, 318, 312, 306, 300, - 294, 288, 282, 276, 270, 264, 257, 251, - 245, 239, 233, 227, 221, 215, 209, 202, - 196, 190, 184, 178, 171, 165, 159, 153, - 147, 140, 134, 128, 122, 115, 109, 103, - 97, 90, 84, 78, 72, 65, 59, 53, - 47, 40, 34, 28, 21, 15, 9, 3, - -4, -10, -16, -22, -29, -35, -41, -48, - -54, -60, -66, -73, -79, -85, -91, -98, - -104, -110, -116, -123, -129, -135, -141, -148, - -154, -160, -166, -172, -179, -185, -191, -197, - -203, -210, -216, -222, -228, -234, -240, -246, - -252, -258, -265, -271, -277, -283, -289, -295, - -301, -307, -313, -319, -325, -331, -337, -343, - -348, -354, -360, -366, -372, -378, -384, -389, - -395, -401, -407, -413, -418, -424, -430, -435, - -441, -447, -452, -458, -464, -469, -475, -480, - -486, -492, -497, -502, -508, -513, -519, -524, - -530, -535, -540, -546, -551, -556, -562, -567, - -572, -577, -582, -588, -593, -598, -603, -608, - -613, -618, -623, -628, -633, -638, -643, -648, - -653, -657, -662, -667, -672, -676, -681, -686, - -691, -695, -700, -704, -709, -713, -718, -722, - -727, -731, -736, -740, -744, -749, -753, -757, - -761, -766, -770, -774, -778, -782, -786, -790, - -794, -798, -802, -806, -810, -814, -817, -821, - -825, -829, -832, -836, -840, -843, -847, -850, - -854, -857, -861, -864, -867, -871, -874, -877, - -880, -884, -887, -890, -893, -896, -899, -902, - -905, -908, -911, -914, -917, -919, -922, -925, - -928, -930, -933, -935, -938, -940, -943, -945, - -948, -950, -952, -955, -957, -959, -961, -964, - -966, -968, -970, -972, -974, -976, -978, -979, - -981, -983, -985, -987, -988, -990, -991, -993, - -995, -996, -998, -999, -1000, -1002, -1003, -1004, - -1005, -1007, -1008, -1009, -1010, -1011, -1012, -1013, - -1014, -1015, -1016, -1016, -1017, -1018, -1019, -1019, - -1020, -1020, -1021, -1021, -1022, -1022, -1023, -1023, - -1023, -1024, -1024, -1024, -1024, -1024, -1024, -1024, - -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1023, - -1023, -1023, -1022, -1022, -1021, -1021, -1020, -1020, - -1019, -1019, -1018, -1017, -1016, -1016, -1015, -1014, - -1013, -1012, -1011, -1010, -1009, -1008, -1007, -1005, - -1004, -1003, -1002, -1000, -999, -998, -996, -995, - -993, -991, -990, -988, -987, -985, -983, -981, - -979, -978, -976, -974, -972, -970, -968, -966, - -964, -961, -959, -957, -955, -952, -950, -948, - -945, -943, -940, -938, -935, -933, -930, -928, - -925, -922, -919, -917, -914, -911, -908, -905, - -902, -899, -896, -893, -890, -887, -884, -880, - -877, -874, -871, -867, -864, -861, -857, -854, - -850, -847, -843, -840, -836, -832, -829, -825, - -821, -817, -814, -810, -806, -802, -798, -794, - -790, -786, -782, -778, -774, -770, -766, -761, - -757, -753, -749, -744, -740, -736, -731, -727, - -722, -718, -713, -709, -704, -700, -695, -691, - -686, -681, -676, -672, -667, -662, -657, -653, - -648, -643, -638, -633, -628, -623, -618, -613, - -608, -603, -598, -593, -588, -582, -577, -572, - -567, -562, -556, -551, -546, -540, -535, -530, - -524, -519, -513, -508, -502, -497, -492, -486, - -480, -475, -469, -464, -458, -452, -447, -441, - -435, -430, -424, -418, -413, -407, -401, -395, - -389, -384, -378, -372, -366, -360, -354, -348, - -343, -337, -331, -325, -319, -313, -307, -301, - -295, -289, -283, -277, -271, -265, -258, -252, - -246, -240, -234, -228, -222, -216, -210, -203, - -197, -191, -185, -179, -172, -166, -160, -154, - -148, -141, -135, -129, -123, -116, -110, -104, - -98, -91, -85, -79, -73, -66, -60, -54, - -48, -41, -35, -29, -22, -16, -10, -4 + 3, 9, 15, 21, 28, 34, 40, 47, + 53, 59, 65, 72, 78, 84, 90, 97, + 103, 109, 115, 122, 128, 134, 140, 147, + 153, 159, 165, 171, 178, 184, 190, 196, + 202, 209, 215, 221, 227, 233, 239, 245, + 251, 257, 264, 270, 276, 282, 288, 294, + 300, 306, 312, 318, 324, 330, 336, 342, + 347, 353, 359, 365, 371, 377, 383, 388, + 394, 400, 406, 412, 417, 423, 429, 434, + 440, 446, 451, 457, 463, 468, 474, 479, + 485, 491, 496, 501, 507, 512, 518, 523, + 529, 534, 539, 545, 550, 555, 561, 566, + 571, 576, 581, 587, 592, 597, 602, 607, + 612, 617, 622, 627, 632, 637, 642, 647, + 652, 656, 661, 666, 671, 675, 680, 685, + 690, 694, 699, 703, 708, 712, 717, 721, + 726, 730, 735, 739, 743, 748, 752, 756, + 760, 765, 769, 773, 777, 781, 785, 789, + 793, 797, 801, 805, 809, 813, 816, 820, + 824, 828, 831, 835, 839, 842, 846, 849, + 853, 856, 860, 863, 866, 870, 873, 876, + 879, 883, 886, 889, 892, 895, 898, 901, + 904, 907, 910, 913, 916, 918, 921, 924, + 927, 929, 932, 934, 937, 939, 942, 944, + 947, 949, 951, 954, 956, 958, 960, 963, + 965, 967, 969, 971, 973, 975, 977, 978, + 980, 982, 984, 986, 987, 989, 990, 992, + 994, 995, 997, 998, 999, 1001, 1002, 1003, + 1004, 1006, 1007, 1008, 1009, 1010, 1011, 1012, + 1013, 1014, 1015, 1015, 1016, 1017, 1018, 1018, + 1019, 1019, 1020, 1020, 1021, 1021, 1022, 1022, + 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, + 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1022, + 1022, 1022, 1021, 1021, 1020, 1020, 1019, 1019, + 1018, 1018, 1017, 1016, 1015, 1015, 1014, 1013, + 1012, 1011, 1010, 1009, 1008, 1007, 1006, 1004, + 1003, 1002, 1001, 999, 998, 997, 995, 994, + 992, 990, 989, 987, 986, 984, 982, 980, + 978, 977, 975, 973, 971, 969, 967, 965, + 963, 960, 958, 956, 954, 951, 949, 947, + 944, 942, 939, 937, 934, 932, 929, 927, + 924, 921, 918, 916, 913, 910, 907, 904, + 901, 898, 895, 892, 889, 886, 883, 879, + 876, 873, 870, 866, 863, 860, 856, 853, + 849, 846, 842, 839, 835, 831, 828, 824, + 820, 816, 813, 809, 805, 801, 797, 793, + 789, 785, 781, 777, 773, 769, 765, 760, + 756, 752, 748, 743, 739, 735, 730, 726, + 721, 717, 712, 708, 703, 699, 694, 690, + 685, 680, 675, 671, 666, 661, 656, 652, + 647, 642, 637, 632, 627, 622, 617, 612, + 607, 602, 597, 592, 587, 581, 576, 571, + 566, 561, 555, 550, 545, 539, 534, 529, + 523, 518, 512, 507, 501, 496, 491, 485, + 479, 474, 468, 463, 457, 451, 446, 440, + 434, 429, 423, 417, 412, 406, 400, 394, + 388, 383, 377, 371, 365, 359, 353, 347, + 342, 336, 330, 324, 318, 312, 306, 300, + 294, 288, 282, 276, 270, 264, 257, 251, + 245, 239, 233, 227, 221, 215, 209, 202, + 196, 190, 184, 178, 171, 165, 159, 153, + 147, 140, 134, 128, 122, 115, 109, 103, + 97, 90, 84, 78, 72, 65, 59, 53, + 47, 40, 34, 28, 21, 15, 9, 3, + -4, -10, -16, -22, -29, -35, -41, -48, + -54, -60, -66, -73, -79, -85, -91, -98, + -104, -110, -116, -123, -129, -135, -141, -148, + -154, -160, -166, -172, -179, -185, -191, -197, + -203, -210, -216, -222, -228, -234, -240, -246, + -252, -258, -265, -271, -277, -283, -289, -295, + -301, -307, -313, -319, -325, -331, -337, -343, + -348, -354, -360, -366, -372, -378, -384, -389, + -395, -401, -407, -413, -418, -424, -430, -435, + -441, -447, -452, -458, -464, -469, -475, -480, + -486, -492, -497, -502, -508, -513, -519, -524, + -530, -535, -540, -546, -551, -556, -562, -567, + -572, -577, -582, -588, -593, -598, -603, -608, + -613, -618, -623, -628, -633, -638, -643, -648, + -653, -657, -662, -667, -672, -676, -681, -686, + -691, -695, -700, -704, -709, -713, -718, -722, + -727, -731, -736, -740, -744, -749, -753, -757, + -761, -766, -770, -774, -778, -782, -786, -790, + -794, -798, -802, -806, -810, -814, -817, -821, + -825, -829, -832, -836, -840, -843, -847, -850, + -854, -857, -861, -864, -867, -871, -874, -877, + -880, -884, -887, -890, -893, -896, -899, -902, + -905, -908, -911, -914, -917, -919, -922, -925, + -928, -930, -933, -935, -938, -940, -943, -945, + -948, -950, -952, -955, -957, -959, -961, -964, + -966, -968, -970, -972, -974, -976, -978, -979, + -981, -983, -985, -987, -988, -990, -991, -993, + -995, -996, -998, -999, -1000, -1002, -1003, -1004, + -1005, -1007, -1008, -1009, -1010, -1011, -1012, -1013, + -1014, -1015, -1016, -1016, -1017, -1018, -1019, -1019, + -1020, -1020, -1021, -1021, -1022, -1022, -1023, -1023, + -1023, -1024, -1024, -1024, -1024, -1024, -1024, -1024, + -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1023, + -1023, -1023, -1022, -1022, -1021, -1021, -1020, -1020, + -1019, -1019, -1018, -1017, -1016, -1016, -1015, -1014, + -1013, -1012, -1011, -1010, -1009, -1008, -1007, -1005, + -1004, -1003, -1002, -1000, -999, -998, -996, -995, + -993, -991, -990, -988, -987, -985, -983, -981, + -979, -978, -976, -974, -972, -970, -968, -966, + -964, -961, -959, -957, -955, -952, -950, -948, + -945, -943, -940, -938, -935, -933, -930, -928, + -925, -922, -919, -917, -914, -911, -908, -905, + -902, -899, -896, -893, -890, -887, -884, -880, + -877, -874, -871, -867, -864, -861, -857, -854, + -850, -847, -843, -840, -836, -832, -829, -825, + -821, -817, -814, -810, -806, -802, -798, -794, + -790, -786, -782, -778, -774, -770, -766, -761, + -757, -753, -749, -744, -740, -736, -731, -727, + -722, -718, -713, -709, -704, -700, -695, -691, + -686, -681, -676, -672, -667, -662, -657, -653, + -648, -643, -638, -633, -628, -623, -618, -613, + -608, -603, -598, -593, -588, -582, -577, -572, + -567, -562, -556, -551, -546, -540, -535, -530, + -524, -519, -513, -508, -502, -497, -492, -486, + -480, -475, -469, -464, -458, -452, -447, -441, + -435, -430, -424, -418, -413, -407, -401, -395, + -389, -384, -378, -372, -366, -360, -354, -348, + -343, -337, -331, -325, -319, -313, -307, -301, + -295, -289, -283, -277, -271, -265, -258, -252, + -246, -240, -234, -228, -222, -216, -210, -203, + -197, -191, -185, -179, -172, -166, -160, -154, + -148, -141, -135, -129, -123, -116, -110, -104, + -98, -91, -85, -79, -73, -66, -60, -54, + -48, -41, -35, -29, -22, -16, -10, -4 }; // this is the program the generate the above table @@ -304,7 +316,7 @@ inline PFreal fsin(int iangle) while(iangle < 0) iangle += IANGLE_MAX; return sinTable[iangle & IANGLE_MASK]; -} +} inline PFreal fcos(int iangle) { @@ -420,7 +432,7 @@ PictureFlowPrivate::PictureFlowPrivate(PictureFlow* w) triggerTimer.setSingleShot(true); triggerTimer.setInterval(0); QObject::connect(&triggerTimer, SIGNAL(timeout()), widget, SLOT(render())); - + recalc(200, 200); resetSlides(); } @@ -479,7 +491,7 @@ void PictureFlowPrivate::setSlide(int index, const QImage& image) slideImages[index] = image; surfaceCache.remove(index); triggerRender(); - } + } } int PictureFlowPrivate::getTarget() const @@ -490,7 +502,7 @@ int PictureFlowPrivate::getTarget() const int PictureFlowPrivate::currentSlide() const { return centerIndex; -} +} void PictureFlowPrivate::setCurrentSlide(int index) { @@ -599,7 +611,7 @@ static QImage prepareSurface(QImage img, int w, int h) int hofs = h / 3; // offscreen buffer: black is sweet - QImage result(hs, w, QImage::Format_RGB16); + QImage result(hs, w, QImage::Format_RGB16); result.fill(0); // transpose the image, this is to speed-up the rendering @@ -676,7 +688,7 @@ QImage* PictureFlowPrivate::surface(int slideIndex) } -// Schedules rendering the slides. Call this function to avoid immediate +// Schedules rendering the slides. Call this function to avoid immediate // render and thus cause less flicker. void PictureFlowPrivate::triggerRender() { @@ -704,7 +716,7 @@ void PictureFlowPrivate::render() QRect rs = renderSlide(leftSlides[index], alpha, 0, c1-1); if(!rs.isEmpty()) c1 = rs.left(); - } + } for(int index = 0; index < nright-1; index++) { int alpha = (index < nright-2) ? 256 : 128; @@ -716,14 +728,14 @@ void PictureFlowPrivate::render() QPainter painter; painter.begin(&buffer); - QFont font("Arial", 14); + QFont font("Arial", captionFontSize); font.setBold(true); painter.setFont(font); painter.setPen(Qt::white); //painter.setPen(QColor(255,255,255,127)); if (!captions.isEmpty()) - painter.drawText( QRect(0,0, buffer.width(), (buffer.height() - slideSize().height())/2), + painter.drawText( QRect(0,0, buffer.width(), (buffer.height() - slideSize().height())/4), Qt::AlignCenter, captions[centerIndex]); painter.end(); @@ -746,7 +758,7 @@ void PictureFlowPrivate::render() c1 = rs.left(); alpha = (step > 0) ? 256-fade/2 : 256; - } + } for(int index = 0; index < nright; index++) { int alpha = (index < nright-2) ? 256 : 128; @@ -761,26 +773,23 @@ void PictureFlowPrivate::render() c2 = rs.right(); } - - QPainter painter; painter.begin(&buffer); - QFont font("Arial", 14); + QFont font("Arial", captionFontSize); font.setBold(true); painter.setFont(font); int leftTextIndex = (step>0) ? centerIndex : centerIndex-1; painter.setPen(QColor(255,255,255, (255-fade) )); - painter.drawText( QRect(0,0, buffer.width(), (buffer.height() - slideSize().height())/2), + painter.drawText( QRect(0,0, buffer.width(), (buffer.height() - slideSize().height())/4), Qt::AlignCenter, captions[leftTextIndex]); painter.setPen(QColor(255,255,255, fade)); - painter.drawText( QRect(0,0, buffer.width(), (buffer.height() - slideSize().height())/2), + painter.drawText( QRect(0,0, buffer.width(), (buffer.height() - slideSize().height())/4), Qt::AlignCenter, captions[leftTextIndex+1]); - painter.end(); } } @@ -810,8 +819,8 @@ int col1, int col2) if(!src) return QRect(); - QRect rect(0, 0, 0, 0); - + QRect rect(0, 0, 0, 0); + #ifdef PICTUREFLOW_BILINEAR_FILTER int sw = src->height() / BILINEAR_STRETCH_HOR; int sh = src->width() / BILINEAR_STRETCH_VER; @@ -876,10 +885,10 @@ int col1, int col2) if(column < 0) continue; - rect.setRight(x); + rect.setRight(x); if(!flag) rect.setLeft(x); - flag = true; + flag = true; int y1 = h/2; int y2 = y1+ 1; @@ -909,7 +918,7 @@ int col1, int col2) y2++; pixel1 -= pixelstep; pixel2 += pixelstep; - } + } else while((y1 >= 0) && (y2 < h) && (p1 >= 0)) { @@ -935,8 +944,8 @@ int col1, int col2) y2++; pixel1 -= pixelstep; pixel2 += pixelstep; - } - } + } + } rect.setTop(0); rect.setBottom(h-1); @@ -1014,7 +1023,7 @@ void PictureFlowPrivate::updateAnimation() const int max = 2 * 65536; int fi = slideFrame; - fi -= (target << 16); + fi -= (target << 16); if(fi < 0) fi = -fi; fi = qMin(fi, max); @@ -1029,7 +1038,7 @@ void PictureFlowPrivate::updateAnimation() int pos = slideFrame & 0xffff; int neg = 65536 - pos; int tick = (step < 0) ? neg : pos; - PFreal ftick = (tick * PFREAL_ONE) >> 16; + PFreal ftick = (tick * PFREAL_ONE) >> 16; // the leftmost and rightmost slide must fade away fade = pos / 256; @@ -1059,7 +1068,7 @@ void PictureFlowPrivate::updateAnimation() step = 0; fade = 256; return; - } + } for(int i = 0; i < leftSlides.count(); i++) { @@ -1090,7 +1099,7 @@ void PictureFlowPrivate::updateAnimation() leftSlides[0].angle = (pos * itilt) >> 16; leftSlides[0].cx = -fmul(offsetX, ftick); leftSlides[0].cy = fmul(offsetY, ftick); - } + } // must change direction ? if(target < index) if(step > 0) @@ -1126,7 +1135,7 @@ PictureFlow::PictureFlow(QWidget* parent): QWidget(parent) PictureFlow::~PictureFlow() { delete d; -} +} int PictureFlow::slideCount() const { @@ -1226,7 +1235,7 @@ void PictureFlow::keyPressEvent(QKeyEvent* event) { if(event->modifiers() == Qt::ControlModifier) showSlide(currentSlide()-10); - else + else showPrevious(); event->accept(); return; @@ -1242,6 +1251,12 @@ void PictureFlow::keyPressEvent(QKeyEvent* event) return; } + if (event->key() == Qt::Key_Enter || event->key() == Qt::Key_Select) { + emit itemActivated(d->getTarget()); + event->accept(); + return; + } + event->ignore(); } @@ -1276,7 +1291,7 @@ void PictureFlow::mouseMoveEvent(QMouseEvent* event) { speed = ((qAbs(event->pos().x()-d->previousPos.x())*1000) / d->previousPosTimestamp.elapsed()) / (d->buffer.width() / 10); - + if (speed < SPEED_LOWER_THRESHOLD) speed = SPEED_LOWER_THRESHOLD; else if (speed > SPEED_UPPER_LIMIT) @@ -1284,19 +1299,17 @@ void PictureFlow::mouseMoveEvent(QMouseEvent* event) else { speed = SPEED_LOWER_THRESHOLD + (speed / 3); // qDebug() << "ACCELERATION ENABLED Speed = " << speed << ", Distance = " << distanceMovedSinceLastEvent; - } } - // qDebug() << "Speed = " << speed; // int incr = ((event->pos().x() - d->previousPos.x())/10) * speed; - + // qDebug() << "Incremented by " << incr; int incr = (distanceMovedSinceLastEvent * speed); - + //qDebug() << "(distanceMovedSinceLastEvent * speed) = " << incr; if (incr > d->pixelsToMovePerSlide*2) { @@ -1326,8 +1339,6 @@ void PictureFlow::mouseMoveEvent(QMouseEvent* event) d->pixelDistanceMoved = 0; */ } - - } d->previousPos = event->pos(); diff --git a/demos/embedded/fluidlauncher/pictureflow.h b/demos/embedded/fluidlauncher/pictureflow.h index 747f09c..7ae2a88 100644 --- a/demos/embedded/fluidlauncher/pictureflow.h +++ b/demos/embedded/fluidlauncher/pictureflow.h @@ -3,7 +3,7 @@ ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). ** Contact: Nokia Corporation (qt-info@nokia.com) ** -** This file is part of the ActiveQt framework of the Qt Toolkit. +** This is a version of the Pictureflow animated image show widget modified by Nokia. ** ** $QT_BEGIN_LICENSE:BSD$ ** You may use this file under the terms of the BSD license as follows: @@ -35,6 +35,7 @@ ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** $QT_END_LICENSE$ ** +** ****************************************************************************/ /* @@ -71,15 +72,15 @@ class PictureFlowPrivate; /*! - Class PictureFlow implements an image show widget with animation effect - like Apple's CoverFlow (in iTunes and iPod). Images are arranged in form - of slides, one main slide is shown at the center with few slides on - the left and right sides of the center slide. When the next or previous - slide is brought to the front, the whole slides flow to the right or - the right with smooth animation effect; until the new slide is finally + Class PictureFlow implements an image show widget with animation effect + like Apple's CoverFlow (in iTunes and iPod). Images are arranged in form + of slides, one main slide is shown at the center with few slides on + the left and right sides of the center slide. When the next or previous + slide is brought to the front, the whole slides flow to the right or + the right with smooth animation effect; until the new slide is finally placed at the center. - */ + */ class PictureFlow : public QWidget { Q_OBJECT @@ -92,7 +93,7 @@ Q_OBJECT public: /*! Creates a new PictureFlow widget. - */ + */ PictureFlow(QWidget* parent = 0); /*! @@ -112,17 +113,17 @@ public: /*! Returns the dimension of each slide (in pixels). - */ + */ QSize slideSize() const; /*! Sets the dimension of each slide (in pixels). - */ + */ void setSlideSize(QSize size); /*! Sets the zoom factor (in percent). - */ + */ void setZoomFactor(int zoom); /*! @@ -139,13 +140,13 @@ public: Returns QImage of specified slide. This function will be called only whenever necessary, e.g. the 100th slide will not be retrived when only the first few slides are visible. - */ + */ virtual QImage slide(int index) const; /*! Sets an image for specified slide. If the slide already exists, it will be replaced. - */ + */ virtual void setSlide(int index, const QImage& image); virtual void setSlideCaption(int index, QString caption); @@ -153,20 +154,20 @@ public: /*! Sets a pixmap for specified slide. If the slide already exists, it will be replaced. - */ + */ virtual void setSlide(int index, const QPixmap& pixmap); /*! Returns the index of slide currently shown in the middle of the viewport. - */ + */ int currentSlide() const; public slots: /*! - Sets slide to be shown in the middle of the viewport. No animation + Sets slide to be shown in the middle of the viewport. No animation effect will be produced, unlike using showSlide. - */ + */ void setCurrentSlide(int index); /*! diff --git a/demos/embedded/fluidlauncher/screenshots/anomaly_s60.png b/demos/embedded/fluidlauncher/screenshots/anomaly_s60.png Binary files differnew file mode 100644 index 0000000..8d537f4 --- /dev/null +++ b/demos/embedded/fluidlauncher/screenshots/anomaly_s60.png diff --git a/demos/embedded/fluidlauncher/screenshots/context2d_s60.png b/demos/embedded/fluidlauncher/screenshots/context2d_s60.png Binary files differnew file mode 100644 index 0000000..c7225c7 --- /dev/null +++ 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 differnew file mode 100644 index 0000000..a429be3 --- /dev/null +++ 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 differnew file mode 100644 index 0000000..117b61b --- /dev/null +++ b/demos/embedded/fluidlauncher/screenshots/digiflip.png diff --git a/demos/embedded/fluidlauncher/screenshots/drilldown_s60.png b/demos/embedded/fluidlauncher/screenshots/drilldown_s60.png Binary files differnew file mode 100644 index 0000000..d4fd44f --- /dev/null +++ b/demos/embedded/fluidlauncher/screenshots/drilldown_s60.png diff --git a/demos/embedded/fluidlauncher/screenshots/embeddedsvgviewer_s60.png b/demos/embedded/fluidlauncher/screenshots/embeddedsvgviewer_s60.png Binary files differnew file mode 100644 index 0000000..74f4ad1 --- /dev/null +++ b/demos/embedded/fluidlauncher/screenshots/embeddedsvgviewer_s60.png diff --git a/demos/embedded/fluidlauncher/screenshots/flickable.png b/demos/embedded/fluidlauncher/screenshots/flickable.png Binary files differnew file mode 100644 index 0000000..7080fc1 --- /dev/null +++ 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 differnew file mode 100644 index 0000000..8a304eb --- /dev/null +++ b/demos/embedded/fluidlauncher/screenshots/flightinfo_s60.png diff --git a/demos/embedded/fluidlauncher/screenshots/fridgemagnets_s60.png b/demos/embedded/fluidlauncher/screenshots/fridgemagnets_s60.png Binary files differnew file mode 100644 index 0000000..d31875d --- /dev/null +++ b/demos/embedded/fluidlauncher/screenshots/fridgemagnets_s60.png diff --git a/demos/embedded/fluidlauncher/screenshots/ftp_s60.png b/demos/embedded/fluidlauncher/screenshots/ftp_s60.png Binary files differnew file mode 100644 index 0000000..5858daf --- /dev/null +++ b/demos/embedded/fluidlauncher/screenshots/ftp_s60.png diff --git a/demos/embedded/fluidlauncher/screenshots/lightmaps.png b/demos/embedded/fluidlauncher/screenshots/lightmaps.png Binary files differnew file mode 100644 index 0000000..7cbe2e4 --- /dev/null +++ b/demos/embedded/fluidlauncher/screenshots/lightmaps.png diff --git a/demos/embedded/fluidlauncher/screenshots/raycasting.png b/demos/embedded/fluidlauncher/screenshots/raycasting.png Binary files differnew file mode 100644 index 0000000..d3c86e9 --- /dev/null +++ b/demos/embedded/fluidlauncher/screenshots/raycasting.png diff --git a/demos/embedded/fluidlauncher/screenshots/saxbookmarks_s60.png b/demos/embedded/fluidlauncher/screenshots/saxbookmarks_s60.png Binary files differnew file mode 100644 index 0000000..54b6321 --- /dev/null +++ b/demos/embedded/fluidlauncher/screenshots/saxbookmarks_s60.png diff --git a/demos/embedded/fluidlauncher/screenshots/softkeys_s60.png b/demos/embedded/fluidlauncher/screenshots/softkeys_s60.png Binary files differnew file mode 100644 index 0000000..df090e2 --- /dev/null +++ b/demos/embedded/fluidlauncher/screenshots/softkeys_s60.png diff --git a/demos/embedded/fluidlauncher/screenshots/styledemo_s60.png b/demos/embedded/fluidlauncher/screenshots/styledemo_s60.png Binary files differnew file mode 100644 index 0000000..57480fb --- /dev/null +++ b/demos/embedded/fluidlauncher/screenshots/styledemo_s60.png diff --git a/demos/embedded/fluidlauncher/screenshots/weatherinfo.png b/demos/embedded/fluidlauncher/screenshots/weatherinfo.png Binary files differnew file mode 100644 index 0000000..b18608d --- /dev/null +++ b/demos/embedded/fluidlauncher/screenshots/weatherinfo.png diff --git a/demos/embedded/fluidlauncher/screenshots/wiggly_s60.png b/demos/embedded/fluidlauncher/screenshots/wiggly_s60.png Binary files differnew file mode 100644 index 0000000..9c4cab3 --- /dev/null +++ b/demos/embedded/fluidlauncher/screenshots/wiggly_s60.png diff --git a/demos/embedded/lightmaps/lightmaps.cpp b/demos/embedded/lightmaps/lightmaps.cpp new file mode 100644 index 0000000..6ad2020 --- /dev/null +++ b/demos/embedded/lightmaps/lightmaps.cpp @@ -0,0 +1,579 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the demonstration applications 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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QtCore> +#include <QtGui> +#include <QtNetwork> + +#if defined (Q_OS_SYMBIAN) +#include "sym_iap_util.h" +#endif + +#include <math.h> + +#ifndef M_PI +#define M_PI 3.14159265358979323846 +#endif + +// how long (milliseconds) the user need to hold (after a tap on the screen) +// before triggering the magnifying glass feature +// 701, a prime number, is the sum of 229, 233, 239 +// (all three are also prime numbers, consecutive!) +#define HOLD_TIME 701 + +// maximum size of the magnifier +// Hint: see above to find why I picked this one :) +#define MAX_MAGNIFIER 229 + +uint qHash(const QPoint& p) +{ + return p.x() * 17 ^ p.y(); +} + +// tile size in pixels +const int tdim = 256; + +QPointF tileForCoordinate(qreal lat, qreal lng, int zoom) +{ + qreal zn = static_cast<qreal>(1 << zoom); + qreal tx = (lng + 180.0) / 360.0; + qreal ty = (1.0 - log(tan(lat * M_PI / 180.0) + + 1.0 / cos(lat * M_PI / 180.0)) / M_PI) / 2.0; + return QPointF(tx * zn, ty * zn); +} + +qreal longitudeFromTile(qreal tx, int zoom) +{ + qreal zn = static_cast<qreal>(1 << zoom); + qreal lat = tx / zn * 360.0 - 180.0; + return lat; +} + +qreal latitudeFromTile(qreal ty, int zoom) +{ + qreal zn = static_cast<qreal>(1 << zoom); + qreal n = M_PI - 2 * M_PI * ty / zn; + qreal lng = 180.0 / M_PI * atan(0.5 * (exp(n) - exp(-n))); + return lng; +} + +class SlippyMap: public QObject +{ + Q_OBJECT + +public: + int width; + int height; + int zoom; + qreal latitude; + qreal longitude; + + SlippyMap(QObject *parent = 0) + : QObject(parent) + , width(400) + , height(300) + , zoom(15) + , latitude(59.9138204) + , longitude(10.7387413) { + m_emptyTile = QPixmap(tdim, tdim); + m_emptyTile.fill(Qt::lightGray); + + QNetworkDiskCache *cache = new QNetworkDiskCache; + cache->setCacheDirectory(QDesktopServices::storageLocation + (QDesktopServices::CacheLocation)); + m_manager.setCache(cache); + connect(&m_manager, SIGNAL(finished(QNetworkReply*)), + this, SLOT(handleNetworkData(QNetworkReply*))); + } + + void invalidate() { + if (width <= 0 || height <= 0) + return; + + QPointF ct = tileForCoordinate(latitude, longitude, zoom); + qreal tx = ct.x(); + qreal ty = ct.y(); + + // top-left corner of the center tile + int xp = width / 2 - (tx - floor(tx)) * tdim; + int yp = height / 2 - (ty - floor(ty)) * tdim; + + // first tile vertical and horizontal + int xa = (xp + tdim - 1) / tdim; + int ya = (yp + tdim - 1) / tdim; + int xs = static_cast<int>(tx) - xa; + int ys = static_cast<int>(ty) - ya; + + // offset for top-left tile + m_offset = QPoint(xp - xa * tdim, yp - ya * tdim); + + // last tile vertical and horizontal + int xe = static_cast<int>(tx) + (width - xp - 1) / tdim; + int ye = static_cast<int>(ty) + (height - yp - 1) / tdim; + + // build a rect + m_tilesRect = QRect(xs, ys, xe - xs + 1, ye - ys + 1); + + if (m_url.isEmpty()) + download(); + + emit updated(QRect(0, 0, width, height)); + } + + void render(QPainter *p, const QRect &rect) { + for (int x = 0; x <= m_tilesRect.width(); ++x) + for (int y = 0; y <= m_tilesRect.height(); ++y) { + QPoint tp(x + m_tilesRect.left(), y + m_tilesRect.top()); + QRect box = tileRect(tp); + if (rect.intersects(box)) { + if (m_tilePixmaps.contains(tp)) + p->drawPixmap(box, m_tilePixmaps.value(tp)); + else + p->drawPixmap(box, m_emptyTile); + } + } + } + + void pan(const QPoint &delta) { + QPointF dx = QPointF(delta) / qreal(tdim); + QPointF center = tileForCoordinate(latitude, longitude, zoom) - dx; + latitude = latitudeFromTile(center.y(), zoom); + longitude = longitudeFromTile(center.x(), zoom); + invalidate(); + } + +private slots: + + void handleNetworkData(QNetworkReply *reply) { + QImage img; + QPoint tp = reply->request().attribute(QNetworkRequest::User).toPoint(); + QUrl url = reply->url(); + if (!reply->error()) + if (!img.load(reply, 0)) + img = QImage(); + reply->deleteLater(); + m_tilePixmaps[tp] = QPixmap::fromImage(img); + if (img.isNull()) + m_tilePixmaps[tp] = m_emptyTile; + emit updated(tileRect(tp)); + + // purge unused spaces + QRect bound = m_tilesRect.adjusted(-2, -2, 2, 2); + foreach(QPoint tp, m_tilePixmaps.keys()) + if (!bound.contains(tp)) + m_tilePixmaps.remove(tp); + + download(); + } + + void download() { + QPoint grab(0, 0); + for (int x = 0; x <= m_tilesRect.width(); ++x) + for (int y = 0; y <= m_tilesRect.height(); ++y) { + QPoint tp = m_tilesRect.topLeft() + QPoint(x, y); + if (!m_tilePixmaps.contains(tp)) { + grab = tp; + break; + } + } + if (grab == QPoint(0, 0)) { + m_url = QUrl(); + return; + } + + QString path = "http://tile.openstreetmap.org/%1/%2/%3.png"; + m_url = QUrl(path.arg(zoom).arg(grab.x()).arg(grab.y())); + QNetworkRequest request; + request.setUrl(m_url); + request.setRawHeader("User-Agent", "Nokia (Qt) Graphics Dojo 1.0"); + request.setAttribute(QNetworkRequest::User, QVariant(grab)); + m_manager.get(request); + } + +signals: + void updated(const QRect &rect); + +protected: + QRect tileRect(const QPoint &tp) { + QPoint t = tp - m_tilesRect.topLeft(); + int x = t.x() * tdim + m_offset.x(); + int y = t.y() * tdim + m_offset.y(); + return QRect(x, y, tdim, tdim); + } + +private: + QPoint m_offset; + QRect m_tilesRect; + QPixmap m_emptyTile; + QHash<QPoint, QPixmap> m_tilePixmaps; + QNetworkAccessManager m_manager; + QUrl m_url; +}; + +class LightMaps: public QWidget +{ + Q_OBJECT + +public: + LightMaps(QWidget *parent = 0) + : QWidget(parent) + , pressed(false) + , snapped(false) + , zoomed(false) + , invert(false) { + m_normalMap = new SlippyMap(this); + m_largeMap = new SlippyMap(this); + connect(m_normalMap, SIGNAL(updated(QRect)), SLOT(updateMap(QRect))); + connect(m_largeMap, SIGNAL(updated(QRect)), SLOT(update())); + } + + void setCenter(qreal lat, qreal lng) { + m_normalMap->latitude = lat; + m_normalMap->longitude = lng; + m_normalMap->invalidate(); + m_largeMap->invalidate(); + } + +public slots: + void toggleNightMode() { + invert = !invert; + update(); + } + +private slots: + void updateMap(const QRect &r) { + update(r); + } + +protected: + + void activateZoom() { + zoomed = true; + tapTimer.stop(); + m_largeMap->zoom = m_normalMap->zoom + 1; + m_largeMap->width = m_normalMap->width * 2; + m_largeMap->height = m_normalMap->height * 2; + m_largeMap->latitude = m_normalMap->latitude; + m_largeMap->longitude = m_normalMap->longitude; + m_largeMap->invalidate(); + update(); + } + + void resizeEvent(QResizeEvent *) { + m_normalMap->width = width(); + m_normalMap->height = height(); + m_normalMap->invalidate(); + m_largeMap->width = m_normalMap->width * 2; + m_largeMap->height = m_normalMap->height * 2; + m_largeMap->invalidate(); + } + + void paintEvent(QPaintEvent *event) { + QPainter p; + p.begin(this); + m_normalMap->render(&p, event->rect()); + p.setPen(Qt::black); +#if defined(Q_OS_SYMBIAN) + QFont font = p.font(); + font.setPixelSize(13); + p.setFont(font); +#endif + p.drawText(rect(), Qt::AlignBottom | Qt::TextWordWrap, + "Map data CCBYSA 2009 OpenStreetMap.org contributors"); + p.end(); + + if (zoomed) { + int dim = qMin(width(), height()); + int magnifierSize = qMin(MAX_MAGNIFIER, dim * 2 / 3); + int radius = magnifierSize / 2; + int ring = radius - 15; + QSize box = QSize(magnifierSize, magnifierSize); + + // reupdate our mask + if (maskPixmap.size() != box) { + maskPixmap = QPixmap(box); + maskPixmap.fill(Qt::transparent); + + QRadialGradient g; + g.setCenter(radius, radius); + g.setFocalPoint(radius, radius); + g.setRadius(radius); + g.setColorAt(1.0, QColor(255, 255, 255, 0)); + g.setColorAt(0.5, QColor(128, 128, 128, 255)); + + QPainter mask(&maskPixmap); + mask.setRenderHint(QPainter::Antialiasing); + mask.setCompositionMode(QPainter::CompositionMode_Source); + mask.setBrush(g); + mask.setPen(Qt::NoPen); + mask.drawRect(maskPixmap.rect()); + mask.setBrush(QColor(Qt::transparent)); + mask.drawEllipse(g.center(), ring, ring); + mask.end(); + } + + QPoint center = dragPos - QPoint(0, radius); + center = center + QPoint(0, radius / 2); + QPoint corner = center - QPoint(radius, radius); + + QPoint xy = center * 2 - QPoint(radius, radius); + + // only set the dimension to the magnified portion + if (zoomPixmap.size() != box) { + zoomPixmap = QPixmap(box); + zoomPixmap.fill(Qt::lightGray); + } + if (true) { + QPainter p(&zoomPixmap); + p.translate(-xy); + m_largeMap->render(&p, QRect(xy, box)); + p.end(); + } + + QPainterPath clipPath; + clipPath.addEllipse(center, ring, ring); + + QPainter p(this); + p.setRenderHint(QPainter::Antialiasing); + p.setClipPath(clipPath); + p.drawPixmap(corner, zoomPixmap); + p.setClipping(false); + p.drawPixmap(corner, maskPixmap); + p.setPen(Qt::gray); + p.drawPath(clipPath); + } + if (invert) { + QPainter p(this); + p.setCompositionMode(QPainter::CompositionMode_Difference); + p.fillRect(event->rect(), Qt::white); + p.end(); + } + } + + void timerEvent(QTimerEvent *) { + if (!zoomed) + activateZoom(); + update(); + } + + void mousePressEvent(QMouseEvent *event) { + if (event->buttons() != Qt::LeftButton) + return; + pressed = snapped = true; + pressPos = dragPos = event->pos(); + tapTimer.stop(); + tapTimer.start(HOLD_TIME, this); + } + + void mouseMoveEvent(QMouseEvent *event) { + if (!event->buttons()) + return; + if (!zoomed) { + if (!pressed || !snapped) { + QPoint delta = event->pos() - pressPos; + pressPos = event->pos(); + m_normalMap->pan(delta); + return; + } else { + const int threshold = 10; + QPoint delta = event->pos() - pressPos; + if (snapped) { + snapped &= delta.x() < threshold; + snapped &= delta.y() < threshold; + snapped &= delta.x() > -threshold; + snapped &= delta.y() > -threshold; + } + if (!snapped) + tapTimer.stop(); + } + } else { + dragPos = event->pos(); + update(); + } + } + + void mouseReleaseEvent(QMouseEvent *) { + zoomed = false; + update(); + } + + void keyPressEvent(QKeyEvent *event) { + if (!zoomed) { + if (event->key() == Qt::Key_Left) + m_normalMap->pan(QPoint(20, 0)); + if (event->key() == Qt::Key_Right) + m_normalMap->pan(QPoint(-20, 0)); + if (event->key() == Qt::Key_Up) + m_normalMap->pan(QPoint(0, 20)); + if (event->key() == Qt::Key_Down) + m_normalMap->pan(QPoint(0, -20)); + if (event->key() == Qt::Key_Z || event->key() == Qt::Key_Select) { + dragPos = QPoint(width() / 2, height() / 2); + activateZoom(); + } + } else { + if (event->key() == Qt::Key_Z || event->key() == Qt::Key_Select) { + zoomed = false; + update(); + } + QPoint delta(0, 0); + if (event->key() == Qt::Key_Left) + delta = QPoint(-15, 0); + if (event->key() == Qt::Key_Right) + delta = QPoint(15, 0); + if (event->key() == Qt::Key_Up) + delta = QPoint(0, -15); + if (event->key() == Qt::Key_Down) + delta = QPoint(0, 15); + if (delta != QPoint(0, 0)) { + dragPos += delta; + update(); + } + } + } + +private: + SlippyMap *m_normalMap; + SlippyMap *m_largeMap; + bool pressed; + bool snapped; + QPoint pressPos; + QPoint dragPos; + QBasicTimer tapTimer; + bool zoomed; + QPixmap zoomPixmap; + QPixmap maskPixmap; + bool invert; +}; + +class MapZoom : public QMainWindow +{ + Q_OBJECT + +private: + LightMaps *map; + +public: + MapZoom(): QMainWindow(0) { + map = new LightMaps(this); + setCentralWidget(map); + map->setFocus(); + + QAction *osloAction = new QAction("&Oslo", this); + QAction *berlinAction = new QAction("&Berlin", this); + QAction *jakartaAction = new QAction("&Jakarta", this); + QAction *nightModeAction = new QAction("Night Mode", this); + nightModeAction->setCheckable(true); + nightModeAction->setChecked(false); + QAction *osmAction = new QAction("About OpenStreetMap", this); + connect(osloAction, SIGNAL(triggered()), SLOT(chooseOslo())); + connect(berlinAction, SIGNAL(triggered()), SLOT(chooseBerlin())); + connect(jakartaAction, SIGNAL(triggered()), SLOT(chooseJakarta())); + connect(nightModeAction, SIGNAL(triggered()), map, SLOT(toggleNightMode())); + connect(osmAction, SIGNAL(triggered()), SLOT(aboutOsm())); + +#if defined(Q_OS_SYMBIAN) + menuBar()->addAction(osloAction); + menuBar()->addAction(berlinAction); + menuBar()->addAction(jakartaAction); + menuBar()->addAction(nightModeAction); + menuBar()->addAction(osmAction); +#else + QMenu *menu = menuBar()->addMenu("&Options"); + menu->addAction(osloAction); + menu->addAction(berlinAction); + menu->addAction(jakartaAction); + menu->addSeparator(); + menu->addAction(nightModeAction); + menu->addAction(osmAction); +#endif + + QTimer::singleShot(0, this, SLOT(delayedInit())); + } + +private slots: + + void delayedInit() { +#if defined(Q_OS_SYMBIAN) + qt_SetDefaultIap(); +#endif + } + + void chooseOslo() { + map->setCenter(59.9138204, 10.7387413); + } + + void chooseBerlin() { + map->setCenter(52.52958999943302, 13.383053541183472); + } + + void chooseJakarta() { + map->setCenter(-6.211544, 106.845172); + } + + void aboutOsm() { + QDesktopServices::openUrl(QUrl("http://www.openstreetmap.org")); + } +}; + + +#include "lightmaps.moc" + +int main(int argc, char **argv) +{ +#if defined(Q_WS_X11) + QApplication::setGraphicsSystem("raster"); +#endif + + QApplication app(argc, argv); + app.setApplicationName("LightMaps"); + + MapZoom w; + w.setWindowTitle("OpenStreetMap"); +#if defined(Q_OS_SYMBIAN) + w.showMaximized(); +#else + w.resize(600, 450); + w.show(); +#endif + + return app.exec(); +} diff --git a/demos/embedded/lightmaps/lightmaps.pro b/demos/embedded/lightmaps/lightmaps.pro new file mode 100644 index 0000000..e57d15d --- /dev/null +++ b/demos/embedded/lightmaps/lightmaps.pro @@ -0,0 +1,10 @@ +TEMPLATE = app +SOURCES = lightmaps.cpp +QT += network + +symbian { + HEADERS += $$QT_SOURCE_TREE/examples/network/ftp/sym_iap_util.h + LIBS += -lesock -lconnmon + TARGET.CAPABILITY = NetworkServices + TARGET.EPOCHEAPSIZE = 0x20000 0x2000000 +} diff --git a/demos/embedded/raycasting/raycasting.cpp b/demos/embedded/raycasting/raycasting.cpp new file mode 100644 index 0000000..7d61c4f --- /dev/null +++ b/demos/embedded/raycasting/raycasting.cpp @@ -0,0 +1,310 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the demonstration applications 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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QtCore> +#include <QtGui> + +#include <math.h> + +#ifndef M_PI +#define M_PI 3.14159265358979323846 +#endif + +#define WORLD_SIZE 8 +int world_map[WORLD_SIZE][WORLD_SIZE] = { + { 1, 1, 1, 1, 6, 1, 1, 1 }, + { 1, 0, 0, 1, 0, 0, 0, 7 }, + { 1, 1, 0, 1, 0, 1, 1, 1 }, + { 6, 0, 0, 0, 0, 0, 0, 3 }, + { 1, 8, 8, 0, 8, 0, 8, 1 }, + { 2, 2, 0, 0, 8, 8, 7, 1 }, + { 3, 0, 0, 0, 0, 0, 0, 5 }, + { 2, 2, 2, 2, 7, 4, 4, 4 }, +}; + +#define TEXTURE_SIZE 64 +#define TEXTURE_BLOCK (TEXTURE_SIZE * TEXTURE_SIZE) + +class Raycasting: public QWidget +{ +public: + Raycasting(QWidget *parent = 0) + : QWidget(parent) + , angle(0.5) + , playerPos(1.5, 1.5) + , angleDelta(0) + , moveDelta(0) { + + // http://www.areyep.com/RIPandMCS-TextureLibrary.html + textureImg.load(":/textures.png"); + textureImg = textureImg.convertToFormat(QImage::Format_ARGB32); + Q_ASSERT(textureImg.width() == TEXTURE_SIZE * 2); + Q_ASSERT(textureImg.bytesPerLine() == 4 * TEXTURE_SIZE * 2); + textureCount = textureImg.height() / TEXTURE_SIZE; + + watch.start(); + ticker.start(25, this); + setAttribute(Qt::WA_OpaquePaintEvent, true); + } + + void updatePlayer() { + int interval = qBound(20, watch.elapsed(), 250); + watch.start(); + angle += angleDelta * interval / 1000; + qreal step = moveDelta * interval / 1000; + qreal dx = cos(angle) * step; + qreal dy = sin(angle) * step; + QPointF pos = playerPos + 3 * QPointF(dx, dy); + int xi = static_cast<int>(pos.x()); + int yi = static_cast<int>(pos.y()); + if (world_map[yi][xi] == 0) + playerPos = playerPos + QPointF(dx, dy); + } + + void showFps() { + static QTime frameTick; + static int totalFrame = 0; + if (!(totalFrame & 31)) { + int elapsed = frameTick.elapsed(); + frameTick.start(); + int fps = 32 * 1000 / (1 + elapsed); + setWindowTitle(QString("Raycasting (%1 FPS)").arg(fps)); + } + totalFrame++; + } + + void render() { + + // setup the screen surface + if (buffer.size() != size()) + buffer = QImage(size(), QImage::Format_ARGB32); + int bufw = buffer.width(); + int bufh = buffer.height(); + + // we intentionally cheat here, to avoid detach + const uchar *ptr = buffer.bits(); + QRgb *start = (QRgb*)(ptr); + QRgb stride = buffer.bytesPerLine() / 4; + QRgb *finish = start + stride * bufh; + + // prepare the texture pointer + const uchar *src = textureImg.bits(); + const QRgb *texsrc = reinterpret_cast<const QRgb*>(src); + + // cast all rays here + qreal sina = sin(angle); + qreal cosa = cos(angle); + qreal u = cosa - sina; + qreal v = sina + cosa; + qreal du = 2 * sina / bufw; + qreal dv = -2 * cosa / bufw; + + for (int ray = 0; ray < bufw; ++ray, u += du, v += dv) { + // everytime this ray advances 'u' units in x direction, + // it also advanced 'v' units in y direction + qreal uu = (u < 0) ? -u : u; + qreal vv = (v < 0) ? -v : v; + qreal duu = 1 / uu; + qreal dvv = 1 / vv; + int stepx = (u < 0) ? -1 : 1; + int stepy = (v < 0) ? -1 : 1; + + // the cell in the map that we need to check + qreal px = playerPos.x(); + qreal py = playerPos.y(); + int mapx = static_cast<int>(px); + int mapy = static_cast<int>(py); + + // the position and texture for the hit + int texture = 0; + qreal hitdist = 0.1; + qreal texofs = 0; + bool dark = false; + + // first hit at constant x and constant y lines + qreal distx = (u > 0) ? (mapx + 1 - px) * duu : (px - mapx) * duu; + qreal disty = (v > 0) ? (mapy + 1 - py) * dvv : (py - mapy) * dvv; + + // loop until we hit something + while (texture <= 0) { + if (distx > disty) { + // shorter distance to a hit in constant y line + hitdist = disty; + disty += dvv; + mapy += stepy; + texture = world_map[mapy][mapx]; + if (texture > 0) { + dark = true; + if (stepy > 0) { + qreal ofs = px + u * (mapy - py) / v; + texofs = ofs - floor(ofs); + } else { + qreal ofs = px + u * (mapy + 1 - py) / v; + texofs = ofs - floor(ofs); + } + } + } else { + // shorter distance to a hit in constant x line + hitdist = distx; + distx += duu; + mapx += stepx; + texture = world_map[mapy][mapx]; + if (texture > 0) { + if (stepx > 0) { + qreal ofs = py + v * (mapx - px) / u; + texofs = ofs - floor(ofs); + } else { + qreal ofs = py + v * (mapx + 1 - px) / u; + texofs = ceil(ofs) - ofs; + } + } + } + } + + // get the texture, note that the texture image + // has two textures horizontally, "normal" vs "dark" + int col = static_cast<int>(texofs * TEXTURE_SIZE); + col = qBound(0, col, TEXTURE_SIZE - 1); + texture = (texture - 1) % textureCount; + const QRgb *tex = texsrc + TEXTURE_BLOCK * texture * 2 + + (TEXTURE_SIZE * 2 * col); + if (dark) + tex += TEXTURE_SIZE; + + // start from the texture center (horizontally) + int h = static_cast<int>(bufw / hitdist / 2); + int dy = (TEXTURE_SIZE << 12) / h; + int p1 = ((TEXTURE_SIZE / 2) << 12) - dy; + int p2 = p1 + dy; + + // start from the screen center (vertically) + // y1 will go up (decrease), y2 will go down (increase) + int y1 = bufh / 2; + int y2 = y1 + 1; + QRgb *pixel1 = start + y1 * stride + ray; + QRgb *pixel2 = pixel1 + stride; + + // map the texture to the sliver + while (y1 >= 0 && y2 < bufh && p1 >= 0) { + *pixel1 = tex[p1 >> 12]; + *pixel2 = tex[p2 >> 12]; + p1 -= dy; + p2 += dy; + --y1; + ++y2; + pixel1 -= stride; + pixel2 += stride; + } + + // ceiling and floor + for (; pixel1 > start; pixel1 -= stride) + *pixel1 = qRgb(0, 0, 0); + for (; pixel2 < finish; pixel2 += stride) + *pixel2 = qRgb(96, 96, 96); + } + + update(); + } + +protected: + + void timerEvent(QTimerEvent*) { + updatePlayer(); + render(); + showFps(); + } + + void paintEvent(QPaintEvent *event) { + QPainter p(this); + p.drawImage(event->rect(), buffer, event->rect()); + } + + void keyPressEvent(QKeyEvent *event) { + event->accept(); + if (event->key() == Qt::Key_Left) + angleDelta = 1.3 * M_PI; + if (event->key() == Qt::Key_Right) + angleDelta = -1.3 * M_PI; + if (event->key() == Qt::Key_Up) + moveDelta = 2.5; + if (event->key() == Qt::Key_Down) + moveDelta = -2.5; + } + + void keyReleaseEvent(QKeyEvent *event) { + event->accept(); + if (event->key() == Qt::Key_Left) + angleDelta = (angleDelta > 0) ? 0 : angleDelta; + if (event->key() == Qt::Key_Right) + angleDelta = (angleDelta < 0) ? 0 : angleDelta; + if (event->key() == Qt::Key_Up) + moveDelta = (moveDelta > 0) ? 0 : moveDelta; + if (event->key() == Qt::Key_Down) + moveDelta = (moveDelta < 0) ? 0 : moveDelta; + } + +private: + QTime watch; + QBasicTimer ticker; + QImage buffer; + qreal angle; + QPointF playerPos; + qreal angleDelta; + qreal moveDelta; + QImage textureImg; + int textureCount; +}; + +int main(int argc, char **argv) +{ + QApplication app(argc, argv); + + Raycasting w; + w.setWindowTitle("Raycasting"); +#if defined(Q_OS_SYMBIAN) + w.showMaximized(); +#else + w.resize(640, 480); + w.show(); +#endif + + return app.exec(); +} diff --git a/demos/embedded/raycasting/raycasting.pro b/demos/embedded/raycasting/raycasting.pro new file mode 100644 index 0000000..dae9412 --- /dev/null +++ b/demos/embedded/raycasting/raycasting.pro @@ -0,0 +1,3 @@ +TEMPLATE = app +SOURCES = raycasting.cpp +RESOURCES += raycasting.qrc diff --git a/demos/embedded/raycasting/raycasting.qrc b/demos/embedded/raycasting/raycasting.qrc new file mode 100644 index 0000000..974a060 --- /dev/null +++ b/demos/embedded/raycasting/raycasting.qrc @@ -0,0 +1,5 @@ +<RCC> + <qresource prefix="/" > + <file>textures.png</file> + </qresource> +</RCC> diff --git a/demos/embedded/raycasting/textures.png b/demos/embedded/raycasting/textures.png Binary files differnew file mode 100644 index 0000000..839488b --- /dev/null +++ b/demos/embedded/raycasting/textures.png diff --git a/demos/embedded/styledemo/files/application.qss b/demos/embedded/styledemo/files/application.qss index a632ad1..432fe6b 100644 --- a/demos/embedded/styledemo/files/application.qss +++ b/demos/embedded/styledemo/files/application.qss @@ -6,7 +6,7 @@ QWidget#StyleWidget QLabel, QAbstractButton { - font: 18px bold; + font: bold; color: beige; } diff --git a/demos/embedded/styledemo/files/blue.qss b/demos/embedded/styledemo/files/blue.qss index aa87277..ac8671b 100644 --- a/demos/embedded/styledemo/files/blue.qss +++ b/demos/embedded/styledemo/files/blue.qss @@ -5,7 +5,7 @@ QLabel, QAbstractButton { - font: 10pt bold; + font: bold; color: yellow; } @@ -28,7 +28,6 @@ QAbstractButton border-style: solid; border-radius: 5; padding: 3px; - qproperty-focusPolicy: NoFocus; } QAbstractButton:pressed diff --git a/demos/embedded/styledemo/files/khaki.qss b/demos/embedded/styledemo/files/khaki.qss index 9c0f77c..b0d4a0f 100644 --- a/demos/embedded/styledemo/files/khaki.qss +++ b/demos/embedded/styledemo/files/khaki.qss @@ -16,7 +16,6 @@ QPushButton, QToolButton { padding: 3px; /* min-width: 96px; */ /* min-height: 48px; */ - qproperty-focusPolicy: NoFocus } QPushButton:hover, QToolButton:hover { @@ -30,7 +29,7 @@ QPushButton:pressed, QToolButton:pressed { } QLabel, QAbstractButton { - font: italic 11pt "Times New Roman"; + font: italic "Times New Roman"; } QFrame, QLabel#title { diff --git a/demos/embedded/styledemo/files/transparent.qss b/demos/embedded/styledemo/files/transparent.qss index e3a9912..b38eb36 100644 --- a/demos/embedded/styledemo/files/transparent.qss +++ b/demos/embedded/styledemo/files/transparent.qss @@ -6,7 +6,6 @@ QWidget#StyleWidget QLabel, QAbstractButton { - font: 13pt; color: beige; } diff --git a/demos/embedded/styledemo/styledemo.pro b/demos/embedded/styledemo/styledemo.pro index ee5e4d6..7107798 100644 --- a/demos/embedded/styledemo/styledemo.pro +++ b/demos/embedded/styledemo/styledemo.pro @@ -10,3 +10,8 @@ target.path = $$[QT_INSTALL_DEMOS]/embedded/styledemo sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS *.pro *.html sources.path = $$[QT_INSTALL_DEMOS]/embedded/styledemo INSTALLS += target sources + +symbian { + include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) + TARGET.UID3 = 0xA000A63F +} diff --git a/demos/embedded/styledemo/stylewidget.ui b/demos/embedded/styledemo/stylewidget.ui index 586faea..a084dde 100644 --- a/demos/embedded/styledemo/stylewidget.ui +++ b/demos/embedded/styledemo/stylewidget.ui @@ -1,135 +1,139 @@ -<ui version="4.0" > +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> <class>StyleWidget</class> - <widget class="QWidget" name="StyleWidget" > - <property name="geometry" > + <widget class="QWidget" name="StyleWidget"> + <property name="geometry"> <rect> <x>0</x> <y>0</y> - <width>339</width> - <height>230</height> + <width>174</width> + <height>220</height> </rect> </property> - <property name="windowTitle" > + <property name="windowTitle"> <string>Form</string> </property> - <layout class="QVBoxLayout" name="verticalLayout" > - <property name="margin" > - <number>3</number> + <layout class="QVBoxLayout" name="verticalLayout"> + <property name="spacing"> + <number>4</number> + </property> + <property name="margin"> + <number>4</number> </property> <item> - <widget class="QGroupBox" name="groupBox" > - <property name="sizePolicy" > - <sizepolicy vsizetype="Preferred" hsizetype="Expanding" > + <widget class="QGroupBox" name="groupBox"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Preferred"> <horstretch>0</horstretch> <verstretch>0</verstretch> </sizepolicy> </property> - <property name="title" > + <property name="title"> <string>Styles</string> </property> - <layout class="QHBoxLayout" > - <property name="spacing" > - <number>3</number> + <layout class="QGridLayout" name="gridLayout_2"> + <property name="margin"> + <number>4</number> </property> - <property name="margin" > - <number>3</number> + <property name="spacing"> + <number>4</number> </property> - <item> - <widget class="QPushButton" name="noStyle" > - <property name="sizePolicy" > - <sizepolicy vsizetype="MinimumExpanding" hsizetype="Minimum" > + <item row="0" column="0"> + <widget class="QPushButton" name="transparentStyle"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Minimum" vsizetype="MinimumExpanding"> <horstretch>0</horstretch> <verstretch>0</verstretch> </sizepolicy> </property> - <property name="focusPolicy" > - <enum>Qt::NoFocus</enum> + <property name="focusPolicy"> + <enum>Qt::StrongFocus</enum> </property> - <property name="text" > - <string>No-Style</string> + <property name="text"> + <string>Transp.</string> </property> - <property name="checkable" > + <property name="checkable"> <bool>true</bool> </property> - <property name="checked" > - <bool>true</bool> + <property name="checked"> + <bool>false</bool> </property> - <property name="autoExclusive" > + <property name="autoExclusive"> <bool>true</bool> </property> </widget> </item> - <item> - <widget class="QPushButton" name="blueStyle" > - <property name="sizePolicy" > - <sizepolicy vsizetype="MinimumExpanding" hsizetype="Minimum" > + <item row="2" column="0"> + <widget class="QPushButton" name="blueStyle"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Minimum" vsizetype="MinimumExpanding"> <horstretch>0</horstretch> <verstretch>0</verstretch> </sizepolicy> </property> - <property name="focusPolicy" > - <enum>Qt::NoFocus</enum> + <property name="focusPolicy"> + <enum>Qt::StrongFocus</enum> </property> - <property name="text" > + <property name="text"> <string>Blue</string> </property> - <property name="checkable" > + <property name="checkable"> <bool>true</bool> </property> - <property name="checked" > + <property name="checked"> <bool>false</bool> </property> - <property name="autoExclusive" > + <property name="autoExclusive"> <bool>true</bool> </property> </widget> </item> - <item> - <widget class="QPushButton" name="khakiStyle" > - <property name="sizePolicy" > - <sizepolicy vsizetype="MinimumExpanding" hsizetype="Minimum" > + <item row="0" column="1"> + <widget class="QPushButton" name="khakiStyle"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Minimum" vsizetype="MinimumExpanding"> <horstretch>0</horstretch> <verstretch>0</verstretch> </sizepolicy> </property> - <property name="focusPolicy" > - <enum>Qt::NoFocus</enum> + <property name="focusPolicy"> + <enum>Qt::StrongFocus</enum> </property> - <property name="text" > + <property name="text"> <string>Khaki</string> </property> - <property name="checkable" > + <property name="checkable"> <bool>true</bool> </property> - <property name="checked" > + <property name="checked"> <bool>false</bool> </property> - <property name="autoExclusive" > + <property name="autoExclusive"> <bool>true</bool> </property> </widget> </item> - <item> - <widget class="QPushButton" name="transparentStyle" > - <property name="sizePolicy" > - <sizepolicy vsizetype="MinimumExpanding" hsizetype="Minimum" > + <item row="2" column="1"> + <widget class="QPushButton" name="noStyle"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Minimum" vsizetype="MinimumExpanding"> <horstretch>0</horstretch> <verstretch>0</verstretch> </sizepolicy> </property> - <property name="focusPolicy" > - <enum>Qt::NoFocus</enum> + <property name="focusPolicy"> + <enum>Qt::StrongFocus</enum> </property> - <property name="text" > - <string>Transparent</string> + <property name="text"> + <string>None</string> </property> - <property name="checkable" > + <property name="checkable"> <bool>true</bool> </property> - <property name="checked" > - <bool>false</bool> + <property name="checked"> + <bool>true</bool> </property> - <property name="autoExclusive" > + <property name="autoExclusive"> <bool>true</bool> </property> </widget> @@ -138,11 +142,11 @@ </widget> </item> <item> - <spacer name="verticalSpacer_3" > - <property name="orientation" > + <spacer name="verticalSpacer_3"> + <property name="orientation"> <enum>Qt::Vertical</enum> </property> - <property name="sizeHint" stdset="0" > + <property name="sizeHint" stdset="0"> <size> <width>0</width> <height>0</height> @@ -151,56 +155,56 @@ </spacer> </item> <item> - <widget class="QFrame" name="frame" > - <property name="sizePolicy" > - <sizepolicy vsizetype="MinimumExpanding" hsizetype="Expanding" > + <widget class="QFrame" name="frame"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="MinimumExpanding"> <horstretch>0</horstretch> <verstretch>0</verstretch> </sizepolicy> </property> - <property name="frameShape" > + <property name="frameShape"> <enum>QFrame::StyledPanel</enum> </property> - <property name="frameShadow" > + <property name="frameShadow"> <enum>QFrame::Raised</enum> </property> - <layout class="QVBoxLayout" name="frameLayout" > - <property name="margin" > - <number>3</number> + <layout class="QVBoxLayout" name="frameLayout"> + <property name="margin"> + <number>0</number> </property> <item> - <layout class="QHBoxLayout" name="horizontalLayout" > + <layout class="QHBoxLayout" name="horizontalLayout"> <item> - <widget class="QLabel" name="label" > - <property name="sizePolicy" > - <sizepolicy vsizetype="Preferred" hsizetype="MinimumExpanding" > + <widget class="QLabel" name="label"> + <property name="sizePolicy"> + <sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred"> <horstretch>0</horstretch> <verstretch>0</verstretch> </sizepolicy> </property> - <property name="text" > + <property name="text"> <string>My Value is:</string> </property> - <property name="alignment" > + <property name="alignment"> <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> </property> </widget> </item> <item> - <widget class="QSpinBox" name="spinBox" > - <property name="sizePolicy" > - <sizepolicy vsizetype="Fixed" hsizetype="Minimum" > + <widget class="QSpinBox" name="spinBox"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Minimum" vsizetype="Fixed"> <horstretch>0</horstretch> <verstretch>0</verstretch> </sizepolicy> </property> - <property name="focusPolicy" > - <enum>Qt::NoFocus</enum> + <property name="focusPolicy"> + <enum>Qt::WheelFocus</enum> </property> - <property name="alignment" > + <property name="alignment"> <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set> </property> - <property name="keyboardTracking" > + <property name="keyboardTracking"> <bool>false</bool> </property> </widget> @@ -208,85 +212,88 @@ </layout> </item> <item> - <layout class="QGridLayout" name="gridLayout" > - <item row="0" column="0" > - <widget class="QScrollBar" name="horizontalScrollBar" > - <property name="sizePolicy" > - <sizepolicy vsizetype="Fixed" hsizetype="Expanding" > + <layout class="QGridLayout" name="gridLayout"> + <property name="spacing"> + <number>4</number> + </property> + <item row="0" column="0"> + <widget class="QScrollBar" name="horizontalScrollBar"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Fixed"> <horstretch>0</horstretch> <verstretch>0</verstretch> </sizepolicy> </property> - <property name="minimumSize" > + <property name="minimumSize"> <size> <width>0</width> <height>24</height> </size> </property> - <property name="orientation" > + <property name="orientation"> <enum>Qt::Horizontal</enum> </property> </widget> </item> - <item row="1" column="0" > - <widget class="QPushButton" name="pushButton_2" > - <property name="sizePolicy" > - <sizepolicy vsizetype="MinimumExpanding" hsizetype="MinimumExpanding" > + <item row="1" column="0"> + <widget class="QPushButton" name="pushButton_2"> + <property name="sizePolicy"> + <sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding"> <horstretch>0</horstretch> <verstretch>0</verstretch> </sizepolicy> </property> - <property name="focusPolicy" > - <enum>Qt::NoFocus</enum> + <property name="focusPolicy"> + <enum>Qt::StrongFocus</enum> </property> - <property name="text" > - <string>Show Scroller</string> + <property name="text"> + <string>Show</string> </property> - <property name="checkable" > + <property name="checkable"> <bool>true</bool> </property> - <property name="checked" > + <property name="checked"> <bool>true</bool> </property> - <property name="flat" > + <property name="flat"> <bool>false</bool> </property> </widget> </item> - <item row="0" column="1" > - <widget class="QScrollBar" name="horizontalScrollBar_2" > - <property name="minimumSize" > + <item row="0" column="1"> + <widget class="QScrollBar" name="horizontalScrollBar_2"> + <property name="minimumSize"> <size> <width>0</width> <height>24</height> </size> </property> - <property name="orientation" > + <property name="orientation"> <enum>Qt::Horizontal</enum> </property> </widget> </item> - <item row="1" column="1" > - <widget class="QPushButton" name="pushButton" > - <property name="sizePolicy" > - <sizepolicy vsizetype="MinimumExpanding" hsizetype="MinimumExpanding" > + <item row="1" column="1"> + <widget class="QPushButton" name="pushButton"> + <property name="sizePolicy"> + <sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding"> <horstretch>0</horstretch> <verstretch>0</verstretch> </sizepolicy> </property> - <property name="focusPolicy" > - <enum>Qt::NoFocus</enum> + <property name="focusPolicy"> + <enum>Qt::StrongFocus</enum> </property> - <property name="text" > - <string>Enable Scroller</string> + <property name="text"> + <string>Enable</string> </property> - <property name="checkable" > + <property name="checkable"> <bool>true</bool> </property> - <property name="checked" > + <property name="checked"> <bool>true</bool> </property> - <property name="flat" > + <property name="flat"> <bool>false</bool> </property> </widget> @@ -297,14 +304,14 @@ </widget> </item> <item> - <spacer name="verticalSpacer" > - <property name="orientation" > + <spacer name="verticalSpacer"> + <property name="orientation"> <enum>Qt::Vertical</enum> </property> - <property name="sizeType" > + <property name="sizeType"> <enum>QSizePolicy::Expanding</enum> </property> - <property name="sizeHint" stdset="0" > + <property name="sizeHint" stdset="0"> <size> <width>0</width> <height>0</height> @@ -313,13 +320,13 @@ </spacer> </item> <item> - <layout class="QHBoxLayout" > + <layout class="QHBoxLayout"> <item> <spacer> - <property name="orientation" > + <property name="orientation"> <enum>Qt::Horizontal</enum> </property> - <property name="sizeHint" stdset="0" > + <property name="sizeHint" stdset="0"> <size> <width>40</width> <height>20</height> @@ -328,11 +335,11 @@ </spacer> </item> <item> - <widget class="QPushButton" name="close" > - <property name="focusPolicy" > - <enum>Qt::NoFocus</enum> + <widget class="QPushButton" name="close"> + <property name="focusPolicy"> + <enum>Qt::StrongFocus</enum> </property> - <property name="text" > + <property name="text"> <string>Close</string> </property> </widget> @@ -342,7 +349,7 @@ </layout> </widget> <resources> - <include location="StyleDemo.qrc" /> + <include location="StyleDemo.qrc"/> </resources> <connections> <connection> @@ -351,13 +358,13 @@ <receiver>horizontalScrollBar_2</receiver> <slot>setValue(int)</slot> <hints> - <hint type="sourcelabel" > - <x>134</x> - <y>196</y> + <hint type="sourcelabel"> + <x>84</x> + <y>147</y> </hint> - <hint type="destinationlabel" > - <x>523</x> - <y>193</y> + <hint type="destinationlabel"> + <x>166</x> + <y>147</y> </hint> </hints> </connection> @@ -367,13 +374,13 @@ <receiver>horizontalScrollBar</receiver> <slot>setValue(int)</slot> <hints> - <hint type="sourcelabel" > - <x>577</x> - <y>199</y> + <hint type="sourcelabel"> + <x>166</x> + <y>147</y> </hint> - <hint type="destinationlabel" > - <x>127</x> - <y>207</y> + <hint type="destinationlabel"> + <x>84</x> + <y>147</y> </hint> </hints> </connection> @@ -383,13 +390,13 @@ <receiver>horizontalScrollBar_2</receiver> <slot>setEnabled(bool)</slot> <hints> - <hint type="sourcelabel" > - <x>566</x> - <y>241</y> + <hint type="sourcelabel"> + <x>166</x> + <y>175</y> </hint> - <hint type="destinationlabel" > - <x>492</x> - <y>207</y> + <hint type="destinationlabel"> + <x>166</x> + <y>147</y> </hint> </hints> </connection> @@ -399,13 +406,13 @@ <receiver>horizontalScrollBar</receiver> <slot>setVisible(bool)</slot> <hints> - <hint type="sourcelabel" > - <x>123</x> - <y>239</y> + <hint type="sourcelabel"> + <x>84</x> + <y>175</y> </hint> - <hint type="destinationlabel" > - <x>123</x> - <y>184</y> + <hint type="destinationlabel"> + <x>84</x> + <y>147</y> </hint> </hints> </connection> @@ -415,13 +422,29 @@ <receiver>horizontalScrollBar_2</receiver> <slot>setValue(int)</slot> <hints> - <hint type="sourcelabel" > - <x>603</x> - <y>136</y> + <hint type="sourcelabel"> + <x>166</x> + <y>115</y> + </hint> + <hint type="destinationlabel"> + <x>166</x> + <y>147</y> + </hint> + </hints> + </connection> + <connection> + <sender>horizontalScrollBar_2</sender> + <signal>valueChanged(int)</signal> + <receiver>spinBox</receiver> + <slot>setValue(int)</slot> + <hints> + <hint type="sourcelabel"> + <x>132</x> + <y>132</y> </hint> - <hint type="destinationlabel" > - <x>575</x> - <y>199</y> + <hint type="destinationlabel"> + <x>135</x> + <y>110</y> </hint> </hints> </connection> diff --git a/demos/embedded/weatherinfo/icons/README.txt b/demos/embedded/weatherinfo/icons/README.txt new file mode 100644 index 0000000..d384153 --- /dev/null +++ b/demos/embedded/weatherinfo/icons/README.txt @@ -0,0 +1,5 @@ +The scalable icons are from: + +http://tango.freedesktop.org/Tango_Icon_Library +http://darkobra.deviantart.com/art/Tango-Weather-Icon-Pack-98024429 + diff --git a/demos/embedded/weatherinfo/icons/weather-few-clouds.svg b/demos/embedded/weatherinfo/icons/weather-few-clouds.svg new file mode 100644 index 0000000..57d45e9 --- /dev/null +++ b/demos/embedded/weatherinfo/icons/weather-few-clouds.svg @@ -0,0 +1,738 @@ +<?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" /> + </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> + <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> + <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> + <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> + <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> + <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> + <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> + <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> + <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" /> + </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"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title>weather-clear</dc:title> + <dc:date>January 2006</dc:date> + <dc:creator> + <cc:Agent> + <dc:title>Ryan Collier (pseudo)</dc:title> + </cc:Agent> + </dc:creator> + <dc:publisher> + <cc:Agent> + <dc:title>http://www.tango-project.org</dc:title> + </cc:Agent> + </dc:publisher> + <dc:source>http://www.pseudocode.org</dc:source> + <dc:subject> + <rdf:Bag> + <rdf:li>weather</rdf:li> + <rdf:li>applet</rdf:li> + <rdf:li>notification</rdf:li> + </rdf:Bag> + </dc:subject> + <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: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> + <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)" /> + </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> + <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> + <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)" /> + </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 + 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> + </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> + <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)" /> + </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> + <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> + <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)" /> + </g> + </g> + </g> +</svg> diff --git a/demos/embedded/weatherinfo/icons/weather-fog.svg b/demos/embedded/weatherinfo/icons/weather-fog.svg new file mode 100644 index 0000000..a9a4ca8 --- /dev/null +++ b/demos/embedded/weatherinfo/icons/weather-fog.svg @@ -0,0 +1,1585 @@ +<?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" /> + </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> + <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" + 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" + 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" + 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" + 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" /> + </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"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1"> + <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> + <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" /> + </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> + <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> + <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" /> + </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" /> + </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" /> + </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> + <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> + <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" /> + </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" /> + </g> + </g> +</svg> diff --git a/demos/embedded/weatherinfo/icons/weather-haze.svg b/demos/embedded/weatherinfo/icons/weather-haze.svg new file mode 100644 index 0000000..f2d6671 --- /dev/null +++ b/demos/embedded/weatherinfo/icons/weather-haze.svg @@ -0,0 +1,1121 @@ +<?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" /> + </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> + <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> + <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> + <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> + <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> + <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> + <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> + <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> + <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> + <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" /> + </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" /> + </defs> + <metadata + id="metadata14358"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1"> + <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> + <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> + </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> + <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> + </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" /> + </g> +</svg> diff --git a/demos/embedded/weatherinfo/icons/weather-icy.svg b/demos/embedded/weatherinfo/icons/weather-icy.svg new file mode 100644 index 0000000..fe42860 --- /dev/null +++ b/demos/embedded/weatherinfo/icons/weather-icy.svg @@ -0,0 +1,255 @@ +<?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" /> + </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> + <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> + <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> + <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" /> + </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"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1"> + <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> + </g> +</svg> diff --git a/demos/embedded/weatherinfo/icons/weather-overcast.svg b/demos/embedded/weatherinfo/icons/weather-overcast.svg new file mode 100644 index 0000000..35fb4a4 --- /dev/null +++ b/demos/embedded/weatherinfo/icons/weather-overcast.svg @@ -0,0 +1,3036 @@ +<?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" /> + </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"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title>weather-overcast</dc:title> + <dc:date>January 2006</dc:date> + <dc:creator> + <cc:Agent> + <dc:title>Ryan Collier (pseudo)</dc:title> + </cc:Agent> + </dc:creator> + <dc:publisher> + <cc:Agent> + <dc:title>http://www.tango-project.org</dc:title> + </cc:Agent> + </dc:publisher> + <dc:source>http://www.pseudocode.org</dc:source> + <dc:subject> + <rdf:Bag> + <rdf:li>weather</rdf:li> + <rdf:li>applet</rdf:li> + <rdf:li>notify</rdf:li> + </rdf:Bag> + </dc:subject> + <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: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> + <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> + <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> + <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> + <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> + <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> + <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" /> + </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> + <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> + <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" /> + </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> + <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" /> + </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> + <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> + <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" /> + </g> + </g> + </g> + </g> +</svg> diff --git a/demos/embedded/weatherinfo/icons/weather-showers.svg b/demos/embedded/weatherinfo/icons/weather-showers.svg new file mode 100644 index 0000000..c814571 --- /dev/null +++ b/demos/embedded/weatherinfo/icons/weather-showers.svg @@ -0,0 +1,4753 @@ +<?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" /> + </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"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title>weather-showers</dc:title> + <dc:date>January 2006</dc:date> + <dc:creator> + <cc:Agent> + <dc:title>Ryan collier (pseudo)</dc:title> + </cc:Agent> + </dc:creator> + <dc:publisher> + <cc:Agent> + <dc:title>http://www.tango-project.org</dc:title> + </cc:Agent> + </dc:publisher> + <dc:source>http://www.pseudocode.org</dc:source> + <dc:subject> + <rdf:Bag> + <rdf:li>weather</rdf:li> + <rdf:li>appplet</rdf:li> + <rdf:li>notify</rdf:li> + </rdf:Bag> + </dc:subject> + <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: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> + </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> + <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> + <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> + <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> + </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> + <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> + </g> + </g> +</svg> diff --git a/demos/embedded/weatherinfo/icons/weather-sleet.svg b/demos/embedded/weatherinfo/icons/weather-sleet.svg new file mode 100644 index 0000000..f1cb9eb --- /dev/null +++ b/demos/embedded/weatherinfo/icons/weather-sleet.svg @@ -0,0 +1,5196 @@ +<?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" /> + </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"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title>weather-showers</dc:title> + <dc:date>January 2006</dc:date> + <dc:creator> + <cc:Agent> + <dc:title>Ryan collier (pseudo)</dc:title> + </cc:Agent> + </dc:creator> + <dc:publisher> + <cc:Agent> + <dc:title>http://www.tango-project.org</dc:title> + </cc:Agent> + </dc:publisher> + <dc:source>http://www.pseudocode.org</dc:source> + <dc:subject> + <rdf:Bag> + <rdf:li>weather</rdf:li> + <rdf:li>appplet</rdf:li> + <rdf:li>notify</rdf:li> + </rdf:Bag> + </dc:subject> + <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: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> + <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> + <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> + <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> + </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> + <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> + </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> + <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> + <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> + <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> + <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> + <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> + </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> + </g> + </g> +</svg> diff --git a/demos/embedded/weatherinfo/icons/weather-snow.svg b/demos/embedded/weatherinfo/icons/weather-snow.svg new file mode 100644 index 0000000..6c7b4ad --- /dev/null +++ b/demos/embedded/weatherinfo/icons/weather-snow.svg @@ -0,0 +1,1974 @@ +<?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" /> + </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"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title>weather-snow</dc:title> + <dc:date>January 2006</dc:date> + <dc:creator> + <cc:Agent> + <dc:title>Ryan Collier (pseudo)</dc:title> + </cc:Agent> + </dc:creator> + <dc:publisher> + <cc:Agent> + <dc:title>http://www.tango-project.org</dc:title> + </cc:Agent> + </dc:publisher> + <dc:source>http://www.pseudocode.org</dc:source> + <dc:subject> + <rdf:Bag> + <rdf:li>weather</rdf:li> + <rdf:li>applet</rdf:li> + <rdf:li>notification</rdf:li> + </rdf:Bag> + </dc:subject> + <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: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> + <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> + <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> + <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> + <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> + <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> + <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" /> + </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> + <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> + <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" /> + </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> + <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" /> + </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> + <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> + <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" /> + </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> + </g> +</svg> diff --git a/demos/embedded/weatherinfo/icons/weather-storm.svg b/demos/embedded/weatherinfo/icons/weather-storm.svg new file mode 100644 index 0000000..4d8bfec --- /dev/null +++ b/demos/embedded/weatherinfo/icons/weather-storm.svg @@ -0,0 +1,4308 @@ +<?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" /> + </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"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title>weather-storm</dc:title> + <dc:date>January 2006</dc:date> + <dc:creator> + <cc:Agent> + <dc:title>Ryan Collier</dc:title> + </cc:Agent> + </dc:creator> + <dc:publisher> + <cc:Agent> + <dc:title>http://www.tango-project.org</dc:title> + </cc:Agent> + </dc:publisher> + <dc:source>http://www.pseudocode.org</dc:source> + <dc:subject> + <rdf:Bag> + <rdf:li>weather</rdf:li> + <rdf:li>applet</rdf:li> + <rdf:li>notify</rdf:li> + </rdf:Bag> + </dc:subject> + <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: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> + <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> + <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> + <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> + </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> + <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> + <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> + <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" /> + </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" /> + </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 new file mode 100644 index 0000000..93b0009 --- /dev/null +++ b/demos/embedded/weatherinfo/icons/weather-sunny-very-few-clouds.svg @@ -0,0 +1,593 @@ +<?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" /> + </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> + <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> + <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> + <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> + <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> + <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> + <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> + <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> + <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" /> + </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"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title>weather-clear</dc:title> + <dc:date>January 2006</dc:date> + <dc:creator> + <cc:Agent> + <dc:title>Ryan Collier (pseudo)</dc:title> + </cc:Agent> + </dc:creator> + <dc:publisher> + <cc:Agent> + <dc:title>http://www.tango-project.org</dc:title> + </cc:Agent> + </dc:publisher> + <dc:source>http://www.pseudocode.org</dc:source> + <dc:subject> + <rdf:Bag> + <rdf:li>weather</rdf:li> + <rdf:li>applet</rdf:li> + <rdf:li>notification</rdf:li> + </rdf:Bag> + </dc:subject> + <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: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> + <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> + </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> + <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)" /> + </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> + <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> + <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)" /> + </g> + </g> + </g> +</svg> diff --git a/demos/embedded/weatherinfo/icons/weather-sunny.svg b/demos/embedded/weatherinfo/icons/weather-sunny.svg new file mode 100644 index 0000000..0360ac7 --- /dev/null +++ b/demos/embedded/weatherinfo/icons/weather-sunny.svg @@ -0,0 +1,1330 @@ +<?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;" /> + </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> + <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> + <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" /> + </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"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title>weather-clear</dc:title> + <dc:date>January 2006</dc:date> + <dc:creator> + <cc:Agent> + <dc:title>Ryan Collier (pseudo)</dc:title> + </cc:Agent> + </dc:creator> + <dc:publisher> + <cc:Agent> + <dc:title>http://www.tango-project.org</dc:title> + </cc:Agent> + </dc:publisher> + <dc:source>http://www.pseudocode.org</dc:source> + <dc:subject> + <rdf:Bag> + <rdf:li>weather</rdf:li> + <rdf:li>applet</rdf:li> + <rdf:li>notification</rdf:li> + </rdf:Bag> + </dc:subject> + <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: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> + <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> + </g> + </g> +</svg> diff --git a/demos/embedded/weatherinfo/icons/weather-thundershower.svg b/demos/embedded/weatherinfo/icons/weather-thundershower.svg new file mode 100644 index 0000000..406abfa --- /dev/null +++ b/demos/embedded/weatherinfo/icons/weather-thundershower.svg @@ -0,0 +1,4587 @@ +<?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" /> + </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"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title>weather-storm</dc:title> + <dc:date>January 2006</dc:date> + <dc:creator> + <cc:Agent> + <dc:title>Ryan Collier</dc:title> + </cc:Agent> + </dc:creator> + <dc:publisher> + <cc:Agent> + <dc:title>http://www.tango-project.org</dc:title> + </cc:Agent> + </dc:publisher> + <dc:source>http://www.pseudocode.org</dc:source> + <dc:subject> + <rdf:Bag> + <rdf:li>weather</rdf:li> + <rdf:li>applet</rdf:li> + <rdf:li>notify</rdf:li> + </rdf:Bag> + </dc:subject> + <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: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> + <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> + <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> + <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> + </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> + <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> + <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> + <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)" /> + </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" /> + </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> + <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> + </g> + </g> +</svg> diff --git a/demos/embedded/weatherinfo/weatherinfo.cpp b/demos/embedded/weatherinfo/weatherinfo.cpp new file mode 100644 index 0000000..0762644 --- /dev/null +++ b/demos/embedded/weatherinfo/weatherinfo.cpp @@ -0,0 +1,511 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the demonstration applications 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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QtCore> +#include <QtGui> +#include <QtNetwork> +#include <QtSvg> + +#if defined (Q_OS_SYMBIAN) +#include "sym_iap_util.h" +#endif + +class WeatherInfo: public QMainWindow +{ + Q_OBJECT + +private: + + QGraphicsView *m_view; + QGraphicsScene m_scene; + QString city; + QGraphicsRectItem *m_statusItem; + QGraphicsTextItem *m_temperatureItem; + QGraphicsTextItem *m_conditionItem; + QGraphicsSvgItem *m_iconItem; + QList<QGraphicsRectItem*> m_forecastItems; + QList<QGraphicsTextItem*> m_dayItems; + QList<QGraphicsSvgItem*> m_conditionItems; + QList<QGraphicsTextItem*> m_rangeItems; + QTimeLine m_timeLine; + QHash<QString, QString> m_icons; + +public: + WeatherInfo(QWidget *parent = 0): QMainWindow(parent) { + + m_view = new QGraphicsView(this); + setCentralWidget(m_view); + + setupScene(); + m_view->setScene(&m_scene); + m_view->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); + m_view->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); + + m_view->setFrameShape(QFrame::NoFrame); + setWindowTitle("Weather Info"); + + QStringList cities; + cities << "Oslo"; + cities << "Berlin"; + cities << "Brisbane"; + cities << "Helsinki"; + cities << "San Diego"; + for (int i = 0; i < cities.count(); ++i) { + QAction *action = new QAction(cities[i], this); + connect(action, SIGNAL(triggered()), SLOT(chooseCity())); + addAction(action); +#if defined(Q_OS_SYMBIAN) + menuBar()->addAction(action); +#endif + } + setContextMenuPolicy(Qt::ActionsContextMenu); + + QTimer::singleShot(0, this, SLOT(delayedInit())); + } + +private slots: + void delayedInit() { +#if defined(Q_OS_SYMBIAN) + qt_SetDefaultIap(); +#else + request("Oslo"); +#endif + } + +private slots: + + void chooseCity() { + QAction *action = qobject_cast<QAction*>(sender()); + if (action) + request(action->text()); + } + + void handleNetworkData(QNetworkReply *networkReply) { + QUrl url = networkReply->url(); + if (!networkReply->error()) + digest(QString::fromUtf8(networkReply->readAll())); + networkReply->deleteLater(); + networkReply->manager()->deleteLater(); + } + + void animate(int frame) { + qreal progress = static_cast<qreal>(frame) / 100; +#if QT_VERSION >= 0x040500 + m_iconItem->setOpacity(progress); +#endif + qreal hw = width() / 2.0; + m_statusItem->setPos(-hw + hw * progress, 0); + for (int i = 0; i < m_forecastItems.count(); ++i) { + qreal ofs = i * 0.5 / m_forecastItems.count(); + qreal alpha = qBound(qreal(0), 2 * (progress - ofs), qreal(1)); +#if QT_VERSION >= 0x040500 + m_conditionItems[i]->setOpacity(alpha); +#endif + QPointF pos = m_forecastItems[i]->pos(); + if (width() > height()) { + qreal fx = width() - width() * 0.4 * alpha; + m_forecastItems[i]->setPos(fx, pos.y()); + } else { + qreal fx = height() - height() * 0.5 * alpha; + m_forecastItems[i]->setPos(pos.x(), fx); + } + } + } + +private: + + void setupScene() { + + QColor textColor = palette().color(QPalette::WindowText); + QFont textFont = font(); + textFont.setBold(true); + textFont.setPointSize(textFont.pointSize() * 2); + + m_temperatureItem = m_scene.addText(QString(), textFont); + m_temperatureItem->setDefaultTextColor(textColor); + + m_conditionItem = m_scene.addText(QString(), textFont); + m_conditionItem->setDefaultTextColor(textColor); + + m_iconItem = new QGraphicsSvgItem; + m_scene.addItem(m_iconItem); + + m_statusItem = m_scene.addRect(0, 0, 10, 10); + m_statusItem->setPen(Qt::NoPen); + m_statusItem->setBrush(Qt::NoBrush); + m_temperatureItem->setParentItem(m_statusItem); + m_conditionItem->setParentItem(m_statusItem); + m_iconItem->setParentItem(m_statusItem); + + connect(&m_timeLine, SIGNAL(frameChanged(int)), SLOT(animate(int))); + m_timeLine.setDuration(1100); + m_timeLine.setFrameRange(0, 100); + m_timeLine.setCurveShape(QTimeLine::EaseInCurve); + } + + void request(const QString &location) { + QUrl url("http://www.google.com/ig/api"); + url.addEncodedQueryItem("hl", "en"); + url.addEncodedQueryItem("weather", QUrl::toPercentEncoding(location)); + + QNetworkAccessManager *manager = new QNetworkAccessManager(this); + connect(manager, SIGNAL(finished(QNetworkReply*)), + this, SLOT(handleNetworkData(QNetworkReply*))); + manager->get(QNetworkRequest(url)); + + city = QString(); + setWindowTitle("Loading..."); + } + + QString extractIcon(const QString &data) { + if (m_icons.isEmpty()) { + m_icons["mostly_cloudy"] = "weather-few-clouds"; + m_icons["cloudy"] = "weather-overcast"; + m_icons["mostly_sunny"] = "weather-sunny-very-few-clouds"; + m_icons["partly_cloudy"] = "weather-sunny-very-few-clouds"; + m_icons["sunny"] = "weather-sunny"; + m_icons["flurries"] = "weather-snow"; + m_icons["fog"] = "weather-fog"; + m_icons["haze"] = "weather-haze"; + m_icons["icy"] = "weather-icy"; + m_icons["sleet"] = "weather-sleet"; + m_icons["chance_of_sleet"] = "weather-sleet"; + m_icons["snow"] = "weather-snow"; + m_icons["chance_of_snow"] = "weather-snow"; + m_icons["mist"] = "weather-showers"; + m_icons["rain"] = "weather-showers"; + m_icons["chance_of_rain"] = "weather-showers"; + m_icons["storm"] = "weather-storm"; + m_icons["chance_of_storm"] = "weather-storm"; + m_icons["thunderstorm"] = "weather-thundershower"; + m_icons["chance_of_tstorm"] = "weather-thundershower"; + } + QRegExp regex("([\\w]+).gif$"); + if (regex.indexIn(data) != -1) { + QString i = regex.cap(); + i = i.left(i.length() - 4); + QString name = m_icons.value(i); + if (!name.isEmpty()) { + name.prepend(":/icons/"); + name.append(".svg"); + return name; + } + } + return QString(); + } + + static QString toCelcius(QString t, QString unit) { + bool ok = false; + int degree = t.toInt(&ok); + if (!ok) + return QString(); + if (unit != "SI") + degree = ((degree - 32) * 5 + 8)/ 9; + return QString::number(degree) + QChar(176); + } + + +#define GET_DATA_ATTR xml.attributes().value("data").toString() + + void digest(const QString &data) { + + QColor textColor = palette().color(QPalette::WindowText); + QString unitSystem; + + delete m_iconItem; + m_iconItem = new QGraphicsSvgItem(); + m_scene.addItem(m_iconItem); + m_iconItem->setParentItem(m_statusItem); + qDeleteAll(m_dayItems); + qDeleteAll(m_conditionItems); + qDeleteAll(m_rangeItems); + qDeleteAll(m_forecastItems); + m_dayItems.clear(); + m_conditionItems.clear(); + m_rangeItems.clear(); + m_forecastItems.clear(); + + QXmlStreamReader xml(data); + while (!xml.atEnd()) { + xml.readNext(); + if (xml.tokenType() == QXmlStreamReader::StartElement) { + if (xml.name() == "city") { + city = GET_DATA_ATTR; + setWindowTitle(city); + } + if (xml.name() == "unit_system") + unitSystem = xml.attributes().value("data").toString(); + // Parse current weather conditions + if (xml.name() == "current_conditions") { + while (!xml.atEnd()) { + xml.readNext(); + if (xml.name() == "current_conditions") + break; + if (xml.tokenType() == QXmlStreamReader::StartElement) { + if (xml.name() == "condition") { + m_conditionItem->setPlainText(GET_DATA_ATTR); + } + if (xml.name() == "icon") { + QString name = extractIcon(GET_DATA_ATTR); + if (!name.isEmpty()) { + delete m_iconItem; + m_iconItem = new QGraphicsSvgItem(name); + m_scene.addItem(m_iconItem); + m_iconItem->setParentItem(m_statusItem); + } + } + if (xml.name() == "temp_c") { + QString s = GET_DATA_ATTR + QChar(176); + m_temperatureItem->setPlainText(s); + } + } + } + } + // Parse and collect the forecast conditions + if (xml.name() == "forecast_conditions") { + QGraphicsTextItem *dayItem = 0; + QGraphicsSvgItem *statusItem = 0; + QString lowT, highT; + while (!xml.atEnd()) { + xml.readNext(); + if (xml.name() == "forecast_conditions") { + if (dayItem && statusItem && + !lowT.isEmpty() && !highT.isEmpty()) { + m_dayItems << dayItem; + m_conditionItems << statusItem; + QString txt = highT + '/' + lowT; + QGraphicsTextItem* rangeItem; + rangeItem = m_scene.addText(txt); + rangeItem->setDefaultTextColor(textColor); + m_rangeItems << rangeItem; + QGraphicsRectItem *box; + box = m_scene.addRect(0, 0, 10, 10); + box->setPen(Qt::NoPen); + box->setBrush(Qt::NoBrush); + m_forecastItems << box; + dayItem->setParentItem(box); + statusItem->setParentItem(box); + rangeItem->setParentItem(box); + } else { + delete dayItem; + delete statusItem; + } + break; + } + if (xml.tokenType() == QXmlStreamReader::StartElement) { + if (xml.name() == "day_of_week") { + QString s = GET_DATA_ATTR; + dayItem = m_scene.addText(s.left(3)); + dayItem->setDefaultTextColor(textColor); + } + if (xml.name() == "icon") { + QString name = extractIcon(GET_DATA_ATTR); + if (!name.isEmpty()) { + statusItem = new QGraphicsSvgItem(name); + m_scene.addItem(statusItem); + } + } + if (xml.name() == "low") + lowT = toCelcius(GET_DATA_ATTR, unitSystem); + if (xml.name() == "high") + highT = toCelcius(GET_DATA_ATTR, unitSystem); + } + } + } + + } + } + + m_timeLine.stop(); + layoutItems(); + animate(0); + m_timeLine.start(); + } + + void layoutItems() { + m_scene.setSceneRect(0, 0, width() - 1, height() - 1); + m_view->centerOn(width() / 2, height() / 2); + if (width() > height()) + layoutItemsLandscape(); + else + layoutItemsPortrait(); + } + + void layoutItemsLandscape() { + m_statusItem->setRect(0, 0, width() / 2 - 1, height() - 1); + + if (!m_iconItem->boundingRect().isEmpty()) { + qreal dim = qMin(width() * 0.6, height() * 0.8); + qreal pad = (height() - dim) / 2; + qreal sw = dim / m_iconItem->boundingRect().width(); + qreal sh = dim / m_iconItem->boundingRect().height(); + m_iconItem->setTransform(QTransform().scale(sw, sh)); + m_iconItem->setPos(1, pad); + } + + m_temperatureItem->setPos(2, 2); + qreal h = m_conditionItem->boundingRect().height(); + m_conditionItem->setPos(10, height() - h); + + if (m_dayItems.count()) { + qreal left = width() * 0.6; + qreal h = height() / m_dayItems.count(); + QFont textFont = font(); + textFont.setPixelSize(static_cast<int>(h * 0.3)); + qreal statusWidth = 0; + qreal rangeWidth = 0; + for (int i = 0; i < m_dayItems.count(); ++i) { + m_dayItems[i]->setFont(textFont); + QRectF brect = m_dayItems[i]->boundingRect(); + statusWidth = qMax(statusWidth, brect.width()); + brect = m_rangeItems[i]->boundingRect(); + rangeWidth = qMax(rangeWidth, brect.width()); + } + qreal space = width() - left - statusWidth - rangeWidth; + qreal dim = qMin(h, space); + qreal pad = statusWidth + (space - dim) / 2; + for (int i = 0; i < m_dayItems.count(); ++i) { + qreal base = h * i; + m_forecastItems[i]->setPos(left, base); + m_forecastItems[i]->setRect(0, 0, width() - left, h); + QRectF brect = m_dayItems[i]->boundingRect(); + qreal ofs = (h - brect.height()) / 2; + m_dayItems[i]->setPos(0, ofs); + brect = m_rangeItems[i]->boundingRect(); + ofs = (h - brect.height()) / 2; + m_rangeItems[i]->setPos(width() - rangeWidth - left, ofs); + brect = m_conditionItems[i]->boundingRect(); + ofs = (h - dim) / 2; + m_conditionItems[i]->setPos(pad, ofs); + if (brect.isEmpty()) + continue; + qreal sw = dim / brect.width(); + qreal sh = dim / brect.height(); + m_conditionItems[i]->setTransform(QTransform().scale(sw, sh)); + } + } + } + + void layoutItemsPortrait() { + + m_statusItem->setRect(0, 0, width() - 1, height() / 2 - 1); + + if (!m_iconItem->boundingRect().isEmpty()) { + qreal dim = qMin(width() * 0.8, height() * 0.4); + qreal ofsy = (height() / 2 - dim) / 2; + qreal ofsx = (width() - dim) / 3; + qreal sw = dim / m_iconItem->boundingRect().width(); + qreal sh = dim / m_iconItem->boundingRect().height(); + m_iconItem->setTransform(QTransform().scale(sw, sh)); + m_iconItem->setPos(ofsx, ofsy); + } + + m_temperatureItem->setPos(2, 2); + qreal ch = m_conditionItem->boundingRect().height(); + qreal cw = m_conditionItem->boundingRect().width(); + m_conditionItem->setPos(width() - cw , height() / 2 - ch - 20); + + if (m_dayItems.count()) { + qreal top = height() * 0.5; + qreal w = width() / m_dayItems.count(); + qreal statusHeight = 0; + qreal rangeHeight = 0; + for (int i = 0; i < m_dayItems.count(); ++i) { + m_dayItems[i]->setFont(font()); + QRectF brect = m_dayItems[i]->boundingRect(); + statusHeight = qMax(statusHeight, brect.height()); + brect = m_rangeItems[i]->boundingRect(); + rangeHeight = qMax(rangeHeight, brect.height()); + } + qreal space = height() - top - statusHeight - rangeHeight; + qreal dim = qMin(w, space); + + qreal boxh = statusHeight + rangeHeight + dim; + qreal pad = (height() - top - boxh) / 2; + + for (int i = 0; i < m_dayItems.count(); ++i) { + qreal base = w * i; + m_forecastItems[i]->setPos(base, top); + m_forecastItems[i]->setRect(0, 0, w, boxh); + QRectF brect = m_dayItems[i]->boundingRect(); + qreal ofs = (w - brect.width()) / 2; + m_dayItems[i]->setPos(ofs, pad); + + brect = m_rangeItems[i]->boundingRect(); + ofs = (w - brect.width()) / 2; + m_rangeItems[i]->setPos(ofs, pad + statusHeight + dim); + + brect = m_conditionItems[i]->boundingRect(); + ofs = (w - dim) / 2; + m_conditionItems[i]->setPos(ofs, pad + statusHeight); + if (brect.isEmpty()) + continue; + qreal sw = dim / brect.width(); + qreal sh = dim / brect.height(); + m_conditionItems[i]->setTransform(QTransform().scale(sw, sh)); + } + } + } + + + void resizeEvent(QResizeEvent *event) { + Q_UNUSED(event); + layoutItems(); + } + +}; + +#include "weatherinfo.moc" + +int main(int argc, char *argv[]) +{ + QApplication app(argc, argv); + + WeatherInfo w; +#if defined(Q_OS_SYMBIAN) + w.showMaximized(); +#else + w.resize(520, 288); + w.show(); +#endif + + return app.exec(); +} diff --git a/demos/embedded/weatherinfo/weatherinfo.pro b/demos/embedded/weatherinfo/weatherinfo.pro new file mode 100644 index 0000000..a89acba --- /dev/null +++ b/demos/embedded/weatherinfo/weatherinfo.pro @@ -0,0 +1,11 @@ +TEMPLATE = app +TARGET = weatherinfo +SOURCES = weatherinfo.cpp +RESOURCES = weatherinfo.qrc +QT += network svg + +symbian { + HEADERS += $$QT_SOURCE_TREE/examples/network/ftp/sym_iap_util.h + LIBS += -lesock -lconnmon + TARGET.CAPABILITY = NetworkServices +} diff --git a/demos/embedded/weatherinfo/weatherinfo.qrc b/demos/embedded/weatherinfo/weatherinfo.qrc new file mode 100644 index 0000000..6e9d224 --- /dev/null +++ b/demos/embedded/weatherinfo/weatherinfo.qrc @@ -0,0 +1,16 @@ +<RCC> + <qresource prefix="/" > + <file>icons/weather-few-clouds.svg</file> + <file>icons/weather-fog.svg</file> + <file>icons/weather-haze.svg</file> + <file>icons/weather-icy.svg</file> + <file>icons/weather-overcast.svg</file> + <file>icons/weather-showers.svg</file> + <file>icons/weather-sleet.svg</file> + <file>icons/weather-snow.svg</file> + <file>icons/weather-storm.svg</file> + <file>icons/weather-sunny.svg</file> + <file>icons/weather-sunny-very-few-clouds.svg</file> + <file>icons/weather-thundershower.svg</file> + </qresource> +</RCC> diff --git a/demos/embeddeddialogs/embeddeddialogs.pro b/demos/embeddeddialogs/embeddeddialogs.pro index a38e3e8..d3ef442 100644 --- a/demos/embeddeddialogs/embeddeddialogs.pro +++ b/demos/embeddeddialogs/embeddeddialogs.pro @@ -15,3 +15,5 @@ target.path = $$[QT_INSTALL_DEMOS]/embeddeddialogs sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS *.png *.jpg *.plist *.icns *.ico *.rc *.pro *.html *.doc images sources.path = $$[QT_INSTALL_DEMOS]/embeddeddialogs INSTALLS += target sources + +symbian: include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) diff --git a/demos/embeddeddialogs/main.cpp b/demos/embeddeddialogs/main.cpp index bfda00e..9c54bf2 100644 --- a/demos/embeddeddialogs/main.cpp +++ b/demos/embeddeddialogs/main.cpp @@ -76,7 +76,6 @@ int main(int argc, char *argv[]) view.scale(0.5, 0.5); view.setRenderHints(view.renderHints() | QPainter::Antialiasing | QPainter::SmoothPixmapTransform); view.setBackgroundBrush(QPixmap(":/No-Ones-Laughing-3.jpg")); - view.setCacheMode(QGraphicsView::CacheBackground); view.setViewportUpdateMode(QGraphicsView::BoundingRectViewportUpdate); view.show(); view.setWindowTitle("Embedded Dialogs Demo"); diff --git a/demos/gradients/gradients.pro b/demos/gradients/gradients.pro index 167572b..21cd57d 100644 --- a/demos/gradients/gradients.pro +++ b/demos/gradients/gradients.pro @@ -16,3 +16,5 @@ target.path = $$[QT_INSTALL_DEMOS]/gradients sources.files = $$SOURCES $$HEADERS $$RESOURCES *.pro *.html sources.path = $$[QT_INSTALL_DEMOS]/gradients INSTALLS += target sources + +symbian: include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) diff --git a/demos/interview/interview.pro b/demos/interview/interview.pro index c013755..1e5f9b8 100644 --- a/demos/interview/interview.pro +++ b/demos/interview/interview.pro @@ -16,3 +16,4 @@ sources.files = $$SOURCES $$HEADERS $$RESOURCES README *.pro images sources.path = $$[QT_INSTALL_DEMOS]/interview INSTALLS += target sources +symbian: include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) diff --git a/demos/macmainwindow/macmainwindow.pro b/demos/macmainwindow/macmainwindow.pro index f5165a7..ba6ffbb 100644 --- a/demos/macmainwindow/macmainwindow.pro +++ b/demos/macmainwindow/macmainwindow.pro @@ -12,7 +12,7 @@ build_all:!build_pass { CONFIG += release } -LIBS += -framework Cocoa +LIBS += -framework Cocoa -framework Carbon # install mac { diff --git a/demos/mainwindow/mainwindow.pro b/demos/mainwindow/mainwindow.pro index 9853a55..8e9bdc2 100644 --- a/demos/mainwindow/mainwindow.pro +++ b/demos/mainwindow/mainwindow.pro @@ -14,3 +14,4 @@ sources.files = $$SOURCES $$HEADERS $$FORMS $$RESOURCES *.png *.jpg *.pro sources.path = $$[QT_INSTALL_DEMOS]/mainwindow INSTALLS += target sources +symbian: include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) diff --git a/demos/mediaplayer/mediaplayer.pro b/demos/mediaplayer/mediaplayer.pro index c64abd9..49a652e 100644 --- a/demos/mediaplayer/mediaplayer.pro +++ b/demos/mediaplayer/mediaplayer.pro @@ -25,4 +25,7 @@ wince*{ DEPLOYMENT_PLUGIN += phonon_ds9 phonon_waveout } - +symbian { + include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) + TARGET.UID3 = 0xA000C613 +} diff --git a/demos/pathstroke/pathstroke.pro b/demos/pathstroke/pathstroke.pro index 50b4de2..ac50842 100644 --- a/demos/pathstroke/pathstroke.pro +++ b/demos/pathstroke/pathstroke.pro @@ -18,3 +18,7 @@ sources.files = $$SOURCES $$HEADERS $$RESOURCES *.pro *.html sources.path = $$[QT_INSTALL_DEMOS]/pathstroke INSTALLS += target sources +symbian { + include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) + TARGET.UID3 = 0xA000A63E +} diff --git a/demos/qtdemo/colors.cpp b/demos/qtdemo/colors.cpp index f98ec57..e63417c 100644 --- a/demos/qtdemo/colors.cpp +++ b/demos/qtdemo/colors.cpp @@ -72,10 +72,8 @@ int Colors::contentHeight = 510; // Properties: bool Colors::openGlRendering = false; -bool Colors::direct3dRendering = false; bool Colors::softwareRendering = false; -bool Colors::openGlAwailable = true; -bool Colors::direct3dAwailable = true; +bool Colors::openGlAvailable = true; bool Colors::xRenderPresent = true; bool Colors::noTicker = false; @@ -206,8 +204,6 @@ void Colors::parseArgs(int argc, char *argv[]) QString s(argv[i]); if (s == "-opengl") Colors::openGlRendering = true; - else if (s == "-direct3d") - Colors::direct3dRendering = true; else if (s == "-software") Colors::softwareRendering = true; else if (s == "-no-opengl") // support old style @@ -270,7 +266,7 @@ void Colors::parseArgs(int argc, char *argv[]) Colors::fps = int(parseFloat(s, "-fps")); else if (s.startsWith("-h") || s.startsWith("-help")){ QMessageBox::warning(0, "Arguments", - QString("Usage: qtdemo [-verbose] [-no-adapt] [-opengl] [-direct3d] [-software] [-fullscreen] [-ticker[0|1]] ") + QString("Usage: qtdemo [-verbose] [-no-adapt] [-opengl] [-software] [-fullscreen] [-ticker[0|1]] ") + "[-animations[0|1]] [-no-blending] [-no-sync] [-use-timer-update[0|1]] [-pause[0|1]] " + "[-use-window-mask] [-no-rescale] " + "[-use-pixmaps] [-show-fps] [-show-br] [-8bit[0|1]] [-menu<int>] [-use-loop] [-use-balls] " @@ -290,7 +286,6 @@ void Colors::parseArgs(int argc, char *argv[]) void Colors::setLowSettings() { Colors::openGlRendering = false; - Colors::direct3dRendering = false; Colors::softwareRendering = true; Colors::noTicker = true; Colors::noTimerUpdate = true; @@ -325,15 +320,11 @@ void Colors::detectSystemResources() qDebug() << "- OpenGL not supported by current build of Qt"; #endif { - Colors::openGlAwailable = false; + Colors::openGlAvailable = false; if (Colors::verbose) qDebug("- OpenGL not recommended on this system"); } -#if defined(Q_WS_WIN) - Colors::direct3dAwailable = false; // for now. -#endif - #if defined(Q_WS_X11) // check if X render is present: QPixmap tmp(1, 1); @@ -369,21 +360,9 @@ void Colors::postConfigure() } } -#if !defined(Q_WS_WIN) - if (Colors::direct3dRendering){ - Colors::direct3dRendering = false; - qDebug() << "- WARNING: Direct3D specified, but not supported on this platform"; - } -#endif - - if (!Colors::openGlRendering && !Colors::direct3dRendering && !Colors::softwareRendering){ + if (!Colors::openGlRendering && !Colors::softwareRendering){ // The user has not decided rendering system. So we do it instead: -#if defined(Q_WS_WIN) - if (Colors::direct3dAwailable) - Colors::direct3dRendering = true; - else -#endif - if (Colors::openGlAwailable) + if (Colors::openGlAvailable) Colors::openGlRendering = true; else Colors::softwareRendering = true; diff --git a/demos/qtdemo/colors.h b/demos/qtdemo/colors.h index 3d2bb2a..c534649 100644 --- a/demos/qtdemo/colors.h +++ b/demos/qtdemo/colors.h @@ -81,11 +81,9 @@ public: static int contentHeight; // properties: + static bool openGlAvailable; static bool openGlRendering; - static bool direct3dRendering; static bool softwareRendering; - static bool openGlAwailable; - static bool direct3dAwailable; static bool xRenderPresent; static bool noAdapt; static bool noTicker; diff --git a/demos/qtdemo/mainwindow.cpp b/demos/qtdemo/mainwindow.cpp index 55e0b86..f8f4922 100644 --- a/demos/qtdemo/mainwindow.cpp +++ b/demos/qtdemo/mainwindow.cpp @@ -100,14 +100,8 @@ void MainWindow::setRenderingSystem() { QWidget *viewport = 0; - if (Colors::direct3dRendering){ - viewport->setAttribute(Qt::WA_MSWindowsUseDirect3D); - setCacheMode(QGraphicsView::CacheNone); - if (Colors::verbose) - qDebug() << "- using Direct3D"; - } #ifndef QT_NO_OPENGL - else if (Colors::openGlRendering){ + if (Colors::openGlRendering) { QGLWidget *glw = new QGLWidget(QGLFormat(QGL::SampleBuffers)); if (Colors::noScreenSync) glw->format().setSwapInterval(0); @@ -116,9 +110,10 @@ void MainWindow::setRenderingSystem() setCacheMode(QGraphicsView::CacheNone); if (Colors::verbose) qDebug() << "- using OpenGL"; - } + } else // software rendering #endif - else{ // software rendering + { + // software rendering viewport = new QWidget; setCacheMode(QGraphicsView::CacheBackground); if (Colors::verbose) @@ -386,8 +381,6 @@ void MainWindow::keyPressEvent(QKeyEvent *event) s += "Rendering system: "; if (Colors::openGlRendering) s += "OpenGL"; - else if (Colors::direct3dRendering) - s += "Direct3D"; else s += "software"; diff --git a/demos/qtdemo/qtdemo.pro b/demos/qtdemo/qtdemo.pro index 163ed17..011ea0c 100644 --- a/demos/qtdemo/qtdemo.pro +++ b/demos/qtdemo/qtdemo.pro @@ -6,6 +6,8 @@ DESTDIR = $$DEMO_DESTDIR/bin OBJECTS_DIR = .obj MOC_DIR = .moc INSTALLS += target sources + + QT += xml network contains(QT_CONFIG, opengl) { @@ -67,6 +69,8 @@ ICON = qtdemo.icns QMAKE_INFO_PLIST = Info_mac.plist } +symbian: include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) + # install target.path = $$[QT_INSTALL_BINS] sources.files = $$SOURCES $$HEADERS $$FORMS $$RESOURCES qtdemo.pro images xml *.ico *.icns *.rc *.plist diff --git a/demos/qtdemo/qtdemo.rc b/demos/qtdemo/qtdemo.rc index 4cf2a63..882b355 100644 --- a/demos/qtdemo/qtdemo.rc +++ b/demos/qtdemo/qtdemo.rc @@ -1,2 +1,32 @@ +#include "winver.h" + IDI_ICON1 ICON DISCARDABLE "qtdemo.ico" +VS_VERSION_INFO VERSIONINFO + FILEVERSION 1,0,0,0 + PRODUCTVERSION 1,0,0,0 + FILEFLAGS 0x0L + FILEFLAGSMASK 0x3fL + FILEOS 0x00040004L + FILETYPE 0x1L + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "000004b0" + BEGIN + VALUE "CompanyName", "Nokia Corporation and/or its subsidiary(-ies)" + VALUE "FileDescription", "Qt Examples and Demos" + VALUE "FileVersion", "1.0.0.0" + VALUE "LegalCopyright", "Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies)." + VALUE "InternalName", "qtdemo" + VALUE "OriginalFilename", "qtdemo.exe" + VALUE "ProductName", "Qt Examples and Demos" + VALUE "ProductVersion", "1.0.0.0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0, 1200 + END +END diff --git a/demos/qtdemo/xml/examples.xml b/demos/qtdemo/xml/examples.xml index 96a3e80..f598780 100644 --- a/demos/qtdemo/xml/examples.xml +++ b/demos/qtdemo/xml/examples.xml @@ -18,7 +18,16 @@ <example filename="browser" name="Browser" /> <example filename="mediaplayer" name="Media Player" /> <example filename="boxes" name="Boxes" /> + <example filename="sub-attaq" name="Sub-attaq" /> </demos> + <category dirname="animation" name="Animation Framework"> + <example filename="animatedtiles" name="Animated Tiles" /> + <example filename="appchooser" name="Appchooser" /> + <example filename="easing" name="Easing Curves" /> + <example filename="moveblocks" name="Moving Blocks" /> + <example filename="states" name="UI States" /> + <example filename="stickman" name="Stickman" /> + </category> <category dirname="qtconcurrent" name="Concurrent Programming"> <example filename="map" name="Map" executable="false" /> <example filename="progressdialog" name="Progress Dialog" /> @@ -145,6 +154,11 @@ <category dirname="phonon" name="Phonon"> <example filename="musicplayer" name="Music Player" /> </category> + <category dirname="multimedia/audio" name="Multimedia"> + <example filename="audiodevices" name="Audio Devices" /> + <example filename="audiooutput" name="Audio Output" /> + <example filename="audioinput" name="Audio Input" /> + </category> <category dirname="richtext" name="Rich Text"> <example filename="calendar" name="Calendar" /> <example filename="orderform" name="Order Form" /> @@ -167,6 +181,13 @@ <example filename="masterdetail" name="Music Archive" /> <example filename="sqlwidgetmapper" name="SQL Widget Mapper" /> </category> + <category dirname="statemachine" name="State Machine"> + <example filename="eventtransitions" name="Event Transitions" /> + <example filename="rogue" name="Rogue" /> + <example filename="tankgame" name="Tank Game" /> + <example filename="trafficlight" name="Traffic Light" /> + <example filename="twowaybutton" name="Two-way Button" /> + </category> <category dirname="threads" name="Threading"> <example filename="mandelbrot" name="Mandelbrot" /> </category> @@ -175,6 +196,7 @@ <example filename="completer" name="Completer" /> <example filename="customcompleter" name="Custom Completer" /> <example filename="i18n" name="Internationalization" /> + <example filename="inputpanel" name="Input Panel" /> <example filename="plugandpaint" name="Plug and Paint" /> <example filename="regexp" name="Regular Expressions" /> <example filename="settingseditor" name="Settings Editor" /> @@ -231,5 +253,6 @@ <example filename="qobjectxmlmodel" name="QObjectXmlModel" /> <example filename="filetree" name="File Tree" /> <example filename="trafficinfo" name="Traffic Info" /> + <example filename="schema" name="XML Schema Validation" /> </category> </categories> diff --git a/demos/shared/shared.pri b/demos/shared/shared.pri index b551595..1541fa7 100644 --- a/demos/shared/shared.pri +++ b/demos/shared/shared.pri @@ -16,5 +16,6 @@ contains(CONFIG, debug_and_release_target) { hpux-acc*:LIBS += $$SHARED_FOLDER/libdemo_shared.a hpuxi-acc*:LIBS += $$SHARED_FOLDER/libdemo_shared.a -!hpuxi-acc*:!hpux-acc*:LIBS += -ldemo_shared +symbian:LIBS += -ldemo_shared.lib +!hpuxi-acc*:!hpux-acc*:!symbian:LIBS += -ldemo_shared diff --git a/demos/shared/shared.pro b/demos/shared/shared.pro index cabce25..de29857 100644 --- a/demos/shared/shared.pro +++ b/demos/shared/shared.pro @@ -29,5 +29,10 @@ target.path = $$[QT_INSTALL_DEMOS]/shared sources.files = $$SOURCES $$HEADERS $$RESOURCES *.pro *.pri images sources.path = $$[QT_INSTALL_DEMOS]/shared INSTALLS += sources + !cross_compile:INSTALLS += target +symbian { + include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) + TARGET.UID3 = 0xA000A63C +} diff --git a/demos/spreadsheet/spreadsheet.cpp b/demos/spreadsheet/spreadsheet.cpp index ab2d4b1..644a4b6 100644 --- a/demos/spreadsheet/spreadsheet.cpp +++ b/demos/spreadsheet/spreadsheet.cpp @@ -481,7 +481,7 @@ void SpreadSheet::setupContents() table->setItem(3, 0, new SpreadSheetItem("Lunch")); table->setItem(4, 0, new SpreadSheetItem("Flight (LA)")); table->setItem(5, 0, new SpreadSheetItem("Taxi")); - table->setItem(6, 0, new SpreadSheetItem("Diinner")); + table->setItem(6, 0, new SpreadSheetItem("Dinner")); table->setItem(7, 0, new SpreadSheetItem("Hotel")); table->setItem(8, 0, new SpreadSheetItem("Flight (Oslo)")); table->setItem(9, 0, new SpreadSheetItem("Total:")); diff --git a/demos/spreadsheet/spreadsheet.pro b/demos/spreadsheet/spreadsheet.pro index 6ed0016..6b38abe 100644 --- a/demos/spreadsheet/spreadsheet.pro +++ b/demos/spreadsheet/spreadsheet.pro @@ -31,3 +31,4 @@ sources.files = $$SOURCES $$RESOURCES *.pro images $$HEADERS sources.path = $$[QT_INSTALL_DEMOS]/spreadsheet INSTALLS += target sources +symbian: include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) diff --git a/demos/sqlbrowser/sqlbrowser.pro b/demos/sqlbrowser/sqlbrowser.pro index 920e8a0..3a8036d 100644 --- a/demos/sqlbrowser/sqlbrowser.pro +++ b/demos/sqlbrowser/sqlbrowser.pro @@ -18,6 +18,8 @@ sources.files = $$SOURCES $$HEADERS $$FORMS *.pro sources.path = $$[QT_INSTALL_DEMOS]/sqlbrowser INSTALLS += target sources +symbian: include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) + wince*: { DEPLOYMENT_PLUGIN += qsqlite } diff --git a/demos/sub-attaq/animationmanager.cpp b/demos/sub-attaq/animationmanager.cpp new file mode 100644 index 0000000..09a2a1b --- /dev/null +++ b/demos/sub-attaq/animationmanager.cpp @@ -0,0 +1,93 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtCore module 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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +//Own +#include "animationmanager.h" + +//Qt +#include <QtCore/QAbstractAnimation> +#include <QtCore/QDebug> + +// the universe's only animation manager +AnimationManager *AnimationManager::instance = 0; + +AnimationManager::AnimationManager() +{ +} + +AnimationManager *AnimationManager::self() +{ + if (!instance) + instance = new AnimationManager; + return instance; +} + +void AnimationManager::registerAnimation(QAbstractAnimation *anim) +{ + animations.append(anim); +} + +void AnimationManager::unregisterAnimation(QAbstractAnimation *anim) +{ + animations.removeAll(anim); +} + +void AnimationManager::unregisterAllAnimations() +{ + animations.clear(); +} + +void AnimationManager::pauseAll() +{ + foreach (QAbstractAnimation* animation, animations) + { + if (animation->state() == QAbstractAnimation::Running) + animation->pause(); + } +} +void AnimationManager::resumeAll() +{ + foreach (QAbstractAnimation* animation, animations) + { + if (animation->state() == QAbstractAnimation::Paused) + animation->resume(); + } +} diff --git a/demos/sub-attaq/animationmanager.h b/demos/sub-attaq/animationmanager.h new file mode 100644 index 0000000..f48fe34 --- /dev/null +++ b/demos/sub-attaq/animationmanager.h @@ -0,0 +1,70 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtCore module 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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef ANIMATIONMANAGER_H +#define ANIMATIONMANAGER_H + +#include <QtCore/QObject> + +QT_BEGIN_NAMESPACE +class QAbstractAnimation; +QT_END_NAMESPACE + +class AnimationManager : public QObject +{ +Q_OBJECT +public: + AnimationManager(); + void registerAnimation(QAbstractAnimation *anim); + void unregisterAnimation(QAbstractAnimation *anim); + void unregisterAllAnimations(); + static AnimationManager *self(); + +public slots: + void pauseAll(); + void resumeAll(); + +private: + static AnimationManager *instance; + QList<QAbstractAnimation *> animations; +}; + +#endif // ANIMATIONMANAGER_H diff --git a/demos/sub-attaq/boat.cpp b/demos/sub-attaq/boat.cpp new file mode 100644 index 0000000..5799743 --- /dev/null +++ b/demos/sub-attaq/boat.cpp @@ -0,0 +1,318 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtCore module 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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +//Own +#include "boat.h" +#include "boat_p.h" +#include "bomb.h" +#include "pixmapitem.h" +#include "graphicsscene.h" +#include "animationmanager.h" +#include "custompropertyanimation.h" +#include "qanimationstate.h" + +//Qt +#include <QtCore/QPropertyAnimation> +#include <QtCore/QStateMachine> +#include <QtCore/QHistoryState> +#include <QtCore/QFinalState> +#include <QtCore/QState> +#include <QtCore/QSequentialAnimationGroup> + +static QAbstractAnimation *setupDestroyAnimation(Boat *boat) +{ + QSequentialAnimationGroup *group = new QSequentialAnimationGroup(boat); +#if QT_VERSION >=0x040500 + PixmapItem *step1 = new PixmapItem(QString("explosion/boat/step1"),GraphicsScene::Big, boat); + step1->setZValue(6); + PixmapItem *step2 = new PixmapItem(QString("explosion/boat/step2"),GraphicsScene::Big, boat); + step2->setZValue(6); + PixmapItem *step3 = new PixmapItem(QString("explosion/boat/step3"),GraphicsScene::Big, boat); + step3->setZValue(6); + PixmapItem *step4 = new PixmapItem(QString("explosion/boat/step4"),GraphicsScene::Big, boat); + step4->setZValue(6); + step1->setOpacity(0); + step2->setOpacity(0); + step3->setOpacity(0); + step4->setOpacity(0); + CustomPropertyAnimation *anim1 = new CustomPropertyAnimation(boat); + anim1->setMemberFunctions((QGraphicsItem*)step1, &QGraphicsItem::opacity, &QGraphicsItem::setOpacity); + anim1->setDuration(100); + anim1->setEndValue(1); + CustomPropertyAnimation *anim2 = new CustomPropertyAnimation(boat); + anim2->setMemberFunctions((QGraphicsItem*)step2, &QGraphicsItem::opacity, &QGraphicsItem::setOpacity); + anim2->setDuration(100); + anim2->setEndValue(1); + CustomPropertyAnimation *anim3 = new CustomPropertyAnimation(boat); + anim3->setMemberFunctions((QGraphicsItem*)step3, &QGraphicsItem::opacity, &QGraphicsItem::setOpacity); + anim3->setDuration(100); + anim3->setEndValue(1); + CustomPropertyAnimation *anim4 = new CustomPropertyAnimation(boat); + anim4->setMemberFunctions((QGraphicsItem*)step4, &QGraphicsItem::opacity, &QGraphicsItem::setOpacity); + anim4->setDuration(100); + anim4->setEndValue(1); + CustomPropertyAnimation *anim5 = new CustomPropertyAnimation(boat); + anim5->setMemberFunctions((QGraphicsItem*)step1, &QGraphicsItem::opacity, &QGraphicsItem::setOpacity); + anim5->setDuration(100); + anim5->setEndValue(0); + CustomPropertyAnimation *anim6 = new CustomPropertyAnimation(boat); + anim6->setMemberFunctions((QGraphicsItem*)step2, &QGraphicsItem::opacity, &QGraphicsItem::setOpacity); + anim6->setDuration(100); + anim6->setEndValue(0); + CustomPropertyAnimation *anim7 = new CustomPropertyAnimation(boat); + anim7->setMemberFunctions((QGraphicsItem*)step3, &QGraphicsItem::opacity, &QGraphicsItem::setOpacity); + anim7->setDuration(100); + anim7->setEndValue(0); + CustomPropertyAnimation *anim8 = new CustomPropertyAnimation(boat); + anim8->setMemberFunctions((QGraphicsItem*)step4, &QGraphicsItem::opacity, &QGraphicsItem::setOpacity); + anim8->setDuration(100); + anim8->setEndValue(0); + group->addAnimation(anim1); + group->addAnimation(anim2); + group->addAnimation(anim3); + group->addAnimation(anim4); + group->addAnimation(anim5); + group->addAnimation(anim6); + group->addAnimation(anim7); + group->addAnimation(anim8); +#else + // work around for a bug where we don't transition if the duration is zero. + QtPauseAnimation *anim = new QtPauseAnimation(group); + anim->setDuration(1); + group->addAnimation(anim); +#endif + AnimationManager::self()->registerAnimation(group); + return group; +} + + + +Boat::Boat(QGraphicsItem * parent, Qt::WindowFlags wFlags) + : QGraphicsWidget(parent,wFlags), speed(0), bombsAlreadyLaunched(0), direction(Boat::None), movementAnimation(0) +{ + pixmapItem = new PixmapItem(QString("boat"),GraphicsScene::Big, this); + setZValue(4); + setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); + setFlags(QGraphicsItem::ItemIsMovable | QGraphicsItem::ItemIsFocusable); + resize(pixmapItem->boundingRect().size()); + + //The movement animation used to animate the boat + movementAnimation = new QPropertyAnimation(this, "pos"); + + //The movement animation used to animate the boat + destroyAnimation = setupDestroyAnimation(this); + + //We setup the state machien of the boat + machine = new QStateMachine(this); + QState *moving = new QState(machine); + StopState *stopState = new StopState(this, moving); + machine->setInitialState(moving); + moving->setInitialState(stopState); + MoveStateRight *moveStateRight = new MoveStateRight(this, moving); + MoveStateLeft *moveStateLeft = new MoveStateLeft(this, moving); + LaunchStateRight *launchStateRight = new LaunchStateRight(this, machine); + LaunchStateLeft *launchStateLeft = new LaunchStateLeft(this, machine); + + //then setup the transitions for the rightMove state + KeyStopTransition *leftStopRight = new KeyStopTransition(this, QEvent::KeyPress, Qt::Key_Left); + leftStopRight->setTargetState(stopState); + KeyMoveTransition *leftMoveRight = new KeyMoveTransition(this, QEvent::KeyPress, Qt::Key_Left); + leftMoveRight->setTargetState(moveStateRight); + KeyMoveTransition *rightMoveRight = new KeyMoveTransition(this, QEvent::KeyPress, Qt::Key_Right); + rightMoveRight->setTargetState(moveStateRight); + KeyMoveTransition *rightMoveStop = new KeyMoveTransition(this, QEvent::KeyPress, Qt::Key_Right); + rightMoveStop->setTargetState(moveStateRight); + + //then setup the transitions for the leftMove state + KeyStopTransition *rightStopLeft = new KeyStopTransition(this, QEvent::KeyPress, Qt::Key_Right); + rightStopLeft->setTargetState(stopState); + KeyMoveTransition *rightMoveLeft = new KeyMoveTransition(this, QEvent::KeyPress, Qt::Key_Right); + rightMoveLeft->setTargetState(moveStateLeft); + KeyMoveTransition *leftMoveLeft = new KeyMoveTransition(this, QEvent::KeyPress,Qt::Key_Left); + leftMoveLeft->setTargetState(moveStateLeft); + KeyMoveTransition *leftMoveStop = new KeyMoveTransition(this, QEvent::KeyPress,Qt::Key_Left); + leftMoveStop->setTargetState(moveStateLeft); + + //We set up the right move state + moveStateRight->addTransition(leftStopRight); + moveStateRight->addTransition(leftMoveRight); + moveStateRight->addTransition(rightMoveRight); + stopState->addTransition(rightMoveStop); + + //We set up the left move state + moveStateLeft->addTransition(rightStopLeft); + moveStateLeft->addTransition(leftMoveLeft); + moveStateLeft->addTransition(rightMoveLeft); + stopState->addTransition(leftMoveStop); + + //The animation is finished, it means we reached the border of the screen, the boat is stopped so we move to the stop state + moveStateLeft->addTransition(movementAnimation, SIGNAL(finished()), stopState); + moveStateRight->addTransition(movementAnimation, SIGNAL(finished()), stopState); + + //We set up the keys for dropping bombs + KeyLaunchTransition *upFireLeft = new KeyLaunchTransition(this, QEvent::KeyPress, Qt::Key_Up); + upFireLeft->setTargetState(launchStateRight); + KeyLaunchTransition *upFireRight = new KeyLaunchTransition(this, QEvent::KeyPress, Qt::Key_Up); + upFireRight->setTargetState(launchStateRight); + KeyLaunchTransition *upFireStop = new KeyLaunchTransition(this, QEvent::KeyPress, Qt::Key_Up); + upFireStop->setTargetState(launchStateRight); + KeyLaunchTransition *downFireLeft = new KeyLaunchTransition(this, QEvent::KeyPress, Qt::Key_Down); + downFireLeft->setTargetState(launchStateLeft); + KeyLaunchTransition *downFireRight = new KeyLaunchTransition(this, QEvent::KeyPress, Qt::Key_Down); + downFireRight->setTargetState(launchStateLeft); + KeyLaunchTransition *downFireMove = new KeyLaunchTransition(this, QEvent::KeyPress, Qt::Key_Down); + downFireMove->setTargetState(launchStateLeft); + + //We set up transitions for fire up + moveStateRight->addTransition(upFireRight); + moveStateLeft->addTransition(upFireLeft); + stopState->addTransition(upFireStop); + + //We set up transitions for fire down + moveStateRight->addTransition(downFireRight); + moveStateLeft->addTransition(downFireLeft); + stopState->addTransition(downFireMove); + + //Finally the launch state should come back to its original state + QHistoryState *historyState = new QHistoryState(moving); + launchStateLeft->addTransition(historyState); + launchStateRight->addTransition(historyState); + + QFinalState *final = new QFinalState(machine); + + //This state play the destroyed animation + QAnimationState *destroyedState = new QAnimationState(machine); + destroyedState->setAnimation(destroyAnimation); + + //Play a nice animation when the boat is destroyed + moving->addTransition(this, SIGNAL(boatDestroyed()),destroyedState); + + //Transition to final state when the destroyed animation is finished + destroyedState->addTransition(destroyedState, SIGNAL(animationFinished()), final); + + //The machine has finished to be executed, then the boat is dead + connect(machine,SIGNAL(finished()),this, SIGNAL(boatExecutionFinished())); + +} + +void Boat::run() +{ + //We register animations + AnimationManager::self()->registerAnimation(movementAnimation); + AnimationManager::self()->registerAnimation(destroyAnimation); + machine->start(); +} + +void Boat::stop() +{ + movementAnimation->stop(); + machine->stop(); +} + +void Boat::updateBoatMovement() +{ + if (speed == 0 || direction == Boat::None) { + movementAnimation->stop(); + return; + } + + movementAnimation->stop(); + movementAnimation->setStartValue(pos()); + + if (direction == Boat::Left) { + movementAnimation->setEndValue(QPointF(0,y())); + movementAnimation->setDuration(x()/speed*15); + } + else /*if (direction == Boat::Right)*/ { + movementAnimation->setEndValue(QPointF(scene()->width()-size().width(),y())); + movementAnimation->setDuration((scene()->width()-size().width()-x())/speed*15); + } + movementAnimation->start(); +} + +void Boat::destroy() +{ + movementAnimation->stop(); + emit boatDestroyed(); +} + +int Boat::bombsLaunched() const +{ + return bombsAlreadyLaunched; +} + +void Boat::setBombsLaunched(int number) +{ + if (number > MAX_BOMB) { + qWarning("Boat::setBombsLaunched : It impossible to launch that number of bombs"); + return; + } + bombsAlreadyLaunched = number; +} + +int Boat::currentSpeed() const +{ + return speed; +} + +void Boat::setCurrentSpeed(int speed) +{ + if (speed > 3 || speed < 0) { + qWarning("Boat::setCurrentSpeed: The boat can't run on that speed"); + return; + } + this->speed = speed; +} + +enum Boat::Movement Boat::currentDirection() const +{ + return direction; +} + +void Boat::setCurrentDirection(Movement direction) +{ + this->direction = direction; +} + +int Boat::type() const +{ + return Type; +} diff --git a/demos/sub-attaq/boat.h b/demos/sub-attaq/boat.h new file mode 100644 index 0000000..b80f6dc --- /dev/null +++ b/demos/sub-attaq/boat.h @@ -0,0 +1,101 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtCore module 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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef __BOAT__H__ +#define __BOAT__H__ + +//Qt +#include <QtCore/QObject> +#include <QtGui/QKeyEvent> + +#include <QtGui/QGraphicsWidget> + +class PixmapItem; +class Bomb; +QT_BEGIN_NAMESPACE +class QVariantAnimation; +class QAbstractAnimation; +class QStateMachine; +QT_END_NAMESPACE + +class Boat : public QGraphicsWidget +{ +Q_OBJECT +public: + enum Movement { + None = 0, + Left, + Right + }; + enum { Type = UserType + 2 }; + Boat(QGraphicsItem *parent = 0, Qt::WindowFlags wFlags = 0); + void destroy(); + void run(); + void stop(); + + int bombsLaunched() const; + void setBombsLaunched(int number); + + int currentSpeed() const; + void setCurrentSpeed(int speed); + + enum Movement currentDirection() const; + void setCurrentDirection(Movement direction); + + void updateBoatMovement(); + + virtual int type() const; + +signals: + void boatDestroyed(); + void boatExecutionFinished(); + +private: + int speed; + int bombsAlreadyLaunched; + Movement direction; + QVariantAnimation *movementAnimation; + QAbstractAnimation *destroyAnimation; + QStateMachine *machine; + PixmapItem *pixmapItem; +}; + +#endif //__BOAT__H__ diff --git a/demos/sub-attaq/boat_p.h b/demos/sub-attaq/boat_p.h new file mode 100644 index 0000000..5fcde62 --- /dev/null +++ b/demos/sub-attaq/boat_p.h @@ -0,0 +1,256 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the examples 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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef BOAT_P_H +#define BOAT_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +//Own +#include "bomb.h" +#include "graphicsscene.h" + +// Qt +#include <QtGui/QKeyEventTransition> + +static const int MAX_BOMB = 5; + + +//These transtion test if we have to stop the boat (i.e current speed is 1) +class KeyStopTransition : public QKeyEventTransition +{ +public: + KeyStopTransition(Boat *boat, QEvent::Type type, int key) + : QKeyEventTransition(boat, type, key) + { + this->boat = boat; + this->key = key; + } +protected: + virtual bool eventTest(QEvent *event) + { + Q_UNUSED(event); + if (!QKeyEventTransition::eventTest(event)) + return false; + if (boat->currentSpeed() == 1) + return true; + else + return false; + } +private: + Boat * boat; + int key; +}; + +//These transtion test if we have to move the boat (i.e current speed was 0 or another value) + class KeyMoveTransition : public QKeyEventTransition +{ +public: + KeyMoveTransition(Boat *boat, QEvent::Type type, int key) + : QKeyEventTransition(boat, type, key) + { + this->boat = boat; + this->key = key; + } +protected: + virtual bool eventTest(QEvent *event) + { + Q_UNUSED(event); + if (!QKeyEventTransition::eventTest(event)) + return false; + if (boat->currentSpeed() >= 0) + return true; + else + return false; + + } + void onTransition(QEvent *) + { + //We decrease the speed if needed + if (key == Qt::Key_Left && boat->currentDirection() == Boat::Right) + boat->setCurrentSpeed(boat->currentSpeed() - 1); + else if (key == Qt::Key_Right && boat->currentDirection() == Boat::Left) + boat->setCurrentSpeed(boat->currentSpeed() - 1); + else if (boat->currentSpeed() < 3) + boat->setCurrentSpeed(boat->currentSpeed() + 1); + boat->updateBoatMovement(); + } +private: + Boat * boat; + int key; +}; + +//This transition trigger the bombs launch + class KeyLaunchTransition : public QKeyEventTransition +{ +public: + KeyLaunchTransition(Boat *boat, QEvent::Type type, int key) + : QKeyEventTransition(boat, type, key) + { + this->boat = boat; + this->key = key; + } +protected: + virtual bool eventTest(QEvent *event) + { + Q_UNUSED(event); + if (!QKeyEventTransition::eventTest(event)) + return false; + //We have enough bomb? + if (boat->bombsLaunched() < MAX_BOMB) + return true; + else + return false; + } +private: + Boat * boat; + int key; +}; + +//This state is describing when the boat is moving right +class MoveStateRight : public QState +{ +public: + MoveStateRight(Boat *boat,QState *parent = 0) : QState(parent) + { + this->boat = boat; + } +protected: + void onEntry(QEvent *) + { + boat->setCurrentDirection(Boat::Right); + boat->updateBoatMovement(); + } +private: + Boat * boat; +}; + + //This state is describing when the boat is moving left +class MoveStateLeft : public QState +{ +public: + MoveStateLeft(Boat *boat,QState *parent = 0) : QState(parent) + { + this->boat = boat; + } +protected: + void onEntry(QEvent *) + { + boat->setCurrentDirection(Boat::Left); + boat->updateBoatMovement(); + } +private: + Boat * boat; +}; + +//This state is describing when the boat is in a stand by position +class StopState : public QState +{ +public: + StopState(Boat *boat,QState *parent = 0) : QState(parent) + { + this->boat = boat; + } +protected: + void onEntry(QEvent *) + { + boat->setCurrentSpeed(0); + boat->setCurrentDirection(Boat::None); + boat->updateBoatMovement(); + } +private: + Boat * boat; +}; + +//This state is describing the launch of the torpedo on the right +class LaunchStateRight : public QState +{ +public: + LaunchStateRight(Boat *boat,QState *parent = 0) : QState(parent) + { + this->boat = boat; + } +protected: + void onEntry(QEvent *) + { + Bomb *b = new Bomb(); + b->setPos(boat->x()+boat->size().width(),boat->y()); + GraphicsScene *scene = static_cast<GraphicsScene *>(boat->scene()); + scene->addItem(b); + b->launch(Bomb::Right); + boat->setBombsLaunched(boat->bombsLaunched() + 1); + } +private: + Boat * boat; +}; + +//This state is describing the launch of the torpedo on the left +class LaunchStateLeft : public QState +{ +public: + LaunchStateLeft(Boat *boat,QState *parent = 0) : QState(parent) + { + this->boat = boat; + } +protected: + void onEntry(QEvent *) + { + Bomb *b = new Bomb(); + b->setPos(boat->x() - b->size().width(), boat->y()); + GraphicsScene *scene = static_cast<GraphicsScene *>(boat->scene()); + scene->addItem(b); + b->launch(Bomb::Left); + boat->setBombsLaunched(boat->bombsLaunched() + 1); + } +private: + Boat * boat; +}; + +#endif // BOAT_P_H diff --git a/demos/sub-attaq/bomb.cpp b/demos/sub-attaq/bomb.cpp new file mode 100644 index 0000000..b047341 --- /dev/null +++ b/demos/sub-attaq/bomb.cpp @@ -0,0 +1,124 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtCore module 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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +//Own +#include "bomb.h" +#include "submarine.h" +#include "pixmapitem.h" +#include "animationmanager.h" +#include "qanimationstate.h" + +//Qt +#include <QtCore/QSequentialAnimationGroup> +#include <QtCore/QPropertyAnimation> +#include <QtCore/QStateMachine> +#include <QtCore/QFinalState> + +Bomb::Bomb(QGraphicsItem * parent, Qt::WindowFlags wFlags) + : QGraphicsWidget(parent,wFlags), launchAnimation(0) +{ + pixmapItem = new PixmapItem(QString("bomb"),GraphicsScene::Big, this); + setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); + setFlags(QGraphicsItem::ItemIsMovable); + setZValue(2); + resize(pixmapItem->boundingRect().size()); +} + +void Bomb::launch(Bomb::Direction direction) +{ + launchAnimation = new QSequentialAnimationGroup(); + AnimationManager::self()->registerAnimation(launchAnimation); + qreal delta = direction == Right ? 20 : - 20; + QPropertyAnimation *anim = new QPropertyAnimation(this, "pos"); + anim->setEndValue(QPointF(x() + delta,y() - 20)); + anim->setDuration(150); + launchAnimation->addAnimation(anim); + anim = new QPropertyAnimation(this, "pos"); + anim->setEndValue(QPointF(x() + delta*2, y() )); + anim->setDuration(150); + launchAnimation->addAnimation(anim); + anim = new QPropertyAnimation(this, "pos"); + anim->setEndValue(QPointF(x() + delta*2,scene()->height())); + anim->setDuration(y()/2*60); + launchAnimation->addAnimation(anim); + connect(anim,SIGNAL(valueChanged(const QVariant &)),this,SLOT(onAnimationLaunchValueChanged(const QVariant &))); + + //We setup the state machine of the bomb + QStateMachine *machine = new QStateMachine(this); + + //This state is when the launch animation is playing + QAnimationState *launched = new QAnimationState(machine); + launched->setAnimation(launchAnimation); + + //End + QFinalState *final = new QFinalState(machine); + + machine->setInitialState(launched); + + //### Add a nice animation when the bomb is destroyed + launched->addTransition(this, SIGNAL(bombExplosed()),final); + + //If the animation is finished, then we move to the final state + launched->addTransition(launched, SIGNAL(animationFinished()), final); + + //The machine has finished to be executed, then the boat is dead + connect(machine,SIGNAL(finished()),this, SIGNAL(bombExecutionFinished())); + + machine->start(); + +} + +void Bomb::onAnimationLaunchValueChanged(const QVariant &) +{ + foreach (QGraphicsItem * item , collidingItems(Qt::IntersectsItemBoundingRect)) { + if (item->type() == SubMarine::Type) { + SubMarine *s = static_cast<SubMarine *>(item); + destroy(); + s->destroy(); + } + } +} + +void Bomb::destroy() +{ + launchAnimation->stop(); + emit bombExplosed(); +} diff --git a/demos/sub-attaq/bomb.h b/demos/sub-attaq/bomb.h new file mode 100644 index 0000000..60d3fab --- /dev/null +++ b/demos/sub-attaq/bomb.h @@ -0,0 +1,75 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtCore module 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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef __BOMB__H__ +#define __BOMB__H__ + +//Qt +#include <QtGui/QGraphicsWidget> +#include <QtCore/QAnimationGroup> + +class PixmapItem; + +class Bomb : public QGraphicsWidget +{ +Q_OBJECT +public: + enum Direction { + Left = 0, + Right + }; + Bomb(QGraphicsItem * parent = 0, Qt::WindowFlags wFlags = 0); + void launch(Direction direction); + void destroy(); + +signals: + void bombExplosed(); + void bombExecutionFinished(); + +private slots: + void onAnimationLaunchValueChanged(const QVariant &); + +private: + QAnimationGroup *launchAnimation; + PixmapItem *pixmapItem; +}; + +#endif //__BOMB__H__ diff --git a/demos/sub-attaq/custompropertyanimation.cpp b/demos/sub-attaq/custompropertyanimation.cpp new file mode 100644 index 0000000..3975ce4 --- /dev/null +++ b/demos/sub-attaq/custompropertyanimation.cpp @@ -0,0 +1,108 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtCore module 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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "custompropertyanimation.h" + +// Qt +#include <QtCore/qdebug.h> + +CustomPropertyAnimation::CustomPropertyAnimation(QObject *parent) : + QVariantAnimation(parent), animProp(0) +{ +} + +CustomPropertyAnimation::~CustomPropertyAnimation() +{ +} + +void CustomPropertyAnimation::setProperty(AbstractProperty *_animProp) +{ + if (animProp == _animProp) + return; + delete animProp; + animProp = _animProp; +} + +/*! + \reimp + */ +void CustomPropertyAnimation::updateCurrentValue(const QVariant &value) +{ + if (!animProp || state() == QAbstractAnimation::Stopped) + return; + + animProp->write(value); +} + + +/*! + \reimp +*/ +void CustomPropertyAnimation::updateState(QAbstractAnimation::State oldState, QAbstractAnimation::State newState) +{ + // Initialize start value + if (oldState == QAbstractAnimation::Stopped) { + if (!animProp) + return; + QVariant def = animProp->read(); + if (def.isValid()) { + const int t = def.userType(); + KeyValues values = keyValues(); + //this ensures that all the keyValues are of type t + for (int i = 0; i < values.count(); ++i) { + QVariantAnimation::KeyValue &pair = values[i]; + if (pair.second.userType() != t) + pair.second.convert(static_cast<QVariant::Type>(t)); + } + //let's now update the key values + setKeyValues(values); + } + + if ((animProp && !startValue().isValid() && currentTime() == 0) + || (currentTime() == duration() && currentLoop() == (loopCount() - 1))) { + setStartValue(def); + } + } + + QVariantAnimation::updateState(oldState, newState); +} + +#include "moc_custompropertyanimation.cpp" diff --git a/demos/sub-attaq/custompropertyanimation.h b/demos/sub-attaq/custompropertyanimation.h new file mode 100644 index 0000000..7146887 --- /dev/null +++ b/demos/sub-attaq/custompropertyanimation.h @@ -0,0 +1,114 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtCore module 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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef CUSTOMPROPERTYANIMATION_H +#define CUSTOMPROPERTYANIMATION_H + +#include <QtCore/qvariantanimation.h> + +QT_BEGIN_NAMESPACE +class QGraphicsItem; +QT_END_NAMESPACE + +struct AbstractProperty +{ + virtual QVariant read() const = 0; + virtual void write(const QVariant &value) = 0; +}; + + +class CustomPropertyAnimation : public QVariantAnimation +{ + Q_OBJECT + + template <typename Target, typename T, typename T2 = T> + class MemberFunctionProperty : public AbstractProperty + { + public: + typedef T (Target::*Getter)(void) const; + typedef void (Target::*Setter)(T2); + + MemberFunctionProperty(Target* target, Getter getter, Setter setter) + : m_target(target), m_getter(getter), m_setter(setter) {} + + virtual void write(const QVariant &value) + { + if (m_setter) (m_target->*m_setter)(qVariantValue<T>(value)); + } + + virtual QVariant read() const + { + if (m_getter) return qVariantFromValue<T>((m_target->*m_getter)()); + return QVariant(); + } + + private: + Target *m_target; + Getter m_getter; + Setter m_setter; + }; + +public: + CustomPropertyAnimation(QObject *parent = 0); + ~CustomPropertyAnimation(); + + template<class Target, typename T> + void setMemberFunctions(Target* target, T (Target::*getter)() const, void (Target::*setter)(const T& )) + { + setProperty(new MemberFunctionProperty<Target, T, const T&>(target, getter, setter)); + } + + template<class Target, typename T> + void setMemberFunctions(Target* target, T (Target::*getter)() const, void (Target::*setter)(T)) + { + setProperty(new MemberFunctionProperty<Target, T>(target, getter, setter)); + } + + void updateCurrentValue(const QVariant &value); + void updateState(QAbstractAnimation::State oldState, QAbstractAnimation::State newState); + void setProperty(AbstractProperty *animProp); + +private: + Q_DISABLE_COPY(CustomPropertyAnimation); + AbstractProperty *animProp; +}; + +#endif // CUSTOMPROPERTYANIMATION_H diff --git a/demos/sub-attaq/data.xml b/demos/sub-attaq/data.xml new file mode 100644 index 0000000..0f30515 --- /dev/null +++ b/demos/sub-attaq/data.xml @@ -0,0 +1,39 @@ +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> +<subattaq> + <submarines> + <submarine type="0" points="10" name="Q1" /> + <submarine type="1" points="20" name="Q2" /> + </submarines> + <levels> + <level id="0" name="Seaman recruit"> + <subinstance type="0" nb="1"/> + </level> + <level id="1" name="Seaman apprentice"> + <subinstance type="0" nb="2"/> + </level> + <level id="2" name="Seaman"> + <subinstance type="0" nb="4"/> + </level> + <level id="3" name="Petty Officer Third Class"> + <subinstance type="0" nb="6"/> + </level> + <level id="4" name="Petty Officer Second Class"> + <subinstance type="0" nb="6"/> + </level> + <level id="5" name="Petty Officer First Class"> + <subinstance type="0" nb="8"/> + </level> + <level id="6" name="Lieutenant"> + <subinstance type="0" nb="10"/> + </level> + <level id="7" name="Commander"> + <subinstance type="0" nb="15"/> + </level> + <level id="8" name="Captain"> + <subinstance type="0" nb="12"/> + </level> + <level id="9" name="Admiral"> + <subinstance type="0" nb="12"/> + </level> + </levels> +</subattaq> diff --git a/demos/sub-attaq/graphicsscene.cpp b/demos/sub-attaq/graphicsscene.cpp new file mode 100644 index 0000000..210cb0e --- /dev/null +++ b/demos/sub-attaq/graphicsscene.cpp @@ -0,0 +1,374 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtCore module 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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +//Own +#include "graphicsscene.h" +#include "states.h" +#include "boat.h" +#include "submarine.h" +#include "torpedo.h" +#include "bomb.h" +#include "pixmapitem.h" +#include "custompropertyanimation.h" +#include "animationmanager.h" +#include "qanimationstate.h" +#include "progressitem.h" + +//Qt +#include <QtCore/QPropertyAnimation> +#include <QtCore/QSequentialAnimationGroup> +#include <QtCore/QParallelAnimationGroup> +#include <QtCore/QStateMachine> +#include <QtCore/QFinalState> +#include <QtCore/QPauseAnimation> +#include <QtGui/QAction> +#include <QtCore/QDir> +#include <QtGui/QApplication> +#include <QtGui/QMessageBox> +#include <QtGui/QGraphicsView> +#include <QtGui/QGraphicsSceneMouseEvent> +#include <QtCore/QXmlStreamReader> + +//helper function that creates an animation for position and inserts it into group +static CustomPropertyAnimation *addGraphicsItemPosAnimation(QSequentialAnimationGroup *group, + QGraphicsItem *item, const QPointF &endPos) +{ + CustomPropertyAnimation *ret = new CustomPropertyAnimation(group); + ret->setMemberFunctions(item, &QGraphicsItem::pos, &QGraphicsItem::setPos); + ret->setEndValue(endPos); + ret->setDuration(200); + ret->setEasingCurve(QEasingCurve::OutElastic); + group->addPause(50); + return ret; +} + +//helper function that creates an animation for opacity and inserts it into group +static void addGraphicsItemFadeoutAnimation(QAnimationGroup *group, QGraphicsItem *item) +{ +#if QT_VERSION >=0x040500 + CustomPropertyAnimation *anim = new CustomPropertyAnimation(group); + anim->setMemberFunctions(item, &QGraphicsItem::opacity, &QGraphicsItem::setOpacity); + anim->setDuration(800); + anim->setEndValue(0); + anim->setEasingCurve(QEasingCurve::OutQuad); +#else + // work around for a bug where we don't transition if the duration is zero. + QtPauseAnimation *anim = new QtPauseAnimation(group); + anim->setDuration(1); +#endif +} + +GraphicsScene::GraphicsScene(int x, int y, int width, int height, Mode mode) + : QGraphicsScene(x,y,width,height), mode(mode), newAction(0), quitAction(0), boat(0) +{ + backgroundItem = new PixmapItem(QString("background"),mode); + backgroundItem->setZValue(1); + backgroundItem->setPos(0,0); + addItem(backgroundItem); + + PixmapItem *surfaceItem = new PixmapItem(QString("surface"),mode); + surfaceItem->setZValue(3); + surfaceItem->setPos(0,sealLevel() - surfaceItem->boundingRect().height()/2); + addItem(surfaceItem); + + //The item that display score and level + progressItem = new ProgressItem(backgroundItem); + + //We create the boat + boat = new Boat(); + addItem(boat); + boat->setPos(this->width()/2, sealLevel() - boat->size().height()); + boat->hide(); + + //parse the xml that contain all data of the game + QXmlStreamReader reader; + QFile file(":data.xml"); + file.open(QIODevice::ReadOnly); + reader.setDevice(&file); + LevelDescription currentLevel; + while (!reader.atEnd()) { + reader.readNext(); + if (reader.tokenType() == QXmlStreamReader::StartElement) { + if (reader.name() == "submarine") + { + SubmarineDescription desc; + desc.name = reader.attributes().value("name").toString(); + desc.points = reader.attributes().value("points").toString().toInt(); + desc.type = reader.attributes().value("type").toString().toInt(); + submarinesData.append(desc); + } + if (reader.name() == "level") + { + currentLevel.id = reader.attributes().value("id").toString().toInt(); + currentLevel.name = reader.attributes().value("name").toString(); + } + if (reader.name() == "subinstance") + { + currentLevel.submarines.append(qMakePair(reader.attributes().value("type").toString().toInt(),reader.attributes().value("nb").toString().toInt())); + } + } + if (reader.tokenType() == QXmlStreamReader::EndElement) { + if (reader.name() == "level") + { + levelsData.insert(currentLevel.id,currentLevel); + currentLevel.submarines.clear(); + } + } + } +} + +qreal GraphicsScene::sealLevel() const +{ + if (mode == Big) + return 220; + else + return 160; +} + +void GraphicsScene::setupScene(const QList<QAction *> &actions) +{ + newAction = actions.at(0); + quitAction = actions.at(1); + + QGraphicsItem *logo_s = addWelcomeItem(QPixmap(":/logo-s")); + QGraphicsItem *logo_u = addWelcomeItem(QPixmap(":/logo-u")); + QGraphicsItem *logo_b = addWelcomeItem(QPixmap(":/logo-b")); + QGraphicsItem *logo_dash = addWelcomeItem(QPixmap(":/logo-dash")); + QGraphicsItem *logo_a = addWelcomeItem(QPixmap(":/logo-a")); + QGraphicsItem *logo_t = addWelcomeItem(QPixmap(":/logo-t")); + QGraphicsItem *logo_t2 = addWelcomeItem(QPixmap(":/logo-t2")); + QGraphicsItem *logo_a2 = addWelcomeItem(QPixmap(":/logo-a2")); + QGraphicsItem *logo_q = addWelcomeItem(QPixmap(":/logo-q")); + QGraphicsItem *logo_excl = addWelcomeItem(QPixmap(":/logo-excl")); + logo_s->setZValue(3); + logo_u->setZValue(4); + logo_b->setZValue(5); + logo_dash->setZValue(6); + logo_a->setZValue(7); + logo_t->setZValue(8); + logo_t2->setZValue(9); + logo_a2->setZValue(10); + logo_q->setZValue(11); + logo_excl->setZValue(12); + logo_s->setPos(QPointF(-1000, -1000)); + logo_u->setPos(QPointF(-800, -1000)); + logo_b->setPos(QPointF(-600, -1000)); + logo_dash->setPos(QPointF(-400, -1000)); + logo_a->setPos(QPointF(1000, 2000)); + logo_t->setPos(QPointF(800, 2000)); + logo_t2->setPos(QPointF(600, 2000)); + logo_a2->setPos(QPointF(400, 2000)); + logo_q->setPos(QPointF(200, 2000)); + logo_excl->setPos(QPointF(0, 2000)); + + QSequentialAnimationGroup * lettersGroupMoving = new QSequentialAnimationGroup(this); + QParallelAnimationGroup * lettersGroupFading = new QParallelAnimationGroup(this); + + //creation of the animations for moving letters + addGraphicsItemPosAnimation(lettersGroupMoving, logo_s, QPointF(300, 150)); + addGraphicsItemPosAnimation(lettersGroupMoving, logo_u, QPointF(350, 150)); + addGraphicsItemPosAnimation(lettersGroupMoving, logo_b, QPointF(400, 120)); + addGraphicsItemPosAnimation(lettersGroupMoving, logo_dash, QPointF(460, 150)); + addGraphicsItemPosAnimation(lettersGroupMoving, logo_a, QPointF(350, 250)); + addGraphicsItemPosAnimation(lettersGroupMoving, logo_t, QPointF(400, 250)); + addGraphicsItemPosAnimation(lettersGroupMoving, logo_t2, QPointF(430, 250)); + addGraphicsItemPosAnimation(lettersGroupMoving, logo_a2, QPointF(465, 250)); + addGraphicsItemPosAnimation(lettersGroupMoving, logo_q, QPointF(510, 250)); + addGraphicsItemPosAnimation(lettersGroupMoving, logo_excl, QPointF(570, 220)); + + //creation of the animations for fading out the letters + addGraphicsItemFadeoutAnimation(lettersGroupFading, logo_s); + addGraphicsItemFadeoutAnimation(lettersGroupFading, logo_u); + addGraphicsItemFadeoutAnimation(lettersGroupFading, logo_b); + addGraphicsItemFadeoutAnimation(lettersGroupFading, logo_dash); + addGraphicsItemFadeoutAnimation(lettersGroupFading, logo_a); + addGraphicsItemFadeoutAnimation(lettersGroupFading, logo_t); + addGraphicsItemFadeoutAnimation(lettersGroupFading, logo_t2); + addGraphicsItemFadeoutAnimation(lettersGroupFading, logo_a2); + addGraphicsItemFadeoutAnimation(lettersGroupFading, logo_q); + addGraphicsItemFadeoutAnimation(lettersGroupFading, logo_excl); + connect(lettersGroupFading, SIGNAL(finished()), this, SLOT(onIntroAnimationFinished())); + + QStateMachine *machine = new QStateMachine(this); + + //This state is when the player is playing + PlayState *gameState = new PlayState(this,machine); + + //Final state + QFinalState *final = new QFinalState(machine); + + //Animation when the player enter in the game + QAnimationState *lettersMovingState = new QAnimationState(machine); + lettersMovingState->setAnimation(lettersGroupMoving); + + //Animation when the welcome screen disappear + QAnimationState *lettersFadingState = new QAnimationState(machine); + lettersFadingState->setAnimation(lettersGroupFading); + + //if new game then we fade out the welcome screen and start playing + lettersMovingState->addTransition(newAction, SIGNAL(triggered()),lettersFadingState); + lettersFadingState->addTransition(lettersFadingState, SIGNAL(animationFinished()),gameState); + + //New Game is triggered then player start playing + gameState->addTransition(newAction, SIGNAL(triggered()),gameState); + + //Wanna quit, then connect to CTRL+Q + gameState->addTransition(quitAction, SIGNAL(triggered()),final); + lettersMovingState->addTransition(quitAction, SIGNAL(triggered()),final); + + //Welcome screen is the initial state + machine->setInitialState(lettersMovingState); + + machine->start(); + + //We reach the final state, then we quit + connect(machine,SIGNAL(finished()),this, SLOT(onQuitGameTriggered())); +} + +void GraphicsScene::addItem(Bomb *bomb) +{ + bombs.insert(bomb); + connect(bomb,SIGNAL(bombExecutionFinished()),this, SLOT(onBombExecutionFinished())); + QGraphicsScene::addItem(bomb); +} + +void GraphicsScene::addItem(Torpedo *torpedo) +{ + torpedos.insert(torpedo); + connect(torpedo,SIGNAL(torpedoExecutionFinished()),this, SLOT(onTorpedoExecutionFinished())); + QGraphicsScene::addItem(torpedo); +} + +void GraphicsScene::addItem(SubMarine *submarine) +{ + submarines.insert(submarine); + connect(submarine,SIGNAL(subMarineExecutionFinished()),this, SLOT(onSubMarineExecutionFinished())); + QGraphicsScene::addItem(submarine); +} + +void GraphicsScene::addItem(QGraphicsItem *item) +{ + QGraphicsScene::addItem(item); +} + +void GraphicsScene::mousePressEvent (QGraphicsSceneMouseEvent * event) +{ + event->ignore(); +} + +void GraphicsScene::onQuitGameTriggered() +{ + qApp->closeAllWindows(); +} + +void GraphicsScene::onBombExecutionFinished() +{ + Bomb *bomb = qobject_cast<Bomb *>(sender()); + bombs.remove(bomb); + bomb->deleteLater(); + if (boat) + boat->setBombsLaunched(boat->bombsLaunched() - 1); +} + +void GraphicsScene::onTorpedoExecutionFinished() +{ + Torpedo *torpedo = qobject_cast<Torpedo *>(sender()); + torpedos.remove(torpedo); + torpedo->deleteLater(); +} + +void GraphicsScene::onSubMarineExecutionFinished() +{ + SubMarine *submarine = qobject_cast<SubMarine *>(sender()); + submarines.remove(submarine); + if (submarines.count() == 0) { + emit allSubMarineDestroyed(submarine->points()); + } else { + emit subMarineDestroyed(submarine->points()); + } + submarine->deleteLater(); +} + +int GraphicsScene::remainingSubMarines() const +{ + return submarines.count(); +} + +void GraphicsScene::clearScene() +{ + foreach (SubMarine *sub,submarines) { + sub->destroy(); + sub->deleteLater(); + } + + foreach (Torpedo *torpedo,torpedos) { + torpedo->destroy(); + torpedo->deleteLater(); + } + + foreach (Bomb *bomb,bombs) { + bomb->destroy(); + bomb->deleteLater(); + } + + submarines.clear(); + bombs.clear(); + torpedos.clear(); + + AnimationManager::self()->unregisterAllAnimations(); + + boat->stop(); + boat->hide(); +} + +QGraphicsPixmapItem *GraphicsScene::addWelcomeItem(const QPixmap &pm) +{ + QGraphicsPixmapItem *item = addPixmap(pm); + welcomeItems << item; + return item; +} + +void GraphicsScene::onIntroAnimationFinished() +{ + qDeleteAll(welcomeItems); + welcomeItems.clear(); +} + diff --git a/demos/sub-attaq/graphicsscene.h b/demos/sub-attaq/graphicsscene.h new file mode 100644 index 0000000..1501db8 --- /dev/null +++ b/demos/sub-attaq/graphicsscene.h @@ -0,0 +1,131 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtCore module 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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef __GRAPHICSSCENE__H__ +#define __GRAPHICSSCENE__H__ + +//Qt +#include <QtGui/QGraphicsScene> +#include <QtCore/QSet> +#include <QtCore/QState> + + +class Boat; +class SubMarine; +class Torpedo; +class Bomb; +class PixmapItem; +class ProgressItem; +QT_BEGIN_NAMESPACE +class QAction; +QT_END_NAMESPACE + +class GraphicsScene : public QGraphicsScene +{ +Q_OBJECT +public: + enum Mode { + Big = 0, + Small + }; + + struct SubmarineDescription { + int type; + int points; + QString name; + }; + + struct LevelDescription { + int id; + QString name; + QList<QPair<int,int> > submarines; + }; + + GraphicsScene(int x, int y, int width, int height, Mode mode = Big); + qreal sealLevel() const; + void setupScene(const QList<QAction *> &actions); + void addItem(Bomb *bomb); + void addItem(Torpedo *torpedo); + void addItem(SubMarine *submarine); + void addItem(QGraphicsItem *item); + int remainingSubMarines() const; + void clearScene(); + QGraphicsPixmapItem *addWelcomeItem(const QPixmap &pm); + +signals: + void subMarineDestroyed(int); + void allSubMarineDestroyed(int); + +protected: + void mousePressEvent (QGraphicsSceneMouseEvent * event); + +private slots: + void onQuitGameTriggered(); + void onBombExecutionFinished(); + void onTorpedoExecutionFinished(); + void onSubMarineExecutionFinished(); + void onIntroAnimationFinished(); + +private: + Mode mode; + PixmapItem *backgroundItem; + ProgressItem *progressItem; + QAction * newAction; + QAction * quitAction; + Boat *boat; + QSet<SubMarine *> submarines; + QSet<Bomb *> bombs; + QSet<Torpedo *> torpedos; + QVector<QGraphicsPixmapItem *> welcomeItems; + QVector<SubmarineDescription> submarinesData; + QHash<int, LevelDescription> levelsData; + + friend class PauseState; + friend class PlayState; + friend class LevelState; + friend class LostState; + friend class WinState; + friend class WinTransition; + friend class UpdateScoreTransition; +}; + +#endif //__GRAPHICSSCENE__H__ + diff --git a/demos/sub-attaq/main.cpp b/demos/sub-attaq/main.cpp new file mode 100644 index 0000000..fc74471 --- /dev/null +++ b/demos/sub-attaq/main.cpp @@ -0,0 +1,57 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtCore module 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> + +#include "mainwindow.h" + +int main(int argc, char *argv[]) +{ + QApplication app(argc, argv); + Q_INIT_RESOURCE(subattaq); + + qsrand(QTime(0,0,0).secsTo(QTime::currentTime())); + + MainWindow w; + w.show(); + + return app.exec(); +} diff --git a/demos/sub-attaq/mainwindow.cpp b/demos/sub-attaq/mainwindow.cpp new file mode 100644 index 0000000..26cfc67 --- /dev/null +++ b/demos/sub-attaq/mainwindow.cpp @@ -0,0 +1,97 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtCore module 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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +//Own +#include "mainwindow.h" +#include "graphicsscene.h" + +//Qt +#include <QGraphicsView> + +#ifdef QT_NO_OPENGL + #include <QtGui/QMenuBar> + #include <QtGui/QLayout> + #include <QtGui/QApplication> +#else + #include <QtOpenGL/QtOpenGL> +#endif + +MainWindow::MainWindow() : QMainWindow(0) +{ + QMenuBar *menuBar = new QMenuBar; + QMenu *file = new QMenu(tr("&File"),menuBar); + + QAction *newAction = new QAction(tr("New Game"),file); + newAction->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_N)); + file->addAction(newAction); + QAction *quitAction = new QAction(tr("Quit"),file); + quitAction->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_Q)); + file->addAction(quitAction); + + menuBar->addMenu(file); + setMenuBar(menuBar); + + QStringList list = QApplication::arguments(); + if (list.contains("-fullscreen")) { + scene = new GraphicsScene(0, 0, 750, 400,GraphicsScene::Small); + setWindowState(Qt::WindowFullScreen); + } else { + scene = new GraphicsScene(0, 0, 880, 630); + layout()->setSizeConstraint(QLayout::SetFixedSize); + } + + view = new QGraphicsView(scene,this); + view->setAlignment(Qt::AlignLeft | Qt::AlignTop); + QList<QAction *> actions; + actions << newAction << quitAction; + scene->setupScene(actions); +#ifndef QT_NO_OPENGL + view->setViewport(new QGLWidget(QGLFormat(QGL::SampleBuffers))); +#endif + + setCentralWidget(view); + +} + +MainWindow::~MainWindow() +{ +} + diff --git a/demos/sub-attaq/mainwindow.h b/demos/sub-attaq/mainwindow.h new file mode 100644 index 0000000..434b98c --- /dev/null +++ b/demos/sub-attaq/mainwindow.h @@ -0,0 +1,64 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtCore module 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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef __MAINWINDOW__H__ +#define __MAINWINDOW__H__ + +//Qt +#include <QtGui/QMainWindow> +class GraphicsScene; +QT_BEGIN_NAMESPACE +class QGraphicsView; +QT_END_NAMESPACE + +class MainWindow : public QMainWindow +{ +Q_OBJECT +public: + MainWindow(); + ~MainWindow(); + +private: + GraphicsScene *scene; + QGraphicsView *view; +}; + +#endif //__MAINWINDOW__H__ diff --git a/demos/sub-attaq/pics/big/background.png b/demos/sub-attaq/pics/big/background.png Binary files differnew file mode 100644 index 0000000..9f58157 --- /dev/null +++ b/demos/sub-attaq/pics/big/background.png diff --git a/demos/sub-attaq/pics/big/boat.png b/demos/sub-attaq/pics/big/boat.png Binary files differnew file mode 100644 index 0000000..be82dff --- /dev/null +++ b/demos/sub-attaq/pics/big/boat.png diff --git a/demos/sub-attaq/pics/big/bomb.png b/demos/sub-attaq/pics/big/bomb.png Binary files differnew file mode 100644 index 0000000..3af5f2f --- /dev/null +++ b/demos/sub-attaq/pics/big/bomb.png diff --git a/demos/sub-attaq/pics/big/explosion/boat/step1.png b/demos/sub-attaq/pics/big/explosion/boat/step1.png Binary files differnew file mode 100644 index 0000000..c9fd8b0 --- /dev/null +++ b/demos/sub-attaq/pics/big/explosion/boat/step1.png diff --git a/demos/sub-attaq/pics/big/explosion/boat/step2.png b/demos/sub-attaq/pics/big/explosion/boat/step2.png Binary files differnew file mode 100644 index 0000000..7528f2d --- /dev/null +++ b/demos/sub-attaq/pics/big/explosion/boat/step2.png diff --git a/demos/sub-attaq/pics/big/explosion/boat/step3.png b/demos/sub-attaq/pics/big/explosion/boat/step3.png Binary files differnew file mode 100644 index 0000000..aae9c9c --- /dev/null +++ b/demos/sub-attaq/pics/big/explosion/boat/step3.png diff --git a/demos/sub-attaq/pics/big/explosion/boat/step4.png b/demos/sub-attaq/pics/big/explosion/boat/step4.png Binary files differnew file mode 100644 index 0000000..d697c1b --- /dev/null +++ b/demos/sub-attaq/pics/big/explosion/boat/step4.png diff --git a/demos/sub-attaq/pics/big/explosion/submarine/step1.png b/demos/sub-attaq/pics/big/explosion/submarine/step1.png Binary files differnew file mode 100644 index 0000000..88ca514 --- /dev/null +++ b/demos/sub-attaq/pics/big/explosion/submarine/step1.png diff --git a/demos/sub-attaq/pics/big/explosion/submarine/step2.png b/demos/sub-attaq/pics/big/explosion/submarine/step2.png Binary files differnew file mode 100644 index 0000000..524f589 --- /dev/null +++ b/demos/sub-attaq/pics/big/explosion/submarine/step2.png diff --git a/demos/sub-attaq/pics/big/explosion/submarine/step3.png b/demos/sub-attaq/pics/big/explosion/submarine/step3.png Binary files differnew file mode 100644 index 0000000..2cca1e8 --- /dev/null +++ b/demos/sub-attaq/pics/big/explosion/submarine/step3.png diff --git a/demos/sub-attaq/pics/big/explosion/submarine/step4.png b/demos/sub-attaq/pics/big/explosion/submarine/step4.png Binary files differnew file mode 100644 index 0000000..82100a8 --- /dev/null +++ b/demos/sub-attaq/pics/big/explosion/submarine/step4.png diff --git a/demos/sub-attaq/pics/big/submarine.png b/demos/sub-attaq/pics/big/submarine.png Binary files differnew file mode 100644 index 0000000..df435dc --- /dev/null +++ b/demos/sub-attaq/pics/big/submarine.png diff --git a/demos/sub-attaq/pics/big/surface.png b/demos/sub-attaq/pics/big/surface.png Binary files differnew file mode 100644 index 0000000..4eba29e --- /dev/null +++ b/demos/sub-attaq/pics/big/surface.png diff --git a/demos/sub-attaq/pics/big/torpedo.png b/demos/sub-attaq/pics/big/torpedo.png Binary files differnew file mode 100644 index 0000000..f9c2687 --- /dev/null +++ b/demos/sub-attaq/pics/big/torpedo.png diff --git a/demos/sub-attaq/pics/scalable/background-n810.svg b/demos/sub-attaq/pics/scalable/background-n810.svg new file mode 100644 index 0000000..ece9f7a --- /dev/null +++ b/demos/sub-attaq/pics/scalable/background-n810.svg @@ -0,0 +1,171 @@ +<?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" + version="1.0" + width="744.09448" + height="1052.3622" + id="svg2588" + sodipodi:version="0.32" + inkscape:version="0.46" + sodipodi:docname="background-n810.svg" + inkscape:output_extension="org.inkscape.output.svg.inkscape"> + <metadata + id="metadata28"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + </cc:Work> + </rdf:RDF> + </metadata> + <sodipodi:namedview + inkscape:window-height="1141" + inkscape:window-width="1920" + inkscape:pageshadow="2" + inkscape:pageopacity="0.0" + guidetolerance="10.0" + gridtolerance="10.0" + objecttolerance="10.0" + borderopacity="1.0" + bordercolor="#666666" + pagecolor="#ffffff" + id="base" + showgrid="false" + inkscape:zoom="1.2399902" + inkscape:cx="375" + inkscape:cy="461.074" + inkscape:window-x="0" + inkscape:window-y="0" + inkscape:current-layer="layer1" /> + <defs + id="defs2590"> + <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="perspective30" /> + <linearGradient + id="linearGradient3746"> + <stop + id="stop3748" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /> + <stop + id="stop3750" + style="stop-color:#0074b7;stop-opacity:1" + offset="1" /> + </linearGradient> + <radialGradient + cx="82.966125" + cy="-178.42453" + r="526.79456" + fx="82.966125" + fy="-178.42453" + id="radialGradient3880" + xlink:href="#linearGradient3746" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.4952094,0.2388475,-0.1040669,0.3734391,-208.61982,418.216)" /> + <linearGradient + id="linearGradient3624"> + <stop + id="stop3626" + style="stop-color:#3a8daf;stop-opacity:1" + offset="0" /> + <stop + id="stop3636" + style="stop-color:#252525;stop-opacity:1" + offset="1" /> + </linearGradient> + <linearGradient + x1="552.98486" + y1="390.56842" + x2="549.39465" + y2="702.3479" + id="linearGradient3630" + xlink:href="#linearGradient3624" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.3373776,0,0,1.186038,-986.88716,67.776416)" /> + <linearGradient + id="linearGradient3816"> + <stop + id="stop3818" + style="stop-color:#ad8b00;stop-opacity:1" + offset="0" /> + <stop + id="stop3820" + style="stop-color:#ad8b00;stop-opacity:0" + offset="1" /> + </linearGradient> + <linearGradient + x1="573" + y1="755.46222" + x2="573" + y2="700.13464" + id="linearGradient3826" + xlink:href="#linearGradient3816" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1,0,0,1.2561681,-151.5,-34.518664)" /> + <linearGradient + id="linearGradient5097"> + <stop + id="stop5099" + style="stop-color:#19a2db;stop-opacity:0" + offset="0" /> + <stop + id="stop5109" + style="stop-color:#1379a7;stop-opacity:0.49803922" + offset="0.30000001" /> + <stop + id="stop5101" + style="stop-color:#0e5173;stop-opacity:1" + offset="1" /> + </linearGradient> + <linearGradient + x1="590.84674" + y1="274.57559" + x2="590.84674" + y2="334.01376" + id="linearGradient5103" + xlink:href="#linearGradient5097" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-151.5,156.75229)" + spreadMethod="pad" /> + </defs> + <g + id="layer1"> + <rect + width="1053.5891" + height="206.64989" + x="-151.79456" + y="330.16019" + id="rect3638" + style="opacity:1;fill:url(#radialGradient3880);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.1880002;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <rect + width="1054.4708" + height="364.81519" + x="-152.23541" + y="533.48895" + id="rect3622" + style="opacity:1;fill:url(#linearGradient3630);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.13464069;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + d="M -152.5,877.11847 C 120.5,865.81296 -202.86309,769.3663 109.5,871.29717 C 172.96247,892.00636 243.5,872.55334 297.5,871.29717 C 351.5,870.041 311.5,859.80335 358.5,876.13354 C 405.5,892.46372 553.5,861.09903 598.5,854.8182 C 643.5,848.53736 756.5,841.79698 795.5,853.10249 C 834.5,864.408 904.5,866.2725 904.5,866.2725 L 901.5,903.95754 L -154.5,902.70137 L -152.5,877.11847 z" + id="path3814" + style="fill:url(#linearGradient3826);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <path + d="M 902.20121,894.16261 C 632.01828,889.43035 756.73005,860.2801 614.20403,894.1311 C 596.58819,898.315 408.23621,883.21212 400.43291,894.1311 C 376.86263,927.11261 75.265447,868.1243 34.250926,886.79082 C 31.281885,888.14209 12.514878,884.22134 -12.264082,889.72008 C -48.555335,897.77353 -64.717178,885.62471 -103.31472,890.35697 C -141.91229,895.08922 -145.87102,891.93439 -145.87102,891.93439 L -152.79879,903.10131 L 892.3044,902.5755 L 902.20121,894.16261 z" + id="path3828" + style="fill:#ad8b00;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + </g> +</svg> diff --git a/demos/sub-attaq/pics/scalable/background.svg b/demos/sub-attaq/pics/scalable/background.svg new file mode 100644 index 0000000..0be2680 --- /dev/null +++ b/demos/sub-attaq/pics/scalable/background.svg @@ -0,0 +1,171 @@ +<?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" + version="1.0" + width="744.09448" + height="1052.3622" + id="svg2588" + sodipodi:version="0.32" + inkscape:version="0.46" + sodipodi:docname="background.svg" + inkscape:output_extension="org.inkscape.output.svg.inkscape"> + <metadata + id="metadata28"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + </cc:Work> + </rdf:RDF> + </metadata> + <sodipodi:namedview + inkscape:window-height="1141" + inkscape:window-width="1920" + inkscape:pageshadow="2" + inkscape:pageopacity="0.0" + guidetolerance="10.0" + gridtolerance="10.0" + objecttolerance="10.0" + borderopacity="1.0" + bordercolor="#666666" + pagecolor="#ffffff" + id="base" + showgrid="false" + inkscape:zoom="0.93884027" + inkscape:cx="473.72605" + inkscape:cy="538.63678" + inkscape:window-x="0" + inkscape:window-y="0" + inkscape:current-layer="layer1" /> + <defs + id="defs2590"> + <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="perspective30" /> + <linearGradient + id="linearGradient3746"> + <stop + id="stop3748" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /> + <stop + id="stop3750" + style="stop-color:#0074b7;stop-opacity:1" + offset="1" /> + </linearGradient> + <radialGradient + cx="82.966125" + cy="-178.42453" + r="526.79456" + fx="82.966125" + fy="-178.42453" + id="radialGradient3880" + xlink:href="#linearGradient3746" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.4952094,0.3367191,-0.1040669,0.5264617,-208.61982,282.52272)" /> + <linearGradient + id="linearGradient3624"> + <stop + id="stop3626" + style="stop-color:#3a8daf;stop-opacity:1" + offset="0" /> + <stop + id="stop3636" + style="stop-color:#252525;stop-opacity:1" + offset="1" /> + </linearGradient> + <linearGradient + x1="552.98486" + y1="390.56842" + x2="549.39465" + y2="702.3479" + id="linearGradient3630" + xlink:href="#linearGradient3624" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.3373776,0,0,1.5004634,-986.88716,-154.07447)" /> + <linearGradient + id="linearGradient3816"> + <stop + id="stop3818" + style="stop-color:#ad8b00;stop-opacity:1" + offset="0" /> + <stop + id="stop3820" + style="stop-color:#ad8b00;stop-opacity:0" + offset="1" /> + </linearGradient> + <linearGradient + x1="573" + y1="755.46222" + x2="573" + y2="700.13464" + id="linearGradient3826" + xlink:href="#linearGradient3816" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1,0,0,1.6033628,-151.5,-294.0167)" /> + <linearGradient + id="linearGradient5097"> + <stop + id="stop5099" + style="stop-color:#19a2db;stop-opacity:0" + offset="0" /> + <stop + id="stop5109" + style="stop-color:#1379a7;stop-opacity:0.49803922" + offset="0.30000001" /> + <stop + id="stop5101" + style="stop-color:#0e5173;stop-opacity:1" + offset="1" /> + </linearGradient> + <linearGradient + x1="590.84674" + y1="274.57559" + x2="590.84674" + y2="334.01376" + id="linearGradient5103" + xlink:href="#linearGradient5097" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-151.5,156.75229)" + spreadMethod="pad" /> + </defs> + <g + id="layer1"> + <rect + width="1053.5891" + height="291.32797" + x="-151.79456" + y="158.38464" + id="rect3638" + style="opacity:1;fill:url(#radialGradient3880);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.1880002;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <rect + width="1054.4708" + height="461.52972" + x="-152.23541" + y="435.10107" + id="rect3622" + style="opacity:1;fill:url(#linearGradient3630);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.13464069;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + d="M -152.5,869.5896 C 120.5,855.15934 -202.86309,732.0556 109.5,862.15934 C 172.96247,888.59238 243.5,863.7627 297.5,862.15934 C 351.5,860.55598 311.5,847.48872 358.5,868.33244 C 405.5,889.17615 553.5,849.14252 598.5,841.12571 C 643.5,833.1089 756.5,824.50553 795.5,838.9358 C 834.5,853.36606 904.5,855.74589 904.5,855.74589 L 901.5,903.84677 L -154.5,902.24341 L -152.5,869.5896 z" + id="path3814" + style="fill:url(#linearGradient3826);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <path + d="M 902.20121,891.3446 C 632.01828,885.30439 756.73005,848.09724 614.20403,891.30439 C 596.58819,896.64468 408.23621,877.36748 400.43291,891.30439 C 376.86263,933.40172 75.265447,858.10952 34.250926,881.93531 C 31.281885,883.66006 12.514878,878.65564 -12.264082,885.67419 C -48.555335,895.95355 -64.717178,880.4469 -103.31472,886.48711 C -141.91229,892.52732 -145.87102,888.50052 -145.87102,888.50052 L -152.79879,902.75389 L 892.3044,902.08275 L 902.20121,891.3446 z" + id="path3828" + style="fill:#ad8b00;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + </g> +</svg> diff --git a/demos/sub-attaq/pics/scalable/boat.svg b/demos/sub-attaq/pics/scalable/boat.svg new file mode 100644 index 0000000..5298821b --- /dev/null +++ b/demos/sub-attaq/pics/scalable/boat.svg @@ -0,0 +1,279 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + version="1.0" + width="744.09448" + height="1052.3622" + id="svg2584"> + <defs + id="defs2666"> + <linearGradient + x1="542.5" + y1="222.59448" + x2="559" + y2="222.59448" + id="linearGradient3387" + xlink:href="#linearGradient3746" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-110.6791,190.19124)" /> + <linearGradient + id="linearGradient3167"> + <stop + id="stop3169" + style="stop-color:#464646;stop-opacity:1" + offset="0" /> + <stop + id="stop3345" + style="stop-color:#848788;stop-opacity:1" + offset="0.44021741" /> + <stop + id="stop3347" + style="stop-color:#9ca0a2;stop-opacity:1" + offset="0.56799388" /> + <stop + id="stop3171" + style="stop-color:#b5babd;stop-opacity:1" + offset="1" /> + </linearGradient> + <linearGradient + x1="474.23065" + y1="229.92336" + x2="474.1944" + y2="218.27365" + id="linearGradient3416" + xlink:href="#linearGradient3167" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-125.98032,185.95625)" /> + <linearGradient + id="linearGradient3692"> + <stop + id="stop3694" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /> + <stop + id="stop3696" + style="stop-color:#b6b6b6;stop-opacity:1" + offset="1" /> + </linearGradient> + <linearGradient + x1="573.5" + y1="244.2056" + x2="578.25" + y2="216.9556" + id="linearGradient3972" + xlink:href="#linearGradient3692" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-126.5541,188.56624)" /> + <linearGradient + id="linearGradient3438"> + <stop + id="stop3440" + style="stop-color:#939393;stop-opacity:1" + offset="0" /> + <stop + id="stop3444" + style="stop-color:#d6d6d6;stop-opacity:1" + offset="0.12354442" /> + <stop + id="stop3446" + style="stop-color:#dadada;stop-opacity:1" + offset="0.74055624" /> + <stop + id="stop3442" + style="stop-color:#ffffff;stop-opacity:1" + offset="1" /> + </linearGradient> + <linearGradient + x1="660.29303" + y1="256.53284" + x2="444.79303" + y2="255.62085" + id="linearGradient3948" + xlink:href="#linearGradient3438" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-126.5541,185.56624)" /> + <linearGradient + x1="542.5" + y1="222.59448" + x2="559" + y2="222.59448" + id="linearGradient3990" + xlink:href="#linearGradient3746" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-132.8041,190.19124)" /> + <linearGradient + id="linearGradient3746"> + <stop + id="stop3748" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /> + <stop + id="stop3750" + style="stop-color:#0074b7;stop-opacity:1" + offset="1" /> + </linearGradient> + <linearGradient + x1="542.5" + y1="222.59448" + x2="559" + y2="222.59448" + id="linearGradient3994" + xlink:href="#linearGradient3746" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-88.054101,190.19124)" /> + <linearGradient + id="linearGradient3428"> + <stop + id="stop3430" + style="stop-color:#464646;stop-opacity:1" + offset="0" /> + <stop + id="stop3432" + style="stop-color:#848788;stop-opacity:1" + offset="0.18306103" /> + <stop + id="stop3434" + style="stop-color:#9ca0a2;stop-opacity:1" + offset="0.66368055" /> + <stop + id="stop3436" + style="stop-color:#b5babd;stop-opacity:1" + offset="1" /> + </linearGradient> + <linearGradient + x1="592.92798" + y1="199.43727" + x2="557.05743" + y2="196.5448" + id="linearGradient3426" + xlink:href="#linearGradient3428" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-102.5217,149.09845)" /> + </defs> + <g + id="layer1"> + <g + id="boat"> + <path + d="M 296.669,434.15623 C 376.12538,436.50959 448.282,436.46711 542.42304,434.15623 C 542.42304,434.15623 544.22253,425.03531 542.42304,422.57953 C 432.90655,403.86953 296.669,418.12547 296.669,422.57953 L 296.669,434.15623 z" + id="path3469" + style="fill:#a9a9a9;fill-opacity:1;fill-rule:nonzero;stroke:#484848;stroke-width:3.4975698;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1" /> + <rect + width="3.4280596" + height="29.611124" + x="647.59613" + y="173.91156" + transform="matrix(0.9327494,0.3605254,-0.3633626,0.9316478,0,0)" + id="rect3408" + style="opacity:1;fill:#333333;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <rect + width="48.499989" + height="8.5" + x="318.48221" + y="405.82172" + transform="matrix(0.9999952,3.0887777e-3,-3.0887777e-3,0.9999952,0,0)" + id="rect3376" + style="opacity:1;fill:url(#linearGradient3416);fill-opacity:1;fill-rule:nonzero;stroke:#484848;stroke-width:2.99999928;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + d="M 382.4459,430.66072 C 382.4459,430.66072 420.85999,388.74829 397.4459,385.66072 L 488.4459,397.66072 L 488.4459,432.66072 L 382.4459,430.66072 z" + id="path3952" + style="fill:url(#linearGradient3972);fill-opacity:1;fill-rule:evenodd;stroke:#323232;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + d="M 301.4459,429.66072 C 301.4459,429.66072 330.46329,468.66072 343.4459,468.66072 C 355.42851,471.91072 507.57644,473.70653 525.4459,465.91072 C 534.58031,461.59104 537.90602,455.58662 539.4459,429.66072 C 473.70193,439.43306 371.2651,439.78219 301.4459,429.66072 z" + id="path3938" + style="fill:url(#linearGradient3948);fill-opacity:1;fill-rule:evenodd;stroke:#545454;stroke-width:3.0999999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + d="M 339.44863,416.12222 L 357.69854,416.17859 L 368.1622,427.96097 L 339.41234,427.87217 L 339.44863,416.12222 z" + id="rect3378" + style="fill:#dedede;fill-opacity:1;fill-rule:nonzero;stroke:#484848;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1" /> + <rect + width="13.5" + height="17" + x="411.19589" + y="404.28574" + id="rect3974" + style="opacity:1;fill:url(#linearGradient3990);fill-opacity:1;fill-rule:nonzero;stroke:#323232;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <rect + width="13.5" + height="17" + x="455.94589" + y="404.28574" + id="rect3992" + style="opacity:1;fill:url(#linearGradient3994);fill-opacity:1;fill-rule:nonzero;stroke:#323232;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + d="M 295.6959,421.91072 C 360.77923,430.41072 446.61257,432.91072 541.9459,421.91072 C 541.9459,421.91072 543.74902,428.6076 541.9459,430.41072 C 432.20839,444.14823 295.6959,433.68104 295.6959,430.41072 L 295.6959,421.91072 z" + id="rect2558" + style="fill:#dedede;fill-opacity:1;fill-rule:nonzero;stroke:#484848;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1" /> + <rect + width="94.427879" + height="7.236649" + x="437.10614" + y="342.2645" + transform="matrix(0.9947793,0.1020501,-0.1079723,0.9941539,0,0)" + id="rect2569" + style="opacity:1;fill:#c1c1c1;fill-opacity:1;fill-rule:nonzero;stroke:#404040;stroke-width:3.0365274;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <rect + width="13.5" + height="17" + x="433.32089" + y="404.28574" + id="rect3385" + style="opacity:1;fill:url(#linearGradient3387);fill-opacity:1;fill-rule:nonzero;stroke:#323232;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + d="M 402.86916,380.21847 L 489.80407,388.85485 L 491.52271,394.54919 L 397.58781,384.91281 L 402.86916,380.21847 z" + id="rect3466" + style="fill:#dcdcdc;fill-opacity:1;fill-rule:nonzero;stroke:#404040;stroke-width:3.03650045;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1" /> + <rect + width="34.5" + height="14.5" + x="456.4783" + y="336.94293" + transform="matrix(0.997157,7.5351915e-2,-7.5351915e-2,0.997157,0,0)" + id="rect3418" + style="opacity:1;fill:url(#linearGradient3426);fill-opacity:1;fill-rule:nonzero;stroke:#494949;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <g + transform="matrix(0.9246214,0.3808874,-0.3808874,0.9246214,-13.252851,-40.129692)" + id="flag"> + <rect + width="19.75" + height="27.75" + x="193.34448" + y="-709" + transform="matrix(0,1,-1,0,0,0)" + id="rect3389" + style="opacity:1;fill:#b20000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <rect + width="27.25" + height="5.75" + x="681.5" + y="200.59448" + id="rect3393" + style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <rect + width="5.75" + height="19.5" + x="691.25" + y="193.59448" + id="rect3395" + style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <rect + width="27.75" + height="2.5" + x="681.5" + y="202.34448" + id="rect3397" + style="opacity:1;fill:#000080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <rect + width="3" + height="19.25" + x="692.5" + y="193.59448" + id="rect3399" + style="opacity:1;fill:#000080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + </g> + </g> + </g> +</svg> diff --git a/demos/sub-attaq/pics/scalable/bomb.svg b/demos/sub-attaq/pics/scalable/bomb.svg new file mode 100644 index 0000000..294771a --- /dev/null +++ b/demos/sub-attaq/pics/scalable/bomb.svg @@ -0,0 +1,138 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + version="1.0" + width="744.09448" + height="1052.3622" + id="svg3121"> + <defs + id="defs3123"> + <radialGradient + cx="-135.625" + cy="148.71948" + r="7.625" + fx="-135.625" + fy="148.71948" + id="radialGradient3439" + xlink:href="#linearGradient3366" + gradientUnits="userSpaceOnUse" /> + <linearGradient + x1="-132.85063" + y1="173.6969" + x2="-145.3662" + y2="177.59828" + id="linearGradient3418" + xlink:href="#linearGradient3366" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-0.2134297,-0.5943658,0.6658882,-0.2391126,-274.53441,123.00067)" /> + <linearGradient + x1="-141.85466" + y1="181.49153" + x2="-144.95044" + y2="175.90179" + id="linearGradient3414" + xlink:href="#linearGradient3366" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.2134297,-0.5943658,-0.6658882,-0.2391126,-15.893355,122.67824)" /> + <linearGradient + x1="-149.5" + y1="177.59448" + x2="-145.7928" + y2="180.05936" + id="linearGradient3410" + xlink:href="#linearGradient3366" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-0.6315243,0,0,0.7075182,-227.03781,54.321514)" /> + <linearGradient + x1="-140.46242" + y1="177.40488" + x2="-147.04802" + y2="172.66473" + id="linearGradient3406" + xlink:href="#linearGradient3366" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-0.6315243,0,0,-0.7075182,-226.40365,274.91611)" /> + <linearGradient + x1="-147.2406" + y1="180.95567" + x2="-140.01878" + y2="175.57777" + id="linearGradient3402" + xlink:href="#linearGradient3366" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.6315243,0,0,-0.7075182,-64.045217,275.07466)" /> + <linearGradient + x1="-146.98956" + y1="174.00922" + x2="-142.60332" + y2="179.38712" + id="linearGradient3398" + xlink:href="#linearGradient3366" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.6315243,0,0,0.7075182,-62.683611,54.187362)" /> + <linearGradient + id="linearGradient3366"> + <stop + id="stop3368" + style="stop-color:#bcbcbc;stop-opacity:1" + offset="0" /> + <stop + id="stop3370" + style="stop-color:#191b1c;stop-opacity:1" + offset="1" /> + </linearGradient> + <radialGradient + cx="-208.95004" + cy="173.10576" + r="31.667252" + fx="-208.95004" + fy="173.10576" + id="radialGradient3364" + xlink:href="#linearGradient3366" + gradientUnits="userSpaceOnUse" /> + </defs> + <g + id="layer1"> + <g + transform="translate(419.4996,488.13454)" + id="mine"> + <path + d="M -167.5843,186.54079 A 31.466251,31.466251 0 1 1 -230.5168,186.54079 A 31.466251,31.466251 0 1 1 -167.5843,186.54079 z" + transform="matrix(0.6341613,0,0,0.6341613,-18.521242,45.718192)" + id="path2586" + style="opacity:1;fill:url(#radialGradient3364);fill-opacity:1;stroke:#131313;stroke-width:3.54799318;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + d="M -155.20193,175.4167 C -157.60085,176.6451 -156.78074,184.26068 -156.78074,184.26068 C -156.78074,184.26068 -148.33787,181.58301 -148.57092,178.60053 C -148.74283,176.40051 -153.23774,174.41092 -155.20193,175.4167 z" + id="path3382" + style="fill:url(#linearGradient3398);fill-opacity:1;fill-rule:evenodd;stroke:#131313;stroke-width:2.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + d="M -156.56354,153.84532 C -158.96246,152.61693 -158.14235,145.00135 -158.14235,145.00135 C -158.14235,145.00135 -149.69948,147.67902 -149.93253,150.66149 C -150.10444,152.86151 -154.59935,154.85111 -156.56354,153.84532 z" + id="path3400" + style="fill:url(#linearGradient3402);fill-opacity:1;fill-rule:evenodd;stroke:#131313;stroke-width:2.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + d="M -133.88532,153.68678 C -131.48641,152.45838 -132.30652,144.8428 -132.30652,144.8428 C -132.30652,144.8428 -140.74938,147.52047 -140.51633,150.50295 C -140.34442,152.70297 -135.84951,154.69256 -133.88532,153.68678 z" + id="path3404" + style="fill:url(#linearGradient3406);fill-opacity:1;fill-rule:evenodd;stroke:#131313;stroke-width:2.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + d="M -134.51948,175.55085 C -132.12057,176.77925 -132.94068,184.39483 -132.94068,184.39483 C -132.94068,184.39483 -141.38355,181.71716 -141.15049,178.73469 C -140.97858,176.53467 -136.48367,174.54507 -134.51948,175.55085 z" + id="path3408" + style="fill:url(#linearGradient3410);fill-opacity:1;fill-rule:evenodd;stroke:#131313;stroke-width:2.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + d="M -161.25709,168.78221 C -163.22395,170.62484 -170.11427,165.85236 -170.11427,165.85236 C -170.11427,165.85236 -164.7408,160.23808 -162.01257,161.46538 C -160.00011,162.37068 -159.64667,167.27352 -161.25709,168.78221 z" + id="path3412" + style="fill:url(#linearGradient3414);fill-opacity:1;fill-rule:evenodd;stroke:#131313;stroke-width:2.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + d="M -129.17068,169.10464 C -127.20382,170.94727 -120.3135,166.17478 -120.3135,166.17478 C -120.3135,166.17478 -125.68697,160.5605 -128.41519,161.7878 C -130.42766,162.69311 -130.7811,167.59595 -129.17068,169.10464 z" + id="path3416" + style="fill:url(#linearGradient3418);fill-opacity:1;fill-rule:evenodd;stroke:#131313;stroke-width:2.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + d="M -126,151.21948 A 6.625,6.625 0 1 1 -139.25,151.21948 A 6.625,6.625 0 1 1 -126,151.21948 z" + transform="matrix(0.6341613,0,0,0.6341613,-61.039517,68.324922)" + id="path3426" + style="opacity:1;fill:url(#radialGradient3439);fill-opacity:1;stroke:#131313;stroke-width:3.54799318;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + </g> + </g> +</svg> diff --git a/demos/sub-attaq/pics/scalable/sand.svg b/demos/sub-attaq/pics/scalable/sand.svg new file mode 100644 index 0000000..8af11b7 --- /dev/null +++ b/demos/sub-attaq/pics/scalable/sand.svg @@ -0,0 +1,103 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + version="1.0" + width="744.09448" + height="1052.3622" + id="svg2596"> + <defs + id="defs2598"> + <linearGradient + id="linearGradient3708"> + <stop + id="stop3710" + style="stop-color:#202020;stop-opacity:1" + offset="0" /> + <stop + id="stop3712" + style="stop-color:#ffffff;stop-opacity:1" + offset="1" /> + </linearGradient> + <linearGradient + x1="518.26996" + y1="497.31476" + x2="533.02924" + y2="497.31476" + id="linearGradient3794" + xlink:href="#linearGradient3708" + gradientUnits="userSpaceOnUse" /> + <linearGradient + id="linearGradient3718"> + <stop + id="stop3720" + style="stop-color:#bcbcbc;stop-opacity:0.28169015" + offset="0" /> + <stop + id="stop3722" + style="stop-color:#bcbcbc;stop-opacity:0" + offset="1" /> + </linearGradient> + <linearGradient + x1="516.89508" + y1="503.50137" + x2="516.89508" + y2="543.80646" + id="linearGradient3792" + xlink:href="#linearGradient3718" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.9947644,0,0,1.3346457,2.7877039,-166.60153)" /> + <linearGradient + id="linearGradient3692"> + <stop + id="stop3694" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /> + <stop + id="stop3696" + style="stop-color:#b6b6b6;stop-opacity:1" + offset="1" /> + </linearGradient> + <linearGradient + x1="506.95975" + y1="469.73706" + x2="525.41608" + y2="469.73706" + id="linearGradient3790" + xlink:href="#linearGradient3692" + gradientUnits="userSpaceOnUse" /> + <linearGradient + id="linearGradient3816"> + <stop + id="stop3818" + style="stop-color:#ad8b00;stop-opacity:1" + offset="0" /> + <stop + id="stop3820" + style="stop-color:#ad8b00;stop-opacity:0" + offset="1" /> + </linearGradient> + <linearGradient + x1="573" + y1="755.46222" + x2="573" + y2="700.13464" + id="linearGradient3826" + xlink:href="#linearGradient3816" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1,0,0,1.6033628,-150.63569,-350.3846)" /> + </defs> + <g + id="layer1"> + <path + d="M -151.63569,813.2217 C 121.3643,798.79144 -201.99878,675.6877 110.3643,805.79144 C 173.82677,832.22448 244.3643,807.3948 298.3643,805.79144 C 352.3643,804.18808 312.3643,791.12082 359.3643,811.96454 C 406.3643,832.80825 554.3643,792.77462 599.3643,784.75781 C 644.3643,776.741 757.36426,768.13763 796.36426,782.5679 C 835.36426,796.99816 905.36426,799.37799 905.36426,799.37799 L 902.36426,847.47887 L -153.63569,845.87551 L -151.63569,813.2217 z" + id="path3814" + style="fill:url(#linearGradient3826);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <path + d="M 908.86426,836.95812 C 635.8643,830.91791 761.87636,793.71076 617.8643,836.91791 C 600.0648,842.2582 409.74894,822.981 401.8643,836.91791 C 378.04825,879.01524 73.306465,803.72304 31.864305,827.54883 C 28.864305,829.27358 9.9016246,824.26916 -15.135695,831.28771 C -51.805335,841.56707 -68.135695,826.06042 -107.1357,832.10063 C -146.1357,838.14084 -150.13569,834.11404 -150.13569,834.11404 L -157.13569,848.36741 L 898.86426,847.69627 L 908.86426,836.95812 z" + id="path3828" + style="fill:#ad8b00;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + </g> +</svg> diff --git a/demos/sub-attaq/pics/scalable/see.svg b/demos/sub-attaq/pics/scalable/see.svg new file mode 100644 index 0000000..0666691 --- /dev/null +++ b/demos/sub-attaq/pics/scalable/see.svg @@ -0,0 +1,44 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + version="1.0" + width="744.09448" + height="1052.3622" + id="svg2650"> + <defs + id="defs2652"> + <linearGradient + id="linearGradient3624"> + <stop + id="stop3626" + style="stop-color:#3a8daf;stop-opacity:1" + offset="0" /> + <stop + id="stop3636" + style="stop-color:#252525;stop-opacity:1" + offset="1" /> + </linearGradient> + <linearGradient + x1="552.98486" + y1="390.56842" + x2="549.39465" + y2="702.3479" + id="linearGradient3630" + xlink:href="#linearGradient3624" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.3373776,0,0,1.5004634,-996.17287,-279.00679)" /> + </defs> + <g + id="layer1"> + <rect + width="1054.4708" + height="461.52972" + x="-161.52115" + y="310.16876" + id="rect3622" + style="opacity:1;fill:url(#linearGradient3630);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.13464069;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + </g> +</svg> diff --git a/demos/sub-attaq/pics/scalable/sky.svg b/demos/sub-attaq/pics/scalable/sky.svg new file mode 100644 index 0000000..1546c08 --- /dev/null +++ b/demos/sub-attaq/pics/scalable/sky.svg @@ -0,0 +1,45 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + version="1.0" + width="744.09448" + height="1052.3622" + id="svg2721"> + <defs + id="defs2723"> + <linearGradient + id="linearGradient3746"> + <stop + id="stop3748" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /> + <stop + id="stop3750" + style="stop-color:#0074b7;stop-opacity:1" + offset="1" /> + </linearGradient> + <radialGradient + cx="82.966125" + cy="-178.42453" + r="526.79456" + fx="82.966125" + fy="-178.42453" + id="radialGradient3880" + xlink:href="#linearGradient3746" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.4952094,0.3367191,-0.1040669,0.5264617,-235.04839,425.12197)" /> + </defs> + <g + id="layer1"> + <rect + width="1053.5891" + height="291.32797" + x="-178.22313" + y="300.98392" + id="rect3638" + style="opacity:1;fill:url(#radialGradient3880);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.1880002;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + </g> +</svg> diff --git a/demos/sub-attaq/pics/scalable/sub-attaq.svg b/demos/sub-attaq/pics/scalable/sub-attaq.svg new file mode 100644 index 0000000..b075179 --- /dev/null +++ b/demos/sub-attaq/pics/scalable/sub-attaq.svg @@ -0,0 +1,1473 @@ +<?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="1052.3622" + height="744.09448" + id="svg2" + sodipodi:version="0.32" + inkscape:version="0.46" + version="1.0" + sodipodi:docname="sub-attaq.svg" + inkscape:output_extension="org.inkscape.output.svg.inkscape"> + <defs + id="defs4"> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient3366" + id="radialGradient3439" + cx="-135.625" + cy="148.71948" + fx="-135.625" + fy="148.71948" + r="7.625" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3366" + id="linearGradient3418" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-0.2134297,-0.5943658,0.6658882,-0.2391126,-274.53441,123.00067)" + x1="-132.85063" + y1="173.6969" + x2="-145.3662" + y2="177.59828" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3366" + id="linearGradient3414" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.2134297,-0.5943658,-0.6658882,-0.2391126,-15.893355,122.67824)" + x1="-141.85466" + y1="181.49153" + x2="-144.95044" + y2="175.90179" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3366" + id="linearGradient3410" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-0.6315243,0,0,0.7075182,-227.03781,54.321514)" + x1="-149.5" + y1="177.59448" + x2="-145.7928" + y2="180.05936" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3366" + id="linearGradient3406" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-0.6315243,0,0,-0.7075182,-226.40365,274.91611)" + x1="-140.46242" + y1="177.40488" + x2="-147.04802" + y2="172.66473" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3366" + id="linearGradient3402" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.6315243,0,0,-0.7075182,-64.045217,275.07466)" + x1="-147.2406" + y1="180.95567" + x2="-140.01878" + y2="175.57777" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3366" + id="linearGradient3398" + x1="-146.98956" + y1="174.00922" + x2="-142.60332" + y2="179.38712" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.6315243,0,0,0.7075182,-62.683611,54.187362)" /> + <linearGradient + id="linearGradient3366"> + <stop + id="stop3368" + offset="0" + style="stop-color:#bcbcbc;stop-opacity:1;" /> + <stop + id="stop3370" + offset="1" + style="stop-color:#191b1c;stop-opacity:1;" /> + </linearGradient> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient3366" + id="radialGradient3364" + cx="-208.95004" + cy="173.10576" + fx="-208.95004" + fy="173.10576" + r="31.667252" + gradientUnits="userSpaceOnUse" /> + <linearGradient + id="linearGradient5097"> + <stop + style="stop-color:#19a2db;stop-opacity:0;" + offset="0" + id="stop5099" /> + <stop + id="stop5109" + offset="0.30000001" + style="stop-color:#1379a7;stop-opacity:0.49803922;" /> + <stop + style="stop-color:#0e5173;stop-opacity:1;" + offset="1" + id="stop5101" /> + </linearGradient> + <linearGradient + id="linearGradient3523" + inkscape:collect="always"> + <stop + id="stop3525" + offset="0" + style="stop-color:#b9b9b9;stop-opacity:1" /> + <stop + id="stop3527" + offset="1" + style="stop-color:#444444;stop-opacity:0;" /> + </linearGradient> + <linearGradient + id="linearGradient3438"> + <stop + style="stop-color:#939393;stop-opacity:1;" + offset="0" + id="stop3440" /> + <stop + id="stop3444" + offset="0.12354442" + style="stop-color:#d6d6d6;stop-opacity:1;" /> + <stop + style="stop-color:#dadada;stop-opacity:1;" + offset="0.74055624" + id="stop3446" /> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="1" + id="stop3442" /> + </linearGradient> + <linearGradient + id="linearGradient3428"> + <stop + id="stop3430" + offset="0" + style="stop-color:#464646;stop-opacity:1;" /> + <stop + style="stop-color:#848788;stop-opacity:1;" + offset="0.18306103" + id="stop3432" /> + <stop + id="stop3434" + offset="0.66368055" + style="stop-color:#9ca0a2;stop-opacity:1;" /> + <stop + id="stop3436" + offset="1" + style="stop-color:#b5babd;stop-opacity:1;" /> + </linearGradient> + <linearGradient + id="linearGradient4034"> + <stop + id="stop4036" + offset="0" + style="stop-color:#ffffff;stop-opacity:1;" /> + <stop + style="stop-color:#ffffff;stop-opacity:0.49803922;" + offset="0.5" + id="stop4038" /> + <stop + id="stop4040" + offset="0.63705367" + style="stop-color:#ffffff;stop-opacity:0.24705882;" /> + <stop + style="stop-color:#ffffff;stop-opacity:0.12156863;" + offset="0.79425853" + id="stop4042" /> + <stop + id="stop4044" + offset="1" + style="stop-color:#a0a0a0;stop-opacity:1;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + id="linearGradient4016"> + <stop + style="stop-color:#283e6a;stop-opacity:1;" + offset="0" + id="stop4018" /> + <stop + style="stop-color:#283e6a;stop-opacity:0;" + offset="1" + id="stop4020" /> + </linearGradient> + <linearGradient + id="linearGradient4004"> + <stop + style="stop-color:#dbdbdb;stop-opacity:1;" + offset="0" + id="stop4010" /> + <stop + style="stop-color:#c4c9cb;stop-opacity:1;" + offset="1" + id="stop4012" /> + </linearGradient> + <linearGradient + id="linearGradient3998"> + <stop + id="stop4000" + offset="0" + style="stop-color:#adadad;stop-opacity:1;" /> + <stop + id="stop4002" + offset="1" + style="stop-color:#ffffff;stop-opacity:1;" /> + </linearGradient> + <linearGradient + id="linearGradient3864"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop3866" /> + <stop + id="stop4028" + offset="0.5" + style="stop-color:#ffffff;stop-opacity:0.49803922;" /> + <stop + style="stop-color:#ffffff;stop-opacity:0.24705882;" + offset="0.75" + id="stop4030" /> + <stop + id="stop4032" + offset="0.875" + style="stop-color:#ffffff;stop-opacity:0.12156863;" /> + <stop + style="stop-color:#a0a0a0;stop-opacity:1;" + offset="1" + id="stop3868" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + id="linearGradient3816"> + <stop + style="stop-color:#ad8b00;stop-opacity:1;" + offset="0" + id="stop3818" /> + <stop + style="stop-color:#ad8b00;stop-opacity:0;" + offset="1" + id="stop3820" /> + </linearGradient> + <linearGradient + id="linearGradient3746"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop3748" /> + <stop + style="stop-color:#0074b7;stop-opacity:1;" + offset="1" + id="stop3750" /> + </linearGradient> + <linearGradient + id="linearGradient3718"> + <stop + style="stop-color:#bcbcbc;stop-opacity:0.28169015;" + offset="0" + id="stop3720" /> + <stop + style="stop-color:#bcbcbc;stop-opacity:0;" + offset="1" + id="stop3722" /> + </linearGradient> + <linearGradient + id="linearGradient3708"> + <stop + style="stop-color:#202020;stop-opacity:1;" + offset="0" + id="stop3710" /> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="1" + id="stop3712" /> + </linearGradient> + <linearGradient + id="linearGradient3692"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop3694" /> + <stop + style="stop-color:#b6b6b6;stop-opacity:1;" + offset="1" + id="stop3696" /> + </linearGradient> + <linearGradient + id="linearGradient3656"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop3658" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop3660" /> + </linearGradient> + <linearGradient + id="linearGradient3624"> + <stop + style="stop-color:#3a8daf;stop-opacity:1;" + offset="0" + id="stop3626" /> + <stop + id="stop3636" + offset="1" + style="stop-color:#252525;stop-opacity:1;" /> + </linearGradient> + <linearGradient + id="linearGradient3532"> + <stop + id="stop3534" + offset="0" + style="stop-color:#545454;stop-opacity:1;" /> + <stop + style="stop-color:#848788;stop-opacity:1;" + offset="0.44021741" + id="stop3536" /> + <stop + id="stop3538" + offset="0.56799388" + style="stop-color:#9ca0a2;stop-opacity:1;" /> + <stop + id="stop3540" + offset="1" + style="stop-color:#565d60;stop-opacity:1" /> + </linearGradient> + <linearGradient + id="linearGradient3345"> + <stop + id="stop3348" + offset="0" + style="stop-color:#898989;stop-opacity:1;" /> + <stop + style="stop-color:#9ea1a2;stop-opacity:1;" + offset="0.44021741" + id="stop3350" /> + <stop + id="stop3352" + offset="0.56799388" + style="stop-color:#bbbdbf;stop-opacity:1;" /> + <stop + id="stop3354" + offset="1" + style="stop-color:#f0f1f2;stop-opacity:1;" /> + </linearGradient> + <linearGradient + id="linearGradient3227"> + <stop + style="stop-color:#444444;stop-opacity:1;" + offset="0" + id="stop3229" /> + <stop + style="stop-color:#b0b0b0;stop-opacity:1;" + offset="1" + id="stop3232" /> + </linearGradient> + <linearGradient + id="linearGradient3435"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop3437" /> + <stop + style="stop-color:#c0c0c0;stop-opacity:0;" + offset="1" + id="stop3439" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + id="linearGradient3421"> + <stop + style="stop-color:#444444;stop-opacity:1;" + offset="0" + id="stop3423" /> + <stop + style="stop-color:#444444;stop-opacity:0;" + offset="1" + id="stop3425" /> + </linearGradient> + <linearGradient + id="linearGradient3293"> + <stop + style="stop-color:#c4b434;stop-opacity:1;" + offset="0" + id="stop3295" /> + <stop + style="stop-color:#9b5500;stop-opacity:1;" + offset="1" + id="stop3297" /> + </linearGradient> + <linearGradient + id="linearGradient3229"> + <stop + style="stop-color:#125a7a;stop-opacity:1;" + offset="0" + id="stop3231" /> + <stop + style="stop-color:#308fc0;stop-opacity:1;" + offset="1" + id="stop3233" /> + </linearGradient> + <linearGradient + id="linearGradient3219"> + <stop + id="stop3221" + offset="0" + style="stop-color:#a55b00;stop-opacity:1;" /> + <stop + id="stop3223" + offset="1" + style="stop-color:#f4e45e;stop-opacity:1;" /> + </linearGradient> + <linearGradient + id="linearGradient3189"> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="0" + id="stop3191" /> + <stop + style="stop-color:#000000;stop-opacity:0;" + offset="1" + id="stop3193" /> + </linearGradient> + <linearGradient + id="linearGradient3167"> + <stop + style="stop-color:#464646;stop-opacity:1;" + offset="0" + id="stop3169" /> + <stop + id="stop3345" + offset="0.44021741" + style="stop-color:#848788;stop-opacity:1;" /> + <stop + style="stop-color:#9ca0a2;stop-opacity:1;" + offset="0.56799388" + id="stop3347" /> + <stop + style="stop-color:#b5babd;stop-opacity:1;" + offset="1" + id="stop3171" /> + </linearGradient> + <inkscape:perspective + sodipodi:type="inkscape:persp3d" + inkscape:vp_x="0 : 526.18109 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_z="744.09448 : 526.18109 : 1" + inkscape:persp3d-origin="372.04724 : 350.78739 : 1" + id="perspective10" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3167" + id="linearGradient3175" + x1="443.95602" + y1="315.31854" + x2="443.95602" + y2="247.85609" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.4908502,0,0,0.4579593,350.98557,542.12189)" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3219" + id="linearGradient3253" + gradientUnits="userSpaceOnUse" + x1="325.57214" + y1="280.13632" + x2="312.84424" + y2="257.60013" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3229" + id="linearGradient3255" + gradientUnits="userSpaceOnUse" + x1="310.01578" + y1="255.47881" + x2="325.92572" + y2="280.13632" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3219" + id="linearGradient3321" + gradientUnits="userSpaceOnUse" + x1="325.57214" + y1="280.13632" + x2="312.84424" + y2="257.60013" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3229" + id="linearGradient3323" + gradientUnits="userSpaceOnUse" + x1="310.01578" + y1="255.47881" + x2="325.92572" + y2="280.13632" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3219" + id="linearGradient3331" + gradientUnits="userSpaceOnUse" + x1="325.57214" + y1="280.13632" + x2="312.84424" + y2="257.60013" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3229" + id="linearGradient3333" + gradientUnits="userSpaceOnUse" + x1="310.01578" + y1="255.47881" + x2="325.92572" + y2="280.13632" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3293" + id="linearGradient3343" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.3292883,0,0,1.10796,1.5038593,-24.232315)" + x1="359.5589" + y1="258.84247" + x2="370.88239" + y2="258.84247" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3219" + id="linearGradient3365" + gradientUnits="userSpaceOnUse" + x1="325.57214" + y1="280.13632" + x2="312.84424" + y2="257.60013" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3229" + id="linearGradient3367" + gradientUnits="userSpaceOnUse" + x1="310.01578" + y1="255.47881" + x2="325.92572" + y2="280.13632" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3219" + id="linearGradient3369" + gradientUnits="userSpaceOnUse" + x1="325.57214" + y1="280.13632" + x2="312.84424" + y2="257.60013" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3229" + id="linearGradient3371" + gradientUnits="userSpaceOnUse" + x1="310.01578" + y1="255.47881" + x2="325.92572" + y2="280.13632" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3219" + id="linearGradient3379" + gradientUnits="userSpaceOnUse" + x1="325.57214" + y1="280.13632" + x2="312.84424" + y2="257.60013" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3229" + id="linearGradient3381" + gradientUnits="userSpaceOnUse" + x1="310.01578" + y1="255.47881" + x2="325.92572" + y2="280.13632" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3293" + id="linearGradient3385" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.3267302,0,0,1.1332782,-1.5786343,-29.194748)" + x1="371.79858" + y1="258.84247" + x2="364.49646" + y2="258.84247" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3293" + id="linearGradient3401" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.9807835,0,0,1.1280701,-361.45126,-28.553769)" + x1="371.79858" + y1="258.84247" + x2="364.49646" + y2="258.84247" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient3421" + id="radialGradient3431" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.1862613,0,0,0.3638703,-186.86143,179.02055)" + cx="432.3343" + cy="233.80295" + fx="432.3343" + fy="233.80295" + r="59.056834" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient3435" + id="radialGradient3441" + cx="290.5" + cy="244.34448" + fx="290.5" + fy="244.34448" + r="37.5" + gradientTransform="matrix(0.8202102,0.8202102,-0.7960458,0.7960458,246.73838,-189.686)" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3345" + id="linearGradient3311" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.466978,0,0,0.4500435,352.00841,540.25044)" + x1="510.99884" + y1="161.99408" + x2="396.48914" + y2="161.99408" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient3421" + id="radialGradient3339" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.4181493,0,0,0.1282619,386.09461,620.15777)" + cx="432.3343" + cy="233.80295" + fx="432.3343" + fy="233.80295" + r="59.056834" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3219" + id="linearGradient3434" + gradientUnits="userSpaceOnUse" + x1="325.57214" + y1="280.13632" + x2="312.84424" + y2="257.60013" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3229" + id="linearGradient3436" + gradientUnits="userSpaceOnUse" + x1="310.01578" + y1="255.47881" + x2="325.92572" + y2="280.13632" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3532" + id="linearGradient3520" + x1="525" + y1="371.09448" + x2="525" + y2="395.09448" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.5865192,0,0,0.2518015,339.73218,572.99479)" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3624" + id="linearGradient3630" + x1="552.98486" + y1="390.56842" + x2="549.39465" + y2="702.3479" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.3373776,0,0,1.5004634,-835.38716,-310.82676)" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient3656" + id="radialGradient3662" + cx="656.19507" + cy="534.45917" + fx="656.19507" + fy="534.45917" + r="13.227922" + gradientTransform="matrix(1,0,0,1.2672781,0,-144.63884)" + gradientUnits="userSpaceOnUse" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient3656" + id="radialGradient3668" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1,0,0,1.2672781,0,-144.63884)" + cx="656.19507" + cy="534.45917" + fx="656.19507" + fy="534.45917" + r="13.227922" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient3656" + id="radialGradient3672" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1,0,0,1.2672781,0,-144.63884)" + cx="656.19507" + cy="534.45917" + fx="656.19507" + fy="534.45917" + r="13.227922" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient3656" + id="radialGradient3676" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1,0,0,1.2672781,0,-144.63884)" + cx="656.19507" + cy="534.45917" + fx="656.19507" + fy="534.45917" + r="13.227922" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3692" + id="linearGradient3772" + gradientUnits="userSpaceOnUse" + x1="506.95975" + y1="469.73706" + x2="525.41608" + y2="469.73706" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3718" + id="linearGradient3774" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.9947644,0,0,1.3346457,2.7877039,-166.60153)" + x1="516.89508" + y1="503.50137" + x2="516.89508" + y2="543.80646" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3708" + id="linearGradient3776" + gradientUnits="userSpaceOnUse" + x1="518.26993" + y1="497.31477" + x2="533.02923" + y2="497.31477" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3692" + id="linearGradient3790" + gradientUnits="userSpaceOnUse" + x1="506.95975" + y1="469.73706" + x2="525.41608" + y2="469.73706" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3718" + id="linearGradient3792" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.9947644,0,0,1.3346457,2.7877039,-166.60153)" + x1="516.89508" + y1="503.50137" + x2="516.89508" + y2="543.80646" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3708" + id="linearGradient3794" + gradientUnits="userSpaceOnUse" + x1="518.26993" + y1="497.31477" + x2="533.02923" + y2="497.31477" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient3656" + id="radialGradient3804" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1,0,0,1.2672781,0,-144.63884)" + cx="656.19507" + cy="534.45917" + fx="656.19507" + fy="534.45917" + r="13.227922" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient3656" + id="radialGradient3808" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1,0,0,1.2672781,0,-144.63884)" + cx="656.19507" + cy="534.45917" + fx="656.19507" + fy="534.45917" + r="13.227922" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3227" + id="linearGradient3812" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.1223608,0,0,0.3849769,-17.516054,565.40983)" + x1="543.5" + y1="205.19257" + x2="587.52001" + y2="205.19257" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3816" + id="linearGradient3826" + x1="573" + y1="755.46222" + x2="573" + y2="700.13464" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1,0,0,1.6033628,0,-450.76899)" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient3864" + id="radialGradient3874" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.9674693,0.8647541,-0.8726553,1.0212484,-15.308759,-74.232772)" + cx="94.273849" + cy="89.893486" + fx="94.273849" + fy="89.893486" + r="74.397521" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient3746" + id="radialGradient3880" + cx="82.966125" + cy="-178.42453" + fx="82.966125" + fy="-178.42453" + r="526.79456" + gradientTransform="matrix(1.4952094,0.3367191,-0.1040669,0.5264617,-57.119818,125.77043)" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3438" + id="linearGradient3948" + x1="660.29303" + y1="256.53284" + x2="444.79303" + y2="255.62085" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(0,32.526912)" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3692" + id="linearGradient3972" + x1="573.5" + y1="244.2056" + x2="578.25" + y2="216.9556" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(0,35.526912)" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3746" + id="linearGradient3990" + x1="542.5" + y1="222.59448" + x2="559" + y2="222.59448" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-6.25,37.151912)" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3746" + id="linearGradient3994" + gradientUnits="userSpaceOnUse" + x1="542.5" + y1="222.59448" + x2="559" + y2="222.59448" + gradientTransform="translate(38.5,37.151912)" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient4016" + id="linearGradient4022" + x1="639" + y1="262.09448" + x2="667" + y2="262.09448" + gradientUnits="userSpaceOnUse" /> + <inkscape:perspective + id="perspective2578" + inkscape:persp3d-origin="372.04724 : 350.78739 : 1" + inkscape:vp_z="744.09448 : 526.18109 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 526.18109 : 1" + sodipodi:type="inkscape:persp3d" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3746" + id="linearGradient3387" + gradientUnits="userSpaceOnUse" + x1="542.5" + y1="222.59448" + x2="559" + y2="222.59448" + gradientTransform="translate(15.875,37.151912)" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3167" + id="linearGradient3416" + x1="474.23065" + y1="229.92336" + x2="474.1944" + y2="218.27365" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(0.1004684,32.526757)" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3428" + id="linearGradient3426" + x1="592.92798" + y1="199.43727" + x2="557.05743" + y2="196.5448" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(12.140805,-13.041887)" /> + <filter + inkscape:collect="always" + id="filter3507"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="3.0523171" + id="feGaussianBlur3509" /> + </filter> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3523" + id="linearGradient3521" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1,0,0,-0.7291751,0,521.83983)" + x1="562.55634" + y1="285.89896" + x2="562.55634" + y2="244.09448" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5097" + id="linearGradient5103" + x1="590.84674" + y1="274.57559" + x2="590.84674" + y2="334.01376" + gradientUnits="userSpaceOnUse" + spreadMethod="pad" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient3864" + id="radialGradient5107" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.9674693,0.8647541,-0.8726553,1.0212484,-15.308759,-74.232772)" + cx="94.273849" + cy="89.893486" + fx="94.273849" + fy="89.893486" + r="74.397521" /> + </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="0.70710678" + inkscape:cx="532.91407" + inkscape:cy="457.84365" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="false" + inkscape:window-width="1674" + inkscape:window-height="1000" + inkscape:window-x="2" + inkscape:window-y="14" + showguides="false" /> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1"> + <rect + style="opacity:1;fill:url(#radialGradient3880);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.1880002;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect3638" + width="1053.5891" + height="291.32797" + x="-0.29455566" + y="1.6323624" /> + <path + style="fill:url(#radialGradient3874);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter3507)" + d="M 158.37853,75.817898 C 130.95894,49.483192 82.14552,74.615971 85.85382,95.15981 C 49.691853,94.8009 50.214842,139.36083 83.29101,132.16343 C 144.66465,163.16454 159.26268,129.80212 164.6863,136.51386 C 225.60448,157.97672 246.34362,130.65438 265.24417,127.0714 C 294.43981,137.91859 337.16986,121.78798 297.03636,102.77604 C 331.73096,64.597047 277.96882,60.229366 253.07028,70.400868 C 191.09597,33.610112 168.89234,63.292037 158.37853,75.817898 z" + id="path3872" + sodipodi:nodetypes="cccccccc" + transform="matrix(1.5062893,0,0,1.1720951,618.04001,132.36768)" /> + <rect + style="opacity:1;fill:url(#linearGradient3630);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.13464069;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect3622" + width="1054.4708" + height="461.52972" + x="-0.7354126" + y="278.34879" /> + <path + style="fill:url(#linearGradient3826);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="M -0.99999999,712.83731 C 272,698.40705 -51.363087,575.30331 261,705.40705 C 324.46247,731.84009 395,707.01041 449,705.40705 C 503,703.80369 463,690.73643 510,711.58015 C 557,732.42386 705,692.39023 750,684.37342 C 795,676.35661 908,667.75324 947,682.18351 C 986,696.61377 1056,698.9936 1056,698.9936 L 1053,747.09448 L -3,745.49112 L -0.99999999,712.83731 z" + id="path3814" + sodipodi:nodetypes="cssssscccc" /> + <rect + style="opacity:1;fill:url(#linearGradient3520);fill-opacity:1;fill-rule:nonzero;stroke:#1b1e1f;stroke-width:0.56879884;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect3512" + width="10.557344" + height="6.0432386" + x="642.3761" + y="666.43695" /> + <use + x="0" + y="0" + xlink:href="#path2455" + id="use3258" + transform="matrix(0.869168,0,0,-0.869168,81.98751,1246.5374)" + width="1052.3622" + height="744.09448" /> + <path + style="fill:url(#linearGradient3812);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.77744257;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 593.04822,651.68104 C 593.04822,651.68104 653.65569,615.49321 639.065,637.05192 C 624.47431,658.61061 624.47431,658.61061 624.47431,658.61061 L 593.04822,651.68104 z" + id="path2455" /> + <path + style="fill:url(#linearGradient3175);fill-opacity:1;fill-rule:evenodd;stroke:#393939;stroke-width:1.90693891;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 485.26939,643.71814 C 443.15507,651.66437 458.5319,680.53556 502.21486,686.27814 C 551.68229,692.78115 568.45042,691.0115 605.34827,686.27814 C 657.60843,679.57406 657.68143,651.78445 605.34827,643.25553 C 553.98131,634.88408 516.10913,637.89923 485.26939,643.71814 z" + id="path2385" + sodipodi:nodetypes="cssss" /> + <path + style="fill:url(#radialGradient3339);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="M 542.18031,648.1112 C 548.56327,665.42741 608.42397,656.72745 586.93551,642.57104 C 586.93551,642.57104 543.33293,648.61096 542.18031,648.1112 z" + id="path3403" + sodipodi:nodetypes="ccc" /> + <path + style="fill:url(#linearGradient3311);fill-opacity:1;fill-rule:evenodd;stroke:#2d2d2d;stroke-width:2.07042313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 537.39402,641.90906 C 537.39402,656.7605 583.62247,656.30589 583.62247,641.45445 L 583.62247,636.06071 C 583.62247,621.21003 537.39402,613.87461 537.39402,628.72529 L 537.39402,641.90906 z" + id="path3291" + sodipodi:nodetypes="cssss" /> + <g + id="g3235" + transform="matrix(1.4016868,0,0,1.1319742,112.22001,-99.678822)" /> + <path + sodipodi:type="arc" + style="opacity:1;fill:url(#radialGradient3441);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.227;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path3433" + sodipodi:cx="303.5" + sodipodi:cy="263.09448" + sodipodi:rx="37.5" + sodipodi:ry="40" + d="M 341,263.09448 A 37.5,40 0 1 1 266,263.09448 A 37.5,40 0 1 1 341,263.09448 z" + transform="matrix(0.692163,0,1.4106583e-2,0.289185,275.31394,582.37251)" /> + <path + sodipodi:type="arc" + style="opacity:1;fill:#444444;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.06500006;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path3458" + sodipodi:cx="369.5" + sodipodi:cy="316.09448" + sodipodi:rx="27.5" + sodipodi:ry="7" + d="M 397,316.09448 A 27.5,7 0 1 1 342,316.09448 A 27.5,7 0 1 1 397,316.09448 z" + transform="matrix(0.5642633,0,0,0.5642633,348.03095,450.47113)" /> + <path + sodipodi:type="arc" + style="opacity:1;fill:#444444;fill-opacity:1;fill-rule:nonzero;stroke:#1b1e1f;stroke-width:4.23126984;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path3510" + sodipodi:cx="369.5" + sodipodi:cy="316.09448" + sodipodi:rx="27.5" + sodipodi:ry="7" + d="M 397,316.09448 A 27.5,7 0 1 1 342,316.09448 A 27.5,7 0 1 1 397,316.09448 z" + transform="matrix(0,0.30778,-0.5642633,0,828.66499,563.5944)" /> + <use + x="0" + y="0" + xlink:href="#path3510" + id="use3544" + transform="translate(0.5000005,-17.23511)" + width="1052.3622" + height="744.09448" /> + <path + sodipodi:type="arc" + style="opacity:1;fill:#787878;fill-opacity:1;fill-rule:nonzero;stroke:#1b1e1f;stroke-width:2.38492584;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path3584" + sodipodi:cx="237.5" + sodipodi:cy="366.09448" + sodipodi:rx="8.5" + sodipodi:ry="8" + d="M 246,366.09448 A 8.5,8 0 1 1 229,366.09448 A 8.5,8 0 1 1 246,366.09448 z" + transform="matrix(1.7798114,-4.2997512e-2,1.3318941e-2,0.5513151,196.65666,476.1443)" /> + <path + style="fill:#a9a9a9;fill-opacity:1;fill-rule:nonzero;stroke:#484848;stroke-width:3.49756980000000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1" + d="M 423.2231,281.1169 C 502.67948,283.47026 574.8361,283.42778 668.97714,281.1169 C 668.97714,281.1169 670.77663,271.99598 668.97714,269.5402 C 559.46065,250.8302 423.2231,265.08614 423.2231,269.5402 L 423.2231,281.1169 z" + id="path3469" + sodipodi:nodetypes="cccsc" /> + <rect + style="opacity:1;fill:#333333;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect3408" + width="3.4280596" + height="29.611124" + x="709.89148" + y="-14.462622" + transform="matrix(0.9327494,0.3605254,-0.3633626,0.9316478,0,0)" /> + <rect + style="opacity:1;fill:url(#linearGradient3416);fill-opacity:1;fill-rule:nonzero;stroke:#484848;stroke-width:2.99999928;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect3376" + width="48.499989" + height="8.5" + x="444.56302" + y="252.39224" + transform="matrix(0.9999952,3.0887776e-3,-3.0887776e-3,0.9999952,0,0)" /> + <path + style="fill:url(#linearGradient3972);fill-opacity:1;fill-rule:evenodd;stroke:#323232;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 509,277.62139 C 509,277.62139 547.41409,235.70896 524,232.62139 L 615,244.62139 L 615,279.62139 L 509,277.62139 z" + id="path3952" + sodipodi:nodetypes="csccc" /> + <path + sodipodi:type="arc" + style="opacity:1;fill:url(#radialGradient3662);fill-opacity:1;fill-rule:nonzero;stroke:#41526b;stroke-width:2.9000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path3654" + sodipodi:cx="656.19507" + sodipodi:cy="541.15485" + sodipodi:rx="12.727922" + sodipodi:ry="16.263456" + d="M 668.92299,541.15485 A 12.727922,16.263456 0 1 1 643.46715,541.15485 A 12.727922,16.263456 0 1 1 668.92299,541.15485 z" + transform="matrix(0.5187874,0,0,0.3968421,374.8524,387.30025)" /> + <path + sodipodi:type="arc" + style="opacity:1;fill:url(#radialGradient3668);fill-opacity:1;fill-rule:nonzero;stroke:#41526b;stroke-width:2.9000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path3666" + sodipodi:cx="656.19507" + sodipodi:cy="541.15485" + sodipodi:rx="12.727922" + sodipodi:ry="16.263456" + d="M 668.92299,541.15485 A 12.727922,16.263456 0 1 1 643.46715,541.15485 A 12.727922,16.263456 0 1 1 668.92299,541.15485 z" + transform="matrix(0.5734968,0,0,0.4386917,316.52295,315.62837)" /> + <path + transform="matrix(0.8598866,0,0,0.5637407,192.52282,220.77351)" + d="M 668.92299,541.15485 A 12.727922,16.263456 0 1 1 643.46715,541.15485 A 12.727922,16.263456 0 1 1 668.92299,541.15485 z" + sodipodi:ry="16.263456" + sodipodi:rx="12.727922" + sodipodi:cy="541.15485" + sodipodi:cx="656.19507" + id="path3670" + style="opacity:1;fill:url(#radialGradient3672);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.90000010000000020;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + sodipodi:type="arc" /> + <path + sodipodi:type="arc" + style="opacity:1;fill:url(#radialGradient3676);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.90000010000000020;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path3674" + sodipodi:cx="656.19507" + sodipodi:cy="541.15485" + sodipodi:rx="12.727922" + sodipodi:ry="16.263456" + d="M 668.92299,541.15485 A 12.727922,16.263456 0 1 1 643.46715,541.15485 A 12.727922,16.263456 0 1 1 668.92299,541.15485 z" + transform="matrix(0.7435991,0,0,0.6264519,225.8301,127.83701)" /> + <g + id="g3759" + transform="matrix(0.8830571,0,0,0.8830571,104.83144,103.2985)"> + <path + d="M 523.9661,469.73706 A 7.7781744,34.648232 0 1 1 508.40975,469.73706 A 7.7781744,34.648232 0 1 1 523.9661,469.73706 z" + sodipodi:ry="34.648232" + sodipodi:rx="7.7781744" + sodipodi:cy="469.73706" + sodipodi:cx="516.18793" + id="path3682" + style="opacity:1;fill:url(#linearGradient3772);fill-opacity:1;fill-rule:nonzero;stroke:#272727;stroke-width:2.9000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + sodipodi:type="arc" /> + <g + id="g3754"> + <rect + style="opacity:1;fill:url(#linearGradient3774);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.20000005;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect3716" + width="33.58757" + height="59.927299" + x="498.86386" + y="497.84454" /> + <path + style="fill:url(#linearGradient3776);fill-opacity:1;fill-rule:evenodd;stroke:#1f1f1f;stroke-width:1.99788344;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 523.35045,482.89424 C 523.35045,482.89424 532.31256,488.20203 532.02344,500.14638 C 531.73431,512.09072 531.73431,511.73417 531.73431,511.73417 C 531.73431,511.73417 520.70627,493.83104 519.26887,499.77636 L 523.35045,482.89424 z" + id="path3704" + sodipodi:nodetypes="cscsc" /> + <path + sodipodi:nodetypes="cscsc" + id="path3706" + d="M 508.50327,482.89424 C 508.50327,482.89424 499.54116,488.20203 499.83028,500.14638 C 500.11941,512.09072 500.11941,511.73417 500.11941,511.73417 C 500.11941,511.73417 511.14745,493.83104 512.58485,499.77636 L 508.50327,482.89424 z" + style="fill:#bcbcbc;fill-opacity:1;fill-rule:evenodd;stroke:#1f1f1f;stroke-width:1.99788344;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + </g> + </g> + <g + transform="matrix(0.8830571,0,0,0.8830571,192.45885,-66.370546)" + id="g3778"> + <path + sodipodi:type="arc" + style="opacity:1;fill:url(#linearGradient3790);fill-opacity:1;fill-rule:nonzero;stroke:#272727;stroke-width:2.9000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path3780" + sodipodi:cx="516.18793" + sodipodi:cy="469.73706" + sodipodi:rx="7.7781744" + sodipodi:ry="34.648232" + d="M 523.9661,469.73706 A 7.7781744,34.648232 0 1 1 508.40975,469.73706 A 7.7781744,34.648232 0 1 1 523.9661,469.73706 z" /> + <g + id="g3782"> + <rect + y="497.84454" + x="498.86386" + height="59.927299" + width="33.58757" + id="rect3784" + style="opacity:1;fill:url(#linearGradient3792);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.20000005;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + sodipodi:nodetypes="cscsc" + id="path3786" + d="M 523.35045,482.89424 C 523.35045,482.89424 532.31256,488.20203 532.02344,500.14638 C 531.73431,512.09072 531.73431,511.73417 531.73431,511.73417 C 531.73431,511.73417 520.70627,493.83104 519.26887,499.77636 L 523.35045,482.89424 z" + style="fill:url(#linearGradient3794);fill-opacity:1;fill-rule:evenodd;stroke:#1f1f1f;stroke-width:1.99788344;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + style="fill:#bcbcbc;fill-opacity:1;fill-rule:evenodd;stroke:#1f1f1f;stroke-width:1.99788344;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 508.50327,482.89424 C 508.50327,482.89424 499.54116,488.20203 499.83028,500.14638 C 500.11941,512.09072 500.11941,511.73417 500.11941,511.73417 C 500.11941,511.73417 511.14745,493.83104 512.58485,499.77636 L 508.50327,482.89424 z" + id="path3788" + sodipodi:nodetypes="cscsc" /> + </g> + </g> + <path + transform="matrix(0.4292897,0,0,0.3283816,384.32775,481.20689)" + d="M 668.92299,541.15485 A 12.727922,16.263456 0 1 1 643.46715,541.15485 A 12.727922,16.263456 0 1 1 668.92299,541.15485 z" + sodipodi:ry="16.263456" + sodipodi:rx="12.727922" + sodipodi:cy="541.15485" + sodipodi:cx="656.19507" + id="path3802" + style="opacity:1;fill:url(#radialGradient3804);fill-opacity:1;fill-rule:nonzero;stroke:#41526b;stroke-width:2.9000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + sodipodi:type="arc" /> + <path + sodipodi:type="arc" + style="opacity:1;fill:url(#radialGradient3808);fill-opacity:1;fill-rule:nonzero;stroke:#41526b;stroke-width:2.9000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path3806" + sodipodi:cx="656.19507" + sodipodi:cy="541.15485" + sodipodi:rx="12.727922" + sodipodi:ry="16.263456" + d="M 668.92299,541.15485 A 12.727922,16.263456 0 1 1 643.46715,541.15485 A 12.727922,16.263456 0 1 1 668.92299,541.15485 z" + transform="matrix(0.5842998,0,0,0.4469553,299.7804,369.91514)" /> + <path + style="fill:#ad8b00;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="M 1059.5,736.57373 C 786.5,730.53352 912.51207,693.32637 768.5,736.53352 C 750.7005,741.87381 560.38464,722.59661 552.5,736.53352 C 528.68395,778.63085 223.94216,703.33865 182.5,727.16444 C 179.5,728.88919 160.53732,723.88477 135.5,730.90332 C 98.830356,741.18268 82.5,725.67603 43.5,731.71624 C 4.5,737.75645 0.5,733.72965 0.5,733.72965 L -6.5,747.98302 L 1049.5,747.31188 L 1059.5,736.57373 z" + id="path3828" + sodipodi:nodetypes="cssssscccc" /> + <rect + style="opacity:1;fill:url(#linearGradient5103);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect3448" + width="1053.5891" + height="67.882248" + x="-0.29455566" + y="274.57559" /> + <path + sodipodi:nodetypes="ccccc" + id="path3519" + d="M 428,343.85222 C 428,343.85222 457.01739,315.41439 470,315.41439 C 481.98261,313.04457 634.13054,311.73511 652,317.41962 C 661.13441,320.56943 664.46012,324.9477 666,343.85222 C 600.25603,336.72647 497.8192,336.4719 428,343.85222 z" + style="opacity:0.43933058;fill:url(#linearGradient3521);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.0999999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + style="fill:url(#linearGradient3948);fill-opacity:1;fill-rule:evenodd;stroke:#545454;stroke-width:3.0999999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 428,276.62139 C 428,276.62139 457.01739,315.62139 470,315.62139 C 481.98261,318.87139 634.13054,320.6672 652,312.87139 C 661.13441,308.55171 664.46012,302.54729 666,276.62139 C 600.25603,286.39373 497.8192,286.74286 428,276.62139 z" + id="path3938" + sodipodi:nodetypes="ccccc" /> + <path + style="fill:#dedede;fill-opacity:1;fill-rule:nonzero;stroke:#484848;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1" + d="M 466.00273,263.08289 L 484.25264,263.13926 L 494.7163,274.92164 L 465.96644,274.83284 L 466.00273,263.08289 z" + id="rect3378" + sodipodi:nodetypes="ccccc" /> + <rect + style="opacity:1;fill:url(#linearGradient3990);fill-opacity:1;fill-rule:nonzero;stroke:#323232;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect3974" + width="13.5" + height="17" + x="537.75" + y="251.2464" + inkscape:transform-center-x="30" /> + <rect + inkscape:transform-center-x="30" + y="251.2464" + x="582.5" + height="17" + width="13.5" + id="rect3992" + style="opacity:1;fill:url(#linearGradient3994);fill-opacity:1;fill-rule:nonzero;stroke:#323232;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + style="fill:#dedede;fill-opacity:1;fill-rule:nonzero;stroke:#484848;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1" + d="M 422.25,268.87139 C 487.33333,277.37139 573.16667,279.87139 668.5,268.87139 C 668.5,268.87139 670.30312,275.56827 668.5,277.37139 C 558.76249,291.1089 422.25,280.64171 422.25,277.37139 L 422.25,268.87139 z" + id="rect2558" + sodipodi:nodetypes="cccsc" /> + <rect + style="opacity:1;fill:#c1c1c1;fill-opacity:1;fill-rule:nonzero;stroke:#404040;stroke-width:3.0365274;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect2569" + width="94.427879" + height="7.236649" + x="546.39832" + y="177.10637" + transform="matrix(0.9947793,0.1020501,-0.1079723,0.9941539,0,0)" /> + <rect + inkscape:transform-center-x="30" + y="251.2464" + x="559.875" + height="17" + width="13.5" + id="rect3385" + style="opacity:1;fill:url(#linearGradient3387);fill-opacity:1;fill-rule:nonzero;stroke:#323232;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <g + id="g3401" + transform="matrix(0.9246214,0.3808874,-0.3808874,0.9246214,113.30125,-193.16902)" + inkscape:transform-center-x="17.590385" + inkscape:transform-center-y="-15.415449"> + <rect + inkscape:transform-center-y="-43.888889" + transform="matrix(0,1,-1,0,0,0)" + style="opacity:1;fill:#b20000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect3389" + width="19.75" + height="27.75" + x="193.34448" + y="-709" /> + <rect + y="200.59448" + x="681.5" + height="5.75" + width="27.25" + id="rect3393" + style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <rect + y="193.59448" + x="691.25" + height="19.5" + width="5.75" + id="rect3395" + style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <rect + y="202.34448" + x="681.5" + height="2.5" + width="27.75" + id="rect3397" + style="opacity:1;fill:#000080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <rect + y="193.59448" + x="692.5" + height="19.25" + width="3" + id="rect3399" + style="opacity:1;fill:#000080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + </g> + <path + style="fill:#dcdcdc;fill-opacity:1;fill-rule:nonzero;stroke:#404040;stroke-width:3.03650045;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1" + d="M 529.42326,227.17914 L 616.35817,235.81552 L 618.07681,241.50986 L 524.14191,231.87348 L 529.42326,227.17914 z" + id="rect3466" + sodipodi:nodetypes="ccccc" /> + <rect + style="opacity:1;fill:url(#linearGradient3426);fill-opacity:1;fill-rule:nonzero;stroke:#494949;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect3418" + width="34.5" + height="14.5" + x="571.14081" + y="174.8026" + transform="matrix(0.997157,7.5351915e-2,-7.5351915e-2,0.997157,0,0)" + inkscape:transform-center-x="-8" + inkscape:transform-center-y="2" /> + <g + id="mine" + transform="translate(971.11461,237.62715)" + inkscape:label="#g3441"> + <path + transform="matrix(0.6341613,0,0,0.6341613,-18.521242,45.718192)" + d="M -167.5843,186.54079 A 31.466251,31.466251 0 1 1 -230.5168,186.54079 A 31.466251,31.466251 0 1 1 -167.5843,186.54079 z" + sodipodi:ry="31.466251" + sodipodi:rx="31.466251" + sodipodi:cy="186.54079" + sodipodi:cx="-199.05055" + id="path2586" + style="opacity:1;fill:url(#radialGradient3364);fill-opacity:1;stroke:#131313;stroke-width:3.54799318;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + sodipodi:type="arc" /> + <path + sodipodi:nodetypes="ccss" + id="path3382" + d="M -155.20193,175.4167 C -157.60085,176.6451 -156.78074,184.26068 -156.78074,184.26068 C -156.78074,184.26068 -148.33787,181.58301 -148.57092,178.60053 C -148.74283,176.40051 -153.23774,174.41092 -155.20193,175.4167 z" + style="fill:url(#linearGradient3398);fill-opacity:1;fill-rule:evenodd;stroke:#131313;stroke-width:2.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + sodipodi:nodetypes="ccss" + id="path3400" + d="M -156.56354,153.84532 C -158.96246,152.61693 -158.14235,145.00135 -158.14235,145.00135 C -158.14235,145.00135 -149.69948,147.67902 -149.93253,150.66149 C -150.10444,152.86151 -154.59935,154.85111 -156.56354,153.84532 z" + style="fill:url(#linearGradient3402);fill-opacity:1;fill-rule:evenodd;stroke:#131313;stroke-width:2.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + sodipodi:nodetypes="ccss" + id="path3404" + d="M -133.88532,153.68678 C -131.48641,152.45838 -132.30652,144.8428 -132.30652,144.8428 C -132.30652,144.8428 -140.74938,147.52047 -140.51633,150.50295 C -140.34442,152.70297 -135.84951,154.69256 -133.88532,153.68678 z" + style="fill:url(#linearGradient3406);fill-opacity:1;fill-rule:evenodd;stroke:#131313;stroke-width:2.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + sodipodi:nodetypes="ccss" + id="path3408" + d="M -134.51948,175.55085 C -132.12057,176.77925 -132.94068,184.39483 -132.94068,184.39483 C -132.94068,184.39483 -141.38355,181.71716 -141.15049,178.73469 C -140.97858,176.53467 -136.48367,174.54507 -134.51948,175.55085 z" + style="fill:url(#linearGradient3410);fill-opacity:1;fill-rule:evenodd;stroke:#131313;stroke-width:2.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + sodipodi:nodetypes="ccss" + id="path3412" + d="M -161.25709,168.78221 C -163.22395,170.62484 -170.11427,165.85236 -170.11427,165.85236 C -170.11427,165.85236 -164.7408,160.23808 -162.01257,161.46538 C -160.00011,162.37068 -159.64667,167.27352 -161.25709,168.78221 z" + style="fill:url(#linearGradient3414);fill-opacity:1;fill-rule:evenodd;stroke:#131313;stroke-width:2.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + sodipodi:nodetypes="ccss" + id="path3416" + d="M -129.17068,169.10464 C -127.20382,170.94727 -120.3135,166.17478 -120.3135,166.17478 C -120.3135,166.17478 -125.68697,160.5605 -128.41519,161.7878 C -130.42766,162.69311 -130.7811,167.59595 -129.17068,169.10464 z" + style="fill:url(#linearGradient3418);fill-opacity:1;fill-rule:evenodd;stroke:#131313;stroke-width:2.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + transform="matrix(0.6341613,0,0,0.6341613,-61.039517,68.324922)" + d="M -126,151.21948 A 6.625,6.625 0 1 1 -139.25,151.21948 A 6.625,6.625 0 1 1 -126,151.21948 z" + sodipodi:ry="6.625" + sodipodi:rx="6.625" + sodipodi:cy="151.21948" + sodipodi:cx="-132.625" + id="path3426" + style="opacity:1;fill:url(#radialGradient3439);fill-opacity:1;stroke:#131313;stroke-width:3.54799318;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + sodipodi:type="arc" /> + </g> + </g> +</svg> diff --git a/demos/sub-attaq/pics/scalable/submarine.svg b/demos/sub-attaq/pics/scalable/submarine.svg new file mode 100644 index 0000000..8a0ffdd --- /dev/null +++ b/demos/sub-attaq/pics/scalable/submarine.svg @@ -0,0 +1,214 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + version="1.0" + width="744.09448" + height="1052.3622" + id="svg2594"> + <defs + id="defs2596"> + <linearGradient + id="linearGradient3345"> + <stop + id="stop3348" + style="stop-color:#898989;stop-opacity:1" + offset="0" /> + <stop + id="stop3350" + style="stop-color:#9ea1a2;stop-opacity:1" + offset="0.44021741" /> + <stop + id="stop3352" + style="stop-color:#bbbdbf;stop-opacity:1" + offset="0.56799388" /> + <stop + id="stop3354" + style="stop-color:#f0f1f2;stop-opacity:1" + offset="1" /> + </linearGradient> + <linearGradient + x1="510.99884" + y1="161.99408" + x2="396.48914" + y2="161.99408" + id="linearGradient3311" + xlink:href="#linearGradient3345" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.466978,0,0,0.4500435,231.58508,159.95135)" /> + <linearGradient + id="linearGradient3532"> + <stop + id="stop3534" + style="stop-color:#545454;stop-opacity:1" + offset="0" /> + <stop + id="stop3536" + style="stop-color:#848788;stop-opacity:1" + offset="0.44021741" /> + <stop + id="stop3538" + style="stop-color:#9ca0a2;stop-opacity:1" + offset="0.56799388" /> + <stop + id="stop3540" + style="stop-color:#565d60;stop-opacity:1" + offset="1" /> + </linearGradient> + <linearGradient + x1="525" + y1="371.09448" + x2="525" + y2="395.09448" + id="linearGradient3520" + xlink:href="#linearGradient3532" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.5865192,0,0,0.2518015,219.30885,192.6957)" /> + <linearGradient + id="linearGradient3227"> + <stop + id="stop3229" + style="stop-color:#444444;stop-opacity:1" + offset="0" /> + <stop + id="stop3232" + style="stop-color:#b0b0b0;stop-opacity:1" + offset="1" /> + </linearGradient> + <linearGradient + x1="543.5" + y1="205.19257" + x2="587.52002" + y2="205.19257" + id="linearGradient3812" + xlink:href="#linearGradient3227" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.1223608,0,0,0.3849769,-137.93938,185.11074)" /> + <linearGradient + id="linearGradient3167"> + <stop + id="stop3169" + style="stop-color:#464646;stop-opacity:1" + offset="0" /> + <stop + id="stop3345" + style="stop-color:#848788;stop-opacity:1" + offset="0.44021741" /> + <stop + id="stop3347" + style="stop-color:#9ca0a2;stop-opacity:1" + offset="0.56799388" /> + <stop + id="stop3171" + style="stop-color:#b5babd;stop-opacity:1" + offset="1" /> + </linearGradient> + <linearGradient + x1="443.95602" + y1="315.31854" + x2="443.95602" + y2="247.85609" + id="linearGradient3175" + xlink:href="#linearGradient3167" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.4908502,0,0,0.4579593,230.56224,161.8228)" /> + <linearGradient + id="linearGradient3421"> + <stop + id="stop3423" + style="stop-color:#444444;stop-opacity:1" + offset="0" /> + <stop + id="stop3425" + style="stop-color:#444444;stop-opacity:0" + offset="1" /> + </linearGradient> + <radialGradient + cx="432.33429" + cy="233.80295" + r="59.056835" + fx="432.33429" + fy="233.80295" + id="radialGradient3339" + xlink:href="#linearGradient3421" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.4181493,0,0,0.1282619,265.67128,239.85868)" /> + <linearGradient + id="linearGradient3435"> + <stop + id="stop3437" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /> + <stop + id="stop3439" + style="stop-color:#c0c0c0;stop-opacity:0" + offset="1" /> + </linearGradient> + <radialGradient + cx="290.5" + cy="244.34448" + r="37.5" + fx="290.5" + fy="244.34448" + id="radialGradient3441" + xlink:href="#linearGradient3435" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.8202102,0.8202102,-0.7960458,0.7960458,246.73838,-189.686)" /> + </defs> + <g + id="submarine"> + <rect + width="10.557344" + height="6.0432386" + x="521.95276" + y="286.13785" + id="rect3512" + style="opacity:1;fill:url(#linearGradient3520);fill-opacity:1;fill-rule:nonzero;stroke:#1b1e1f;stroke-width:0.56879884;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + d="M 472.62489,271.38195 C 472.62489,271.38195 533.23236,235.19412 518.64167,256.75283 C 504.05098,278.31152 504.05098,278.31152 504.05098,278.31152 L 472.62489,271.38195 z" + id="path2455" + style="fill:url(#linearGradient3812);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.77744257;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + d="M 364.84606,263.41905 C 322.73174,271.36528 338.10857,300.23647 381.79153,305.97905 C 431.25896,312.48206 448.02709,310.71241 484.92494,305.97905 C 537.1851,299.27497 537.2581,271.48536 484.92494,262.95644 C 433.55798,254.58499 395.6858,257.60014 364.84606,263.41905 z" + id="path2385" + style="fill:url(#linearGradient3175);fill-opacity:1;fill-rule:evenodd;stroke:#393939;stroke-width:1.90693891;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + d="M 421.75698,267.81211 C 428.13994,285.12832 488.00064,276.42836 466.51218,262.27195 C 466.51218,262.27195 422.9096,268.31187 421.75698,267.81211 z" + id="path3403" + style="fill:url(#radialGradient3339);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <path + d="M 416.97069,261.60997 C 416.97069,276.46141 463.19914,276.0068 463.19914,261.15536 L 463.19914,255.76162 C 463.19914,240.91094 416.97069,233.57552 416.97069,248.4262 L 416.97069,261.60997 z" + id="path3291" + style="fill:url(#linearGradient3311);fill-opacity:1;fill-rule:evenodd;stroke:#2d2d2d;stroke-width:2.07042313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + d="M 341,263.09448 A 37.5,40 0 1 1 266,263.09448 A 37.5,40 0 1 1 341,263.09448 z" + transform="matrix(0.692163,0,1.4106583e-2,0.289185,154.89061,202.07342)" + id="path3433" + style="opacity:1;fill:url(#radialGradient3441);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.227;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + d="M 397,316.09448 A 27.5,7 0 1 1 342,316.09448 A 27.5,7 0 1 1 397,316.09448 z" + transform="matrix(0.5642633,0,0,0.5642633,227.60762,70.172035)" + id="path3458" + style="opacity:1;fill:#444444;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.06500006;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + d="M 397,316.09448 A 27.5,7 0 1 1 342,316.09448 A 27.5,7 0 1 1 397,316.09448 z" + transform="matrix(0,0.30778,-0.5642633,0,708.24166,183.29531)" + id="path3510" + style="opacity:1;fill:#444444;fill-opacity:1;fill-rule:nonzero;stroke:#1b1e1f;stroke-width:4.23126984;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <use + transform="translate(0.5000044,-17.235115)" + id="use3544" + x="0" + y="0" + width="1052.3622" + height="744.09448" + xlink:href="#path3510" /> + <path + d="M 246,366.09448 A 8.5,8 0 1 1 229,366.09448 A 8.5,8 0 1 1 246,366.09448 z" + transform="matrix(1.7798114,-4.2997512e-2,1.3318941e-2,0.5513151,76.233334,95.845205)" + id="path3584" + style="opacity:1;fill:#787878;fill-opacity:1;fill-rule:nonzero;stroke:#1b1e1f;stroke-width:2.38492584;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + </g> +</svg> diff --git a/demos/sub-attaq/pics/scalable/surface.svg b/demos/sub-attaq/pics/scalable/surface.svg new file mode 100644 index 0000000..40ed239 --- /dev/null +++ b/demos/sub-attaq/pics/scalable/surface.svg @@ -0,0 +1,49 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + version="1.0" + width="744.09448" + height="1052.3622" + id="svg2685"> + <defs + id="defs2687"> + <linearGradient + id="linearGradient5097"> + <stop + id="stop5099" + style="stop-color:#19a2db;stop-opacity:0" + offset="0" /> + <stop + id="stop5109" + style="stop-color:#1379a7;stop-opacity:0.49803922" + offset="0.30000001" /> + <stop + id="stop5101" + style="stop-color:#0e5173;stop-opacity:1" + offset="1" /> + </linearGradient> + <linearGradient + x1="590.84674" + y1="274.57559" + x2="590.84674" + y2="334.01376" + id="linearGradient5103" + xlink:href="#linearGradient5097" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-172.21428,209.55976)" + spreadMethod="pad" /> + </defs> + <g + id="layer1"> + <rect + width="1053.5891" + height="67.882248" + x="-172.50883" + y="484.13535" + id="rect3448" + style="opacity:1;fill:url(#linearGradient5103);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + </g> +</svg> diff --git a/demos/sub-attaq/pics/scalable/torpedo.svg b/demos/sub-attaq/pics/scalable/torpedo.svg new file mode 100644 index 0000000..48e429d --- /dev/null +++ b/demos/sub-attaq/pics/scalable/torpedo.svg @@ -0,0 +1,127 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + version="1.0" + width="744.09448" + height="1052.3622" + id="svg2584"> + <defs + id="defs2586"> + <linearGradient + id="linearGradient3708"> + <stop + id="stop3710" + style="stop-color:#202020;stop-opacity:1" + offset="0" /> + <stop + id="stop3712" + style="stop-color:#ffffff;stop-opacity:1" + offset="1" /> + </linearGradient> + <linearGradient + x1="518.26996" + y1="497.31476" + x2="533.02924" + y2="497.31476" + id="linearGradient3776" + xlink:href="#linearGradient3708" + gradientUnits="userSpaceOnUse" /> + <linearGradient + id="linearGradient3718"> + <stop + id="stop3720" + style="stop-color:#bcbcbc;stop-opacity:0.28169015" + offset="0" /> + <stop + id="stop3722" + style="stop-color:#bcbcbc;stop-opacity:0" + offset="1" /> + </linearGradient> + <linearGradient + x1="516.89508" + y1="503.50137" + x2="516.89508" + y2="543.80646" + id="linearGradient3774" + xlink:href="#linearGradient3718" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.9947644,0,0,1.3346457,2.7877039,-166.60153)" /> + <linearGradient + id="linearGradient3692"> + <stop + id="stop3694" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /> + <stop + id="stop3696" + style="stop-color:#b6b6b6;stop-opacity:1" + offset="1" /> + </linearGradient> + <linearGradient + x1="506.95975" + y1="469.73706" + x2="525.41608" + y2="469.73706" + id="linearGradient3772" + xlink:href="#linearGradient3692" + gradientUnits="userSpaceOnUse" /> + <linearGradient + x1="506.95975" + y1="469.73706" + x2="525.41608" + y2="469.73706" + id="linearGradient2403" + xlink:href="#linearGradient3692" + gradientUnits="userSpaceOnUse" /> + <linearGradient + x1="516.89508" + y1="503.50137" + x2="516.89508" + y2="543.80646" + id="linearGradient2405" + xlink:href="#linearGradient3718" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.9947644,0,0,1.3346457,2.7877039,-166.60153)" /> + <linearGradient + x1="518.26996" + y1="497.31476" + x2="533.02924" + y2="497.31476" + id="linearGradient2407" + xlink:href="#linearGradient3708" + gradientUnits="userSpaceOnUse" /> + </defs> + <g + transform="translate(-128.69958,6.6568748)" + id="torpedo"> + <g + transform="matrix(0.8830571,0,0,0.8830571,-119.78327,177.67947)" + id="g3525"> + <path + d="M 523.9661,469.73706 A 7.7781744,34.648232 0 1 1 508.40975,469.73706 A 7.7781744,34.648232 0 1 1 523.9661,469.73706 z" + id="path3682" + style="opacity:1;fill:url(#linearGradient2403);fill-opacity:1;fill-rule:nonzero;stroke:#272727;stroke-width:2.9000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <g + id="g3754"> + <rect + width="33.58757" + height="59.927299" + x="498.86386" + y="497.84454" + id="rect3716" + style="opacity:1;fill:url(#linearGradient2405);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.20000005;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + d="M 523.35045,482.89424 C 523.35045,482.89424 532.31256,488.20203 532.02344,500.14638 C 531.73431,512.09072 531.73431,511.73417 531.73431,511.73417 C 531.73431,511.73417 520.70627,493.83104 519.26887,499.77636 L 523.35045,482.89424 z" + id="path3704" + style="fill:url(#linearGradient2407);fill-opacity:1;fill-rule:evenodd;stroke:#1f1f1f;stroke-width:1.99788344;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + d="M 508.50327,482.89424 C 508.50327,482.89424 499.54116,488.20203 499.83028,500.14638 C 500.11941,512.09072 500.11941,511.73417 500.11941,511.73417 C 500.11941,511.73417 511.14745,493.83104 512.58485,499.77636 L 508.50327,482.89424 z" + id="path3706" + style="fill:#bcbcbc;fill-opacity:1;fill-rule:evenodd;stroke:#1f1f1f;stroke-width:1.99788344;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + </g> + </g> + </g> +</svg> diff --git a/demos/sub-attaq/pics/small/background.png b/demos/sub-attaq/pics/small/background.png Binary files differnew file mode 100644 index 0000000..5ad3db6 --- /dev/null +++ b/demos/sub-attaq/pics/small/background.png diff --git a/demos/sub-attaq/pics/small/boat.png b/demos/sub-attaq/pics/small/boat.png Binary files differnew file mode 100644 index 0000000..114ccc3 --- /dev/null +++ b/demos/sub-attaq/pics/small/boat.png diff --git a/demos/sub-attaq/pics/small/bomb.png b/demos/sub-attaq/pics/small/bomb.png Binary files differnew file mode 100644 index 0000000..3af5f2f --- /dev/null +++ b/demos/sub-attaq/pics/small/bomb.png diff --git a/demos/sub-attaq/pics/small/submarine.png b/demos/sub-attaq/pics/small/submarine.png Binary files differnew file mode 100644 index 0000000..0c0c350 --- /dev/null +++ b/demos/sub-attaq/pics/small/submarine.png diff --git a/demos/sub-attaq/pics/small/surface.png b/demos/sub-attaq/pics/small/surface.png Binary files differnew file mode 100644 index 0000000..06d0e47 --- /dev/null +++ b/demos/sub-attaq/pics/small/surface.png diff --git a/demos/sub-attaq/pics/small/torpedo.png b/demos/sub-attaq/pics/small/torpedo.png Binary files differnew file mode 100644 index 0000000..f9c2687 --- /dev/null +++ b/demos/sub-attaq/pics/small/torpedo.png diff --git a/demos/sub-attaq/pics/welcome/logo-a.png b/demos/sub-attaq/pics/welcome/logo-a.png Binary files differnew file mode 100644 index 0000000..67dd76d --- /dev/null +++ b/demos/sub-attaq/pics/welcome/logo-a.png diff --git a/demos/sub-attaq/pics/welcome/logo-a2.png b/demos/sub-attaq/pics/welcome/logo-a2.png Binary files differnew file mode 100644 index 0000000..17668b0 --- /dev/null +++ b/demos/sub-attaq/pics/welcome/logo-a2.png diff --git a/demos/sub-attaq/pics/welcome/logo-b.png b/demos/sub-attaq/pics/welcome/logo-b.png Binary files differnew file mode 100644 index 0000000..cf6c045 --- /dev/null +++ b/demos/sub-attaq/pics/welcome/logo-b.png diff --git a/demos/sub-attaq/pics/welcome/logo-dash.png b/demos/sub-attaq/pics/welcome/logo-dash.png Binary files differnew file mode 100644 index 0000000..219233c --- /dev/null +++ b/demos/sub-attaq/pics/welcome/logo-dash.png diff --git a/demos/sub-attaq/pics/welcome/logo-excl.png b/demos/sub-attaq/pics/welcome/logo-excl.png Binary files differnew file mode 100644 index 0000000..8dd0a2e --- /dev/null +++ b/demos/sub-attaq/pics/welcome/logo-excl.png diff --git a/demos/sub-attaq/pics/welcome/logo-q.png b/demos/sub-attaq/pics/welcome/logo-q.png Binary files differnew file mode 100644 index 0000000..86e588d --- /dev/null +++ b/demos/sub-attaq/pics/welcome/logo-q.png diff --git a/demos/sub-attaq/pics/welcome/logo-s.png b/demos/sub-attaq/pics/welcome/logo-s.png Binary files differnew file mode 100644 index 0000000..7b6a36e --- /dev/null +++ b/demos/sub-attaq/pics/welcome/logo-s.png diff --git a/demos/sub-attaq/pics/welcome/logo-t.png b/demos/sub-attaq/pics/welcome/logo-t.png Binary files differnew file mode 100644 index 0000000..b2e3526 --- /dev/null +++ b/demos/sub-attaq/pics/welcome/logo-t.png diff --git a/demos/sub-attaq/pics/welcome/logo-t2.png b/demos/sub-attaq/pics/welcome/logo-t2.png Binary files differnew file mode 100644 index 0000000..b11a778 --- /dev/null +++ b/demos/sub-attaq/pics/welcome/logo-t2.png diff --git a/demos/sub-attaq/pics/welcome/logo-u.png b/demos/sub-attaq/pics/welcome/logo-u.png Binary files differnew file mode 100644 index 0000000..24eede8 --- /dev/null +++ b/demos/sub-attaq/pics/welcome/logo-u.png diff --git a/demos/sub-attaq/pixmapitem.cpp b/demos/sub-attaq/pixmapitem.cpp new file mode 100644 index 0000000..5ab5583 --- /dev/null +++ b/demos/sub-attaq/pixmapitem.cpp @@ -0,0 +1,59 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtCore module 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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +//Own +#include "pixmapitem.h" + +//Qt +#include <QtCore/QDir> + +PixmapItem::PixmapItem(const QString &fileName,GraphicsScene::Mode mode, QGraphicsItem * parent) : QGraphicsPixmapItem(parent),name(fileName) +{ + loadPixmap(mode); +} + +void PixmapItem::loadPixmap(GraphicsScene::Mode mode) +{ + if (mode == GraphicsScene::Big) + setPixmap(":/big/" + name); + else + setPixmap(":/small/" + name); +} diff --git a/demos/sub-attaq/pixmapitem.h b/demos/sub-attaq/pixmapitem.h new file mode 100644 index 0000000..97d6f63 --- /dev/null +++ b/demos/sub-attaq/pixmapitem.h @@ -0,0 +1,63 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtCore module 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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef __PIXMAPITEM__H__ +#define __PIXMAPITEM__H__ + +//Own +#include "graphicsscene.h" + +//Qt +#include <QtGui/QGraphicsPixmapItem> + +class PixmapItem : public QGraphicsPixmapItem +{ +public: + PixmapItem(const QString &fileName, GraphicsScene::Mode mode, QGraphicsItem * parent = 0); + +private: + void loadPixmap(GraphicsScene::Mode mode); + + QString name; + QPixmap pixmap; +}; + +#endif //__PIXMAPITEM__H__ diff --git a/demos/sub-attaq/progressitem.cpp b/demos/sub-attaq/progressitem.cpp new file mode 100644 index 0000000..c20ebd0 --- /dev/null +++ b/demos/sub-attaq/progressitem.cpp @@ -0,0 +1,67 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtCore module 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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "progressitem.h" +#include "pixmapitem.h" + +ProgressItem::ProgressItem (QGraphicsItem * parent) + : QGraphicsTextItem(parent), currentLevel(1), currentScore(0) +{ + setFont(QFont("Comic Sans MS")); + setPos(parentItem()->boundingRect().topRight() - QPointF(180, -5)); +} + +void ProgressItem::setLevel(int level) +{ + currentLevel = level; + updateProgress(); +} + +void ProgressItem::setScore(int score) +{ + currentScore = score; + updateProgress(); +} + +void ProgressItem::updateProgress() +{ + setHtml(QString("Level : %1 Score : %2").arg(currentLevel).arg(currentScore)); +} diff --git a/demos/sub-attaq/progressitem.h b/demos/sub-attaq/progressitem.h new file mode 100644 index 0000000..60873b6 --- /dev/null +++ b/demos/sub-attaq/progressitem.h @@ -0,0 +1,61 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtCore module 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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef PROGRESSITEM_H +#define PROGRESSITEM_H + +//Qt +#include <QtGui/QGraphicsTextItem> + +class ProgressItem : public QGraphicsTextItem +{ +public: + ProgressItem(QGraphicsItem * parent = 0); + void setLevel(int level); + void setScore(int score); + +private: + void updateProgress(); + int currentLevel; + int currentScore; +}; + +#endif // PROGRESSITEM_H diff --git a/demos/sub-attaq/qanimationstate.cpp b/demos/sub-attaq/qanimationstate.cpp new file mode 100644 index 0000000..ccb788d --- /dev/null +++ b/demos/sub-attaq/qanimationstate.cpp @@ -0,0 +1,150 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtGui module 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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qanimationstate.h" + +#include <QtCore/qstate.h> + +QT_BEGIN_NAMESPACE + +/*! +\class QAnimationState + +\brief The QAnimationState class provides state that handle an animation and emit +a signal when this animation is finished. + +\ingroup statemachine + +QAnimationState provides a state that handle an animation. It will start this animation +when the state is entered and stop it when it is leaved. When the animation has finished the +state emit animationFinished signal. +QAnimationState is part of \l{The State Machine Framework}. + +\code +QStateMachine machine; +QAnimationState *s = new QAnimationState(machine->rootState()); +QPropertyAnimation *animation = new QPropertyAnimation(obj, "pos"); +s->setAnimation(animation); +QState *s2 = new QState(machine->rootState()); +s->addTransition(s, SIGNAL(animationFinished()), s2); +machine.start(); +\endcode + +\sa QState, {The Animation Framework} +*/ + + +#ifndef QT_NO_ANIMATION + +/*! + Constructs a new state with the given \a parent state. +*/ +QAnimationState::QAnimationState(QState *parent) + : QState(parent), m_animation(0) +{ +} + +/*! + Destroys the animation state. +*/ +QAnimationState::~QAnimationState() +{ +} + +/*! + Set an \a animation for this QAnimationState. If an animation was previously handle by this + state then it won't emit animationFinished for the old animation. The QAnimationState doesn't + take the ownership of the animation. +*/ +void QAnimationState::setAnimation(QAbstractAnimation *animation) +{ + if (animation == m_animation) + return; + + //Disconnect from the previous animation if exist + if(m_animation) + disconnect(m_animation, SIGNAL(finished()), this, SIGNAL(animationFinished())); + + m_animation = animation; + + if (m_animation) { + //connect the new animation + connect(m_animation, SIGNAL(finished()), this, SIGNAL(animationFinished())); + } +} + +/*! + Returns the animation handle by this animation state, or 0 if there is no animation. +*/ +QAbstractAnimation* QAnimationState::animation() const +{ + return m_animation; +} + +/*! + \reimp +*/ +void QAnimationState::onEntry(QEvent *) +{ + if (m_animation) + m_animation->start(); +} + +/*! + \reimp +*/ +void QAnimationState::onExit(QEvent *) +{ + if (m_animation) + m_animation->stop(); +} + +/*! + \reimp +*/ +bool QAnimationState::event(QEvent *e) +{ + return QState::event(e); +} + +QT_END_NAMESPACE + +#endif diff --git a/demos/sub-attaq/qanimationstate.h b/demos/sub-attaq/qanimationstate.h new file mode 100644 index 0000000..cb605f3 --- /dev/null +++ b/demos/sub-attaq/qanimationstate.h @@ -0,0 +1,92 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtGui module 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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QANIMATIONSTATE_H +#define QANIMATIONSTATE_H + +#ifndef QT_STATEMACHINE_SOLUTION +# include <QtCore/qstate.h> +# include <QtCore/qabstractanimation.h> +#else +# include "qstate.h" +# include "qabstractanimation.h" +#endif + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Gui) + +#ifndef QT_NO_ANIMATION + +class QAbstractAnimation; + +class QAnimationState : public QState +{ + Q_OBJECT +public: + QAnimationState(QState *parent = 0); + ~QAnimationState(); + + void setAnimation(QAbstractAnimation *animation); + QAbstractAnimation* animation() const; + +signals: + void animationFinished(); + +protected: + void onEntry(QEvent *); + void onExit(QEvent *); + bool event(QEvent *e); + +private: + Q_DISABLE_COPY(QAnimationState) + QAbstractAnimation *m_animation; +}; + +#endif + +QT_END_NAMESPACE + +QT_END_HEADER + +#endif // QANIMATIONSTATE_H diff --git a/demos/sub-attaq/states.cpp b/demos/sub-attaq/states.cpp new file mode 100644 index 0000000..4cc4af9 --- /dev/null +++ b/demos/sub-attaq/states.cpp @@ -0,0 +1,327 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtCore module 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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +//Own +#include "states.h" +#include "graphicsscene.h" +#include "boat.h" +#include "submarine.h" +#include "torpedo.h" +#include "animationmanager.h" +#include "progressitem.h" + +//Qt +#include <QtGui/QMessageBox> +#include <QtGui/QGraphicsView> +#include <QtCore/QStateMachine> +#include <QtGui/QKeyEventTransition> +#include <QtCore/QSignalEvent> +#include <QtCore/QFinalState> + +PlayState::PlayState(GraphicsScene *scene, QState *parent) + : QState(parent), + scene(scene), + machine(0), + currentLevel(0), + score(0) +{ +} + +PlayState::~PlayState() +{ +} + +void PlayState::onEntry(QEvent *) +{ + //We are now playing? + if (machine) { + machine->stop(); + scene->clearScene(); + currentLevel = 0; + score = 0; + delete machine; + } + + machine = new QStateMachine(this); + + //This state is when player is playing + LevelState *levelState = new LevelState(scene, this, machine); + + //This state is when the player is actually playing but the game is not paused + QState *playingState = new QState(levelState); + levelState->setInitialState(playingState); + + //This state is when the game is paused + PauseState *pauseState = new PauseState(scene, levelState); + + //We have one view, it receive the key press event + QKeyEventTransition *pressPplay = new QKeyEventTransition(scene->views().at(0), QEvent::KeyPress, Qt::Key_P); + pressPplay->setTargetState(pauseState); + QKeyEventTransition *pressPpause = new QKeyEventTransition(scene->views().at(0), QEvent::KeyPress, Qt::Key_P); + pressPpause->setTargetState(playingState); + + //Pause "P" is triggered, the player pause the game + playingState->addTransition(pressPplay); + + //To get back playing when the game has been paused + pauseState->addTransition(pressPpause); + + //This state is when player have lost + LostState *lostState = new LostState(scene, this, machine); + + //This state is when player have won + WinState *winState = new WinState(scene, this, machine); + + //The boat has been destroyed then the game is finished + levelState->addTransition(scene->boat, SIGNAL(boatExecutionFinished()),lostState); + + //This transition check if we won or not + WinTransition *winTransition = new WinTransition(scene, this, winState); + + //The boat has been destroyed then the game is finished + levelState->addTransition(winTransition); + + //This state is an animation when the score changed + UpdateScoreState *scoreState = new UpdateScoreState(this, levelState); + + //This transition update the score when a submarine die + UpdateScoreTransition *scoreTransition = new UpdateScoreTransition(scene, this, levelState); + scoreTransition->setTargetState(scoreState); + + //The boat has been destroyed then the game is finished + playingState->addTransition(scoreTransition); + + //We go back to play state + scoreState->addTransition(playingState); + + //We start playing!!! + machine->setInitialState(levelState); + + //Final state + QFinalState *final = new QFinalState(machine); + + //This transition is triggered when the player press space after completing a level + CustomSpaceTransition *spaceTransition = new CustomSpaceTransition(scene->views().at(0), this, QEvent::KeyPress, Qt::Key_Space); + spaceTransition->setTargetState(levelState); + winState->addTransition(spaceTransition); + + //We lost we should reach the final state + lostState->addTransition(lostState, SIGNAL(finished()), final); + + machine->start(); +} + +LevelState::LevelState(GraphicsScene *scene, PlayState *game, QState *parent) : QState(parent), scene(scene), game(game) +{ +} +void LevelState::onEntry(QEvent *) +{ + initializeLevel(); +} + +void LevelState::initializeLevel() +{ + //we re-init the boat + scene->boat->setPos(scene->width()/2, scene->sealLevel() - scene->boat->size().height()); + scene->boat->setCurrentSpeed(0); + scene->boat->setCurrentDirection(Boat::None); + scene->boat->setBombsLaunched(0); + scene->boat->show(); + scene->setFocusItem(scene->boat,Qt::OtherFocusReason); + scene->boat->run(); + + scene->progressItem->setScore(game->score); + scene->progressItem->setLevel(game->currentLevel + 1); + + GraphicsScene::LevelDescription currentLevelDescription = scene->levelsData.value(game->currentLevel); + + for (int i = 0; i < currentLevelDescription.submarines.size(); ++i ) { + + QPair<int,int> subContent = currentLevelDescription.submarines.at(i); + GraphicsScene::SubmarineDescription submarineDesc = scene->submarinesData.at(subContent.first); + + for (int j = 0; j < subContent.second; ++j ) { + SubMarine *sub = new SubMarine(submarineDesc.type, submarineDesc.name, submarineDesc.points); + scene->addItem(sub); + int random = (qrand() % 15 + 1); + qreal x = random == 13 || random == 5 ? 0 : scene->width() - sub->size().width(); + qreal y = scene->height() -(qrand() % 150 + 1) - sub->size().height(); + sub->setPos(x,y); + sub->setCurrentDirection(x == 0 ? SubMarine::Right : SubMarine::Left); + sub->setCurrentSpeed(qrand() % 3 + 1); + } + } +} + +/** Pause State */ +PauseState::PauseState(GraphicsScene *scene, QState *parent) : QState(parent),scene(scene) +{ +} +void PauseState::onEntry(QEvent *) +{ + AnimationManager::self()->pauseAll(); + scene->boat->setEnabled(false); +} +void PauseState::onExit(QEvent *) +{ + AnimationManager::self()->resumeAll(); + scene->boat->setEnabled(true); + scene->boat->setFocus(); +} + +/** Lost State */ +LostState::LostState(GraphicsScene *scene, PlayState *game, QState *parent) : QState(parent), scene(scene), game(game) +{ +} + +void LostState::onEntry(QEvent *) +{ + //The message to display + QString message = QString("You lose on level %1. Your score is %2.").arg(game->currentLevel+1).arg(game->score); + + //We set the level back to 0 + game->currentLevel = 0; + + //We set the score back to 0 + game->score = 0; + + //We clear the scene + scene->clearScene(); + + //we have only one view + QMessageBox::information(scene->views().at(0),"You lose",message); +} + +/** Win State */ +WinState::WinState(GraphicsScene *scene, PlayState *game, QState *parent) : QState(parent), scene(scene), game(game) +{ +} + +void WinState::onEntry(QEvent *) +{ + //We clear the scene + scene->clearScene(); + + QString message; + if (scene->levelsData.size() - 1 != game->currentLevel) { + message = QString("You win the level %1. Your score is %2.\nPress Space to continue after closing this dialog.").arg(game->currentLevel+1).arg(game->score); + //We increment the level number + game->currentLevel++; + } else { + message = QString("You finish the game on level %1. Your score is %2.").arg(game->currentLevel+1).arg(game->score); + //We set the level back to 0 + game->currentLevel = 0; + //We set the score back to 0 + game->score = 0; + } + + //we have only one view + QMessageBox::information(scene->views().at(0),"You win",message); +} + +/** UpdateScore State */ +UpdateScoreState::UpdateScoreState(PlayState *game, QState *parent) : QState(parent) +{ + this->game = game; +} +void UpdateScoreState::onEntry(QEvent *e) +{ + QState::onEntry(e); +} + +/** Win transition */ +UpdateScoreTransition::UpdateScoreTransition(GraphicsScene *scene, PlayState *game, QAbstractState *target) + : QSignalTransition(scene,SIGNAL(subMarineDestroyed(int))), + game(game), scene(scene) +{ + setTargetState(target); +} + +bool UpdateScoreTransition::eventTest(QEvent *event) +{ + if (!QSignalTransition::eventTest(event)) + return false; + else { + QSignalEvent *se = static_cast<QSignalEvent*>(event); + game->score += se->arguments().at(0).toInt(); + scene->progressItem->setScore(game->score); + return true; + } +} + +/** Win transition */ +WinTransition::WinTransition(GraphicsScene *scene, PlayState *game, QAbstractState *target) + : QSignalTransition(scene,SIGNAL(allSubMarineDestroyed(int))), + game(game), scene(scene) +{ + setTargetState(target); +} + +bool WinTransition::eventTest(QEvent *event) +{ + if (!QSignalTransition::eventTest(event)) + return false; + else { + QSignalEvent *se = static_cast<QSignalEvent*>(event); + game->score += se->arguments().at(0).toInt(); + scene->progressItem->setScore(game->score); + return true; + } +} + +/** Space transition */ +CustomSpaceTransition::CustomSpaceTransition(QWidget *widget, PlayState *game, QEvent::Type type, int key) + : QKeyEventTransition(widget, type, key), + game(game) +{ +} + +bool CustomSpaceTransition::eventTest(QEvent *event) +{ + Q_UNUSED(event); + if (!QKeyEventTransition::eventTest(event)) + return false; + if (game->currentLevel != 0) + return true; + else + return false; + +} diff --git a/demos/sub-attaq/states.h b/demos/sub-attaq/states.h new file mode 100644 index 0000000..22e7136 --- /dev/null +++ b/demos/sub-attaq/states.h @@ -0,0 +1,180 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtCore module 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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef STATES_H +#define STATES_H + +//Qt +#include <QtCore/QState> +#include <QtCore/QSignalTransition> +#include <QtCore/QPropertyAnimation> +#include <QtGui/QKeyEventTransition> +#include <QtCore/QSet> + +class GraphicsScene; +class Boat; +class SubMarine; +QT_BEGIN_NAMESPACE +class QStateMachine; +QT_END_NAMESPACE + +class PlayState : public QState +{ +public: + PlayState(GraphicsScene *scene, QState *parent = 0); + ~PlayState(); + + protected: + void onEntry(QEvent *); + +private : + GraphicsScene *scene; + QStateMachine *machine; + int currentLevel; + int score; + QState *parallelChild; + + friend class UpdateScoreState; + friend class UpdateScoreTransition; + friend class WinTransition; + friend class CustomSpaceTransition; + friend class WinState; + friend class LostState; + friend class LevelState; +}; + +class LevelState : public QState +{ +public: + LevelState(GraphicsScene *scene, PlayState *game, QState *parent = 0); +protected: + void onEntry(QEvent *); +private : + void initializeLevel(); + GraphicsScene *scene; + PlayState *game; +}; + +class PauseState : public QState +{ +public: + PauseState(GraphicsScene *scene, QState *parent = 0); + +protected: + void onEntry(QEvent *); + void onExit(QEvent *); +private : + GraphicsScene *scene; + Boat *boat; +}; + +class LostState : public QState +{ +public: + LostState(GraphicsScene *scene, PlayState *game, QState *parent = 0); + +protected: + void onEntry(QEvent *); +private : + GraphicsScene *scene; + PlayState *game; +}; + +class WinState : public QState +{ +public: + WinState(GraphicsScene *scene, PlayState *game, QState *parent = 0); + +protected: + void onEntry(QEvent *); +private : + GraphicsScene *scene; + PlayState *game; +}; + +class UpdateScoreState : public QState +{ +public: + UpdateScoreState(PlayState *game, QState *parent); +protected: + void onEntry(QEvent *); +private: + QPropertyAnimation *scoreAnimation; + PlayState *game; +}; + +//These transtion is used to update the score +class UpdateScoreTransition : public QSignalTransition +{ +public: + UpdateScoreTransition(GraphicsScene *scene, PlayState *game, QAbstractState *target); +protected: + virtual bool eventTest(QEvent *event); +private: + PlayState * game; + GraphicsScene *scene; +}; + +//These transtion test if we have won the game +class WinTransition : public QSignalTransition +{ +public: + WinTransition(GraphicsScene *scene, PlayState *game, QAbstractState *target); +protected: + virtual bool eventTest(QEvent *event); +private: + PlayState * game; + GraphicsScene *scene; +}; + +//These transtion is true if one level has been completed and the player want to continue + class CustomSpaceTransition : public QKeyEventTransition +{ +public: + CustomSpaceTransition(QWidget *widget, PlayState *game, QEvent::Type type, int key); +protected: + virtual bool eventTest(QEvent *event); +private: + PlayState *game; + int key; +}; + +#endif // STATES_H diff --git a/demos/sub-attaq/sub-attaq.pro b/demos/sub-attaq/sub-attaq.pro new file mode 100644 index 0000000..ad1327d --- /dev/null +++ b/demos/sub-attaq/sub-attaq.pro @@ -0,0 +1,37 @@ +contains(QT_CONFIG, opengl):QT += opengl + +HEADERS += boat.h \ + bomb.h \ + mainwindow.h \ + submarine.h \ + torpedo.h \ + pixmapitem.h \ + graphicsscene.h \ + animationmanager.h \ + states.h \ + boat_p.h \ + submarine_p.h \ + custompropertyanimation.h \ + qanimationstate.h \ + progressitem.h +SOURCES += boat.cpp \ + bomb.cpp \ + main.cpp \ + mainwindow.cpp \ + submarine.cpp \ + torpedo.cpp \ + pixmapitem.cpp \ + graphicsscene.cpp \ + animationmanager.cpp \ + states.cpp \ + custompropertyanimation.cpp \ + qanimationstate.cpp \ + progressitem.cpp +RESOURCES += subattaq.qrc + +# install +target.path = $$[QT_INSTALL_DEMOS]/animation/sub-attaq +sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS sub-attaq.pro pics +sources.path = $$[QT_INSTALL_DEMOS]/animation/sub-attaq +INSTALLS += target sources + diff --git a/demos/sub-attaq/subattaq.qrc b/demos/sub-attaq/subattaq.qrc new file mode 100644 index 0000000..80a3af1 --- /dev/null +++ b/demos/sub-attaq/subattaq.qrc @@ -0,0 +1,39 @@ +<RCC> + <qresource prefix="/" > + <file alias="all" >pics/scalable/sub-attaq.svg</file> + <file alias="submarine" >pics/scalable/submarine.svg</file> + <file alias="boat" >pics/scalable/boat.svg</file> + <file alias="torpedo" >pics/scalable/torpedo.svg</file> + <file alias="logo-s" >pics/welcome/logo-s.png</file> + <file alias="logo-u" >pics/welcome/logo-u.png</file> + <file alias="logo-b" >pics/welcome/logo-b.png</file> + <file alias="logo-dash" >pics/welcome/logo-dash.png</file> + <file alias="logo-a" >pics/welcome/logo-a.png</file> + <file alias="logo-t" >pics/welcome/logo-t.png</file> + <file alias="logo-t2" >pics/welcome/logo-t2.png</file> + <file alias="logo-a2" >pics/welcome/logo-a2.png</file> + <file alias="logo-q" >pics/welcome/logo-q.png</file> + <file alias="logo-excl" >pics/welcome/logo-excl.png</file> + <file alias="big/background" >pics/big/background.png</file> + <file alias="big/boat" >pics/big/boat.png</file> + <file alias="big/bomb" >pics/big/bomb.png</file> + <file alias="big/submarine" >pics/big/submarine.png</file> + <file alias="big/surface" >pics/big/surface.png</file> + <file alias="big/torpedo" >pics/big/torpedo.png</file> + <file alias="small/background" >pics/small/background.png</file> + <file alias="small/boat" >pics/small/boat.png</file> + <file alias="small/bomb" >pics/small/bomb.png</file> + <file alias="small/submarine" >pics/small/submarine.png</file> + <file alias="small/surface" >pics/small/surface.png</file> + <file alias="small/torpedo" >pics/small/torpedo.png</file> + <file alias="big/explosion/boat/step1" >pics/big/explosion/boat/step1.png</file> + <file alias="big/explosion/boat/step2" >pics/big/explosion/boat/step2.png</file> + <file alias="big/explosion/boat/step3" >pics/big/explosion/boat/step3.png</file> + <file alias="big/explosion/boat/step4" >pics/big/explosion/boat/step4.png</file> + <file alias="big/explosion/submarine/step1" >pics/big/explosion/submarine/step1.png</file> + <file alias="big/explosion/submarine/step2" >pics/big/explosion/submarine/step2.png</file> + <file alias="big/explosion/submarine/step3" >pics/big/explosion/submarine/step3.png</file> + <file alias="big/explosion/submarine/step4" >pics/big/explosion/submarine/step4.png</file> + <file>data.xml</file> + </qresource> +</RCC> diff --git a/demos/sub-attaq/submarine.cpp b/demos/sub-attaq/submarine.cpp new file mode 100644 index 0000000..42a681d --- /dev/null +++ b/demos/sub-attaq/submarine.cpp @@ -0,0 +1,218 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtCore module 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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +//Own +#include "submarine.h" +#include "submarine_p.h" +#include "torpedo.h" +#include "pixmapitem.h" +#include "graphicsscene.h" +#include "animationmanager.h" +#include "custompropertyanimation.h" +#include "qanimationstate.h" + +#include <QtCore/QPropertyAnimation> +#include <QtCore/QStateMachine> +#include <QtCore/QFinalState> +#include <QtCore/QSequentialAnimationGroup> + +static QAbstractAnimation *setupDestroyAnimation(SubMarine *sub) +{ + QSequentialAnimationGroup *group = new QSequentialAnimationGroup(sub); +#if QT_VERSION >=0x040500 + PixmapItem *step1 = new PixmapItem(QString("explosion/submarine/step1"),GraphicsScene::Big, sub); + step1->setZValue(6); + PixmapItem *step2 = new PixmapItem(QString("explosion/submarine/step2"),GraphicsScene::Big, sub); + step2->setZValue(6); + PixmapItem *step3 = new PixmapItem(QString("explosion/submarine/step3"),GraphicsScene::Big, sub); + step3->setZValue(6); + PixmapItem *step4 = new PixmapItem(QString("explosion/submarine/step4"),GraphicsScene::Big, sub); + step4->setZValue(6); + step1->setOpacity(0); + step2->setOpacity(0); + step3->setOpacity(0); + step4->setOpacity(0); + CustomPropertyAnimation *anim1 = new CustomPropertyAnimation(sub); + anim1->setMemberFunctions((QGraphicsItem*)step1, &QGraphicsItem::opacity, &QGraphicsItem::setOpacity); + anim1->setDuration(100); + anim1->setEndValue(1); + CustomPropertyAnimation *anim2 = new CustomPropertyAnimation(sub); + anim2->setMemberFunctions((QGraphicsItem*)step2, &QGraphicsItem::opacity, &QGraphicsItem::setOpacity); + anim2->setDuration(100); + anim2->setEndValue(1); + CustomPropertyAnimation *anim3 = new CustomPropertyAnimation(sub); + anim3->setMemberFunctions((QGraphicsItem*)step3, &QGraphicsItem::opacity, &QGraphicsItem::setOpacity); + anim3->setDuration(100); + anim3->setEndValue(1); + CustomPropertyAnimation *anim4 = new CustomPropertyAnimation(sub); + anim4->setMemberFunctions((QGraphicsItem*)step4, &QGraphicsItem::opacity, &QGraphicsItem::setOpacity); + anim4->setDuration(100); + anim4->setEndValue(1); + group->addAnimation(anim1); + group->addAnimation(anim2); + group->addAnimation(anim3); + group->addAnimation(anim4); +#else + // work around for a bug where we don't transition if the duration is zero. + QtPauseAnimation *anim = new QtPauseAnimation(group); + anim->setDuration(1); + group->addAnimation(anim); +#endif + AnimationManager::self()->registerAnimation(group); + return group; +} + + +SubMarine::SubMarine(int type, const QString &name, int points, QGraphicsItem * parent, Qt::WindowFlags wFlags) + : QGraphicsWidget(parent,wFlags), subType(type), subName(name), subPoints(points), speed(0), direction(SubMarine::None) +{ + pixmapItem = new PixmapItem(QString("submarine"),GraphicsScene::Big, this); + setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); + setZValue(5); + setFlags(QGraphicsItem::ItemIsMovable); + resize(pixmapItem->boundingRect().width(),pixmapItem->boundingRect().height()); + setTransformOriginPoint(boundingRect().center()); + + graphicsRotation = new QGraphicsRotation(this); + graphicsRotation->setAxis(QVector3D(0, 1, 0)); + graphicsRotation->setOrigin(QVector3D(size().width()/2, size().height()/2, 0)); + QList<QGraphicsTransform *> r; + r.append(graphicsRotation); + setTransformations(r); + + //We setup the state machine of the submarine + QStateMachine *machine = new QStateMachine(this); + + //This state is when the boat is moving/rotating + QState *moving = new QState(machine); + + //This state is when the boat is moving from left to right + MovementState *movement = new MovementState(this, moving); + + //This state is when the boat is moving from left to right + ReturnState *rotation = new ReturnState(this, moving); + + //This is the initial state of the moving root state + moving->setInitialState(movement); + + movement->addTransition(this, SIGNAL(subMarineStateChanged()), moving); + + //This is the initial state of the machine + machine->setInitialState(moving); + + //End + QFinalState *final = new QFinalState(machine); + + //If the moving animation is finished we move to the return state + movement->addTransition(movement, SIGNAL(animationFinished()), rotation); + + //If the return animation is finished we move to the moving state + rotation->addTransition(rotation, SIGNAL(animationFinished()), movement); + + //This state play the destroyed animation + QAnimationState *destroyedState = new QAnimationState(machine); + destroyedState->setAnimation(setupDestroyAnimation(this)); + + //Play a nice animation when the submarine is destroyed + moving->addTransition(this, SIGNAL(subMarineDestroyed()), destroyedState); + + //Transition to final state when the destroyed animation is finished + destroyedState->addTransition(destroyedState, SIGNAL(animationFinished()), final); + + //The machine has finished to be executed, then the submarine is dead + connect(machine,SIGNAL(finished()),this, SIGNAL(subMarineExecutionFinished())); + + machine->start(); +} + +int SubMarine::points() +{ + return subPoints; +} + +void SubMarine::setCurrentDirection(SubMarine::Movement direction) +{ + if (this->direction == direction) + return; + if (direction == SubMarine::Right && this->direction == SubMarine::None) { + graphicsRotation->setAngle(180); + } + this->direction = direction; +} + +enum SubMarine::Movement SubMarine::currentDirection() const +{ + return direction; +} + +void SubMarine::setCurrentSpeed(int speed) +{ + if (speed < 0 || speed > 3) { + qWarning("SubMarine::setCurrentSpeed : The speed is invalid"); + } + this->speed = speed; + emit subMarineStateChanged(); +} + +int SubMarine::currentSpeed() const +{ + return speed; +} + +void SubMarine::launchTorpedo(int speed) +{ + Torpedo * torp = new Torpedo(); + GraphicsScene *scene = static_cast<GraphicsScene *>(this->scene()); + scene->addItem(torp); + torp->setPos(x(), y()); + torp->setCurrentSpeed(speed); + torp->launch(); +} + +void SubMarine::destroy() +{ + emit subMarineDestroyed(); +} + +int SubMarine::type() const +{ + return Type; +} diff --git a/demos/sub-attaq/submarine.h b/demos/sub-attaq/submarine.h new file mode 100644 index 0000000..1e33ba0 --- /dev/null +++ b/demos/sub-attaq/submarine.h @@ -0,0 +1,96 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtCore module 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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef __SUBMARINE__H__ +#define __SUBMARINE__H__ + +//Qt +#include <QtCore/QVariantAnimation> +#include <QtGui/QGraphicsWidget> +#include <QtGui/QGraphicsTransform> + +class PixmapItem; + +class Torpedo; + +class SubMarine : public QGraphicsWidget +{ +Q_OBJECT +public: + enum Movement { + None = 0, + Left, + Right + }; + enum { Type = UserType + 1 }; + SubMarine(int type, const QString &name, int points, QGraphicsItem * parent = 0, Qt::WindowFlags wFlags = 0); + + int points(); + + void setCurrentDirection(Movement direction); + enum Movement currentDirection() const; + + void setCurrentSpeed(int speed); + int currentSpeed() const; + + void launchTorpedo(int speed); + void destroy(); + + virtual int type() const; + + QGraphicsRotation *rotation() const { return graphicsRotation; } + +signals: + void subMarineDestroyed(); + void subMarineExecutionFinished(); + void subMarineStateChanged(); + +private: + int subType; + QString subName; + int subPoints; + int speed; + Movement direction; + PixmapItem *pixmapItem; + QGraphicsRotation *graphicsRotation; +}; + +#endif //__SUBMARINE__H__ diff --git a/demos/sub-attaq/submarine_p.h b/demos/sub-attaq/submarine_p.h new file mode 100644 index 0000000..520fe2f --- /dev/null +++ b/demos/sub-attaq/submarine_p.h @@ -0,0 +1,138 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the examples 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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef SUBMARINE_P_H +#define SUBMARINE_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +//Own +#include "animationmanager.h" +#include "submarine.h" +#include "qanimationstate.h" + +//Qt +#include <QtCore/QPropertyAnimation> +#include <QtGui/QGraphicsScene> + +//This state is describing when the boat is moving right +class MovementState : public QAnimationState +{ +Q_OBJECT +public: + MovementState(SubMarine *submarine, QState *parent = 0) : QAnimationState(parent) + { + movementAnimation = new QPropertyAnimation(submarine, "pos"); + connect(movementAnimation,SIGNAL(valueChanged(const QVariant &)),this,SLOT(onAnimationMovementValueChanged(const QVariant &))); + setAnimation(movementAnimation); + AnimationManager::self()->registerAnimation(movementAnimation); + this->submarine = submarine; + } + +protected slots: + void onAnimationMovementValueChanged(const QVariant &) + { + if (qrand() % 200 + 1 == 3) + submarine->launchTorpedo(qrand() % 3 + 1); + } + +protected: + void onEntry(QEvent *e) + { + if (submarine->currentDirection() == SubMarine::Left) { + movementAnimation->setEndValue(QPointF(0,submarine->y())); + movementAnimation->setDuration(submarine->x()/submarine->currentSpeed()*12); + } + else /*if (submarine->currentDirection() == SubMarine::Right)*/ { + movementAnimation->setEndValue(QPointF(submarine->scene()->width()-submarine->size().width(),submarine->y())); + movementAnimation->setDuration((submarine->scene()->width()-submarine->size().width()-submarine->x())/submarine->currentSpeed()*12); + } + movementAnimation->setStartValue(submarine->pos()); + QAnimationState::onEntry(e); + } + +private: + SubMarine *submarine; + QPropertyAnimation *movementAnimation; +}; + +//This state is describing when the boat is moving right +class ReturnState : public QAnimationState +{ +public: + ReturnState(SubMarine *submarine, QState *parent = 0) : QAnimationState(parent) + { + returnAnimation = new QPropertyAnimation(submarine->rotation(), "angle"); + returnAnimation->setDuration(500); + AnimationManager::self()->registerAnimation(returnAnimation); + setAnimation(returnAnimation); + this->submarine = submarine; + } + +protected: + void onEntry(QEvent *e) + { + returnAnimation->stop(); + returnAnimation->setEndValue(submarine->currentDirection() == SubMarine::Right ? 360. : 180.); + QAnimationState::onEntry(e); + } + + void onExit(QEvent *e) + { + submarine->currentDirection() == SubMarine::Right ? submarine->setCurrentDirection(SubMarine::Left) : submarine->setCurrentDirection(SubMarine::Right); + QAnimationState::onExit(e); + } + +private: + SubMarine *submarine; + QPropertyAnimation *returnAnimation; +}; + +#endif // SUBMARINE_P_H diff --git a/demos/sub-attaq/torpedo.cpp b/demos/sub-attaq/torpedo.cpp new file mode 100644 index 0000000..8072cda --- /dev/null +++ b/demos/sub-attaq/torpedo.cpp @@ -0,0 +1,120 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtCore module 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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +//Own +#include "torpedo.h" +#include "pixmapitem.h" +#include "boat.h" +#include "graphicsscene.h" +#include "animationmanager.h" +#include "qanimationstate.h" + +#include <QtCore/QPropertyAnimation> +#include <QtCore/QStateMachine> +#include <QtCore/QFinalState> + +Torpedo::Torpedo(QGraphicsItem * parent, Qt::WindowFlags wFlags) + : QGraphicsWidget(parent,wFlags), currentSpeed(0), launchAnimation(0) +{ + pixmapItem = new PixmapItem(QString::fromLatin1("torpedo"),GraphicsScene::Big, this); + setZValue(2); + setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); + setFlags(QGraphicsItem::ItemIsMovable); + resize(pixmapItem->boundingRect().size()); +} + +void Torpedo::launch() +{ + launchAnimation = new QPropertyAnimation(this, "pos"); + AnimationManager::self()->registerAnimation(launchAnimation); + launchAnimation->setEndValue(QPointF(x(),qobject_cast<GraphicsScene *>(scene())->sealLevel() - 15)); + launchAnimation->setEasingCurve(QEasingCurve::InQuad); + launchAnimation->setDuration(y()/currentSpeed*10); + connect(launchAnimation,SIGNAL(valueChanged(const QVariant &)),this,SLOT(onAnimationLaunchValueChanged(const QVariant &))); + + //We setup the state machine of the torpedo + QStateMachine *machine = new QStateMachine(this); + + //This state is when the launch animation is playing + QAnimationState *launched = new QAnimationState(machine); + launched->setAnimation(launchAnimation); + + //End + QFinalState *final = new QFinalState(machine); + + machine->setInitialState(launched); + + //### Add a nice animation when the torpedo is destroyed + launched->addTransition(this, SIGNAL(torpedoExplosed()),final); + + //If the animation is finished, then we move to the final state + launched->addTransition(launched, SIGNAL(animationFinished()), final); + + //The machine has finished to be executed, then the boat is dead + connect(machine,SIGNAL(finished()),this, SIGNAL(torpedoExecutionFinished())); + + machine->start(); +} + +void Torpedo::setCurrentSpeed(int speed) +{ + if (speed < 0) { + qWarning("Torpedo::setCurrentSpeed : The speed is invalid"); + return; + } + currentSpeed = speed; +} + +void Torpedo::onAnimationLaunchValueChanged(const QVariant &) +{ + foreach (QGraphicsItem *item , collidingItems(Qt::IntersectsItemBoundingRect)) { + if (item->type() == Boat::Type) { + Boat *b = static_cast<Boat *>(item); + b->destroy(); + } + } +} + +void Torpedo::destroy() +{ + launchAnimation->stop(); + emit torpedoExplosed(); +} diff --git a/demos/sub-attaq/torpedo.h b/demos/sub-attaq/torpedo.h new file mode 100644 index 0000000..9c92040 --- /dev/null +++ b/demos/sub-attaq/torpedo.h @@ -0,0 +1,75 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtCore module 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 either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef __TORPEDO__H__ +#define __TORPEDO__H__ + +//Qt +#include <QtCore/QObject> + +#include <QtCore/QVariantAnimation> +#include <QtGui/QGraphicsWidget> + +class PixmapItem; + +class Torpedo : public QGraphicsWidget +{ +Q_OBJECT +public: + Torpedo(QGraphicsItem * parent = 0, Qt::WindowFlags wFlags = 0); + void launch(); + void setCurrentSpeed(int speed); + void destroy(); + +signals: + void torpedoExplosed(); + void torpedoExecutionFinished(); + +private slots: + void onAnimationLaunchValueChanged(const QVariant &); + +private: + int currentSpeed; + PixmapItem *pixmapItem; + QVariantAnimation *launchAnimation; +}; + +#endif //__TORPEDO__H__ diff --git a/demos/symbianpkgrules.pri b/demos/symbianpkgrules.pri new file mode 100644 index 0000000..7e6852b --- /dev/null +++ b/demos/symbianpkgrules.pri @@ -0,0 +1,13 @@ +!symbian: error(Only include this file for Symbian platforms) + +RSS_RULES ="group_name=\"QtDemos\";" + +vendorinfo = \ + "; Localised Vendor name" \ + "%{\"Nokia, Qt\"}" \ + " " \ + "; Unique Vendor name" \ + ":\"Nokia, Qt\"" \ + " " + +default_deployment.pkg_prerules += vendorinfo diff --git a/demos/textedit/textedit.cpp b/demos/textedit/textedit.cpp index 9cd6efd..5a20285 100644 --- a/demos/textedit/textedit.cpp +++ b/demos/textedit/textedit.cpp @@ -75,6 +75,7 @@ const QString rsrcPath = ":/images/win"; TextEdit::TextEdit(QWidget *parent) : QMainWindow(parent) { + setToolButtonStyle(Qt::ToolButtonFollowStyle); setupFileActions(); setupEditActions(); setupTextActions(); @@ -127,7 +128,9 @@ TextEdit::TextEdit(QWidget *parent) connect(textEdit, SIGNAL(copyAvailable(bool)), actionCut, SLOT(setEnabled(bool))); connect(textEdit, SIGNAL(copyAvailable(bool)), actionCopy, SLOT(setEnabled(bool))); +#ifndef QT_NO_CLIPBOARD connect(QApplication::clipboard(), SIGNAL(dataChanged()), this, SLOT(clipboardDataChanged())); +#endif QString initialFile = ":/example.html"; const QStringList args = QCoreApplication::arguments(); @@ -157,13 +160,16 @@ void TextEdit::setupFileActions() QAction *a; - a = new QAction(QIcon(rsrcPath + "/filenew.png"), tr("&New"), this); + QIcon newIcon = QIcon::fromTheme("document-new", QIcon(rsrcPath + "/filenew.png")); + a = new QAction( newIcon, tr("&New"), this); + a->setPriority(QAction::LowPriority); a->setShortcut(QKeySequence::New); connect(a, SIGNAL(triggered()), this, SLOT(fileNew())); tb->addAction(a); menu->addAction(a); - a = new QAction(QIcon(rsrcPath + "/fileopen.png"), tr("&Open..."), this); + a = new QAction(QIcon::fromTheme("document-open", QIcon(rsrcPath + "/fileopen.png")), + tr("&Open..."), this); a->setShortcut(QKeySequence::Open); connect(a, SIGNAL(triggered()), this, SLOT(fileOpen())); tb->addAction(a); @@ -171,7 +177,8 @@ void TextEdit::setupFileActions() menu->addSeparator(); - actionSave = a = new QAction(QIcon(rsrcPath + "/filesave.png"), tr("&Save"), this); + actionSave = a = new QAction(QIcon::fromTheme("document-save", QIcon(rsrcPath + "/filesave.png")), + tr("&Save"), this); a->setShortcut(QKeySequence::Save); connect(a, SIGNAL(triggered()), this, SLOT(fileSave())); a->setEnabled(false); @@ -179,22 +186,28 @@ void TextEdit::setupFileActions() menu->addAction(a); a = new QAction(tr("Save &As..."), this); + a->setPriority(QAction::LowPriority); connect(a, SIGNAL(triggered()), this, SLOT(fileSaveAs())); menu->addAction(a); menu->addSeparator(); #ifndef QT_NO_PRINTER - a = new QAction(QIcon(rsrcPath + "/fileprint.png"), tr("&Print..."), this); + a = new QAction(QIcon::fromTheme("document-print", QIcon(rsrcPath + "/fileprint.png")), + tr("&Print..."), this); + a->setPriority(QAction::LowPriority); a->setShortcut(QKeySequence::Print); connect(a, SIGNAL(triggered()), this, SLOT(filePrint())); tb->addAction(a); menu->addAction(a); - a = new QAction(QIcon(rsrcPath + "/fileprint.png"), tr("Print Preview..."), this); + a = new QAction(QIcon::fromTheme("fileprint", QIcon(rsrcPath + "/fileprint.png")), + tr("Print Preview..."), this); connect(a, SIGNAL(triggered()), this, SLOT(filePrintPreview())); menu->addAction(a); - a = new QAction(QIcon(rsrcPath + "/exportpdf.png"), tr("&Export PDF..."), this); + a = new QAction(QIcon::fromTheme("exportpdf", QIcon(rsrcPath + "/exportpdf.png")), + tr("&Export PDF..."), this); + a->setPriority(QAction::LowPriority); a->setShortcut(Qt::CTRL + Qt::Key_D); connect(a, SIGNAL(triggered()), this, SLOT(filePrintPdf())); tb->addAction(a); @@ -214,33 +227,43 @@ void TextEdit::setupEditActions() QToolBar *tb = new QToolBar(this); tb->setWindowTitle(tr("Edit Actions")); addToolBar(tb); - QMenu *menu = new QMenu(tr("&Edit"), this); menuBar()->addMenu(menu); QAction *a; - a = actionUndo = new QAction(QIcon(rsrcPath + "/editundo.png"), tr("&Undo"), this); + a = actionUndo = new QAction(QIcon::fromTheme("edit-undo", QIcon(rsrcPath + "/editundo.png")), + tr("&Undo"), this); a->setShortcut(QKeySequence::Undo); tb->addAction(a); menu->addAction(a); - a = actionRedo = new QAction(QIcon(rsrcPath + "/editredo.png"), tr("&Redo"), this); + a = actionRedo = new QAction(QIcon::fromTheme("edit-redo", QIcon(rsrcPath + "/editredo.png")), + tr("&Redo"), this); + a->setPriority(QAction::LowPriority); a->setShortcut(QKeySequence::Redo); tb->addAction(a); menu->addAction(a); menu->addSeparator(); - a = actionCut = new QAction(QIcon(rsrcPath + "/editcut.png"), tr("Cu&t"), this); + a = actionCut = new QAction(QIcon::fromTheme("edit-cut", QIcon(rsrcPath + "/editcut.png")), + tr("Cu&t"), this); + a->setPriority(QAction::LowPriority); a->setShortcut(QKeySequence::Cut); tb->addAction(a); menu->addAction(a); - a = actionCopy = new QAction(QIcon(rsrcPath + "/editcopy.png"), tr("&Copy"), this); + a = actionCopy = new QAction(QIcon::fromTheme("edit-copy", QIcon(rsrcPath + "/editcopy.png")), + tr("&Copy"), this); + a->setPriority(QAction::LowPriority); a->setShortcut(QKeySequence::Copy); tb->addAction(a); menu->addAction(a); - a = actionPaste = new QAction(QIcon(rsrcPath + "/editpaste.png"), tr("&Paste"), this); + a = actionPaste = new QAction(QIcon::fromTheme("edit-paste", QIcon(rsrcPath + "/editpaste.png")), + tr("&Paste"), this); + a->setPriority(QAction::LowPriority); a->setShortcut(QKeySequence::Paste); tb->addAction(a); menu->addAction(a); +#ifndef QT_NO_CLIPBOARD actionPaste->setEnabled(!QApplication::clipboard()->text().isEmpty()); +#endif } void TextEdit::setupTextActions() @@ -252,9 +275,11 @@ void TextEdit::setupTextActions() QMenu *menu = new QMenu(tr("F&ormat"), this); menuBar()->addMenu(menu); - actionTextBold = new QAction(QIcon(rsrcPath + "/textbold.png"), tr("&Bold"), this); + actionTextBold = new QAction(QIcon::fromTheme("format-text-bold", QIcon(rsrcPath + "/textbold.png")), + tr("&Bold"), this); actionTextBold->setShortcut(Qt::CTRL + Qt::Key_B); - QFont bold; + actionTextBold->setPriority(QAction::LowPriority); + QFont bold; bold.setBold(true); actionTextBold->setFont(bold); connect(actionTextBold, SIGNAL(triggered()), this, SLOT(textBold())); @@ -262,7 +287,9 @@ void TextEdit::setupTextActions() menu->addAction(actionTextBold); actionTextBold->setCheckable(true); - actionTextItalic = new QAction(QIcon(rsrcPath + "/textitalic.png"), tr("&Italic"), this); + actionTextItalic = new QAction(QIcon::fromTheme("format-text-italic", QIcon(rsrcPath + "/textitalic.png")), + tr("&Italic"), this); + actionTextItalic->setPriority(QAction::LowPriority); actionTextItalic->setShortcut(Qt::CTRL + Qt::Key_I); QFont italic; italic.setItalic(true); @@ -272,8 +299,10 @@ void TextEdit::setupTextActions() menu->addAction(actionTextItalic); actionTextItalic->setCheckable(true); - actionTextUnderline = new QAction(QIcon(rsrcPath + "/textunder.png"), tr("&Underline"), this); + actionTextUnderline = new QAction(QIcon::fromTheme("format-text-underline", QIcon(rsrcPath + "/textunder.png")), + tr("&Underline"), this); actionTextUnderline->setShortcut(Qt::CTRL + Qt::Key_U); + actionTextUnderline->setPriority(QAction::LowPriority); QFont underline; underline.setUnderline(true); actionTextUnderline->setFont(underline); @@ -289,24 +318,29 @@ void TextEdit::setupTextActions() // Make sure the alignLeft is always left of the alignRight if (QApplication::isLeftToRight()) { - actionAlignLeft = new QAction(QIcon(rsrcPath + "/textleft.png"), tr("&Left"), grp); - actionAlignCenter = new QAction(QIcon(rsrcPath + "/textcenter.png"), tr("C&enter"), grp); - actionAlignRight = new QAction(QIcon(rsrcPath + "/textright.png"), tr("&Right"), grp); + actionAlignLeft = new QAction(QIcon::fromTheme("format-justify-left", QIcon(rsrcPath + "/textleft.png")), + tr("&Left"), grp); + actionAlignCenter = new QAction(QIcon::fromTheme("format-justify-center", QIcon(rsrcPath + "/textcenter.png")), tr("C&enter"), grp); + actionAlignRight = new QAction(QIcon::fromTheme("format-justify-right", QIcon(rsrcPath + "/textright.png")), tr("&Right"), grp); } else { - actionAlignRight = new QAction(QIcon(rsrcPath + "/textright.png"), tr("&Right"), grp); - actionAlignCenter = new QAction(QIcon(rsrcPath + "/textcenter.png"), tr("C&enter"), grp); - actionAlignLeft = new QAction(QIcon(rsrcPath + "/textleft.png"), tr("&Left"), grp); + actionAlignRight = new QAction(QIcon::fromTheme("format-justify-right", QIcon(rsrcPath + "/textright.png")), tr("&Right"), grp); + actionAlignCenter = new QAction(QIcon::fromTheme("format-justify-center", QIcon(rsrcPath + "/textcenter.png")), tr("C&enter"), grp); + actionAlignLeft = new QAction(QIcon::fromTheme("format-justify-left", QIcon(rsrcPath + "/textleft.png")), tr("&Left"), grp); } - actionAlignJustify = new QAction(QIcon(rsrcPath + "/textjustify.png"), tr("&Justify"), grp); + actionAlignJustify = new QAction(QIcon::fromTheme("format-justify-fill", QIcon(rsrcPath + "/textjustify.png")), tr("&Justify"), grp); actionAlignLeft->setShortcut(Qt::CTRL + Qt::Key_L); actionAlignLeft->setCheckable(true); + actionAlignLeft->setPriority(QAction::LowPriority); actionAlignCenter->setShortcut(Qt::CTRL + Qt::Key_E); actionAlignCenter->setCheckable(true); + actionAlignCenter->setPriority(QAction::LowPriority); actionAlignRight->setShortcut(Qt::CTRL + Qt::Key_R); actionAlignRight->setCheckable(true); + actionAlignRight->setPriority(QAction::LowPriority); actionAlignJustify->setShortcut(Qt::CTRL + Qt::Key_J); actionAlignJustify->setCheckable(true); + actionAlignJustify->setPriority(QAction::LowPriority); tb->addActions(grp->actions()); menu->addActions(grp->actions()); @@ -336,6 +370,8 @@ void TextEdit::setupTextActions() comboStyle->addItem("Ordered List (Decimal)"); comboStyle->addItem("Ordered List (Alpha lower)"); comboStyle->addItem("Ordered List (Alpha upper)"); + comboStyle->addItem("Ordered List (Roman lower)"); + comboStyle->addItem("Ordered List (Roman upper)"); connect(comboStyle, SIGNAL(activated(int)), this, SLOT(textStyle(int))); @@ -573,6 +609,12 @@ void TextEdit::textStyle(int styleIndex) case 6: style = QTextListFormat::ListUpperAlpha; break; + case 7: + style = QTextListFormat::ListLowerRoman; + break; + case 8: + style = QTextListFormat::ListUpperRoman; + break; } cursor.beginEditBlock(); @@ -638,7 +680,9 @@ void TextEdit::cursorPositionChanged() void TextEdit::clipboardDataChanged() { +#ifndef QT_NO_CLIPBOARD actionPaste->setEnabled(!QApplication::clipboard()->text().isEmpty()); +#endif } void TextEdit::about() diff --git a/demos/textedit/textedit.pro b/demos/textedit/textedit.pro index 1ef4256..9669ec8 100644 --- a/demos/textedit/textedit.pro +++ b/demos/textedit/textedit.pro @@ -19,3 +19,4 @@ sources.files = $$SOURCES $$HEADERS $$RESOURCES *.pro *.html *.doc images sources.path = $$[QT_INSTALL_DEMOS]/textedit INSTALLS += target sources +symbian: include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) diff --git a/demos/undo/undo.pro b/demos/undo/undo.pro index e26d07c..0667bdd 100644 --- a/demos/undo/undo.pro +++ b/demos/undo/undo.pro @@ -15,3 +15,4 @@ sources.files = $$SOURCES $$HEADERS *.pro icons $$RESOURCES $$FORMS sources.path = $$[QT_INSTALL_DEMOS]/undo INSTALLS += target sources +symbian: include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) |