From 31f1ff91028dd7f90925d5b3737e4d88b5fb07aa Mon Sep 17 00:00:00 2001
From: "Bradley T. Hughes" <bradley.hughes@nokia.com>
Date: Fri, 16 Oct 2009 16:18:36 +0200
Subject: Send posted events in response to WM_QT_SENDPOSTEDEVENTS

(which is just WM_USER+1)

Delay the next WM_QT_SENDPOSTEDEVENTS iff there is a WM_TIMER
or input event pending

We also need to break out of processEvents() after seeing this
message, to prevent livelocking in the prescence of fast timers.

I also took the liberty of defining WM_QT_SOCKETNOTIFIER (WM_USER)
at the same time (to give clear meaning to what WM_USER and WM_USER+1
are used for).

Reviewed-by: Prasanth Ullattil
---
 src/corelib/kernel/qeventdispatcher_win.cpp | 178 +++++++++++++++-------------
 1 file changed, 94 insertions(+), 84 deletions(-)

diff --git a/src/corelib/kernel/qeventdispatcher_win.cpp b/src/corelib/kernel/qeventdispatcher_win.cpp
index 1e6402f..f7de29d 100644
--- a/src/corelib/kernel/qeventdispatcher_win.cpp
+++ b/src/corelib/kernel/qeventdispatcher_win.cpp
@@ -64,6 +64,11 @@ extern uint qGlobalPostedEventsCount();
 #  define TIME_KILL_SYNCHRONOUS 0x0100
 #endif
 
+enum {
+    WM_QT_SOCKETNOTIFIER = WM_USER,
+    WM_QT_SENDPOSTEDEVENTS = WM_USER + 1
+};
+
 #if defined(Q_OS_WINCE)
 QT_BEGIN_INCLUDE_NAMESPACE
 #include <winsock.h>
@@ -327,6 +332,11 @@ public:
     // internal window handle used for socketnotifiers/timers/etc
     HWND internalHwnd;
 
+    // for controlling when to send posted events
+    QAtomicInt serialNumber;
+    int lastSerialNumber;
+    QAtomicInt wakeUps;
+
     // timers
     WinTimerVec timerVec;
     WinTimerDict timerDict;
@@ -340,9 +350,6 @@ public:
     QSNDict sn_except;
     void doWsaAsyncSelect(int socket);
 
-    // event notifier
-    QWinEventNotifier wakeUpNotifier;
-
     QList<QWinEventNotifier *> winEventNotifierList;
     void activateEventNotifier(QWinEventNotifier * wen);
 
@@ -351,19 +358,13 @@ public:
 };
 
 QEventDispatcherWin32Private::QEventDispatcherWin32Private()
-    : threadId(GetCurrentThreadId()), interrupt(false), internalHwnd(0)
+    : threadId(GetCurrentThreadId()), interrupt(false), internalHwnd(0), serialNumber(0), lastSerialNumber(0), wakeUps(0)
 {
     resolveTimerAPI();
-
-    wakeUpNotifier.setHandle(CreateEvent(0, FALSE, FALSE, 0));
-    if (!wakeUpNotifier.handle())
-        qWarning("QEventDispatcher: Creating QEventDispatcherWin32Private wakeup event failed");
 }
 
 QEventDispatcherWin32Private::~QEventDispatcherWin32Private()
 {
-    wakeUpNotifier.setEnabled(false);
-    CloseHandle(wakeUpNotifier.handle());
     if (internalHwnd)
         DestroyWindow(internalHwnd);
     QString className = QLatin1String("QEventDispatcherWin32_Internal_Widget") + QString::number(quintptr(qt_internal_proc));
@@ -408,22 +409,35 @@ void WINAPI CALLBACK qt_fast_timer_proc(uint timerId, uint /*reserved*/, DWORD_P
 
 LRESULT CALLBACK qt_internal_proc(HWND hwnd, UINT message, WPARAM wp, LPARAM lp)
 {
-    if (message == WM_NCCREATE) {
-            return true;
-    } else if (message == WM_USER) {
+    if (message == WM_NCCREATE)
+        return true;
 
-        // socket notifier message
-        MSG msg;
-        msg.hwnd = hwnd;
-        msg.message = message;
-        msg.wParam = wp;
-        msg.lParam = lp;
+    MSG msg;
+    msg.hwnd = hwnd;
+    msg.message = message;
+    msg.wParam = wp;
+    msg.lParam = lp;
+    QCoreApplication *app = QCoreApplication::instance();
+    long result;
+    if (!app) {
+        if (message == WM_TIMER)
+            KillTimer(hwnd, wp);
+        return 0;
+    } else if (app->filterEvent(&msg, &result)) {
+        return result;
+    }
 
-        QCoreApplication *app = QCoreApplication::instance();
-        long result;
-        if (app && app->filterEvent(&msg, &result))
-            return result;
+#ifdef GWLP_USERDATA
+    QEventDispatcherWin32 *q = (QEventDispatcherWin32 *) GetWindowLongPtr(hwnd, GWLP_USERDATA);
+#else
+    QEventDispatcherWin32 *q = (QEventDispatcherWin32 *) GetWindowLong(hwnd, GWL_USERDATA);
+#endif
+    QEventDispatcherWin32Private *d = 0;
+    if (q != 0)
+        d = q->d_func();
 
+    if (message == WM_QT_SOCKETNOTIFIER) {
+        // socket notifier message
         int type = -1;
         switch (WSAGETSELECTEVENT(lp)) {
         case FD_READ:
@@ -440,56 +454,52 @@ LRESULT CALLBACK qt_internal_proc(HWND hwnd, UINT message, WPARAM wp, LPARAM lp)
             break;
         }
         if (type >= 0) {
-
-    #ifdef GWLP_USERDATA
-            QEventDispatcherWin32 *eventDispatcher =
-                (QEventDispatcherWin32 *) GetWindowLongPtr(hwnd, GWLP_USERDATA);
-    #else
-            QEventDispatcherWin32 *eventDispatcher =
-                (QEventDispatcherWin32 *) GetWindowLong(hwnd, GWL_USERDATA);
-    #endif
-            if (eventDispatcher) {
-                QEventDispatcherWin32Private *d = eventDispatcher->d_func();
-                QSNDict *sn_vec[3] = { &d->sn_read, &d->sn_write, &d->sn_except };
-                QSNDict *dict = sn_vec[type];
-
-                QSockNot *sn = dict ? dict->value(wp) : 0;
-                if (sn) {
-                    QEvent event(QEvent::SockAct);
-                    QCoreApplication::sendEvent(sn->obj, &event);
-                }
+            Q_ASSERT(d != 0);
+            QSNDict *sn_vec[3] = { &d->sn_read, &d->sn_write, &d->sn_except };
+            QSNDict *dict = sn_vec[type];
+
+            QSockNot *sn = dict ? dict->value(wp) : 0;
+            if (sn) {
+                QEvent event(QEvent::SockAct);
+                QCoreApplication::sendEvent(sn->obj, &event);
             }
         }
         return 0;
-
-    } else if (message == WM_TIMER) {
-
-        MSG msg;
-        msg.hwnd = hwnd;
-        msg.message = message;
-        msg.wParam = wp;
-        msg.lParam = lp;
-
-        QCoreApplication *app = QCoreApplication::instance();
-        Q_ASSERT_X(app, "qt_interal_proc", "Timer fired, but no QCoreApplication");
-        if (!app) {
-            KillTimer(hwnd, wp);
-            return 0;
+    } else if (message == WM_TIMER) {    
+        if (wp == ~0u) {
+            KillTimer(d->internalHwnd, wp);
+            int localSerialNumber = d->serialNumber;
+            (void) d->wakeUps.fetchAndStoreRelease(0);
+            if (localSerialNumber != d->lastSerialNumber) {
+                PostMessage(d->internalHwnd, WM_QT_SENDPOSTEDEVENTS, 0, 0);
+            }
+        } else {
+            Q_ASSERT(d != 0);
+            d->sendTimerEvent(wp);
+        }
+        return 0;
+    } else if (message == WM_QT_SENDPOSTEDEVENTS) {
+        int localSerialNumber = d->serialNumber;
+
+        MSG peeked;
+        if (PeekMessage(&peeked, d->internalHwnd, WM_TIMER, WM_TIMER, PM_NOREMOVE)
+            || PeekMessage(&peeked, NULL, 0, 0, PM_NOREMOVE | PM_QS_INPUT)) {
+            // delay the next pass of sendPostedEvents() until we get the special
+            // WM_TIMER, which allows all pending Windows messages to be processed
+            SetTimer(d->internalHwnd, ~0u, 0, 0);
+        } else {
+            // nothing pending in the queue, let sendPostedEvents go through
+            d->wakeUps.fetchAndStoreRelease(0);
         }
 
-        long result;
-        if (app->filterEvent(&msg, &result))
-            return result;
-
-        QEventDispatcherWin32 *eventDispatcher =
-            qobject_cast<QEventDispatcherWin32 *>(QAbstractEventDispatcher::instance());
-        Q_ASSERT(eventDispatcher != 0);
-        QEventDispatcherWin32Private *d = eventDispatcher->d_func();
-        d->sendTimerEvent(wp);
+        if (localSerialNumber != d->lastSerialNumber) {
+            d->lastSerialNumber = localSerialNumber;
+            QCoreApplicationPrivate::sendPostedEvents(0, 0, d->threadData);
+        }
         return 0;
     }
 
-    return  DefWindowProc(hwnd, message, wp, lp);
+    return DefWindowProc(hwnd, message, wp, lp);
 }
 
 static HWND qt_create_internal_window(const QEventDispatcherWin32 *eventDispatcher)
@@ -538,11 +548,6 @@ void QEventDispatcherWin32Private::registerTimer(WinTimerInfo *t)
     Q_Q(QEventDispatcherWin32);
 
     int ok = 0;
-
-    //in the animation api, we delay the start of the animation
-    //for the dock widgets, we need to use a system timer because dragging a native window
-    //makes Windows start its own event loop.
-    //So if this threshold changes, please change STARTSTOP_TIMER_DELAY in qabstractanimation.cpp accordingly.
     if (t->interval > 15 || !t->interval || !qtimeSetEvent) {
         ok = 1;
         if (!t->interval)  // optimization for single-shot-zero-timer
@@ -608,7 +613,7 @@ void QEventDispatcherWin32Private::doWsaAsyncSelect(int socket)
         sn_event |= FD_OOB;
     // BoundsChecker may emit a warning for WSAAsyncSelect when sn_event == 0
     // This is a BoundsChecker bug and not a Qt bug
-    WSAAsyncSelect(socket, internalHwnd, sn_event ? WM_USER : 0, sn_event);
+    WSAAsyncSelect(socket, internalHwnd, sn_event ? WM_QT_SOCKETNOTIFIER : 0, sn_event);
 }
 
 void QEventDispatcherWin32::createInternalHwnd()
@@ -630,6 +635,9 @@ void QEventDispatcherWin32::createInternalHwnd()
     // start all normal timers
     for (int i = 0; i < d->timerVec.count(); ++i)
         d->registerTimer(d->timerVec.at(i));
+
+    // trigger a call to sendPostedEvents()
+    wakeUp();
 }
 
 QEventDispatcherWin32::QEventDispatcherWin32(QObject *parent)
@@ -654,11 +662,10 @@ bool QEventDispatcherWin32::processEvents(QEventLoop::ProcessEventsFlags flags)
     bool canWait;
     bool retVal = false;
     do {
-        QCoreApplicationPrivate::sendPostedEvents(0, 0, d->threadData);
-
         DWORD waitRet = 0;
         HANDLE pHandles[MAXIMUM_WAIT_OBJECTS - 1];
         QVarLengthArray<MSG> processedTimers;
+        bool seenWM_QT_SENDPOSTEDEVENTS = false;
         while (!d->interrupt) {
             DWORD nCount = d->winEventNotifierList.count();
             Q_ASSERT(nCount < MAXIMUM_WAIT_OBJECTS - 1);
@@ -689,7 +696,7 @@ bool QEventDispatcherWin32::processEvents(QEventLoop::ProcessEventsFlags flags)
                     d->queuedUserInputEvents.append(msg);
                 }
                 if (haveMessage && (flags & QEventLoop::ExcludeSocketNotifiers)
-                    && (msg.message == WM_USER && msg.hwnd == d->internalHwnd)) {
+                    && (msg.message == WM_QT_SOCKETNOTIFIER && msg.hwnd == d->internalHwnd)) {
                     // queue socket events for later processing
                     haveMessage = false;
                     d->queuedSocketEvents.append(msg);
@@ -706,7 +713,13 @@ bool QEventDispatcherWin32::processEvents(QEventLoop::ProcessEventsFlags flags)
                 }
             }
             if (haveMessage) {
-                if (msg.message == WM_TIMER) {
+                if (msg.message == WM_QT_SENDPOSTEDEVENTS && !(flags & QEventLoop::EventLoopExec)) {
+                    if (seenWM_QT_SENDPOSTEDEVENTS) {
+                        PostMessage(d->internalHwnd, WM_QT_SENDPOSTEDEVENTS, 0, 0);
+                        break;
+                    }
+                    seenWM_QT_SENDPOSTEDEVENTS = true;
+                } else if (msg.message == WM_TIMER) {
                     // avoid live-lock by keeping track of the timers we've already sent
                     bool found = false;
                     for (int i = 0; !found && i < processedTimers.count(); ++i) {
@@ -736,9 +749,7 @@ bool QEventDispatcherWin32::processEvents(QEventLoop::ProcessEventsFlags flags)
         }
 
         // still nothing - wait for message or signalled objects
-        QThreadData *data = d->threadData;
         canWait = (!retVal
-                   && data->canWait
                    && !d->interrupt
                    && (flags & QEventLoop::WaitForMoreEvents));
         if (canWait) {
@@ -990,7 +1001,11 @@ void QEventDispatcherWin32::activateEventNotifiers()
 void QEventDispatcherWin32::wakeUp()
 {
     Q_D(QEventDispatcherWin32);
-    SetEvent(d->wakeUpNotifier.handle());
+    d->serialNumber.ref();
+    if (d->internalHwnd && d->wakeUps.testAndSetAcquire(0, 1)) {
+        // post a WM_QT_SENDPOSTEDEVENTS to this thread if there isn't one already pending
+        PostMessage(d->internalHwnd, WM_QT_SENDPOSTEDEVENTS, 0, 0);
+    }
 }
 
 void QEventDispatcherWin32::interrupt()
@@ -1003,13 +1018,8 @@ void QEventDispatcherWin32::interrupt()
 void QEventDispatcherWin32::flush()
 { }
 
-
 void QEventDispatcherWin32::startingUp()
-{
-    Q_D(QEventDispatcherWin32);
-
-    if (d->wakeUpNotifier.handle()) d->wakeUpNotifier.setEnabled(true);
-}
+{ }
 
 void QEventDispatcherWin32::closingDown()
 {
-- 
cgit v0.12


From 4e22238ac86eb7ddb88b7dec73d419767da72323 Mon Sep 17 00:00:00 2001
From: "Bradley T. Hughes" <bradley.hughes@nokia.com>
Date: Mon, 19 Oct 2009 16:14:13 +0200
Subject: Remove workarounds for Win32 event dispatcher bugs

This includes the startstop timer delay in QAbstractAnimation, and the
inSizeMove workaround for paint events.

Reviewed-by: Prasanth Ullattil
---
 src/corelib/animation/qabstractanimation.cpp | 12 ------------
 src/gui/kernel/qapplication.cpp              |  3 ---
 src/gui/kernel/qapplication_p.h              |  3 ---
 src/gui/kernel/qapplication_win.cpp          |  2 --
 src/gui/painting/qbackingstore.cpp           | 12 ------------
 5 files changed, 32 deletions(-)

diff --git a/src/corelib/animation/qabstractanimation.cpp b/src/corelib/animation/qabstractanimation.cpp
index c775a00..df8b548 100644
--- a/src/corelib/animation/qabstractanimation.cpp
+++ b/src/corelib/animation/qabstractanimation.cpp
@@ -157,19 +157,7 @@
 #ifndef QT_NO_ANIMATION
 
 #define DEFAULT_TIMER_INTERVAL 16
-
-#ifdef Q_WS_WIN
-    /// Fix for Qt 4.7
-    //on windows if you're currently dragging a widget an inner eventloop was started by the system
-    //to make sure that this timer is getting fired, we need to make sure to use the system timers
-    //that will send a WM_TIMER event. We do that by settings the timer interval to 11
-    //It is 16 because QEventDispatcherWin32Private::registerTimer specifically checks if the interval
-    //is greater than 11 to determine if it should use a system timer (or the multimedia timer).
-#define STARTSTOP_TIMER_DELAY 16
-#else
 #define STARTSTOP_TIMER_DELAY 0
-#endif
-
 
 QT_BEGIN_NAMESPACE
 
diff --git a/src/gui/kernel/qapplication.cpp b/src/gui/kernel/qapplication.cpp
index f48c551..9658f5e 100644
--- a/src/gui/kernel/qapplication.cpp
+++ b/src/gui/kernel/qapplication.cpp
@@ -474,9 +474,6 @@ bool QApplicationPrivate::fade_tooltip = false;
 bool QApplicationPrivate::animate_toolbox = false;
 bool QApplicationPrivate::widgetCount = false;
 bool QApplicationPrivate::load_testability = false;
-#if defined(Q_WS_WIN) && !defined(Q_WS_WINCE)
-bool QApplicationPrivate::inSizeMove = false;
-#endif
 #ifdef QT_KEYPAD_NAVIGATION
 #  ifdef Q_OS_SYMBIAN
 Qt::NavigationMode QApplicationPrivate::navigationMode = Qt::NavigationModeKeypadDirectional;
diff --git a/src/gui/kernel/qapplication_p.h b/src/gui/kernel/qapplication_p.h
index 2d3d18c..92b07c7 100644
--- a/src/gui/kernel/qapplication_p.h
+++ b/src/gui/kernel/qapplication_p.h
@@ -441,9 +441,6 @@ public:
 #ifdef Q_WS_MAC
     static bool native_modal_dialog_active;
 #endif
-#if defined(Q_WS_WIN) && !defined(Q_WS_WINCE)
-    static bool inSizeMove;
-#endif
 
     static void setSystemPalette(const QPalette &pal);
     static void setPalette_helper(const QPalette &palette, const char* className, bool clearWidgetPaletteHash);
diff --git a/src/gui/kernel/qapplication_win.cpp b/src/gui/kernel/qapplication_win.cpp
index 5bb25fa..522f1ac 100644
--- a/src/gui/kernel/qapplication_win.cpp
+++ b/src/gui/kernel/qapplication_win.cpp
@@ -1916,11 +1916,9 @@ LRESULT CALLBACK QtWndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam
 #ifndef Q_WS_WINCE
         case WM_ENTERSIZEMOVE:
             autoCaptureWnd = hwnd;
-            QApplicationPrivate::inSizeMove = true;
             break;
         case WM_EXITSIZEMOVE:
             autoCaptureWnd = 0;
-            QApplicationPrivate::inSizeMove = false;
             break;
 #endif
         case WM_MOVE:                                // move window
diff --git a/src/gui/painting/qbackingstore.cpp b/src/gui/painting/qbackingstore.cpp
index 7c07df8..7facd91 100644
--- a/src/gui/painting/qbackingstore.cpp
+++ b/src/gui/painting/qbackingstore.cpp
@@ -497,18 +497,6 @@ static inline void sendUpdateRequest(QWidget *widget, bool updateImmediately)
     if (!widget)
         return;
 
-#if defined(Q_WS_WIN) && !defined(Q_OS_WINCE)
-    if (QApplicationPrivate::inSizeMove && widget->internalWinId() && !updateImmediately
-        && !widget->testAttribute(Qt::WA_DontShowOnScreen)) {
-        // Tell Windows to send us a paint event if we're in WM_SIZE/WM_MOVE; posted events
-        // are blocked until the mouse button is released. See task 146849.
-        const QRegion rgn(qt_dirtyRegion(widget));
-        InvalidateRgn(widget->internalWinId(), rgn.handle(), false);
-        qt_widget_private(widget)->dirty = QRegion();
-        return;
-    }
-#endif
-
     if (updateImmediately) {
         QEvent event(QEvent::UpdateRequest);
         QApplication::sendEvent(widget, &event);
-- 
cgit v0.12


From e28e6772e79df9b2adf70e21969af8cac28dc9cf Mon Sep 17 00:00:00 2001
From: "Bradley T. Hughes" <bradley.hughes@nokia.com>
Date: Wed, 21 Oct 2009 12:33:35 +0200
Subject: Use GetStatusQueue() to look for timer and input messages

This function works more reliably than PeekMessage() with different
flags.
---
 src/corelib/kernel/qeventdispatcher_win.cpp | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/src/corelib/kernel/qeventdispatcher_win.cpp b/src/corelib/kernel/qeventdispatcher_win.cpp
index f7de29d..eca94fc 100644
--- a/src/corelib/kernel/qeventdispatcher_win.cpp
+++ b/src/corelib/kernel/qeventdispatcher_win.cpp
@@ -482,8 +482,7 @@ LRESULT CALLBACK qt_internal_proc(HWND hwnd, UINT message, WPARAM wp, LPARAM lp)
         int localSerialNumber = d->serialNumber;
 
         MSG peeked;
-        if (PeekMessage(&peeked, d->internalHwnd, WM_TIMER, WM_TIMER, PM_NOREMOVE)
-            || PeekMessage(&peeked, NULL, 0, 0, PM_NOREMOVE | PM_QS_INPUT)) {
+        if (GetQueueStatus(QS_INPUT | QS_RAWINPUT | QS_TIMER) != 0) {
             // delay the next pass of sendPostedEvents() until we get the special
             // WM_TIMER, which allows all pending Windows messages to be processed
             SetTimer(d->internalHwnd, ~0u, 0, 0);
-- 
cgit v0.12


From 4279889ebebb9fdd026fc107f60f825fb2ad565e Mon Sep 17 00:00:00 2001
From: "Bradley T. Hughes" <bradley.hughes@nokia.com>
Date: Wed, 21 Oct 2009 14:02:32 +0200
Subject: Compile on Windows when QS_RAWINPUT is not defined.

---
 src/corelib/kernel/qeventdispatcher_win.cpp | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/corelib/kernel/qeventdispatcher_win.cpp b/src/corelib/kernel/qeventdispatcher_win.cpp
index eca94fc..df4c02d 100644
--- a/src/corelib/kernel/qeventdispatcher_win.cpp
+++ b/src/corelib/kernel/qeventdispatcher_win.cpp
@@ -64,6 +64,10 @@ extern uint qGlobalPostedEventsCount();
 #  define TIME_KILL_SYNCHRONOUS 0x0100
 #endif
 
+#ifndef QS_RAWINPUT
+#  define QS_RAWINPUT 0x0400
+#endif
+
 enum {
     WM_QT_SOCKETNOTIFIER = WM_USER,
     WM_QT_SENDPOSTEDEVENTS = WM_USER + 1
@@ -481,7 +485,6 @@ LRESULT CALLBACK qt_internal_proc(HWND hwnd, UINT message, WPARAM wp, LPARAM lp)
     } else if (message == WM_QT_SENDPOSTEDEVENTS) {
         int localSerialNumber = d->serialNumber;
 
-        MSG peeked;
         if (GetQueueStatus(QS_INPUT | QS_RAWINPUT | QS_TIMER) != 0) {
             // delay the next pass of sendPostedEvents() until we get the special
             // WM_TIMER, which allows all pending Windows messages to be processed
-- 
cgit v0.12


From 3481db791c3b48e28f1a9531b247adf6562edb71 Mon Sep 17 00:00:00 2001
From: Prasanth Ullattil <prasanth.ullattil@nokia.com>
Date: Thu, 22 Oct 2009 16:39:14 +0200
Subject: Remove internal widgets from QApplication::topLevelWidgets()

We have some internal hidden widgets which should not come up in the
QApplication::topLevelWidgets() list. So the known ones are being
removed from the QWidgetPrivate::allWidgets set.

Task-number: QTBUG-739
Reviewed-by: Denis Dzyubenko
Reviewed-by: Bradley T. Hughes
---
 src/gui/kernel/qclipboard_win.cpp            |  4 ++++
 src/gui/kernel/qclipboard_x11.cpp            |  9 +++++++++
 src/gui/kernel/qwidget_win.cpp               |  3 +++
 src/gui/styles/qwindowsxpstyle.cpp           |  5 +++++
 src/opengl/qwindowsurface_gl.cpp             |  5 ++++-
 tests/auto/qapplication/tst_qapplication.cpp | 22 ++++++++++++++++++++++
 6 files changed, 47 insertions(+), 1 deletion(-)

diff --git a/src/gui/kernel/qclipboard_win.cpp b/src/gui/kernel/qclipboard_win.cpp
index 7f7ef0c..0157052 100644
--- a/src/gui/kernel/qclipboard_win.cpp
+++ b/src/gui/kernel/qclipboard_win.cpp
@@ -51,6 +51,7 @@
 #include "qmime.h"
 #include "qt_windows.h"
 #include "qdnd_p.h"
+#include <private/qwidget_p.h>
 
 QT_BEGIN_NAMESPACE
 
@@ -140,6 +141,9 @@ public:
         clipBoardViewer = new QWidget();
         clipBoardViewer->createWinId();
         clipBoardViewer->setObjectName(QLatin1String("internal clipboard owner"));
+        // We dont need this internal widget to appear in QApplication::topLevelWidgets()
+        if (QWidgetPrivate::allWidgets)
+            QWidgetPrivate::allWidgets->remove(clipBoardViewer);
     }
 
     ~QClipboardData()
diff --git a/src/gui/kernel/qclipboard_x11.cpp b/src/gui/kernel/qclipboard_x11.cpp
index 9621944..22d7c9e 100644
--- a/src/gui/kernel/qclipboard_x11.cpp
+++ b/src/gui/kernel/qclipboard_x11.cpp
@@ -78,6 +78,7 @@
 #include "qimagewriter.h"
 #include "qvariant.h"
 #include "qdnd_p.h"
+#include <private/qwidget_p.h>
 
 #ifndef QT_NO_XFIXES
 #include <X11/extensions/Xfixes.h>
@@ -131,6 +132,11 @@ void setupOwner()
     requestor = new QWidget(0);
     requestor->createWinId();
     requestor->setObjectName(QLatin1String("internal clipboard requestor"));
+    // We dont need this internal widgets to appear in QApplication::topLevelWidgets()
+    if (QWidgetPrivate::allWidgets) {
+        QWidgetPrivate::allWidgets->remove(owner);
+        QWidgetPrivate::allWidgets->remove(requestor);
+    }
     qAddPostRoutine(cleanup);
 }
 
@@ -769,6 +775,9 @@ QByteArray QX11Data::clipboardReadIncrementalProperty(Window win, Atom property,
     delete requestor;
     requestor = new QWidget(0);
     requestor->setObjectName(QLatin1String("internal clipboard requestor"));
+    // We dont need this internal widget to appear in QApplication::topLevelWidgets()
+    if (QWidgetPrivate::allWidgets)
+        QWidgetPrivate::allWidgets->remove(requestor);
 
     return QByteArray();
 }
diff --git a/src/gui/kernel/qwidget_win.cpp b/src/gui/kernel/qwidget_win.cpp
index 2b11bec..0672fee 100644
--- a/src/gui/kernel/qwidget_win.cpp
+++ b/src/gui/kernel/qwidget_win.cpp
@@ -161,6 +161,9 @@ static void qt_tablet_init()
     qt_tablet_widget = new QWidget(0);
     qt_tablet_widget->createWinId();
     qt_tablet_widget->setObjectName(QLatin1String("Qt internal tablet widget"));
+    // We dont need this internal widget to appear in QApplication::topLevelWidgets()
+    if (QWidgetPrivate::allWidgets)
+        QWidgetPrivate::allWidgets->remove(qt_tablet_widget);
     LOGCONTEXT lcMine;
     qAddPostRoutine(qt_tablet_cleanup);
     struct tagAXIS tpOri[3];
diff --git a/src/gui/styles/qwindowsxpstyle.cpp b/src/gui/styles/qwindowsxpstyle.cpp
index 9ef30e5..2f00f07 100644
--- a/src/gui/styles/qwindowsxpstyle.cpp
+++ b/src/gui/styles/qwindowsxpstyle.cpp
@@ -47,6 +47,7 @@
 #include <private/qpaintengine_raster_p.h>
 #include <private/qapplication_p.h>
 #include <private/qstylehelper_p.h>
+#include <private/qwidget_p.h>
 #include <qlibrary.h>
 #include <qpainter.h>
 #include <qpaintengine.h>
@@ -299,7 +300,11 @@ HWND QWindowsXPStylePrivate::winId(const QWidget *widget)
 
     if (!limboWidget) {
         limboWidget = new QWidget(0);
+        limboWidget->createWinId();
         limboWidget->setObjectName(QLatin1String("xp_limbo_widget"));
+        // We dont need this internal widget to appear in QApplication::topLevelWidgets()
+        if (QWidgetPrivate::allWidgets)
+            QWidgetPrivate::allWidgets->remove(limboWidget);
     }
 
     return limboWidget->winId();
diff --git a/src/opengl/qwindowsurface_gl.cpp b/src/opengl/qwindowsurface_gl.cpp
index 4547416..dcbf021 100644
--- a/src/opengl/qwindowsurface_gl.cpp
+++ b/src/opengl/qwindowsurface_gl.cpp
@@ -49,12 +49,12 @@
 #include <qglpixelbuffer.h>
 #include <qcolormap.h>
 #include <qdesktopwidget.h>
+#include <private/qwidget_p.h>
 #include "qdebug.h"
 
 #ifdef Q_WS_X11
 #include <private/qt_x11_p.h>
 #include <qx11info_x11.h>
-#include <private/qwidget_p.h>
 
 #ifndef QT_OPENGL_ES
 #include <GL/glx.h>
@@ -195,6 +195,9 @@ public:
         if (!initializing && !widget && !cleanedUp) {
             initializing = true;
             widget = new QGLWidget;
+            // We dont need this internal widget to appear in QApplication::topLevelWidgets()
+            if (QWidgetPrivate::allWidgets)
+                QWidgetPrivate::allWidgets->remove(widget);
             initializing = false;
         }
         return widget;
diff --git a/tests/auto/qapplication/tst_qapplication.cpp b/tests/auto/qapplication/tst_qapplication.cpp
index 97aa092..e8e1ef0 100644
--- a/tests/auto/qapplication/tst_qapplication.cpp
+++ b/tests/auto/qapplication/tst_qapplication.cpp
@@ -129,6 +129,7 @@ private slots:
     void style();
 
     void allWidgets();
+    void topLevelWidgets();
 
     void setAttribute();
 
@@ -1792,6 +1793,27 @@ void tst_QApplication::allWidgets()
     QVERIFY(!app.allWidgets().contains(w)); // removal test
 }
 
+void tst_QApplication::topLevelWidgets()
+{
+    int argc = 1;
+    QApplication app(argc, &argv0, QApplication::GuiServer);
+    QWidget *w = new QWidget;
+    w->show();
+#ifndef QT_NO_CLIPBOARD
+    QClipboard *clipboard = QApplication::clipboard();
+    QString originalText = clipboard->text();
+    clipboard->setText(QString("newText"));
+#endif
+    app.processEvents();
+    QVERIFY(QApplication::topLevelWidgets().contains(w));
+    QCOMPARE(QApplication::topLevelWidgets().count(), 1);
+    delete w;
+    w = 0;
+    app.processEvents();
+    QCOMPARE(QApplication::topLevelWidgets().count(), 0);
+}
+
+
 
 void tst_QApplication::setAttribute()
 {
-- 
cgit v0.12


From 706c3f846b97c74c5e15395b6e2d306c522ba769 Mon Sep 17 00:00:00 2001
From: Denis Dzyubenko <denis.dzyubenko@nokia.com>
Date: Thu, 22 Oct 2009 22:09:03 +0200
Subject: Optimisation for filtering events for gestures in graphics view.

We shouldn't add several graphicsobject contexts for the same gesture
type when looking for the gesture-enabled QGraphicsObject under a
hotspot.

Reviewed-by: Thomas Zander
---
 src/gui/kernel/qgesturemanager.cpp | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/gui/kernel/qgesturemanager.cpp b/src/gui/kernel/qgesturemanager.cpp
index ed8e744..0601457 100644
--- a/src/gui/kernel/qgesturemanager.cpp
+++ b/src/gui/kernel/qgesturemanager.cpp
@@ -352,8 +352,10 @@ bool QGestureManager::filterEvent(QGraphicsObject *receiver, QEvent *event)
         for (ContextIterator it = item->QGraphicsItem::d_func()->gestureContext.begin(),
              e = item->QGraphicsItem::d_func()->gestureContext.end(); it != e; ++it) {
             if (it.value() == Qt::ItemWithChildrenGesture) {
-                if (!types.contains(it.key()))
+                if (!types.contains(it.key())) {
+                    types.insert(it.key());
                     contexts.insertMulti(item, it.key());
+                }
             }
         }
         item = item->parentObject();
-- 
cgit v0.12


From dc54674e9f8998b4aee3a58d06f6b5533ccd3cfe Mon Sep 17 00:00:00 2001
From: Denis Dzyubenko <denis.dzyubenko@nokia.com>
Date: Thu, 22 Oct 2009 22:41:43 +0200
Subject: Implemented QGestureEvent::activeGestures and canceledGestures.

Reviewed-by: Thomas Zander
---
 src/gui/kernel/qevent.cpp | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/src/gui/kernel/qevent.cpp b/src/gui/kernel/qevent.cpp
index 065bd09..74dfa53 100644
--- a/src/gui/kernel/qevent.cpp
+++ b/src/gui/kernel/qevent.cpp
@@ -4262,7 +4262,12 @@ QGesture *QGestureEvent::gesture(Qt::GestureType type) const
 */
 QList<QGesture *> QGestureEvent::activeGestures() const
 {
-    return d_func()->gestures;
+    QList<QGesture *> gestures;
+    foreach (QGesture *gesture, d_func()->gestures) {
+        if (gesture->state() != Qt::GestureCanceled)
+            gestures.append(gesture);
+    }
+    return gestures;
 }
 
 /*!
@@ -4270,7 +4275,12 @@ QList<QGesture *> QGestureEvent::activeGestures() const
 */
 QList<QGesture *> QGestureEvent::canceledGestures() const
 {
-    return d_func()->gestures;
+    QList<QGesture *> gestures;
+    foreach (QGesture *gesture, d_func()->gestures) {
+        if (gesture->state() == Qt::GestureCanceled)
+            gestures.append(gesture);
+    }
+    return gestures;
 }
 
 /*!
-- 
cgit v0.12


From f3cbbd7b8388b4c7445a5fa56d59abdae6c532cb Mon Sep 17 00:00:00 2001
From: Denis Dzyubenko <denis.dzyubenko@nokia.com>
Date: Thu, 22 Oct 2009 22:39:24 +0200
Subject: Added convenience functions QGestureEvent::setAccepted with a gesture
 type argument.

Reviewed-by: Thomas Zander
---
 src/gui/kernel/qevent.cpp | 68 +++++++++++++++++++++++++++++++++++++++++++----
 src/gui/kernel/qevent.h   |  5 ++++
 2 files changed, 68 insertions(+), 5 deletions(-)

diff --git a/src/gui/kernel/qevent.cpp b/src/gui/kernel/qevent.cpp
index 74dfa53..ea05869 100644
--- a/src/gui/kernel/qevent.cpp
+++ b/src/gui/kernel/qevent.cpp
@@ -4298,9 +4298,8 @@ QList<QGesture *> QGestureEvent::canceledGestures() const
 */
 void QGestureEvent::setAccepted(QGesture *gesture, bool value)
 {
-    setAccepted(false);
     if (gesture)
-        d_func()->accepted[gesture->gestureType()] = value;
+        setAccepted(gesture->gestureType(), value);
 }
 
 /*!
@@ -4314,7 +4313,8 @@ void QGestureEvent::setAccepted(QGesture *gesture, bool value)
 */
 void QGestureEvent::accept(QGesture *gesture)
 {
-    setAccepted(gesture, true);
+    if (gesture)
+        setAccepted(gesture->gestureType(), true);
 }
 
 /*!
@@ -4328,7 +4328,8 @@ void QGestureEvent::accept(QGesture *gesture)
 */
 void QGestureEvent::ignore(QGesture *gesture)
 {
-    setAccepted(gesture, false);
+    if (gesture)
+        setAccepted(gesture->gestureType(), false);
 }
 
 /*!
@@ -4336,7 +4337,64 @@ void QGestureEvent::ignore(QGesture *gesture)
 */
 bool QGestureEvent::isAccepted(QGesture *gesture) const
 {
-    return gesture ? d_func()->accepted.value(gesture->gestureType(), true) : false;
+    return gesture ? isAccepted(gesture->gestureType()) : false;
+}
+
+/*!
+    Sets the accept flag of the given \a gestureType object to the specified
+    \a value.
+
+    Setting the accept flag indicates that the event receiver wants the \a gesture.
+    Unwanted gestures may be propagated to the parent widget.
+
+    By default, gestures in events of type QEvent::Gesture are accepted, and
+    gestures in QEvent::GestureOverride events are ignored.
+
+    For convenience, the accept flag can also be set with
+    \l{QGestureEvent::accept()}{accept(gestureType)}, and cleared with
+    \l{QGestureEvent::ignore()}{ignore(gestureType)}.
+*/
+void QGestureEvent::setAccepted(Qt::GestureType gestureType, bool value)
+{
+    setAccepted(false);
+    d_func()->accepted[gestureType] = value;
+}
+
+/*!
+    Sets the accept flag of the given \a gestureType, the equivalent of calling
+    \l{QGestureEvent::setAccepted()}{setAccepted(gestureType, true)}.
+
+    Setting the accept flag indicates that the event receiver wants the
+    gesture. Unwanted gestures may be propagated to the parent widget.
+
+    \sa QGestureEvent::ignore()
+*/
+void QGestureEvent::accept(Qt::GestureType gestureType)
+{
+    setAccepted(gestureType, true);
+}
+
+/*!
+    Clears the accept flag parameter of the given \a gestureType, the equivalent
+    of calling \l{QGestureEvent::setAccepted()}{setAccepted(gesture, false)}.
+
+    Clearing the accept flag indicates that the event receiver does not
+    want the gesture. Unwanted gestures may be propgated to the parent widget.
+
+    \sa QGestureEvent::accept()
+*/
+void QGestureEvent::ignore(Qt::GestureType gestureType)
+{
+    setAccepted(gestureType, false);
+}
+
+/*!
+    Returns true if the gesture of type \a gestureType is accepted; otherwise
+    returns false.
+*/
+bool QGestureEvent::isAccepted(Qt::GestureType gestureType) const
+{
+    return d_func()->accepted.value(gestureType, true);
 }
 
 /*!
diff --git a/src/gui/kernel/qevent.h b/src/gui/kernel/qevent.h
index b7370fd..fb245c0 100644
--- a/src/gui/kernel/qevent.h
+++ b/src/gui/kernel/qevent.h
@@ -851,6 +851,11 @@ public:
     void ignore(QGesture *);
     bool isAccepted(QGesture *) const;
 
+    void setAccepted(Qt::GestureType, bool);
+    void accept(Qt::GestureType);
+    void ignore(Qt::GestureType);
+    bool isAccepted(Qt::GestureType) const;
+
     void setWidget(QWidget *widget);
     QWidget *widget() const;
 
-- 
cgit v0.12


From 20cddedfe5f422eb0607a5ac85870267b2788117 Mon Sep 17 00:00:00 2001
From: Denis Dzyubenko <denis.dzyubenko@nokia.com>
Date: Fri, 23 Oct 2009 13:04:19 +0200
Subject: Unregister the temporary gesture recognizer in the gestures autotest.

Reviewed-by: trustme
---
 tests/auto/gestures/tst_gestures.cpp | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/tests/auto/gestures/tst_gestures.cpp b/tests/auto/gestures/tst_gestures.cpp
index 92f979f..800af1b 100644
--- a/tests/auto/gestures/tst_gestures.cpp
+++ b/tests/auto/gestures/tst_gestures.cpp
@@ -341,6 +341,7 @@ void tst_Gestures::initTestCase()
 
 void tst_Gestures::cleanupTestCase()
 {
+    qApp->unregisterGestureRecognizer(CustomGesture::GestureType);
 }
 
 void tst_Gestures::init()
@@ -547,6 +548,8 @@ void tst_Gestures::conflictingGestures()
     QCOMPARE(child->events.all.count(), TotalGestureEventsCount + ContinuousGestureEventsCount);
     QCOMPARE(parent.gestureOverrideEventsReceived, 0);
     QCOMPARE(parent.gestureEventsReceived, 0);
+
+    qApp->unregisterGestureRecognizer(ContinuousGesture);
 }
 
 void tst_Gestures::finishedWithoutStarted()
@@ -978,6 +981,8 @@ void tst_Gestures::twoGesturesOnDifferentLevel()
     QCOMPARE(parent.events.all.size(), TotalGestureEventsCount);
     for(int i = 0; i < child->events.all.size(); ++i)
         QCOMPARE(parent.events.all.at(i), CustomGesture::GestureType);
+
+    qApp->unregisterGestureRecognizer(SecondGesture);
 }
 
 void tst_Gestures::multipleGesturesInTree()
@@ -1046,6 +1051,9 @@ void tst_Gestures::multipleGesturesInTree()
     QCOMPARE(A->events.all.count(FirstGesture), TotalGestureEventsCount);
     QCOMPARE(A->events.all.count(SecondGesture), 0);
     QCOMPARE(A->events.all.count(ThirdGesture), TotalGestureEventsCount);
+
+    qApp->unregisterGestureRecognizer(SecondGesture);
+    qApp->unregisterGestureRecognizer(ThirdGesture);
 }
 
 void tst_Gestures::multipleGesturesInComplexTree()
@@ -1139,6 +1147,13 @@ void tst_Gestures::multipleGesturesInComplexTree()
     QCOMPARE(A->events.all.count(FifthGesture), 0);
     QCOMPARE(A->events.all.count(SixthGesture), 0);
     QCOMPARE(A->events.all.count(SeventhGesture), 0);
+
+    qApp->unregisterGestureRecognizer(SecondGesture);
+    qApp->unregisterGestureRecognizer(ThirdGesture);
+    qApp->unregisterGestureRecognizer(FourthGesture);
+    qApp->unregisterGestureRecognizer(FifthGesture);
+    qApp->unregisterGestureRecognizer(SixthGesture);
+    qApp->unregisterGestureRecognizer(SeventhGesture);
 }
 
 void tst_Gestures::testMapToScene()
-- 
cgit v0.12


From 92d8b0e1d6ecce8214b24a08b8a199af4321bd88 Mon Sep 17 00:00:00 2001
From: Thomas Zander <thomas.zander@trolltech.com>
Date: Wed, 21 Oct 2009 12:40:59 +0200
Subject: Implement QApplication::unregisterGestureRecognizer

Reviewed-by: Denis Dzyubenko
---
 src/gui/kernel/qapplication.cpp    |  4 +++-
 src/gui/kernel/qgesturemanager.cpp | 42 +++++++++++++++++++++++++++++++++++---
 src/gui/kernel/qgesturemanager_p.h |  9 ++++++--
 3 files changed, 49 insertions(+), 6 deletions(-)

diff --git a/src/gui/kernel/qapplication.cpp b/src/gui/kernel/qapplication.cpp
index 202d450..e64dfd2 100644
--- a/src/gui/kernel/qapplication.cpp
+++ b/src/gui/kernel/qapplication.cpp
@@ -5642,7 +5642,9 @@ Qt::GestureType QApplication::registerGestureRecognizer(QGestureRecognizer *reco
 */
 void QApplication::unregisterGestureRecognizer(Qt::GestureType type)
 {
-    QGestureManager::instance()->unregisterGestureRecognizer(type);
+    QApplicationPrivate *d = qApp->d_func();
+    if (d->gestureManager)
+        d->gestureManager->unregisterGestureRecognizer(type);
 }
 
 QT_END_NAMESPACE
diff --git a/src/gui/kernel/qgesturemanager.cpp b/src/gui/kernel/qgesturemanager.cpp
index 0601457..dc76c3f 100644
--- a/src/gui/kernel/qgesturemanager.cpp
+++ b/src/gui/kernel/qgesturemanager.cpp
@@ -104,9 +104,29 @@ Qt::GestureType QGestureManager::registerGestureRecognizer(QGestureRecognizer *r
     return type;
 }
 
-void QGestureManager::unregisterGestureRecognizer(Qt::GestureType)
+void QGestureManager::unregisterGestureRecognizer(Qt::GestureType type)
 {
+    QList<QGestureRecognizer *> list = recognizers.values(type);
+    recognizers.remove(type);
+    foreach (QGesture* g, gestureToRecognizer.keys()) {
+        QGestureRecognizer *recognizer = gestureToRecognizer.value(g);
+        if (list.contains(recognizer)) {
+            m_deletedRecognizers.insert(g, recognizer);
+            gestureToRecognizer.remove(g);
+        }
+    }
 
+    foreach (QGestureRecognizer *recognizer, list) {
+        QList<QGesture *> obsoleteGestures;
+        QMap<ObjectGesture, QGesture *>::Iterator iter = objectGestures.begin();
+        while (iter != objectGestures.end()) {
+            ObjectGesture objectGesture = iter.key();
+            if (objectGesture.gesture == type)
+                obsoleteGestures << iter.value();
+            ++iter;
+        }
+        m_obsoleteGestures.insert(recognizer, obsoleteGestures);
+    }
 }
 
 QGesture *QGestureManager::getState(QObject *object, Qt::GestureType type)
@@ -290,14 +310,28 @@ bool QGestureManager::filterEventThroughContexts(const QMap<QObject *,
     QSet<QGesture *> endedGestures =
             finishedGestures + canceledGestures + undeliveredGestures;
     foreach (QGesture *gesture, endedGestures) {
-        if (QGestureRecognizer *recognizer = gestureToRecognizer.value(gesture, 0)) {
+        if (QGestureRecognizer *recognizer = gestureToRecognizer.value(gesture, 0))
             recognizer->reset(gesture);
-        }
+        else
+            cleanupGesturesForRemovedRecognizer(gesture);
         gestureTargets.remove(gesture);
     }
     return false;
 }
 
+void QGestureManager::cleanupGesturesForRemovedRecognizer(QGesture *gesture)
+{
+    QGestureRecognizer *recognizer = m_deletedRecognizers.value(gesture);
+    Q_ASSERT(recognizer);
+    m_deletedRecognizers.remove(gesture);
+    if (m_deletedRecognizers.keys(recognizer).isEmpty()) {
+        // no more active gestures, cleanup!
+        qDeleteAll(m_obsoleteGestures.value(recognizer));
+        m_obsoleteGestures.remove(recognizer);
+        delete recognizer;
+    }
+}
+
 bool QGestureManager::filterEvent(QWidget *receiver, QEvent *event)
 {
     QSet<Qt::GestureType> types;
@@ -534,6 +568,8 @@ void QGestureManager::timerEvent(QTimerEvent *event)
             QGestureRecognizer *recognizer = gestureToRecognizer.value(gesture, 0);
             if (recognizer)
                 recognizer->reset(gesture);
+            else
+                cleanupGesturesForRemovedRecognizer(gesture);
         } else {
             ++it;
         }
diff --git a/src/gui/kernel/qgesturemanager_p.h b/src/gui/kernel/qgesturemanager_p.h
index f0e7225..eef45d2 100644
--- a/src/gui/kernel/qgesturemanager_p.h
+++ b/src/gui/kernel/qgesturemanager_p.h
@@ -104,7 +104,7 @@ private:
         Qt::GestureType gesture;
 
         ObjectGesture(QObject *o, const Qt::GestureType &g) : object(o), gesture(g) { }
-        inline bool operator<(const ObjectGesture& rhs) const
+        inline bool operator<(const ObjectGesture &rhs) const
         {
             if (object.data() < rhs.object.data())
                 return true;
@@ -114,7 +114,8 @@ private:
         }
     };
 
-    QMap<ObjectGesture, QGesture *> objectGestures;
+    // TODO rename all member vars to be m_
+    QMap<ObjectGesture, QGesture *> objectGestures; // TODO rename widgetGestures
     QMap<QGesture *, QGestureRecognizer *> gestureToRecognizer;
     QHash<QGesture *, QObject *> gestureOwners;
 
@@ -122,6 +123,10 @@ private:
 
     int lastCustomGestureId;
 
+    QHash<QGestureRecognizer *, QList<QGesture *> > m_obsoleteGestures;
+    QMap<QGesture *, QGestureRecognizer *> m_deletedRecognizers;
+    void cleanupGesturesForRemovedRecognizer(QGesture *gesture);
+
     QGesture *getState(QObject *widget, Qt::GestureType gesture);
     void deliverEvents(const QSet<QGesture *> &gestures,
                        QSet<QGesture *> *undeliveredGestures);
-- 
cgit v0.12


From 25bc5c29db866d5abc3f9fbae7b5211e2e6b1f25 Mon Sep 17 00:00:00 2001
From: Thomas Zander <thomas.zander@trolltech.com>
Date: Wed, 21 Oct 2009 13:58:24 +0200
Subject: Add QWidget::ungrabGesture

Reviewed-by: Denis Dzyubenko
---
 src/gui/kernel/qgesturemanager.cpp   | 16 ++++++++
 src/gui/kernel/qgesturemanager_p.h   |  2 +
 src/gui/kernel/qwidget.cpp           | 16 ++++++++
 src/gui/kernel/qwidget.h             |  1 +
 tests/auto/gestures/tst_gestures.cpp | 71 ++++++++++++++++++++++++++++++++++++
 5 files changed, 106 insertions(+)

diff --git a/src/gui/kernel/qgesturemanager.cpp b/src/gui/kernel/qgesturemanager.cpp
index dc76c3f..df88f9e 100644
--- a/src/gui/kernel/qgesturemanager.cpp
+++ b/src/gui/kernel/qgesturemanager.cpp
@@ -129,6 +129,21 @@ void QGestureManager::unregisterGestureRecognizer(Qt::GestureType type)
     }
 }
 
+void QGestureManager::cleanupCachedGestures(QObject *target, Qt::GestureType type)
+{
+    QMap<ObjectGesture, QGesture *>::Iterator iter = objectGestures.begin();
+    while (iter != objectGestures.end()) {
+        ObjectGesture objectGesture = iter.key();
+        if (objectGesture.gesture == type && target == objectGesture.object.data()) {
+            delete iter.value();
+            iter = objectGestures.erase(iter);
+        } else {
+            ++iter;
+        }
+    }
+}
+
+// get or create a QGesture object that will represent the state for a given object, used by the recognizer
 QGesture *QGestureManager::getState(QObject *object, Qt::GestureType type)
 {
     // if the widget is being deleted we should be carefull and not to
@@ -332,6 +347,7 @@ void QGestureManager::cleanupGesturesForRemovedRecognizer(QGesture *gesture)
     }
 }
 
+// return true if accepted (consumed)
 bool QGestureManager::filterEvent(QWidget *receiver, QEvent *event)
 {
     QSet<Qt::GestureType> types;
diff --git a/src/gui/kernel/qgesturemanager_p.h b/src/gui/kernel/qgesturemanager_p.h
index eef45d2..96c2fb7 100644
--- a/src/gui/kernel/qgesturemanager_p.h
+++ b/src/gui/kernel/qgesturemanager_p.h
@@ -79,6 +79,8 @@ public:
     // declared in qapplication.cpp
     static QGestureManager* instance();
 
+    void cleanupCachedGestures(QObject *target, Qt::GestureType type);
+
 protected:
     void timerEvent(QTimerEvent *event);
     bool filterEventThroughContexts(const QMap<QObject *, Qt::GestureType> &contexts,
diff --git a/src/gui/kernel/qwidget.cpp b/src/gui/kernel/qwidget.cpp
index 5fa9a92..c10db90 100644
--- a/src/gui/kernel/qwidget.cpp
+++ b/src/gui/kernel/qwidget.cpp
@@ -11708,6 +11708,22 @@ void QWidget::grabGesture(Qt::GestureType gesture, Qt::GestureContext context)
     (void)QGestureManager::instance(); // create a gesture manager
 }
 
+/*!
+    Unsubscribes the widget to a given \a gesture type
+
+    \sa QGestureEvent
+    \since 4.6
+*/
+void QWidget::ungrabGesture(Qt::GestureType gesture)
+{
+    Q_D(QWidget);
+    if (d->gestureContext.remove(gesture)) {
+        QGestureManager *manager = QGestureManager::instance();
+        manager->cleanupCachedGestures(this, gesture);
+    }
+}
+
+
 QT_END_NAMESPACE
 
 #include "moc_qwidget.cpp"
diff --git a/src/gui/kernel/qwidget.h b/src/gui/kernel/qwidget.h
index e603a1a..fce3f09 100644
--- a/src/gui/kernel/qwidget.h
+++ b/src/gui/kernel/qwidget.h
@@ -355,6 +355,7 @@ public:
     void setGraphicsEffect(QGraphicsEffect *effect);
 
     void grabGesture(Qt::GestureType type, Qt::GestureContext context = Qt::WidgetWithChildrenGesture);
+    void ungrabGesture(Qt::GestureType type);
 
 public Q_SLOTS:
     void setWindowTitle(const QString &);
diff --git a/tests/auto/gestures/tst_gestures.cpp b/tests/auto/gestures/tst_gestures.cpp
index 800af1b..6e52de3 100644
--- a/tests/auto/gestures/tst_gestures.cpp
+++ b/tests/auto/gestures/tst_gestures.cpp
@@ -280,6 +280,7 @@ protected:
     }
 };
 
+// TODO rename to sendGestureSequence
 static void sendCustomGesture(CustomEvent *event, QObject *object, QGraphicsScene *scene = 0)
 {
     for (int i = CustomGesture::SerialMaybeThreshold;
@@ -322,6 +323,7 @@ private slots:
     void multipleGesturesInTree();
     void multipleGesturesInComplexTree();
     void testMapToScene();
+    void ungrabGesture();
 };
 
 tst_Gestures::tst_Gestures()
@@ -1181,5 +1183,74 @@ void tst_Gestures::testMapToScene()
     QCOMPARE(event.mapToScene(origin + QPoint(100, 200)), view.mapToScene(QPoint(100, 200)));
 }
 
+void tst_Gestures::ungrabGesture() // a method on QWidget
+{
+    class MockGestureWidget : public GestureWidget {
+    public:
+        MockGestureWidget(const char *name = 0, QWidget *parent = 0)
+            : GestureWidget(name, parent) { }
+
+
+        QSet<QGesture*> gestures;
+    protected:
+        bool event(QEvent *event)
+        {
+            if (event->type() == QEvent::Gesture) {
+                QGestureEvent *gestureEvent = static_cast<QGestureEvent*>(event);
+                if (gestureEvent)
+                    foreach (QGesture *g, gestureEvent->allGestures())
+                        gestures.insert(g);
+            }
+            return GestureWidget::event(event);
+        }
+    };
+
+    MockGestureWidget parent("A");
+    MockGestureWidget *a = &parent;
+    MockGestureWidget *b = new MockGestureWidget("B", a);
+
+    a->grabGesture(CustomGesture::GestureType, Qt::WidgetGesture);
+    b->grabGesture(CustomGesture::GestureType, Qt::WidgetWithChildrenGesture);
+    b->ignoredGestures << CustomGesture::GestureType;
+
+    CustomEvent event;
+    // sending an event will cause the QGesture objects to be instantiated for the widgets
+    sendCustomGesture(&event, b);
+
+    QCOMPARE(a->gestures.count(), 1);
+    QPointer<QGesture> customGestureA;
+    customGestureA = *(a->gestures.begin());
+    QVERIFY(!customGestureA.isNull());
+    QCOMPARE(customGestureA->gestureType(), CustomGesture::GestureType);
+
+    QCOMPARE(b->gestures.count(), 1);
+    QPointer<QGesture> customGestureB;
+    customGestureB = *(b->gestures.begin());
+    QVERIFY(!customGestureB.isNull());
+    QVERIFY(customGestureA.data() == customGestureB.data());
+    QCOMPARE(customGestureB->gestureType(), CustomGesture::GestureType);
+
+    a->gestures.clear();
+    // sending an event will cause the QGesture objects to be instantiated for the widget
+    sendCustomGesture(&event, a);
+
+    QCOMPARE(a->gestures.count(), 1);
+    customGestureA = *(a->gestures.begin());
+    QVERIFY(!customGestureA.isNull());
+    QCOMPARE(customGestureA->gestureType(), CustomGesture::GestureType);
+    QVERIFY(customGestureA.data() != customGestureB.data());
+
+    a->ungrabGesture(CustomGesture::GestureType);
+    QVERIFY(customGestureA.isNull());
+    QVERIFY(!customGestureB.isNull());
+
+    a->gestures.clear();
+    a->reset();
+    // send again to 'b' and make sure a never gets it.
+    sendCustomGesture(&event, b);
+    QCOMPARE(a->gestureEventsReceived, 0);
+    QCOMPARE(a->gestureOverrideEventsReceived, 0);
+}
+
 QTEST_MAIN(tst_Gestures)
 #include "tst_gestures.moc"
-- 
cgit v0.12


From 487570340062a1165e0473e2557f844b097db526 Mon Sep 17 00:00:00 2001
From: Thomas Zander <thomas.zander@trolltech.com>
Date: Fri, 23 Oct 2009 15:43:50 +0200
Subject: Fix memory leaks in the gesture manager

Reviewed-by: Denis Dzyubenko
---
 src/gui/kernel/qgesturemanager.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/gui/kernel/qgesturemanager.cpp b/src/gui/kernel/qgesturemanager.cpp
index df88f9e..0139533 100644
--- a/src/gui/kernel/qgesturemanager.cpp
+++ b/src/gui/kernel/qgesturemanager.cpp
@@ -82,7 +82,7 @@ QGestureManager::QGestureManager(QObject *parent)
 
 QGestureManager::~QGestureManager()
 {
-
+    qDeleteAll(recognizers.values());
 }
 
 Qt::GestureType QGestureManager::registerGestureRecognizer(QGestureRecognizer *recognizer)
@@ -166,6 +166,7 @@ QGesture *QGestureManager::getState(QObject *object, Qt::GestureType type)
             state = recognizer->createGesture(object);
             if (!state)
                 return 0;
+            state->setParent(this);
             if (state->gestureType() == Qt::CustomGesture) {
                 // if the recognizer didn't fill in the gesture type, then this
                 // is a custom gesture with autogenerated it and we fill it.
-- 
cgit v0.12


From 293ee52fce78b74fcfa2effbccf6df6f12e9daa5 Mon Sep 17 00:00:00 2001
From: Thomas Zander <thomas.zander@trolltech.com>
Date: Fri, 23 Oct 2009 15:44:37 +0200
Subject: Fix the debug output to be correct again after refactoring

Reviewed-by: Denis Dzyubenko
---
 src/gui/kernel/qgesturemanager.cpp | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/src/gui/kernel/qgesturemanager.cpp b/src/gui/kernel/qgesturemanager.cpp
index 0139533..9890a12 100644
--- a/src/gui/kernel/qgesturemanager.cpp
+++ b/src/gui/kernel/qgesturemanager.cpp
@@ -212,21 +212,21 @@ bool QGestureManager::filterEventThroughContexts(const QMap<QObject *,
             QGestureRecognizer::Result result = recognizer->filterEvent(state, target, event);
             QGestureRecognizer::Result type = result & QGestureRecognizer::ResultState_Mask;
             if (type == QGestureRecognizer::GestureTriggered) {
-                DEBUG() << "QGestureManager: gesture triggered: " << state;
+                DEBUG() << "QGestureManager:Recognizer: gesture triggered: " << state;
                 triggeredGestures << state;
             } else if (type == QGestureRecognizer::GestureFinished) {
-                DEBUG() << "QGestureManager: gesture finished: " << state;
+                DEBUG() << "QGestureManager:Recognizer: gesture finished: " << state;
                 finishedGestures << state;
             } else if (type == QGestureRecognizer::MaybeGesture) {
-                DEBUG() << "QGestureManager: maybe gesture: " << state;
+                DEBUG() << "QGestureManager:Recognizer: maybe gesture: " << state;
                 newMaybeGestures << state;
             } else if (type == QGestureRecognizer::NotGesture) {
-                DEBUG() << "QGestureManager: not gesture: " << state;
+                DEBUG() << "QGestureManager:Recognizer: not gesture: " << state;
                 notGestures << state;
             } else if (type == QGestureRecognizer::Ignore) {
-                DEBUG() << "QGestureManager: gesture ignored the event: " << state;
+                DEBUG() << "QGestureManager:Recognizer: ignored the event: " << state;
             } else {
-                DEBUG() << "QGestureManager: hm, lets assume the recognizer"
+                DEBUG() << "QGestureManager:Recognizer: hm, lets assume the recognizer"
                         << "ignored the event: " << state;
             }
             if (result & QGestureRecognizer::ConsumeEventHint) {
@@ -307,7 +307,7 @@ bool QGestureManager::filterEventThroughContexts(const QMap<QObject *,
     if (!activeGestures.isEmpty() || !maybeGestures.isEmpty() ||
         !startedGestures.isEmpty() || !triggeredGestures.isEmpty() ||
         !finishedGestures.isEmpty() || !canceledGestures.isEmpty()) {
-        DEBUG() << "QGestureManager::filterEvent:"
+        DEBUG() << "QGestureManager::filterEventThroughContexts:"
                 << "\n\tactiveGestures:" << activeGestures
                 << "\n\tmaybeGestures:" << maybeGestures.keys()
                 << "\n\tstarted:" << startedGestures
-- 
cgit v0.12


From 5393f71b9ac66395258713d1703e5c7f23aba206 Mon Sep 17 00:00:00 2001
From: Denis Dzyubenko <denis.dzyubenko@nokia.com>
Date: Mon, 26 Oct 2009 13:36:30 +0100
Subject: Removed the obsolete documentation reference from the QGesture.

Reviewed-by: trustme
---
 src/gui/kernel/qgesture.cpp | 6 ------
 1 file changed, 6 deletions(-)

diff --git a/src/gui/kernel/qgesture.cpp b/src/gui/kernel/qgesture.cpp
index ecdd661..a161876 100644
--- a/src/gui/kernel/qgesture.cpp
+++ b/src/gui/kernel/qgesture.cpp
@@ -142,12 +142,6 @@ QGesture::~QGesture()
     \brief whether the gesture has a hot-spot
 */
 
-/*!
-    \property QGesture::targetObject
-    \brief the target object which will receive the gesture event if the hotSpot is
-    not set
-*/
-
 Qt::GestureType QGesture::gestureType() const
 {
     return d_func()->gestureType;
-- 
cgit v0.12


From 3bc088fad760bd50eec05b323a056641247a9a59 Mon Sep 17 00:00:00 2001
From: Prasanth Ullattil <prasanth.ulattil@nokia.com>
Date: Tue, 27 Oct 2009 10:56:39 +0100
Subject: QTabbar is not behaving (painting) like native ones on Mac.

When a tab is clicked and mouse is moved outside that tab, it should
be drawn as normal (not in sunken state).

Reviewed-by: MortenS
---
 src/gui/widgets/qtabbar.cpp | 18 +++++++++++++++++-
 src/gui/widgets/qtabbar_p.h | 10 ++++++++--
 2 files changed, 25 insertions(+), 3 deletions(-)

diff --git a/src/gui/widgets/qtabbar.cpp b/src/gui/widgets/qtabbar.cpp
index 6c9761c..4dffbdc 100644
--- a/src/gui/widgets/qtabbar.cpp
+++ b/src/gui/widgets/qtabbar.cpp
@@ -1694,6 +1694,9 @@ void QTabBar::mousePressEvent(QMouseEvent *event)
         d->moveTabFinished(d->pressedIndex);
 
     d->pressedIndex = d->indexAtPos(event->pos());
+#ifdef Q_WS_MAC
+    d->previousPressedIndex = d->pressedIndex;
+#endif
     if (d->validIndex(d->pressedIndex)) {
         QStyleOptionTabBarBaseV2 optTabBase;
         optTabBase.init(this);
@@ -1774,6 +1777,17 @@ void QTabBar::mouseMoveEvent(QMouseEvent *event)
 
             update();
         }
+#ifdef Q_WS_MAC
+    } else if (!d->documentMode && event->buttons() == Qt::LeftButton && d->previousPressedIndex != -1) {
+        int newPressedIndex = d->indexAtPos(event->pos());
+        if (d->pressedIndex == -1 && d->previousPressedIndex == newPressedIndex) {
+            d->pressedIndex = d->previousPressedIndex;
+            update(tabRect(d->pressedIndex));
+        } else if(d->pressedIndex != newPressedIndex) {
+            d->pressedIndex = -1;
+            update(tabRect(d->previousPressedIndex));
+        }
+#endif
     }
 
     if (event->buttons() != Qt::LeftButton) {
@@ -1865,7 +1879,9 @@ void QTabBar::mouseReleaseEvent(QMouseEvent *event)
         event->ignore();
         return;
     }
-
+#ifdef Q_WS_MAC
+    d->previousPressedIndex = -1;
+#endif
     if (d->movable && d->dragInProgress && d->validIndex(d->pressedIndex)) {
         int length = d->tabList[d->pressedIndex].dragOffset;
         int width = verticalTabs(d->shape)
diff --git a/src/gui/widgets/qtabbar_p.h b/src/gui/widgets/qtabbar_p.h
index 494a340..9f3285b 100644
--- a/src/gui/widgets/qtabbar_p.h
+++ b/src/gui/widgets/qtabbar_p.h
@@ -77,7 +77,11 @@ public:
         :currentIndex(-1), pressedIndex(-1), shape(QTabBar::RoundedNorth), layoutDirty(false),
         drawBase(true), scrollOffset(0), expanding(true), closeButtonOnTabs(false),
         selectionBehaviorOnRemove(QTabBar::SelectRightTab), paintWithOffsets(true), movable(false),
-        dragInProgress(false), documentMode(false), movingTab(0) {}
+        dragInProgress(false), documentMode(false), movingTab(0)
+#ifdef Q_WS_MAC
+        , previousPressedIndex(-1)
+#endif
+        {}
 
     int currentIndex;
     int pressedIndex;
@@ -195,7 +199,9 @@ public:
     bool documentMode;
 
     QWidget *movingTab;
-
+#ifdef Q_WS_MAC
+    int previousPressedIndex;
+#endif
     // shared by tabwidget and qtabbar
     static void initStyleBaseOption(QStyleOptionTabBarBaseV2 *optTabBase, QTabBar *tabbar, QSize size)
     {
-- 
cgit v0.12


From 124df35db0be3ae7578635735b4e64c589d07cba Mon Sep 17 00:00:00 2001
From: Prasanth Ullattil <prasanth.ulattil@nokia.com>
Date: Tue, 27 Oct 2009 14:01:58 +0100
Subject: Selected tab is drawn incorrectly on Snow Leopard.

The default height of tab bar is 22 pixels in Snow Leopard. We used to
draw tabs taller than 21 pixels to a pixmap and stretch to the required
size. The limit is now changed to 22 pixels (which is the most common
use case). The stretched drawing is not perfect in Snow Leopard due to
some changes in how HITheme draws tabs.

Reviewed-by: Jens Bache-Wiig
---
 src/gui/styles/qmacstyle_mac.mm | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/src/gui/styles/qmacstyle_mac.mm b/src/gui/styles/qmacstyle_mac.mm
index 63ba641..4dcb469 100644
--- a/src/gui/styles/qmacstyle_mac.mm
+++ b/src/gui/styles/qmacstyle_mac.mm
@@ -3637,17 +3637,19 @@ void QMacStyle::drawControl(ControlElement ce, const QStyleOption *opt, QPainter
                     break;
                 }
             }
+            bool stretchTabs = (!verticalTabs && tabRect.height() > 22 || verticalTabs && tabRect.width() > 22);
+
             switch (tp) {
             case QStyleOptionTab::Beginning:
                 tdi.position = kHIThemeTabPositionFirst;
-                if (sp != QStyleOptionTab::NextIsSelected)
+                if (sp != QStyleOptionTab::NextIsSelected || stretchTabs)
                     tdi.adornment |= kHIThemeTabAdornmentTrailingSeparator;
                 break;
             case QStyleOptionTab::Middle:
                 tdi.position = kHIThemeTabPositionMiddle;
                 if (selected)
                     tdi.adornment |= kHIThemeTabAdornmentLeadingSeparator;
-                if (sp != QStyleOptionTab::NextIsSelected)  // Also when we're selected.
+                if (sp != QStyleOptionTab::NextIsSelected || stretchTabs)  // Also when we're selected.
                     tdi.adornment |= kHIThemeTabAdornmentTrailingSeparator;
                 break;
             case QStyleOptionTab::End:
@@ -3659,9 +3661,8 @@ void QMacStyle::drawControl(ControlElement ce, const QStyleOption *opt, QPainter
                 tdi.position = kHIThemeTabPositionOnly;
                 break;
             }
-
             // HITheme doesn't stretch its tabs. Therefore we have to cheat and do the job ourselves.
-            if ((!verticalTabs && tabRect.height() > 21 || verticalTabs && tabRect.width() > 21)) {
+            if (stretchTabs) {
                 HIRect hirect = CGRectMake(0, 0, 23, 23);
                 QPixmap pm(23, 23);
                 pm.fill(Qt::transparent);
-- 
cgit v0.12


From e5c87d92fa6380c13ff47ce1fe6d85a02dc92794 Mon Sep 17 00:00:00 2001
From: Denis Dzyubenko <denis.dzyubenko@nokia.com>
Date: Tue, 27 Oct 2009 15:05:22 +0100
Subject: Improved gesture autotest reliability on X11.

Reviewed-by: trustme
---
 tests/auto/gestures/tst_gestures.cpp | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/tests/auto/gestures/tst_gestures.cpp b/tests/auto/gestures/tst_gestures.cpp
index 6e52de3..edfbf32 100644
--- a/tests/auto/gestures/tst_gestures.cpp
+++ b/tests/auto/gestures/tst_gestures.cpp
@@ -715,6 +715,7 @@ void tst_Gestures::graphicsItemGesture()
 {
     QGraphicsScene scene;
     QGraphicsView view(&scene);
+    view.setWindowFlags(Qt::X11BypassWindowManagerHint);
 
     GestureItem *item = new GestureItem("item");
     scene.addItem(item);
@@ -777,6 +778,7 @@ void tst_Gestures::graphicsItemTreeGesture()
 {
     QGraphicsScene scene;
     QGraphicsView view(&scene);
+    view.setWindowFlags(Qt::X11BypassWindowManagerHint);
 
     GestureItem *item1 = new GestureItem("item1");
     item1->setPos(100, 100);
@@ -834,6 +836,7 @@ void tst_Gestures::explicitGraphicsObjectTarget()
 {
     QGraphicsScene scene;
     QGraphicsView view(&scene);
+    view.setWindowFlags(Qt::X11BypassWindowManagerHint);
 
     GestureItem *item1 = new GestureItem("item1");
     scene.addItem(item1);
@@ -887,6 +890,7 @@ void tst_Gestures::gestureOverChildGraphicsItem()
 {
     QGraphicsScene scene;
     QGraphicsView view(&scene);
+    view.setWindowFlags(Qt::X11BypassWindowManagerHint);
 
     GestureItem *item0 = new GestureItem("item0");
     scene.addItem(item0);
@@ -1168,6 +1172,7 @@ void tst_Gestures::testMapToScene()
 
     QGraphicsScene scene;
     QGraphicsView view(&scene);
+    view.setWindowFlags(Qt::X11BypassWindowManagerHint);
 
     GestureItem *item0 = new GestureItem;
     scene.addItem(item0);
-- 
cgit v0.12


From fcd8edaf6e17463603d81525f2b57fc11f20216b Mon Sep 17 00:00:00 2001
From: Denis Dzyubenko <denis.dzyubenko@nokia.com>
Date: Tue, 27 Oct 2009 10:41:32 +0100
Subject: Implemented QGestureRecognizer::ConsumeEventHint

Reviewed-By: trustme
---
 src/gui/kernel/qgesturemanager.cpp   |  6 ++++--
 tests/auto/gestures/tst_gestures.cpp | 21 ++++++++++++++++++++-
 2 files changed, 24 insertions(+), 3 deletions(-)

diff --git a/src/gui/kernel/qgesturemanager.cpp b/src/gui/kernel/qgesturemanager.cpp
index 9890a12..52f8eef 100644
--- a/src/gui/kernel/qgesturemanager.cpp
+++ b/src/gui/kernel/qgesturemanager.cpp
@@ -196,6 +196,8 @@ bool QGestureManager::filterEventThroughContexts(const QMap<QObject *,
     // TODO: sort contexts by the gesture type and check if one of the contexts
     //       is already active.
 
+    bool ret = false;
+
     // filter the event through recognizers
     typedef QMap<QObject *, Qt::GestureType>::const_iterator ContextIterator;
     for (ContextIterator cit = contexts.begin(), ce = contexts.end(); cit != ce; ++cit) {
@@ -232,7 +234,7 @@ bool QGestureManager::filterEventThroughContexts(const QMap<QObject *,
             if (result & QGestureRecognizer::ConsumeEventHint) {
                 DEBUG() << "QGestureManager: we were asked to consume the event: "
                         << state;
-                //TODO: consume events if asked
+                ret = true;
             }
         }
     }
@@ -332,7 +334,7 @@ bool QGestureManager::filterEventThroughContexts(const QMap<QObject *,
             cleanupGesturesForRemovedRecognizer(gesture);
         gestureTargets.remove(gesture);
     }
-    return false;
+    return ret;
 }
 
 void QGestureManager::cleanupGesturesForRemovedRecognizer(QGesture *gesture)
diff --git a/tests/auto/gestures/tst_gestures.cpp b/tests/auto/gestures/tst_gestures.cpp
index edfbf32..eba2616 100644
--- a/tests/auto/gestures/tst_gestures.cpp
+++ b/tests/auto/gestures/tst_gestures.cpp
@@ -103,6 +103,8 @@ int CustomEvent::EventType = 0;
 class CustomGestureRecognizer : public QGestureRecognizer
 {
 public:
+    static bool ConsumeEvents;
+
     CustomGestureRecognizer()
     {
         if (!CustomEvent::EventType)
@@ -117,7 +119,9 @@ public:
     QGestureRecognizer::Result filterEvent(QGesture *state, QObject*, QEvent *event)
     {
         if (event->type() == CustomEvent::EventType) {
-            QGestureRecognizer::Result result = QGestureRecognizer::ConsumeEventHint;
+            QGestureRecognizer::Result result = 0;
+            if (CustomGestureRecognizer::ConsumeEvents)
+                result |= QGestureRecognizer::ConsumeEventHint;
             CustomGesture *g = static_cast<CustomGesture*>(state);
             CustomEvent *e = static_cast<CustomEvent*>(event);
             g->serial = e->serial;
@@ -143,6 +147,7 @@ public:
         QGestureRecognizer::reset(state);
     }
 };
+bool CustomGestureRecognizer::ConsumeEvents = false;
 
 // same as CustomGestureRecognizer but triggers early without the maybe state
 class CustomContinuousGestureRecognizer : public QGestureRecognizer
@@ -324,6 +329,7 @@ private slots:
     void multipleGesturesInComplexTree();
     void testMapToScene();
     void ungrabGesture();
+    void consumeEventHint();
 };
 
 tst_Gestures::tst_Gestures()
@@ -375,6 +381,19 @@ void tst_Gestures::customGesture()
     QCOMPARE(widget.events.canceled.size(), 0);
 }
 
+void tst_Gestures::consumeEventHint()
+{
+    GestureWidget widget;
+    widget.grabGesture(CustomGesture::GestureType, Qt::WidgetGesture);
+
+    CustomGestureRecognizer::ConsumeEvents = true;
+    CustomEvent event;
+    sendCustomGesture(&event, &widget);
+    CustomGestureRecognizer::ConsumeEvents = false;
+
+    QCOMPARE(widget.customEventsReceived, 0);
+}
+
 void tst_Gestures::autoCancelingGestures()
 {
     GestureWidget widget;
-- 
cgit v0.12


From 6efa1085b6a61cf2883b460e5b76bde9576dc4a7 Mon Sep 17 00:00:00 2001
From: Denis Dzyubenko <denis.dzyubenko@nokia.com>
Date: Tue, 27 Oct 2009 15:18:07 +0100
Subject: Renamed QGestureRecognizer::ResultFlags to ResultFlag

Decided after review by David Boddie.

Reviewed-by: trustme
---
 src/gui/kernel/qgesturerecognizer.cpp | 2 +-
 src/gui/kernel/qgesturerecognizer.h   | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/gui/kernel/qgesturerecognizer.cpp b/src/gui/kernel/qgesturerecognizer.cpp
index ba3a750..c2b26f0 100644
--- a/src/gui/kernel/qgesturerecognizer.cpp
+++ b/src/gui/kernel/qgesturerecognizer.cpp
@@ -100,7 +100,7 @@ QT_BEGIN_NAMESPACE
 */
 
 /*!
-    \enum QGestureRecognizer::ResultFlags
+    \enum QGestureRecognizer::ResultFlag
 
     This enum describes the result of the current event filtering step in
     a gesture recognizer state machine.
diff --git a/src/gui/kernel/qgesturerecognizer.h b/src/gui/kernel/qgesturerecognizer.h
index efd8565..a3c990d 100644
--- a/src/gui/kernel/qgesturerecognizer.h
+++ b/src/gui/kernel/qgesturerecognizer.h
@@ -56,7 +56,7 @@ class QGesture;
 class Q_GUI_EXPORT QGestureRecognizer
 {
 public:
-    enum ResultFlags
+    enum ResultFlag
     {
         Ignore            = 0x0001,
         NotGesture        = 0x0002,
@@ -73,7 +73,7 @@ public:
 
         ResultHint_Mask   = 0xff00
     };
-    Q_DECLARE_FLAGS(Result, ResultFlags)
+    Q_DECLARE_FLAGS(Result, ResultFlag)
 
     QGestureRecognizer();
     virtual ~QGestureRecognizer();
-- 
cgit v0.12


From 6c8c1c5322a26d789165783d7df3e29c672690cb Mon Sep 17 00:00:00 2001
From: Helio Chissini de Castro <helio@kde.org>
Date: Tue, 27 Oct 2009 18:07:56 +0100
Subject: Fill gap of X.org/XFree multimedia/special/launcher keys

Qt up to 4.5.x is missing whole setup of multimedia keys already defined by X

Merge-request: 1742
Reviewed-by: Denis Dzyubenko <denis.dzyubenko@nokia.com>
---
 src/corelib/global/qnamespace.h    |  97 ++++++++++++-
 src/corelib/global/qnamespace.qdoc |  92 ++++++++++++
 src/gui/kernel/qkeymapper_x11.cpp  | 286 ++++++++++++++++++++++++++++++-------
 src/gui/kernel/qkeysequence.cpp    | 174 ++++++++++++++++------
 4 files changed, 553 insertions(+), 96 deletions(-)

diff --git a/src/corelib/global/qnamespace.h b/src/corelib/global/qnamespace.h
index 2b62c6b..aeaca54 100644
--- a/src/corelib/global/qnamespace.h
+++ b/src/corelib/global/qnamespace.h
@@ -909,12 +909,10 @@ public:
         Key_Dead_Horn           = 0x01001262,
 
         // multimedia/internet keys - ignored by default - see QKeyEvent c'tor
-
         Key_Back  = 0x01000061,
         Key_Forward  = 0x01000062,
         Key_Stop  = 0x01000063,
         Key_Refresh  = 0x01000064,
-
         Key_VolumeDown = 0x01000070,
         Key_VolumeMute  = 0x01000071,
         Key_VolumeUp = 0x01000072,
@@ -923,7 +921,6 @@ public:
         Key_BassDown = 0x01000075,
         Key_TrebleUp = 0x01000076,
         Key_TrebleDown = 0x01000077,
-
         Key_MediaPlay  = 0x01000080,
         Key_MediaStop  = 0x01000081,
         Key_MediaPrevious  = 0x01000082,
@@ -932,13 +929,11 @@ public:
 #endif
         Key_MediaNext  = 0x01000083,
         Key_MediaRecord = 0x01000084,
-
         Key_HomePage  = 0x01000090,
         Key_Favorites  = 0x01000091,
         Key_Search  = 0x01000092,
         Key_Standby = 0x01000093,
         Key_OpenUrl = 0x01000094,
-
         Key_LaunchMail  = 0x010000a0,
         Key_LaunchMedia = 0x010000a1,
         Key_Launch0  = 0x010000a2,
@@ -957,6 +952,98 @@ public:
         Key_LaunchD  = 0x010000af,
         Key_LaunchE  = 0x010000b0,
         Key_LaunchF  = 0x010000b1,
+        Key_MonBrightnessUp = 0x010000b2,
+        Key_MonBrightnessDown = 0x010000b3,
+        Key_KeyboardLightOnOff = 0x010000b4,
+        Key_KeyboardBrightnessUp = 0x010000b5,
+        Key_KeyboardBrightnessDown = 0x010000b6,
+        Key_PowerOff = 0x010000b7,
+        Key_WakeUp = 0x010000b8,
+        Key_Eject = 0x010000b9,
+        Key_ScreenSaver = 0x010000ba,
+        Key_WWW = 0x010000bb,
+        Key_Memo = 0x010000bc,
+        Key_LightBulb = 0x010000bd,
+        Key_Shop = 0x010000be,
+        Key_History = 0x010000bf,
+        Key_AddFavorite = 0x010000c0,
+        Key_HotLinks = 0x010000c1,
+        Key_BrightnessAdjust = 0x010000c2,
+        Key_Finance = 0x010000c3,
+        Key_Community = 0x010000c4,
+        Key_AudioRewind = 0x010000c5,
+        Key_BackForward = 0x010000c6,
+        Key_ApplicationLeft = 0x010000c7,
+        Key_ApplicationRight = 0x010000c8,
+        Key_Book = 0x010000c9,
+        Key_CD = 0x010000ca,
+        Key_Calculator = 0x010000cb,
+        Key_ToDoList = 0x010000cc,
+        Key_ClearGrab = 0x010000cd,
+        Key_Close = 0x010000ce,
+        Key_Copy = 0x010000cf,
+        Key_Cut = 0x010000d0,
+        Key_Display = 0x010000d1,
+        Key_DOS = 0x010000d2,
+        Key_Documents = 0x010000d3,
+        Key_Excel = 0x010000d4,
+        Key_Explorer = 0x010000d5,
+        Key_Game = 0x010000d6,
+        Key_Go = 0x010000d7,
+        Key_iTouch = 0x010000d8,
+        Key_LogOff = 0x010000d9,
+        Key_Market = 0x010000da,
+        Key_Meeting = 0x010000db,
+        Key_MenuKB = 0x010000dc,
+        Key_MenuPB = 0x010000dd,
+        Key_MySites = 0x010000de,
+        Key_News = 0x010000df,
+        Key_OfficeHome = 0x010000e0,
+        Key_Option = 0x010000e1,
+        Key_Paste = 0x010000e2,
+        Key_Phone = 0x010000e3,
+        Key_Calendar = 0x010000e4,
+        Key_Reply = 0x010000e5,
+        Key_Reload = 0x010000e6,
+        Key_RotateWindows = 0x010000e7,
+        Key_RotationPB = 0x010000e8,
+        Key_RotationKB = 0x010000e9,
+        Key_Save = 0x010000ea,
+        Key_Send = 0x010000eb,
+        Key_Spell = 0x010000ec,
+        Key_SplitScreen = 0x010000ed,
+        Key_Support = 0x010000ee,
+        Key_TaskPane = 0x010000ef,
+        Key_Terminal = 0x010000f0,
+        Key_Tools = 0x010000f1,
+        Key_Travel = 0x010000f2,
+        Key_Video = 0x010000f3,
+        Key_Word = 0x010000f4,
+        Key_Xfer = 0x010000f5,
+        Key_ZoomIn = 0x010000f6,
+        Key_ZoomOut = 0x010000f7,
+        Key_Away = 0x010000f8,
+        Key_Messenger = 0x010000f9,
+        Key_WebCam = 0x010000fa,
+        Key_MailForward = 0x010000fb,
+        Key_Pictures = 0x010000fc,
+        Key_Music = 0x010000fd,
+        Key_Battery = 0x010000fe,
+        Key_Bluetooth = 0x010000ff,
+        Key_WLAN = 0x01000100,
+        Key_UWB = 0x01000101,
+        Key_AudioForward = 0x01000102,
+        Key_AudioRepeat = 0x01000103,
+        Key_AudioRandomPlay = 0x01000104,
+        Key_Subtitle = 0x01000105,
+        Key_AudioCycleTrack = 0x01000106,
+        Key_Time = 0x01000107,
+        Key_Hibernate = 0x01000108,
+        Key_View = 0x01000109,
+        Key_TopMenu = 0x0100010a,
+        Key_PowerDown = 0x0100010b,
+        Key_Suspend = 0x0100010c,
+        Key_ContrastAdjust = 0x0100010d,
 
         Key_MediaLast = 0x0100ffff,
 
diff --git a/src/corelib/global/qnamespace.qdoc b/src/corelib/global/qnamespace.qdoc
index e8d6df0..4a48a8f 100644
--- a/src/corelib/global/qnamespace.qdoc
+++ b/src/corelib/global/qnamespace.qdoc
@@ -1609,6 +1609,98 @@
     \value Key_LaunchD
     \value Key_LaunchE
     \value Key_LaunchF
+    \value Key_MonBrightnessUp
+    \value Key_MonBrightnessDown
+    \value Key_KeyboardLightOnOff
+    \value Key_KeyboardBrightnessUp
+    \value Key_KeyboardBrightnessDown
+    \value Key_PowerOff
+    \value Key_WakeUp
+    \value Key_Eject
+    \value Key_ScreenSaver
+    \value Key_WWW
+    \value Key_Memo
+    \value Key_LightBulb
+    \value Key_Shop
+    \value Key_History
+    \value Key_AddFavorite
+    \value Key_HotLinks
+    \value Key_BrightnessAdjust
+    \value Key_Finance
+    \value Key_Community
+    \value Key_AudioRewind
+    \value Key_BackForward
+    \value Key_ApplicationLeft
+    \value Key_ApplicationRight
+    \value Key_Book
+    \value Key_CD
+    \value Key_Calculator
+    \value Key_ToDoList
+    \value Key_ClearGrab
+    \value Key_Close
+    \value Key_Copy
+    \value Key_Cut
+    \value Key_Display
+    \value Key_DOS
+    \value Key_Documents
+    \value Key_Excel
+    \value Key_Explorer
+    \value Key_Game
+    \value Key_Go
+    \value Key_iTouch
+    \value Key_LogOff
+    \value Key_Market
+    \value Key_Meeting
+    \value Key_MenuKB
+    \value Key_MenuPB
+    \value Key_MySites
+    \value Key_News
+    \value Key_OfficeHome
+    \value Key_Option
+    \value Key_Paste
+    \value Key_Phone
+    \value Key_Calendar
+    \value Key_Reply
+    \value Key_Reload
+    \value Key_RotateWindows
+    \value Key_RotationPB
+    \value Key_RotationKB
+    \value Key_Save
+    \value Key_Send
+    \value Key_Spell
+    \value Key_SplitScreen
+    \value Key_Support
+    \value Key_TaskPane
+    \value Key_Terminal
+    \value Key_Tools
+    \value Key_Travel
+    \value Key_Video
+    \value Key_Word
+    \value Key_Xfer
+    \value Key_ZoomIn
+    \value Key_ZoomOut
+    \value Key_Away
+    \value Key_Messenger
+    \value Key_WebCam
+    \value Key_MailForward
+    \value Key_Pictures
+    \value Key_Music
+    \value Key_Battery
+    \value Key_Bluetooth
+    \value Key_WLAN
+    \value Key_UWB
+    \value Key_AudioForward
+    \value Key_AudioRepeat
+    \value Key_AudioRandomPlay
+    \value Key_Subtitle
+    \value Key_AudioCycleTrack
+    \value Key_Time
+    \value Key_Hibernate
+    \value Key_View
+    \value Key_TopMenu
+    \value Key_PowerDown
+    \value Key_Suspend
+    \value Key_ContrastAdjust
     \value Key_MediaLast
     \value Key_unknown
 
diff --git a/src/gui/kernel/qkeymapper_x11.cpp b/src/gui/kernel/qkeymapper_x11.cpp
index 0ce77fe..8164589 100644
--- a/src/gui/kernel/qkeymapper_x11.cpp
+++ b/src/gui/kernel/qkeymapper_x11.cpp
@@ -714,47 +714,144 @@ extern bool qt_sm_blockUserInput;
 #define XK_KP_Delete            0xFF9F
 #endif
 
-// the next lines are taken from XFree > 4.0 (X11/XF86keysyms.h), defining some special
+// the next lines are taken on 10/2009 from X.org (X11/XF86keysym.h), defining some special
 // multimedia keys. They are included here as not every system has them.
-#define XF86XK_Standby          0x1008FF10
-#define XF86XK_AudioLowerVolume 0x1008FF11
-#define XF86XK_AudioMute        0x1008FF12
-#define XF86XK_AudioRaiseVolume 0x1008FF13
-#define XF86XK_AudioPlay        0x1008FF14
-#define XF86XK_AudioStop        0x1008FF15
-#define XF86XK_AudioPrev        0x1008FF16
-#define XF86XK_AudioNext        0x1008FF17
-#define XF86XK_HomePage         0x1008FF18
-#define XF86XK_Calculator       0x1008FF1D
-#define XF86XK_Mail             0x1008FF19
-#define XF86XK_Start            0x1008FF1A
-#define XF86XK_Search           0x1008FF1B
-#define XF86XK_AudioRecord      0x1008FF1C
-#define XF86XK_Back             0x1008FF26
-#define XF86XK_Forward          0x1008FF27
-#define XF86XK_Stop             0x1008FF28
-#define XF86XK_Refresh          0x1008FF29
-#define XF86XK_Favorites        0x1008FF30
-#define XF86XK_AudioPause       0x1008FF31
-#define XF86XK_AudioMedia       0x1008FF32
-#define XF86XK_MyComputer       0x1008FF33
-#define XF86XK_OpenURL          0x1008FF38
-#define XF86XK_Launch0          0x1008FF40
-#define XF86XK_Launch1          0x1008FF41
-#define XF86XK_Launch2          0x1008FF42
-#define XF86XK_Launch3          0x1008FF43
-#define XF86XK_Launch4          0x1008FF44
-#define XF86XK_Launch5          0x1008FF45
-#define XF86XK_Launch6          0x1008FF46
-#define XF86XK_Launch7          0x1008FF47
-#define XF86XK_Launch8          0x1008FF48
-#define XF86XK_Launch9          0x1008FF49
-#define XF86XK_LaunchA          0x1008FF4A
-#define XF86XK_LaunchB          0x1008FF4B
-#define XF86XK_LaunchC          0x1008FF4C
-#define XF86XK_LaunchD          0x1008FF4D
-#define XF86XK_LaunchE          0x1008FF4E
-#define XF86XK_LaunchF          0x1008FF4F
+#define XF86XK_MonBrightnessUp     0x1008FF02
+#define XF86XK_MonBrightnessDown   0x1008FF03
+#define XF86XK_KbdLightOnOff       0x1008FF04
+#define XF86XK_KbdBrightnessUp     0x1008FF05
+#define XF86XK_KbdBrightnessDown   0x1008FF06
+#define XF86XK_Standby             0x1008FF10
+#define XF86XK_AudioLowerVolume	   0x1008FF11
+#define XF86XK_AudioMute           0x1008FF12
+#define XF86XK_AudioRaiseVolume    0x1008FF13
+#define XF86XK_AudioPlay           0x1008FF14
+#define XF86XK_AudioStop           0x1008FF15
+#define XF86XK_AudioPrev           0x1008FF16
+#define XF86XK_AudioNext           0x1008FF17
+#define XF86XK_HomePage            0x1008FF18
+#define XF86XK_Mail                0x1008FF19
+#define XF86XK_Start               0x1008FF1A
+#define XF86XK_Search              0x1008FF1B
+#define XF86XK_AudioRecord         0x1008FF1C
+#define XF86XK_Calculator          0x1008FF1D
+#define XF86XK_Memo                0x1008FF1E
+#define XF86XK_ToDoList            0x1008FF1F
+#define XF86XK_Calendar            0x1008FF20
+#define XF86XK_PowerDown           0x1008FF21
+#define XF86XK_ContrastAdjust      0x1008FF22
+#define XF86XK_Back                0x1008FF26
+#define XF86XK_Forward             0x1008FF27
+#define XF86XK_Stop                0x1008FF28
+#define XF86XK_Refresh             0x1008FF29
+#define XF86XK_PowerOff            0x1008FF2A
+#define XF86XK_WakeUp              0x1008FF2B
+#define XF86XK_Eject               0x1008FF2C
+#define XF86XK_ScreenSaver         0x1008FF2D
+#define XF86XK_WWW                 0x1008FF2E
+#define XF86XK_Sleep               0x1008FF2F
+#define XF86XK_Favorites           0x1008FF30
+#define XF86XK_AudioPause          0x1008FF31
+#define XF86XK_AudioMedia          0x1008FF32
+#define XF86XK_MyComputer          0x1008FF33
+#define XF86XK_LightBulb           0x1008FF35
+#define XF86XK_Shop                0x1008FF36
+#define XF86XK_History             0x1008FF37
+#define XF86XK_OpenURL             0x1008FF38
+#define XF86XK_AddFavorite         0x1008FF39
+#define XF86XK_HotLinks            0x1008FF3A
+#define XF86XK_BrightnessAdjust    0x1008FF3B
+#define XF86XK_Finance             0x1008FF3C
+#define XF86XK_Community           0x1008FF3D
+#define XF86XK_AudioRewind         0x1008FF3E
+#define XF86XK_BackForward         0x1008FF3F
+#define XF86XK_Launch0             0x1008FF40
+#define XF86XK_Launch1             0x1008FF41
+#define XF86XK_Launch2             0x1008FF42
+#define XF86XK_Launch3             0x1008FF43
+#define XF86XK_Launch4             0x1008FF44
+#define XF86XK_Launch5             0x1008FF45
+#define XF86XK_Launch6             0x1008FF46
+#define XF86XK_Launch7             0x1008FF47
+#define XF86XK_Launch8             0x1008FF48
+#define XF86XK_Launch9             0x1008FF49
+#define XF86XK_LaunchA             0x1008FF4A
+#define XF86XK_LaunchB             0x1008FF4B
+#define XF86XK_LaunchC             0x1008FF4C
+#define XF86XK_LaunchD             0x1008FF4D
+#define XF86XK_LaunchE             0x1008FF4E
+#define XF86XK_LaunchF             0x1008FF4F
+#define XF86XK_ApplicationLeft     0x1008FF50
+#define XF86XK_ApplicationRight    0x1008FF51
+#define XF86XK_Book                0x1008FF52
+#define XF86XK_CD                  0x1008FF53
+#define XF86XK_Calculater          0x1008FF54
+#define XF86XK_Clear               0x1008FF55
+#define XF86XK_ClearGrab           0x1008FE21
+#define XF86XK_Close               0x1008FF56
+#define XF86XK_Copy                0x1008FF57
+#define XF86XK_Cut                 0x1008FF58
+#define XF86XK_Display             0x1008FF59
+#define XF86XK_DOS                 0x1008FF5A
+#define XF86XK_Documents           0x1008FF5B
+#define XF86XK_Excel               0x1008FF5C
+#define XF86XK_Explorer            0x1008FF5D
+#define XF86XK_Game                0x1008FF5E
+#define XF86XK_Go                  0x1008FF5F
+#define XF86XK_iTouch              0x1008FF60
+#define XF86XK_LogOff              0x1008FF61
+#define XF86XK_Market              0x1008FF62
+#define XF86XK_Meeting             0x1008FF63
+#define XF86XK_MenuKB              0x1008FF65
+#define XF86XK_MenuPB              0x1008FF66
+#define XF86XK_MySites             0x1008FF67
+#define XF86XK_News                0x1008FF69
+#define XF86XK_OfficeHome          0x1008FF6A
+#define XF86XK_Option              0x1008FF6C
+#define XF86XK_Paste               0x1008FF6D
+#define XF86XK_Phone               0x1008FF6E
+#define XF86XK_Reply               0x1008FF72
+#define XF86XK_Reload              0x1008FF73
+#define XF86XK_RotateWindows       0x1008FF74
+#define XF86XK_RotationPB          0x1008FF75
+#define XF86XK_RotationKB          0x1008FF76
+#define XF86XK_Save                0x1008FF77
+#define XF86XK_Send                0x1008FF7B
+#define XF86XK_Spell               0x1008FF7C
+#define XF86XK_SplitScreen         0x1008FF7D
+#define XF86XK_Support             0x1008FF7E
+#define XF86XK_TaskPane            0x1008FF7F
+#define XF86XK_Terminal            0x1008FF80
+#define XF86XK_Tools               0x1008FF81
+#define XF86XK_Travel              0x1008FF82
+#define XF86XK_Video               0x1008FF87
+#define XF86XK_Word                0x1008FF89
+#define XF86XK_Xfer                0x1008FF8A
+#define XF86XK_ZoomIn              0x1008FF8B
+#define XF86XK_ZoomOut             0x1008FF8C
+#define XF86XK_Away                0x1008FF8D
+#define XF86XK_Messenger           0x1008FF8E
+#define XF86XK_WebCam              0x1008FF8F
+#define XF86XK_MailForward         0x1008FF90
+#define XF86XK_Pictures            0x1008FF91
+#define XF86XK_Music               0x1008FF92
+#define XF86XK_Battery             0x1008FF93
+#define XF86XK_Bluetooth           0x1008FF94
+#define XF86XK_WLAN                0x1008FF95
+#define XF86XK_UWB                 0x1008FF96
+#define XF86XK_AudioForward        0x1008FF97
+#define XF86XK_AudioRepeat         0x1008FF98
+#define XF86XK_AudioRandomPlay     0x1008FF99
+#define XF86XK_Subtitle            0x1008FF9A
+#define XF86XK_AudioCycleTrack     0x1008FF9B
+#define XF86XK_Time                0x1008FF9F
+#define XF86XK_Select              0x1008FFA0
+#define XF86XK_View                0x1008FFA1
+#define XF86XK_TopMenu             0x1008FFA2
+#define XF86XK_Suspend             0x1008FFA7
+#define XF86XK_Hibernate           0x1008FFA8
+
+
 // end of XF86keysyms.h
 
 // Special keys used by Qtopia, mapped into the X11 private keypad range.
@@ -942,10 +1039,8 @@ static const unsigned int KeyTbl[] = {
     XK_dead_hook,               Qt::Key_Dead_Hook,
     XK_dead_horn,               Qt::Key_Dead_Horn,
 
-    // Special multimedia keys
-    // currently only tested with MS internet keyboard
-
-    // browsing keys
+    // Special keys from X.org - This include multimedia keys,
+	// wireless/bluetooth/uwb keys, special launcher keys, etc.
     XF86XK_Back,                Qt::Key_Back,
     XF86XK_Forward,             Qt::Key_Forward,
     XF86XK_Stop,                Qt::Key_Stop,
@@ -955,8 +1050,6 @@ static const unsigned int KeyTbl[] = {
     XF86XK_OpenURL,             Qt::Key_OpenUrl,
     XF86XK_HomePage,            Qt::Key_HomePage,
     XF86XK_Search,              Qt::Key_Search,
-
-    // media keys
     XF86XK_AudioLowerVolume,    Qt::Key_VolumeDown,
     XF86XK_AudioMute,           Qt::Key_VolumeMute,
     XF86XK_AudioRaiseVolume,    Qt::Key_VolumeUp,
@@ -965,13 +1058,106 @@ static const unsigned int KeyTbl[] = {
     XF86XK_AudioPrev,           Qt::Key_MediaPrevious,
     XF86XK_AudioNext,           Qt::Key_MediaNext,
     XF86XK_AudioRecord,         Qt::Key_MediaRecord,
-
-    // launch keys
     XF86XK_Mail,                Qt::Key_LaunchMail,
     XF86XK_MyComputer,          Qt::Key_Launch0,
-    XF86XK_Calculator,          Qt::Key_Launch1,
+    XF86XK_Calculator,          Qt::Key_Calculator,
+    XF86XK_Memo,                Qt::Key_Memo,
+    XF86XK_ToDoList,            Qt::Key_ToDoList,
+    XF86XK_Calendar,            Qt::Key_Calendar,
+    XF86XK_PowerDown,           Qt::Key_PowerDown,
+    XF86XK_ContrastAdjust,      Qt::Key_ContrastAdjust,
     XF86XK_Standby,             Qt::Key_Standby,
-
+    XF86XK_MonBrightnessUp,     Qt::Key_MonBrightnessUp,
+    XF86XK_MonBrightnessDown,   Qt::Key_MonBrightnessDown,
+    XF86XK_KbdLightOnOff,       Qt::Key_KeyboardLightOnOff,
+    XF86XK_KbdBrightnessUp,     Qt::Key_KeyboardBrightnessUp,
+    XF86XK_KbdBrightnessDown,   Qt::Key_KeyboardBrightnessDown,
+    XF86XK_PowerOff,            Qt::Key_PowerOff,
+    XF86XK_WakeUp,              Qt::Key_WakeUp,
+    XF86XK_Eject,               Qt::Key_Eject,
+    XF86XK_ScreenSaver,         Qt::Key_ScreenSaver,
+    XF86XK_WWW,                 Qt::Key_WWW,
+    XF86XK_Sleep,               Qt::Key_Sleep,
+    XF86XK_LightBulb,           Qt::Key_LightBulb,
+    XF86XK_Shop,                Qt::Key_Shop,
+    XF86XK_History,             Qt::Key_History,
+    XF86XK_AddFavorite,         Qt::Key_AddFavorite,
+    XF86XK_HotLinks,            Qt::Key_HotLinks,
+    XF86XK_BrightnessAdjust,    Qt::Key_BrightnessAdjust,
+    XF86XK_Finance,             Qt::Key_Finance,
+    XF86XK_Community,           Qt::Key_Community,
+    XF86XK_AudioRewind,         Qt::Key_AudioRewind,
+    XF86XK_BackForward,         Qt::Key_BackForward,
+    XF86XK_ApplicationLeft,     Qt::Key_ApplicationLeft,
+    XF86XK_ApplicationRight,    Qt::Key_ApplicationRight,
+    XF86XK_Book,                Qt::Key_Book,
+    XF86XK_CD,                  Qt::Key_CD,
+    XF86XK_Calculater,          Qt::Key_Calculator,
+    XF86XK_Clear,               Qt::Key_Clear,
+    XF86XK_ClearGrab,           Qt::Key_ClearGrab,
+    XF86XK_Close,               Qt::Key_Close,
+    XF86XK_Copy,                Qt::Key_Copy,
+    XF86XK_Cut,                 Qt::Key_Cut,
+    XF86XK_Display,             Qt::Key_Display,
+    XF86XK_DOS,                 Qt::Key_DOS,
+    XF86XK_Documents,           Qt::Key_Documents,
+    XF86XK_Excel,               Qt::Key_Excel,
+    XF86XK_Explorer,            Qt::Key_Explorer,
+    XF86XK_Game,                Qt::Key_Game,
+    XF86XK_Go,                  Qt::Key_Go,
+    XF86XK_iTouch,              Qt::Key_iTouch,
+    XF86XK_LogOff,              Qt::Key_LogOff,
+    XF86XK_Market,              Qt::Key_Market,
+    XF86XK_Meeting,             Qt::Key_Meeting,
+    XF86XK_MenuKB,              Qt::Key_MenuKB,
+    XF86XK_MenuPB,              Qt::Key_MenuPB,
+    XF86XK_MySites,             Qt::Key_MySites,
+    XF86XK_News,                Qt::Key_News,
+    XF86XK_OfficeHome,          Qt::Key_OfficeHome,
+    XF86XK_Option,              Qt::Key_Option,
+    XF86XK_Paste,               Qt::Key_Paste,
+    XF86XK_Phone,               Qt::Key_Phone,
+    XF86XK_Reply,               Qt::Key_Reply,
+    XF86XK_Reload,              Qt::Key_Reload,
+    XF86XK_RotateWindows,       Qt::Key_RotateWindows,
+    XF86XK_RotationPB,          Qt::Key_RotationPB,
+    XF86XK_RotationKB,          Qt::Key_RotationKB,
+    XF86XK_Save,                Qt::Key_Save,
+    XF86XK_Send,                Qt::Key_Send,
+    XF86XK_Spell,               Qt::Key_Spell,
+    XF86XK_SplitScreen,         Qt::Key_SplitScreen,
+    XF86XK_Support,             Qt::Key_Support,
+    XF86XK_TaskPane,            Qt::Key_TaskPane,
+    XF86XK_Terminal,            Qt::Key_Terminal,
+    XF86XK_Tools,               Qt::Key_Tools,
+    XF86XK_Travel,              Qt::Key_Travel,
+    XF86XK_Video,               Qt::Key_Video,
+    XF86XK_Word,                Qt::Key_Word,
+    XF86XK_Xfer,                Qt::Key_Xfer,
+    XF86XK_ZoomIn,              Qt::Key_ZoomIn,
+    XF86XK_ZoomOut,             Qt::Key_ZoomOut,
+    XF86XK_Away,                Qt::Key_Away,
+    XF86XK_Messenger,           Qt::Key_Messenger,
+    XF86XK_WebCam,              Qt::Key_WebCam,
+    XF86XK_MailForward,         Qt::Key_MailForward,
+    XF86XK_Pictures,            Qt::Key_Pictures,
+    XF86XK_Music,               Qt::Key_Music,
+    XF86XK_Battery,             Qt::Key_Battery,
+    XF86XK_Bluetooth,           Qt::Key_Bluetooth,
+    XF86XK_WLAN,                Qt::Key_WLAN,
+    XF86XK_UWB,                 Qt::Key_UWB,
+    XF86XK_AudioForward,        Qt::Key_AudioForward,
+    XF86XK_AudioRepeat,         Qt::Key_AudioRepeat,
+    XF86XK_AudioRandomPlay,     Qt::Key_AudioRandomPlay,
+    XF86XK_Subtitle,            Qt::Key_Subtitle,
+    XF86XK_AudioCycleTrack,     Qt::Key_AudioCycleTrack,
+    XF86XK_Time,                Qt::Key_Time,
+    XF86XK_Select,              Qt::Key_Select,
+    XF86XK_View,                Qt::Key_View,
+    XF86XK_TopMenu,             Qt::Key_TopMenu,
+    XF86XK_Bluetooth,           Qt::Key_Bluetooth,
+    XF86XK_Suspend,             Qt::Key_Suspend,
+    XF86XK_Hibernate,           Qt::Key_Hibernate,
     XF86XK_Launch0,             Qt::Key_Launch2,
     XF86XK_Launch1,             Qt::Key_Launch3,
     XF86XK_Launch2,             Qt::Key_Launch4,
diff --git a/src/gui/kernel/qkeysequence.cpp b/src/gui/kernel/qkeysequence.cpp
index b44ef7f..1a76083 100644
--- a/src/gui/kernel/qkeysequence.cpp
+++ b/src/gui/kernel/qkeysequence.cpp
@@ -416,47 +416,139 @@ static const struct {
     { Qt::Key_Menu,         QT_TRANSLATE_NOOP("QShortcut", "Menu") },
     { Qt::Key_Help,         QT_TRANSLATE_NOOP("QShortcut", "Help") },
 
-    // Multimedia keys
-    { Qt::Key_Back,         QT_TRANSLATE_NOOP("QShortcut", "Back") },
-    { Qt::Key_Forward,      QT_TRANSLATE_NOOP("QShortcut", "Forward") },
-    { Qt::Key_Stop,         QT_TRANSLATE_NOOP("QShortcut", "Stop") },
-    { Qt::Key_Refresh,      QT_TRANSLATE_NOOP("QShortcut", "Refresh") },
-    { Qt::Key_VolumeDown,   QT_TRANSLATE_NOOP("QShortcut", "Volume Down") },
-    { Qt::Key_VolumeMute,   QT_TRANSLATE_NOOP("QShortcut", "Volume Mute") },
-    { Qt::Key_VolumeUp,     QT_TRANSLATE_NOOP("QShortcut", "Volume Up") },
-    { Qt::Key_BassBoost,    QT_TRANSLATE_NOOP("QShortcut", "Bass Boost") },
-    { Qt::Key_BassUp,       QT_TRANSLATE_NOOP("QShortcut", "Bass Up") },
-    { Qt::Key_BassDown,     QT_TRANSLATE_NOOP("QShortcut", "Bass Down") },
-    { Qt::Key_TrebleUp,     QT_TRANSLATE_NOOP("QShortcut", "Treble Up") },
-    { Qt::Key_TrebleDown,   QT_TRANSLATE_NOOP("QShortcut", "Treble Down") },
-    { Qt::Key_MediaPlay,    QT_TRANSLATE_NOOP("QShortcut", "Media Play") },
-    { Qt::Key_MediaStop,    QT_TRANSLATE_NOOP("QShortcut", "Media Stop") },
-    { Qt::Key_MediaPrevious,QT_TRANSLATE_NOOP("QShortcut", "Media Previous") },
-    { Qt::Key_MediaNext,    QT_TRANSLATE_NOOP("QShortcut", "Media Next") },
-    { Qt::Key_MediaRecord,  QT_TRANSLATE_NOOP("QShortcut", "Media Record") },
-    { Qt::Key_HomePage,     QT_TRANSLATE_NOOP("QShortcut", "Home Page") },
-    { Qt::Key_Favorites,    QT_TRANSLATE_NOOP("QShortcut", "Favorites") },
-    { Qt::Key_Search,       QT_TRANSLATE_NOOP("QShortcut", "Search") },
-    { Qt::Key_Standby,      QT_TRANSLATE_NOOP("QShortcut", "Standby") },
-    { Qt::Key_OpenUrl,      QT_TRANSLATE_NOOP("QShortcut", "Open URL") },
-    { Qt::Key_LaunchMail,   QT_TRANSLATE_NOOP("QShortcut", "Launch Mail") },
-    { Qt::Key_LaunchMedia,  QT_TRANSLATE_NOOP("QShortcut", "Launch Media") },
-    { Qt::Key_Launch0,      QT_TRANSLATE_NOOP("QShortcut", "Launch (0)") },
-    { Qt::Key_Launch1,      QT_TRANSLATE_NOOP("QShortcut", "Launch (1)") },
-    { Qt::Key_Launch2,      QT_TRANSLATE_NOOP("QShortcut", "Launch (2)") },
-    { Qt::Key_Launch3,      QT_TRANSLATE_NOOP("QShortcut", "Launch (3)") },
-    { Qt::Key_Launch4,      QT_TRANSLATE_NOOP("QShortcut", "Launch (4)") },
-    { Qt::Key_Launch5,      QT_TRANSLATE_NOOP("QShortcut", "Launch (5)") },
-    { Qt::Key_Launch6,      QT_TRANSLATE_NOOP("QShortcut", "Launch (6)") },
-    { Qt::Key_Launch7,      QT_TRANSLATE_NOOP("QShortcut", "Launch (7)") },
-    { Qt::Key_Launch8,      QT_TRANSLATE_NOOP("QShortcut", "Launch (8)") },
-    { Qt::Key_Launch9,      QT_TRANSLATE_NOOP("QShortcut", "Launch (9)") },
-    { Qt::Key_LaunchA,      QT_TRANSLATE_NOOP("QShortcut", "Launch (A)") },
-    { Qt::Key_LaunchB,      QT_TRANSLATE_NOOP("QShortcut", "Launch (B)") },
-    { Qt::Key_LaunchC,      QT_TRANSLATE_NOOP("QShortcut", "Launch (C)") },
-    { Qt::Key_LaunchD,      QT_TRANSLATE_NOOP("QShortcut", "Launch (D)") },
-    { Qt::Key_LaunchE,      QT_TRANSLATE_NOOP("QShortcut", "Launch (E)") },
-    { Qt::Key_LaunchF,      QT_TRANSLATE_NOOP("QShortcut", "Launch (F)") },
+    // Special keys
+    // Includes multimedia, launcher, lan keys ( bluetooth, wireless )
+    // window navigation
+    { Qt::Key_Back,                       QT_TRANSLATE_NOOP("QShortcut", "Back") },
+    { Qt::Key_Forward,                    QT_TRANSLATE_NOOP("QShortcut", "Forward") },
+    { Qt::Key_Stop,                       QT_TRANSLATE_NOOP("QShortcut", "Stop") },
+    { Qt::Key_Refresh,                    QT_TRANSLATE_NOOP("QShortcut", "Refresh") },
+    { Qt::Key_VolumeDown,                 QT_TRANSLATE_NOOP("QShortcut", "Volume Down") },
+    { Qt::Key_VolumeMute,                 QT_TRANSLATE_NOOP("QShortcut", "Volume Mute") },
+    { Qt::Key_VolumeUp,                   QT_TRANSLATE_NOOP("QShortcut", "Volume Up") },
+    { Qt::Key_BassBoost,                  QT_TRANSLATE_NOOP("QShortcut", "Bass Boost") },
+    { Qt::Key_BassUp,                     QT_TRANSLATE_NOOP("QShortcut", "Bass Up") },
+    { Qt::Key_BassDown,                   QT_TRANSLATE_NOOP("QShortcut", "Bass Down") },
+    { Qt::Key_TrebleUp,                   QT_TRANSLATE_NOOP("QShortcut", "Treble Up") },
+    { Qt::Key_TrebleDown,                 QT_TRANSLATE_NOOP("QShortcut", "Treble Down") },
+    { Qt::Key_MediaPlay,                  QT_TRANSLATE_NOOP("QShortcut", "Media Play") },
+    { Qt::Key_MediaStop,                  QT_TRANSLATE_NOOP("QShortcut", "Media Stop") },
+    { Qt::Key_MediaPrevious,              QT_TRANSLATE_NOOP("QShortcut", "Media Previous") },
+    { Qt::Key_MediaNext,                  QT_TRANSLATE_NOOP("QShortcut", "Media Next") },
+    { Qt::Key_MediaRecord,                QT_TRANSLATE_NOOP("QShortcut", "Media Record") },
+    { Qt::Key_HomePage,                   QT_TRANSLATE_NOOP("QShortcut", "Home Page") },
+    { Qt::Key_Favorites,                  QT_TRANSLATE_NOOP("QShortcut", "Favorites") },
+    { Qt::Key_Search,                     QT_TRANSLATE_NOOP("QShortcut", "Search") },
+    { Qt::Key_Standby,                    QT_TRANSLATE_NOOP("QShortcut", "Standby") },
+    { Qt::Key_OpenUrl,                    QT_TRANSLATE_NOOP("QShortcut", "Open URL") },
+    { Qt::Key_LaunchMail,                 QT_TRANSLATE_NOOP("QShortcut", "Launch Mail") },
+    { Qt::Key_LaunchMedia,                QT_TRANSLATE_NOOP("QShortcut", "Launch Media") },
+    { Qt::Key_Launch0,                    QT_TRANSLATE_NOOP("QShortcut", "Launch (0)") },
+    { Qt::Key_Launch1,                    QT_TRANSLATE_NOOP("QShortcut", "Launch (1)") },
+    { Qt::Key_Launch2,                    QT_TRANSLATE_NOOP("QShortcut", "Launch (2)") },
+    { Qt::Key_Launch3,                    QT_TRANSLATE_NOOP("QShortcut", "Launch (3)") },
+    { Qt::Key_Launch4,                    QT_TRANSLATE_NOOP("QShortcut", "Launch (4)") },
+    { Qt::Key_Launch5,                    QT_TRANSLATE_NOOP("QShortcut", "Launch (5)") },
+    { Qt::Key_Launch6,                    QT_TRANSLATE_NOOP("QShortcut", "Launch (6)") },
+    { Qt::Key_Launch7,                    QT_TRANSLATE_NOOP("QShortcut", "Launch (7)") },
+    { Qt::Key_Launch8,                    QT_TRANSLATE_NOOP("QShortcut", "Launch (8)") },
+    { Qt::Key_Launch9,                    QT_TRANSLATE_NOOP("QShortcut", "Launch (9)") },
+    { Qt::Key_LaunchA,                    QT_TRANSLATE_NOOP("QShortcut", "Launch (A)") },
+    { Qt::Key_LaunchB,                    QT_TRANSLATE_NOOP("QShortcut", "Launch (B)") },
+    { Qt::Key_LaunchC,                    QT_TRANSLATE_NOOP("QShortcut", "Launch (C)") },
+    { Qt::Key_LaunchD,                    QT_TRANSLATE_NOOP("QShortcut", "Launch (D)") },
+    { Qt::Key_LaunchE,                    QT_TRANSLATE_NOOP("QShortcut", "Launch (E)") },
+    { Qt::Key_LaunchF,                    QT_TRANSLATE_NOOP("QShortcut", "Launch (F)") },
+    { Qt::Key_MonBrightnessUp,            QT_TRANSLATE_NOOP("QShortcut", "Monitor Brightness Up") },
+    { Qt::Key_MonBrightnessDown,          QT_TRANSLATE_NOOP("QShortcut", "Monitor Brightness Down") },
+    { Qt::Key_KeyboardLightOnOff,         QT_TRANSLATE_NOOP("QShortcut", "Keyboard Light On/Off") },
+    { Qt::Key_KeyboardBrightnessUp,       QT_TRANSLATE_NOOP("QShortcut", "Keyboard Brightness Up") },
+    { Qt::Key_KeyboardBrightnessDown,     QT_TRANSLATE_NOOP("QShortcut", "Keyboard Brightness Down") },
+    { Qt::Key_PowerOff,                   QT_TRANSLATE_NOOP("QShortcut", "Power Off") },
+    { Qt::Key_WakeUp,                     QT_TRANSLATE_NOOP("QShortcut", "Wake Up") },
+    { Qt::Key_Eject,                      QT_TRANSLATE_NOOP("QShortcut", "Eject") },
+    { Qt::Key_ScreenSaver,                QT_TRANSLATE_NOOP("QShortcut", "Screensaver") },
+    { Qt::Key_WWW,                        QT_TRANSLATE_NOOP("QShortcut", "WWW") },
+    { Qt::Key_Sleep,                      QT_TRANSLATE_NOOP("QShortcut", "Sleep") },
+    { Qt::Key_LightBulb,                  QT_TRANSLATE_NOOP("QShortcut", "LightBulb") },
+    { Qt::Key_Shop,                       QT_TRANSLATE_NOOP("QShortcut", "Shop") },
+    { Qt::Key_History,                    QT_TRANSLATE_NOOP("QShortcut", "History") },
+    { Qt::Key_AddFavorite,                QT_TRANSLATE_NOOP("QShortcut", "Add Favorite") },
+    { Qt::Key_HotLinks,                   QT_TRANSLATE_NOOP("QShortcut", "Hot Links") },
+    { Qt::Key_BrightnessAdjust,           QT_TRANSLATE_NOOP("QShortcut", "Adjust Brightness") },
+    { Qt::Key_Finance,                    QT_TRANSLATE_NOOP("QShortcut", "Finance") },
+    { Qt::Key_Community,                  QT_TRANSLATE_NOOP("QShortcut", "Community") },
+    { Qt::Key_AudioRewind,                QT_TRANSLATE_NOOP("QShortcut", "Audio Rewind") },
+    { Qt::Key_BackForward,                QT_TRANSLATE_NOOP("QShortcut", "Back Forward") },
+    { Qt::Key_ApplicationLeft,            QT_TRANSLATE_NOOP("QShortcut", "Application Left") },
+    { Qt::Key_ApplicationRight,           QT_TRANSLATE_NOOP("QShortcut", "Application Right") },
+    { Qt::Key_Book,                       QT_TRANSLATE_NOOP("QShortcut", "Book") },
+    { Qt::Key_CD,                         QT_TRANSLATE_NOOP("QShortcut", "CD") },
+    { Qt::Key_Calculator,                 QT_TRANSLATE_NOOP("QShortcut", "Calculator") },
+    { Qt::Key_Clear,                      QT_TRANSLATE_NOOP("QShortcut", "Clear") },
+    { Qt::Key_ClearGrab,                  QT_TRANSLATE_NOOP("QShortcut", "Clear Grab") },
+    { Qt::Key_Close,                      QT_TRANSLATE_NOOP("QShortcut", "Close") },
+    { Qt::Key_Copy,                       QT_TRANSLATE_NOOP("QShortcut", "Copy") },
+    { Qt::Key_Cut,                        QT_TRANSLATE_NOOP("QShortcut", "Cut") },
+    { Qt::Key_Display,                    QT_TRANSLATE_NOOP("QShortcut", "Display") },
+    { Qt::Key_DOS,                        QT_TRANSLATE_NOOP("QShortcut", "DOS") },
+    { Qt::Key_Documents,                  QT_TRANSLATE_NOOP("QShortcut", "Documents") },
+    { Qt::Key_Excel,                      QT_TRANSLATE_NOOP("QShortcut", "Spreadsheet") },
+    { Qt::Key_Explorer,                   QT_TRANSLATE_NOOP("QShortcut", "Browser") },
+    { Qt::Key_Game,                       QT_TRANSLATE_NOOP("QShortcut", "Game") },
+    { Qt::Key_Go,                         QT_TRANSLATE_NOOP("QShortcut", "Go") },
+    { Qt::Key_iTouch,                     QT_TRANSLATE_NOOP("QShortcut", "iTouch") },
+    { Qt::Key_LogOff,                     QT_TRANSLATE_NOOP("QShortcut", "Logoff") },
+    { Qt::Key_Market,                     QT_TRANSLATE_NOOP("QShortcut", "Market") },
+    { Qt::Key_Meeting,                    QT_TRANSLATE_NOOP("QShortcut", "Meeting") },
+    { Qt::Key_MenuKB,                     QT_TRANSLATE_NOOP("QShortcut", "Keyboard Menu") },
+    { Qt::Key_MenuPB,                     QT_TRANSLATE_NOOP("QShortcut", "Menu PB") },
+    { Qt::Key_MySites,                    QT_TRANSLATE_NOOP("QShortcut", "My Sites") },
+    { Qt::Key_News,                       QT_TRANSLATE_NOOP("QShortcut", "News") },
+    { Qt::Key_OfficeHome,                 QT_TRANSLATE_NOOP("QShortcut", "Home Office") },
+    { Qt::Key_Option,                     QT_TRANSLATE_NOOP("QShortcut", "Option") },
+    { Qt::Key_Paste,                      QT_TRANSLATE_NOOP("QShortcut", "Paste") },
+    { Qt::Key_Phone,                      QT_TRANSLATE_NOOP("QShortcut", "Phone") },
+    { Qt::Key_Reply,                      QT_TRANSLATE_NOOP("QShortcut", "Reply") },
+    { Qt::Key_Reload,                     QT_TRANSLATE_NOOP("QShortcut", "Reload") },
+    { Qt::Key_RotateWindows,              QT_TRANSLATE_NOOP("QShortcut", "Rotate Windows") },
+    { Qt::Key_RotationPB,                 QT_TRANSLATE_NOOP("QShortcut", "Rotation PB") },
+    { Qt::Key_RotationKB,                 QT_TRANSLATE_NOOP("QShortcut", "Rotation KB") },
+    { Qt::Key_Save,                       QT_TRANSLATE_NOOP("QShortcut", "Save") },
+    { Qt::Key_Send,                       QT_TRANSLATE_NOOP("QShortcut", "Send") },
+    { Qt::Key_Spell,                      QT_TRANSLATE_NOOP("QShortcut", "Spellchecker") },
+    { Qt::Key_SplitScreen,                QT_TRANSLATE_NOOP("QShortcut", "Split Screen") },
+    { Qt::Key_Support,                    QT_TRANSLATE_NOOP("QShortcut", "Support") },
+    { Qt::Key_TaskPane,                   QT_TRANSLATE_NOOP("QShortcut", "Task Panel") },
+    { Qt::Key_Terminal,                   QT_TRANSLATE_NOOP("QShortcut", "Terminal") },
+    { Qt::Key_Tools,                      QT_TRANSLATE_NOOP("QShortcut", "Tools") },
+    { Qt::Key_Travel,                     QT_TRANSLATE_NOOP("QShortcut", "Travel") },
+    { Qt::Key_Video,                      QT_TRANSLATE_NOOP("QShortcut", "Video") },
+    { Qt::Key_Word,                       QT_TRANSLATE_NOOP("QShortcut", "Word Processor") },
+    { Qt::Key_Xfer,                       QT_TRANSLATE_NOOP("QShortcut", "XFer") },
+    { Qt::Key_ZoomIn,                     QT_TRANSLATE_NOOP("QShortcut", "Zoom In") },
+    { Qt::Key_ZoomOut,                    QT_TRANSLATE_NOOP("QShortcut", "Zoom Out") },
+    { Qt::Key_Away,                       QT_TRANSLATE_NOOP("QShortcut", "Away") },
+    { Qt::Key_Messenger,                  QT_TRANSLATE_NOOP("QShortcut", "Messenger") },
+    { Qt::Key_WebCam,                     QT_TRANSLATE_NOOP("QShortcut", "WebCam") },
+    { Qt::Key_MailForward,                QT_TRANSLATE_NOOP("QShortcut", "Mail Forward") },
+    { Qt::Key_Pictures,                   QT_TRANSLATE_NOOP("QShortcut", "Pictures") },
+    { Qt::Key_Music,                      QT_TRANSLATE_NOOP("QShortcut", "Music") },
+    { Qt::Key_Battery,                    QT_TRANSLATE_NOOP("QShortcut", "Battery") },
+    { Qt::Key_Bluetooth,                  QT_TRANSLATE_NOOP("QShortcut", "Bluetooth") },
+    { Qt::Key_WLAN,                       QT_TRANSLATE_NOOP("QShortcut", "Wireless") },
+    { Qt::Key_UWB,                        QT_TRANSLATE_NOOP("QShortcut", "Ultra Wide Band") },
+    { Qt::Key_AudioForward,               QT_TRANSLATE_NOOP("QShortcut", "Audio Forward") },
+    { Qt::Key_AudioRepeat,                QT_TRANSLATE_NOOP("QShortcut", "Audio Repeat") },
+    { Qt::Key_AudioRandomPlay,            QT_TRANSLATE_NOOP("QShortcut", "Audio Random Play") },
+    { Qt::Key_Subtitle,                   QT_TRANSLATE_NOOP("QShortcut", "Subtitle") },
+    { Qt::Key_AudioCycleTrack,            QT_TRANSLATE_NOOP("QShortcut", "Audio Cycle Track") },
+    { Qt::Key_Time,                       QT_TRANSLATE_NOOP("QShortcut", "Time") },
+    { Qt::Key_Select,                     QT_TRANSLATE_NOOP("QShortcut", "Select") },
+    { Qt::Key_View,                       QT_TRANSLATE_NOOP("QShortcut", "View") },
+    { Qt::Key_TopMenu,                    QT_TRANSLATE_NOOP("QShortcut", "Top Menu") },
+    { Qt::Key_Suspend,                    QT_TRANSLATE_NOOP("QShortcut", "Suspend") },
+    { Qt::Key_Hibernate,                  QT_TRANSLATE_NOOP("QShortcut", "Hibernate") },
 
     // --------------------------------------------------------------
     // More consistent namings
-- 
cgit v0.12


From 0313ccbfaff690c5a8fc18a3a2c7d976a4a55aaf Mon Sep 17 00:00:00 2001
From: Gustavo Pichorim Boiko <boiko@mandriva.com>
Date: Tue, 27 Oct 2009 18:16:11 +0100
Subject: Emit workAreaResized() in X11 when it changes

Emit the QDesktopWidget::workAreaResized() signal when the _NET_WORKAREA
property of the root window changes.

Merge-request: 1111
Reviewed-by: Denis Dzyubenko <denis.dzyubenko@nokia.com>
---
 src/gui/kernel/qapplication_x11.cpp   | 6 ++++++
 src/gui/kernel/qdesktopwidget_x11.cpp | 9 ---------
 2 files changed, 6 insertions(+), 9 deletions(-)

diff --git a/src/gui/kernel/qapplication_x11.cpp b/src/gui/kernel/qapplication_x11.cpp
index bf95684..c6d188b 100644
--- a/src/gui/kernel/qapplication_x11.cpp
+++ b/src/gui/kernel/qapplication_x11.cpp
@@ -3750,6 +3750,12 @@ int QApplication::x11ProcessEvent(XEvent* event)
                 qt_get_net_virtual_roots();
             } else if (event->xproperty.atom == ATOM(_NET_WORKAREA)) {
                 qt_desktopwidget_update_workarea();
+
+                // emit the workAreaResized() signal
+                QDesktopWidget *desktop = QApplication::desktop();
+                int numScreens = desktop->numScreens();
+                for (int i = 0; i < numScreens; ++i)
+                    emit desktop->workAreaResized(i);
             }
         } else if (widget) {
             widget->translatePropertyEvent(event);
diff --git a/src/gui/kernel/qdesktopwidget_x11.cpp b/src/gui/kernel/qdesktopwidget_x11.cpp
index 02a2c82..14eb976 100644
--- a/src/gui/kernel/qdesktopwidget_x11.cpp
+++ b/src/gui/kernel/qdesktopwidget_x11.cpp
@@ -384,10 +384,8 @@ void QDesktopWidget::resizeEvent(QResizeEvent *event)
     Q_D(QDesktopWidget);
     int oldScreenCount = d->screenCount;
     QVector<QRect> oldRects(oldScreenCount);
-    QVector<QRect> oldWorks(oldScreenCount);
     for (int i = 0; i < oldScreenCount; ++i) {
         oldRects[i] = d->rects[i];
-        oldWorks[i] = d->workareas[i];
     }
 
     d->init();
@@ -397,13 +395,6 @@ void QDesktopWidget::resizeEvent(QResizeEvent *event)
             emit resized(i);
     }
 
-    // ### workareas are just reset by init, not filled with new values
-    // ### so this will not work correctly
-    for (int j = 0; j < qMin(oldScreenCount, d->screenCount); ++j) {
-        if (oldWorks.at(j) != d->workareas[j])
-            emit workAreaResized(j);
-    }
-
     if (oldScreenCount != d->screenCount) {
         emit screenCountChanged(d->screenCount);
     }
-- 
cgit v0.12


From 0444453661df0f56fd034778028c7abdc0b621cc Mon Sep 17 00:00:00 2001
From: "Bradley T. Hughes" <bradley.hughes@nokia.com>
Date: Wed, 28 Oct 2009 09:42:09 +0100
Subject: Don't stop event processing at the second WM_QT_SENDPOSTEDEVENTS

We should continue processing as much as we can, and report the
WM_QT_SENDPOSTEDEVENTS at the end of processEvents().
---
 src/corelib/kernel/qeventdispatcher_win.cpp | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/src/corelib/kernel/qeventdispatcher_win.cpp b/src/corelib/kernel/qeventdispatcher_win.cpp
index df4c02d..d13e1d1 100644
--- a/src/corelib/kernel/qeventdispatcher_win.cpp
+++ b/src/corelib/kernel/qeventdispatcher_win.cpp
@@ -663,11 +663,12 @@ bool QEventDispatcherWin32::processEvents(QEventLoop::ProcessEventsFlags flags)
 
     bool canWait;
     bool retVal = false;
+    bool seenWM_QT_SENDPOSTEDEVENTS = false;
+    bool needWM_QT_SENDPOSTEDEVENTS = false;
     do {
         DWORD waitRet = 0;
         HANDLE pHandles[MAXIMUM_WAIT_OBJECTS - 1];
         QVarLengthArray<MSG> processedTimers;
-        bool seenWM_QT_SENDPOSTEDEVENTS = false;
         while (!d->interrupt) {
             DWORD nCount = d->winEventNotifierList.count();
             Q_ASSERT(nCount < MAXIMUM_WAIT_OBJECTS - 1);
@@ -717,8 +718,8 @@ bool QEventDispatcherWin32::processEvents(QEventLoop::ProcessEventsFlags flags)
             if (haveMessage) {
                 if (msg.message == WM_QT_SENDPOSTEDEVENTS && !(flags & QEventLoop::EventLoopExec)) {
                     if (seenWM_QT_SENDPOSTEDEVENTS) {
-                        PostMessage(d->internalHwnd, WM_QT_SENDPOSTEDEVENTS, 0, 0);
-                        break;
+                        needWM_QT_SENDPOSTEDEVENTS = true;
+                        continue;
                     }
                     seenWM_QT_SENDPOSTEDEVENTS = true;
                 } else if (msg.message == WM_TIMER) {
@@ -770,6 +771,9 @@ bool QEventDispatcherWin32::processEvents(QEventLoop::ProcessEventsFlags flags)
         }
     } while (canWait);
 
+    if (needWM_QT_SENDPOSTEDEVENTS)
+        PostMessage(d->internalHwnd, WM_QT_SENDPOSTEDEVENTS, 0, 0);
+
     return retVal;
 }
 
-- 
cgit v0.12


From 9a9cd7765bfe879b53488fe18bba75425e4c5c61 Mon Sep 17 00:00:00 2001
From: Thomas Zander <thomas.zander@trolltech.com>
Date: Mon, 26 Oct 2009 14:20:49 +0100
Subject: add empty test method, should implement it fully when more important
 things are done

---
 tests/auto/gestures/tst_gestures.cpp | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/tests/auto/gestures/tst_gestures.cpp b/tests/auto/gestures/tst_gestures.cpp
index eba2616..6acfe70 100644
--- a/tests/auto/gestures/tst_gestures.cpp
+++ b/tests/auto/gestures/tst_gestures.cpp
@@ -330,6 +330,7 @@ private slots:
     void testMapToScene();
     void ungrabGesture();
     void consumeEventHint();
+    void unregisterRecognizer();
 };
 
 tst_Gestures::tst_Gestures()
@@ -1276,5 +1277,20 @@ void tst_Gestures::ungrabGesture() // a method on QWidget
     QCOMPARE(a->gestureOverrideEventsReceived, 0);
 }
 
+void tst_Gestures::unregisterRecognizer() // a method on QApplication
+{
+    /*
+     The hardest usecase to get right is when we remove a recognizer while several
+     of the gestures it created are in active state and we immediately add a new recognizer
+     for the same type (thus replacing the old one).
+     The expected result is that all old gestures continue till they are finished/cancelled
+     and the new recognizer starts creating gestures immediately at registration.
+
+     This implies that deleting of the recognizer happens only when there are no more gestures
+     that it created. (since gestures might have a pointer to the recognizer)
+     */
+
+}
+
 QTEST_MAIN(tst_Gestures)
 #include "tst_gestures.moc"
-- 
cgit v0.12


From 4470801f73b86d3ee06a866fbbdafcaeb9f294a6 Mon Sep 17 00:00:00 2001
From: Thomas Zander <t.zander@nokia.com>
Date: Tue, 27 Oct 2009 15:31:16 +0100
Subject: Introduce QGesture::GestureCancelPolicy, a way to auto-cancel
 gestures

On accepting one gesture Qt can automatically cancel other gestures
that belong to other targets. The policy is normally set to not cancel
any other gestures and can be set to cancel all active gestures in the
context. For example for all child widgets.

Reviewed-By: Denis Dzyubenko
---
 src/gui/kernel/qgesture.cpp          | 33 ++++++++++++++
 src/gui/kernel/qgesture.h            | 10 +++++
 src/gui/kernel/qgesture_p.h          | 10 +++--
 src/gui/kernel/qgesturemanager.cpp   | 85 ++++++++++++++++++++++++++++++++++--
 src/gui/kernel/qgesturemanager_p.h   |  2 +
 tests/auto/gestures/tst_gestures.cpp | 62 ++++++++++++++++++++++++++
 6 files changed, 195 insertions(+), 7 deletions(-)

diff --git a/src/gui/kernel/qgesture.cpp b/src/gui/kernel/qgesture.cpp
index a161876..c302c51 100644
--- a/src/gui/kernel/qgesture.cpp
+++ b/src/gui/kernel/qgesture.cpp
@@ -175,6 +175,29 @@ void QGesture::unsetHotSpot()
 }
 
 /*!
+    \enum QGesture::GestureCancelPolicy
+
+    This enum describes how accepting a gesture can cancel other gestures
+    automatically.
+
+    \value CancelNone On accepting this gesture no other gestures will be affected.
+    \value CancelAllInContext On accepting this gesture all gestures that are active
+        in the context (Qt::GestureContext) will be cancelled.
+*/
+
+void QGesture::setGestureCancelPolicy(GestureCancelPolicy policy)
+{
+    Q_D(QGesture);
+    d->gestureCancelPolicy = static_cast<uint>(policy);
+}
+
+QGesture::GestureCancelPolicy QGesture::gestureCancelPolicy() const
+{
+    Q_D(const QGesture);
+    return static_cast<GestureCancelPolicy>(d->gestureCancelPolicy);
+}
+
+/*!
     \class QPanGesture
     \since 4.6
     \brief The QPanGesture class describes a panning gesture made by the user.
@@ -195,6 +218,16 @@ void QGesture::unsetHotSpot()
 */
 
 /*!
+    \property QGesture::GestureCancelPolicy
+    \brief the policy for deciding what happens on accepting a gesture
+
+    On accepting one gesture Qt can automatically cancel other gestures
+    that belong to other targets. The policy is normally set to not cancel
+    any other gestures and can be set to cancel all active gestures in the
+    context. For example for all child widgets.
+*/
+
+/*!
     \property QPanGesture::lastOffset
     \brief the last offset recorded for this gesture
 
diff --git a/src/gui/kernel/qgesture.h b/src/gui/kernel/qgesture.h
index 6469959..524d26e 100644
--- a/src/gui/kernel/qgesture.h
+++ b/src/gui/kernel/qgesture.h
@@ -65,6 +65,7 @@ class Q_GUI_EXPORT QGesture : public QObject
 
     Q_PROPERTY(Qt::GestureState state READ state)
     Q_PROPERTY(Qt::GestureType gestureType READ gestureType)
+    Q_PROPERTY(QGesture::GestureCancelPolicy gestureCancelPolicy READ gestureCancelPolicy WRITE setGestureCancelPolicy)
     Q_PROPERTY(QPointF hotSpot READ hotSpot WRITE setHotSpot RESET unsetHotSpot)
     Q_PROPERTY(bool hasHotSpot READ hasHotSpot)
 
@@ -81,6 +82,14 @@ public:
     bool hasHotSpot() const;
     void unsetHotSpot();
 
+    enum GestureCancelPolicy {
+        CancelNone = 0,
+        CancelAllInContext
+    };
+
+    void setGestureCancelPolicy(GestureCancelPolicy policy);
+    GestureCancelPolicy gestureCancelPolicy() const;
+
 protected:
     QGesture(QGesturePrivate &dd, QObject *parent);
 
@@ -208,6 +217,7 @@ public:
 
 QT_END_NAMESPACE
 
+Q_DECLARE_METATYPE(QGesture::GestureCancelPolicy)
 QT_END_HEADER
 
 #endif // QGESTURE_H
diff --git a/src/gui/kernel/qgesture_p.h b/src/gui/kernel/qgesture_p.h
index 975c0c9..d2ef8a7 100644
--- a/src/gui/kernel/qgesture_p.h
+++ b/src/gui/kernel/qgesture_p.h
@@ -67,16 +67,20 @@ class QGesturePrivate : public QObjectPrivate
 
 public:
     QGesturePrivate()
-        : gestureType(Qt::CustomGesture), state(Qt::NoGesture), isHotSpotSet(false),
-          targetObject(0)
+        : gestureType(Qt::CustomGesture), state(Qt::NoGesture),
+          targetObject(0),
+          isHotSpotSet(false),
+          gestureCancelPolicy(0)
+
     {
     }
 
     Qt::GestureType gestureType;
     Qt::GestureState state;
     QPointF hotSpot;
-    bool isHotSpotSet;
     QObject *targetObject;
+    uint isHotSpotSet : 1;
+    uint gestureCancelPolicy : 2;
 };
 
 class QPanGesturePrivate : public QGesturePrivate
diff --git a/src/gui/kernel/qgesturemanager.cpp b/src/gui/kernel/qgesturemanager.cpp
index 52f8eef..fc7c8b2 100644
--- a/src/gui/kernel/qgesturemanager.cpp
+++ b/src/gui/kernel/qgesturemanager.cpp
@@ -322,21 +322,96 @@ bool QGestureManager::filterEventThroughContexts(const QMap<QObject *,
     deliverEvents(startedGestures+triggeredGestures+finishedGestures+canceledGestures,
                   &undeliveredGestures);
 
+    foreach (QGesture *g, startedGestures) {
+        if (undeliveredGestures.contains(g))
+            continue;
+        if (g->gestureCancelPolicy() == QGesture::CancelAllInContext) {
+            DEBUG() << "lets try to cancel some";
+            // find gestures in context in Qt::GestureStarted or Qt::GestureUpdated state and cancel them
+            cancelGesturesForChildren(g);
+        }
+    }
+
     activeGestures -= undeliveredGestures;
 
     // reset gestures that ended
     QSet<QGesture *> endedGestures =
             finishedGestures + canceledGestures + undeliveredGestures;
     foreach (QGesture *gesture, endedGestures) {
-        if (QGestureRecognizer *recognizer = gestureToRecognizer.value(gesture, 0))
+        if (QGestureRecognizer *recognizer = gestureToRecognizer.value(gesture, 0)) {
+            gesture->setGestureCancelPolicy(QGesture::CancelNone);
             recognizer->reset(gesture);
-        else
+        } else {
             cleanupGesturesForRemovedRecognizer(gesture);
+        }
         gestureTargets.remove(gesture);
     }
     return ret;
 }
 
+// Cancel all gestures of children of the widget that original is associated with
+void QGestureManager::cancelGesturesForChildren(QGesture *original)
+{
+    Q_ASSERT(original);
+    QWidget *originatingWidget = gestureTargets.value(original);
+    Q_ASSERT(originatingWidget);
+
+    // iterate over all active gestures and all maybe gestures
+    // for each find the owner
+    // if the owner is part of our sub-hierarchy, cancel it.
+
+    QSet<QGesture*> cancelledGestures;
+    QSet<QGesture*>::Iterator iter = activeGestures.begin();
+    while (iter != activeGestures.end()) {
+        QWidget *widget = gestureTargets.value(*iter);
+        // note that we don't touch the gestures for our originatingWidget
+        if (widget != originatingWidget && originatingWidget->isAncestorOf(widget)) {
+            DEBUG() << "  found a gesture to cancel" << (*iter);
+            (*iter)->d_func()->state = Qt::GestureCanceled;
+            cancelledGestures << *iter;
+            iter = activeGestures.erase(iter);
+        } else {
+            ++iter;
+        }
+    }
+
+    // TODO handle 'maybe' gestures too
+
+    // sort them per target widget by cherry picking from almostCanceledGestures and delivering
+    QSet<QGesture *> almostCanceledGestures = cancelledGestures;
+    while (!almostCanceledGestures.isEmpty()) {
+        QWidget *target = 0;
+        QSet<QGesture*> gestures;
+        iter = almostCanceledGestures.begin();
+        // sort per target widget
+        while (iter != almostCanceledGestures.end()) {
+            QWidget *widget = gestureTargets.value(*iter);
+            if (target == 0)
+                target = widget;
+            if (target == widget) {
+                gestures << *iter;
+                iter = almostCanceledGestures.erase(iter);
+            } else {
+                ++iter;
+            }
+        }
+        Q_ASSERT(target);
+
+        QSet<QGesture*> undeliveredGestures;
+        deliverEvents(gestures, &undeliveredGestures);
+    }
+
+    for (iter = cancelledGestures.begin(); iter != cancelledGestures.end(); ++iter) {
+        QGestureRecognizer *recognizer = gestureToRecognizer.value(*iter, 0);
+        if (recognizer) {
+            (*iter)->setGestureCancelPolicy(QGesture::CancelNone);
+            recognizer->reset(*iter);
+        } else {
+            cleanupGesturesForRemovedRecognizer(*iter);
+        }
+    }
+}
+
 void QGestureManager::cleanupGesturesForRemovedRecognizer(QGesture *gesture)
 {
     QGestureRecognizer *recognizer = m_deletedRecognizers.value(gesture);
@@ -585,10 +660,12 @@ void QGestureManager::timerEvent(QTimerEvent *event)
             DEBUG() << "QGestureManager::timerEvent: gesture stopped due to timeout:"
                     << gesture;
             QGestureRecognizer *recognizer = gestureToRecognizer.value(gesture, 0);
-            if (recognizer)
+            if (recognizer) {
+                gesture->setGestureCancelPolicy(QGesture::CancelNone);
                 recognizer->reset(gesture);
-            else
+            } else {
                 cleanupGesturesForRemovedRecognizer(gesture);
+            }
         } else {
             ++it;
         }
diff --git a/src/gui/kernel/qgesturemanager_p.h b/src/gui/kernel/qgesturemanager_p.h
index 96c2fb7..e6a1d50 100644
--- a/src/gui/kernel/qgesturemanager_p.h
+++ b/src/gui/kernel/qgesturemanager_p.h
@@ -135,6 +135,8 @@ private:
     void getGestureTargets(const QSet<QGesture*> &gestures,
                            QMap<QWidget *, QList<QGesture *> > *conflicts,
                            QMap<QWidget *, QList<QGesture *> > *normal);
+
+    void cancelGesturesForChildren(QGesture *originatingGesture);
 };
 
 QT_END_NAMESPACE
diff --git a/tests/auto/gestures/tst_gestures.cpp b/tests/auto/gestures/tst_gestures.cpp
index 6acfe70..39cdf63 100644
--- a/tests/auto/gestures/tst_gestures.cpp
+++ b/tests/auto/gestures/tst_gestures.cpp
@@ -331,6 +331,7 @@ private slots:
     void ungrabGesture();
     void consumeEventHint();
     void unregisterRecognizer();
+    void autoCancelGestures();
 };
 
 tst_Gestures::tst_Gestures()
@@ -1292,5 +1293,66 @@ void tst_Gestures::unregisterRecognizer() // a method on QApplication
 
 }
 
+void tst_Gestures::autoCancelGestures()
+{
+    class MockRecognizer : public QGestureRecognizer {
+      public:
+        QGestureRecognizer::Result filterEvent(QGesture *gesture, QObject *watched, QEvent *event)
+        {
+            Q_UNUSED(gesture);
+            Q_UNUSED(watched);
+            if (event->type() == QEvent::MouseButtonPress)
+                return QGestureRecognizer::GestureTriggered;
+            if (event->type() == QEvent::MouseButtonRelease)
+                return QGestureRecognizer::GestureFinished;
+            return QGestureRecognizer::Ignore;
+        }
+    };
+
+    class MockWidget : public GestureWidget {
+      public:
+        MockWidget(const char *name) : GestureWidget(name) { }
+
+        bool event(QEvent *event)
+        {
+            if (event->type() == QEvent::Gesture) {
+                QGestureEvent *ge = static_cast<QGestureEvent*>(event);
+                Q_ASSERT(ge->allGestures().count() == 1); // can't use QCOMPARE here...
+                ge->allGestures().first()->setGestureCancelPolicy(QGesture::CancelAllInContext);
+            }
+            return GestureWidget::event(event);
+        }
+    };
+
+    MockWidget parent("parent"); // this one sets the cancel policy to CancelAllInContext
+    parent.resize(300, 100);
+    GestureWidget *child = new GestureWidget("child", &parent);
+    child->setGeometry(10, 10, 100, 80);
+
+    Qt::GestureType type = qApp->registerGestureRecognizer(new MockRecognizer());
+    parent.grabGesture(type, Qt::WidgetWithChildrenGesture);
+    child->grabGesture(type, Qt::WidgetWithChildrenGesture);
+
+    /*
+      An event is send to both the child and the parent, when the child gets it a gesture is triggered
+      and send to the child.
+      When the parent gets the event a new gesture is triggered and delivered to the parent. When the
+      parent gets it he accepts it and that causes the cancel policy to activate.
+      The cause of that is the gesture for the child is cancelled and send to the child as such.
+    */
+    QMouseEvent event(QEvent::MouseButtonPress, QPoint(20,20), Qt::LeftButton, Qt::LeftButton, Qt::NoModifier);
+    QApplication::sendEvent(child, &event);
+    QCOMPARE(child->events.started.count(), 1);
+    QCOMPARE(child->events.all.count(), 1);
+    QCOMPARE(parent.events.all.count(), 0);
+    child->reset();
+    QApplication::sendEvent(&parent, &event);
+    QCOMPARE(parent.events.all.count(), 1);
+    QCOMPARE(parent.events.started.count(), 1);
+    QCOMPARE(child->events.started.count(), 0);
+    QCOMPARE(child->events.all.count(), 1);
+    QCOMPARE(child->events.canceled.count(), 1);
+}
+
 QTEST_MAIN(tst_Gestures)
 #include "tst_gestures.moc"
-- 
cgit v0.12


From 3c2c1c21b41f600eeaa056b66fe44d5017f9b500 Mon Sep 17 00:00:00 2001
From: Prasanth Ullattil <prasanth.ulattil@nokia.com>
Date: Wed, 28 Oct 2009 10:55:19 +0100
Subject: Drag and drop of plain text doesnot work on Mac.

While querying for the text in the pasteboard, it was looking in the
wrong place. The helper function qt_mac_get_pasteboardString() always
searched in generalPasteboard instead of the pasteboard referred by the
QMacPasteboard.

Reviewed-by: MortenS
---
 src/gui/kernel/qclipboard_mac.cpp       |  2 +-
 src/gui/kernel/qt_cocoa_helpers_mac.mm  | 19 +++++++++++++------
 src/gui/kernel/qt_cocoa_helpers_mac_p.h |  2 +-
 3 files changed, 15 insertions(+), 8 deletions(-)

diff --git a/src/gui/kernel/qclipboard_mac.cpp b/src/gui/kernel/qclipboard_mac.cpp
index 3db647b..8892269 100644
--- a/src/gui/kernel/qclipboard_mac.cpp
+++ b/src/gui/kernel/qclipboard_mac.cpp
@@ -532,7 +532,7 @@ QMacPasteboard::retrieveData(const QString &format, QVariant::Type) const
                 // Try to get the NSStringPboardType from NSPasteboard, newlines are mapped
                 // correctly (as '\n') in this data. The 'public.utf16-plain-text' type
                 // usually maps newlines to '\r' instead.
-                QString str = qt_mac_get_pasteboardString();
+                QString str = qt_mac_get_pasteboardString(paste);
                 if (!str.isEmpty())
                     return str;
             }
diff --git a/src/gui/kernel/qt_cocoa_helpers_mac.mm b/src/gui/kernel/qt_cocoa_helpers_mac.mm
index 2b2259c..c0fb8aa 100644
--- a/src/gui/kernel/qt_cocoa_helpers_mac.mm
+++ b/src/gui/kernel/qt_cocoa_helpers_mac.mm
@@ -1152,16 +1152,23 @@ CGFloat qt_mac_get_scalefactor()
 #endif
 }
 
-QString qt_mac_get_pasteboardString()
+QString qt_mac_get_pasteboardString(OSPasteboardRef paste)
 {
     QMacCocoaAutoReleasePool pool;
-    NSPasteboard *pb = [NSPasteboard generalPasteboard];
-    NSString *text = [pb stringForType:NSStringPboardType];
-    if (text) {
-        return qt_mac_NSStringToQString(text);
+    NSPasteboard *pb = nil;
+    CFStringRef pbname;
+    if (PasteboardCopyName (paste, &pbname)) {
+        pb = [NSPasteboard generalPasteboard];
     } else {
-        return QString();
+        pb = [NSPasteboard pasteboardWithName:reinterpret_cast<const NSString *>(pbname)];
+        CFRelease (pbname);
     }
+    if (pb) {
+        NSString *text = [pb stringForType:NSStringPboardType];
+        if (text)
+            return qt_mac_NSStringToQString(text);
+    }
+    return QString();
 }
 
 QPixmap qt_mac_convert_iconref(const IconRef icon, int width, int height)
diff --git a/src/gui/kernel/qt_cocoa_helpers_mac_p.h b/src/gui/kernel/qt_cocoa_helpers_mac_p.h
index 62db064..ea35fb6 100644
--- a/src/gui/kernel/qt_cocoa_helpers_mac_p.h
+++ b/src/gui/kernel/qt_cocoa_helpers_mac_p.h
@@ -170,7 +170,7 @@ void *qt_mac_QStringListToNSMutableArrayVoid(const QStringList &list);
 void qt_syncCocoaTitleBarButtons(OSWindowRef window, QWidget *widgetForWindow);
 
 CGFloat qt_mac_get_scalefactor();
-QString qt_mac_get_pasteboardString();
+QString qt_mac_get_pasteboardString(OSPasteboardRef paste);
 
 #ifdef __OBJC__
 inline NSMutableArray *qt_mac_QStringListToNSMutableArray(const QStringList &qstrlist)
-- 
cgit v0.12


From 7f2d0fdf064f1e5625b784a5712d21545cf79ba1 Mon Sep 17 00:00:00 2001
From: Thomas Zander <t.zander@nokia.com>
Date: Wed, 28 Oct 2009 12:49:38 +0100
Subject: Rename private member variables to begin with m_

Reviewed-By: TrustMe
---
 src/gui/kernel/qgesturemanager.cpp | 116 ++++++++++++++++++-------------------
 src/gui/kernel/qgesturemanager_p.h |  17 +++---
 2 files changed, 66 insertions(+), 67 deletions(-)

diff --git a/src/gui/kernel/qgesturemanager.cpp b/src/gui/kernel/qgesturemanager.cpp
index fc7c8b2..a90c299 100644
--- a/src/gui/kernel/qgesturemanager.cpp
+++ b/src/gui/kernel/qgesturemanager.cpp
@@ -65,7 +65,7 @@
 QT_BEGIN_NAMESPACE
 
 QGestureManager::QGestureManager(QObject *parent)
-    : QObject(parent), state(NotGesture), lastCustomGestureId(0)
+    : QObject(parent), state(NotGesture), m_lastCustomGestureId(0)
 {
     qRegisterMetaType<Qt::GestureState>();
 
@@ -82,7 +82,7 @@ QGestureManager::QGestureManager(QObject *parent)
 
 QGestureManager::~QGestureManager()
 {
-    qDeleteAll(recognizers.values());
+    qDeleteAll(m_recognizers.values());
 }
 
 Qt::GestureType QGestureManager::registerGestureRecognizer(QGestureRecognizer *recognizer)
@@ -96,30 +96,30 @@ Qt::GestureType QGestureManager::registerGestureRecognizer(QGestureRecognizer *r
     Qt::GestureType type = dummy->gestureType();
     if (type == Qt::CustomGesture) {
         // generate a new custom gesture id
-        ++lastCustomGestureId;
-        type = Qt::GestureType(Qt::CustomGesture + lastCustomGestureId);
+        ++m_lastCustomGestureId;
+        type = Qt::GestureType(Qt::CustomGesture + m_lastCustomGestureId);
     }
-    recognizers.insertMulti(type, recognizer);
+    m_recognizers.insertMulti(type, recognizer);
     delete dummy;
     return type;
 }
 
 void QGestureManager::unregisterGestureRecognizer(Qt::GestureType type)
 {
-    QList<QGestureRecognizer *> list = recognizers.values(type);
-    recognizers.remove(type);
-    foreach (QGesture* g, gestureToRecognizer.keys()) {
-        QGestureRecognizer *recognizer = gestureToRecognizer.value(g);
+    QList<QGestureRecognizer *> list = m_recognizers.values(type);
+    m_recognizers.remove(type);
+    foreach (QGesture* g, m_gestureToRecognizer.keys()) {
+        QGestureRecognizer *recognizer = m_gestureToRecognizer.value(g);
         if (list.contains(recognizer)) {
             m_deletedRecognizers.insert(g, recognizer);
-            gestureToRecognizer.remove(g);
+            m_gestureToRecognizer.remove(g);
         }
     }
 
     foreach (QGestureRecognizer *recognizer, list) {
         QList<QGesture *> obsoleteGestures;
-        QMap<ObjectGesture, QGesture *>::Iterator iter = objectGestures.begin();
-        while (iter != objectGestures.end()) {
+        QMap<ObjectGesture, QGesture *>::Iterator iter = m_objectGestures.begin();
+        while (iter != m_objectGestures.end()) {
             ObjectGesture objectGesture = iter.key();
             if (objectGesture.gesture == type)
                 obsoleteGestures << iter.value();
@@ -131,12 +131,12 @@ void QGestureManager::unregisterGestureRecognizer(Qt::GestureType type)
 
 void QGestureManager::cleanupCachedGestures(QObject *target, Qt::GestureType type)
 {
-    QMap<ObjectGesture, QGesture *>::Iterator iter = objectGestures.begin();
-    while (iter != objectGestures.end()) {
+    QMap<ObjectGesture, QGesture *>::Iterator iter = m_objectGestures.begin();
+    while (iter != m_objectGestures.end()) {
         ObjectGesture objectGesture = iter.key();
         if (objectGesture.gesture == type && target == objectGesture.object.data()) {
             delete iter.value();
-            iter = objectGestures.erase(iter);
+            iter = m_objectGestures.erase(iter);
         } else {
             ++iter;
         }
@@ -159,9 +159,9 @@ QGesture *QGestureManager::getState(QObject *object, Qt::GestureType type)
     }
 
     QGesture *state =
-            objectGestures.value(QGestureManager::ObjectGesture(object, type));
+            m_objectGestures.value(QGestureManager::ObjectGesture(object, type));
     if (!state) {
-        QGestureRecognizer *recognizer = recognizers.value(type);
+        QGestureRecognizer *recognizer = m_recognizers.value(type);
         if (recognizer) {
             state = recognizer->createGesture(object);
             if (!state)
@@ -175,9 +175,9 @@ QGesture *QGestureManager::getState(QObject *object, Qt::GestureType type)
                 state->setObjectName(QString::number((int)type));
 #endif
             }
-            objectGestures.insert(QGestureManager::ObjectGesture(object, type), state);
-            gestureToRecognizer[state] = recognizer;
-            gestureOwners[state] = object;
+            m_objectGestures.insert(QGestureManager::ObjectGesture(object, type), state);
+            m_gestureToRecognizer[state] = recognizer;
+            m_gestureOwners[state] = object;
         }
     }
     return state;
@@ -203,8 +203,8 @@ bool QGestureManager::filterEventThroughContexts(const QMap<QObject *,
     for (ContextIterator cit = contexts.begin(), ce = contexts.end(); cit != ce; ++cit) {
         Qt::GestureType gestureType = cit.value();
         QMap<Qt::GestureType, QGestureRecognizer *>::const_iterator
-                rit = recognizers.lowerBound(gestureType),
-                re = recognizers.upperBound(gestureType);
+                rit = m_recognizers.lowerBound(gestureType),
+                re = m_recognizers.upperBound(gestureType);
         for (; rit != re; ++rit) {
             QGestureRecognizer *recognizer = rit.value();
             QObject *target = cit.key();
@@ -239,20 +239,20 @@ bool QGestureManager::filterEventThroughContexts(const QMap<QObject *,
         }
     }
 
-    QSet<QGesture *> startedGestures = triggeredGestures - activeGestures;
-    triggeredGestures &= activeGestures;
+    QSet<QGesture *> startedGestures = triggeredGestures - m_activeGestures;
+    triggeredGestures &= m_activeGestures;
 
     // check if a running gesture switched back to maybe state
-    QSet<QGesture *> activeToMaybeGestures = activeGestures & newMaybeGestures;
+    QSet<QGesture *> activeToMaybeGestures = m_activeGestures & newMaybeGestures;
 
     // check if a running gesture switched back to not gesture state,
     // i.e. were canceled
-    QSet<QGesture *> activeToCancelGestures = activeGestures & notGestures;
+    QSet<QGesture *> activeToCancelGestures = m_activeGestures & notGestures;
     canceledGestures += activeToCancelGestures;
 
     // start timers for new gestures in maybe state
     foreach (QGesture *state, newMaybeGestures) {
-        QBasicTimer &timer = maybeGestures[state];
+        QBasicTimer &timer = m_maybeGestures[state];
         if (!timer.isActive())
             timer.start(3000, this);
     }
@@ -262,10 +262,10 @@ bool QGestureManager::filterEventThroughContexts(const QMap<QObject *,
                                          | notGestures);
     foreach(QGesture *gesture, notMaybeGestures) {
         QMap<QGesture *, QBasicTimer>::iterator it =
-                maybeGestures.find(gesture);
-        if (it != maybeGestures.end()) {
+                m_maybeGestures.find(gesture);
+        if (it != m_maybeGestures.end()) {
             it.value().stop();
-            maybeGestures.erase(it);
+            m_maybeGestures.erase(it);
         }
     }
 
@@ -276,7 +276,7 @@ bool QGestureManager::filterEventThroughContexts(const QMap<QObject *,
     Q_ASSERT((finishedGestures & canceledGestures).isEmpty());
     Q_ASSERT((canceledGestures & newMaybeGestures).isEmpty());
 
-    QSet<QGesture *> notStarted = finishedGestures - activeGestures;
+    QSet<QGesture *> notStarted = finishedGestures - m_activeGestures;
     if (!notStarted.isEmpty()) {
         // there are some gestures that claim to be finished, but never started.
         // probably those are "singleshot" gestures so we'll fake the started state.
@@ -287,12 +287,12 @@ bool QGestureManager::filterEventThroughContexts(const QMap<QObject *,
         finishedGestures -= undeliveredGestures;
     }
 
-    activeGestures += startedGestures;
+    m_activeGestures += startedGestures;
     // sanity check: all triggered gestures should already be in active gestures list
-    Q_ASSERT((activeGestures & triggeredGestures).size() == triggeredGestures.size());
-    activeGestures -= finishedGestures;
-    activeGestures -= activeToMaybeGestures;
-    activeGestures -= canceledGestures;
+    Q_ASSERT((m_activeGestures & triggeredGestures).size() == triggeredGestures.size());
+    m_activeGestures -= finishedGestures;
+    m_activeGestures -= activeToMaybeGestures;
+    m_activeGestures -= canceledGestures;
 
     // set the proper gesture state on each gesture
     foreach (QGesture *gesture, startedGestures)
@@ -306,12 +306,12 @@ bool QGestureManager::filterEventThroughContexts(const QMap<QObject *,
     foreach (QGesture *gesture, activeToMaybeGestures)
         gesture->d_func()->state = Qt::GestureFinished;
 
-    if (!activeGestures.isEmpty() || !maybeGestures.isEmpty() ||
+    if (!m_activeGestures.isEmpty() || !m_maybeGestures.isEmpty() ||
         !startedGestures.isEmpty() || !triggeredGestures.isEmpty() ||
         !finishedGestures.isEmpty() || !canceledGestures.isEmpty()) {
         DEBUG() << "QGestureManager::filterEventThroughContexts:"
-                << "\n\tactiveGestures:" << activeGestures
-                << "\n\tmaybeGestures:" << maybeGestures.keys()
+                << "\n\tactiveGestures:" << m_activeGestures
+                << "\n\tmaybeGestures:" << m_maybeGestures.keys()
                 << "\n\tstarted:" << startedGestures
                 << "\n\ttriggered:" << triggeredGestures
                 << "\n\tfinished:" << finishedGestures
@@ -332,19 +332,19 @@ bool QGestureManager::filterEventThroughContexts(const QMap<QObject *,
         }
     }
 
-    activeGestures -= undeliveredGestures;
+    m_activeGestures -= undeliveredGestures;
 
     // reset gestures that ended
     QSet<QGesture *> endedGestures =
             finishedGestures + canceledGestures + undeliveredGestures;
     foreach (QGesture *gesture, endedGestures) {
-        if (QGestureRecognizer *recognizer = gestureToRecognizer.value(gesture, 0)) {
+        if (QGestureRecognizer *recognizer = m_gestureToRecognizer.value(gesture, 0)) {
             gesture->setGestureCancelPolicy(QGesture::CancelNone);
             recognizer->reset(gesture);
         } else {
             cleanupGesturesForRemovedRecognizer(gesture);
         }
-        gestureTargets.remove(gesture);
+        m_gestureTargets.remove(gesture);
     }
     return ret;
 }
@@ -353,7 +353,7 @@ bool QGestureManager::filterEventThroughContexts(const QMap<QObject *,
 void QGestureManager::cancelGesturesForChildren(QGesture *original)
 {
     Q_ASSERT(original);
-    QWidget *originatingWidget = gestureTargets.value(original);
+    QWidget *originatingWidget = m_gestureTargets.value(original);
     Q_ASSERT(originatingWidget);
 
     // iterate over all active gestures and all maybe gestures
@@ -361,15 +361,15 @@ void QGestureManager::cancelGesturesForChildren(QGesture *original)
     // if the owner is part of our sub-hierarchy, cancel it.
 
     QSet<QGesture*> cancelledGestures;
-    QSet<QGesture*>::Iterator iter = activeGestures.begin();
-    while (iter != activeGestures.end()) {
-        QWidget *widget = gestureTargets.value(*iter);
+    QSet<QGesture*>::Iterator iter = m_activeGestures.begin();
+    while (iter != m_activeGestures.end()) {
+        QWidget *widget = m_gestureTargets.value(*iter);
         // note that we don't touch the gestures for our originatingWidget
         if (widget != originatingWidget && originatingWidget->isAncestorOf(widget)) {
             DEBUG() << "  found a gesture to cancel" << (*iter);
             (*iter)->d_func()->state = Qt::GestureCanceled;
             cancelledGestures << *iter;
-            iter = activeGestures.erase(iter);
+            iter = m_activeGestures.erase(iter);
         } else {
             ++iter;
         }
@@ -385,7 +385,7 @@ void QGestureManager::cancelGesturesForChildren(QGesture *original)
         iter = almostCanceledGestures.begin();
         // sort per target widget
         while (iter != almostCanceledGestures.end()) {
-            QWidget *widget = gestureTargets.value(*iter);
+            QWidget *widget = m_gestureTargets.value(*iter);
             if (target == 0)
                 target = widget;
             if (target == widget) {
@@ -402,7 +402,7 @@ void QGestureManager::cancelGesturesForChildren(QGesture *original)
     }
 
     for (iter = cancelledGestures.begin(); iter != cancelledGestures.end(); ++iter) {
-        QGestureRecognizer *recognizer = gestureToRecognizer.value(*iter, 0);
+        QGestureRecognizer *recognizer = m_gestureToRecognizer.value(*iter, 0);
         if (recognizer) {
             (*iter)->setGestureCancelPolicy(QGesture::CancelNone);
             recognizer->reset(*iter);
@@ -507,7 +507,7 @@ void QGestureManager::getGestureTargets(const QSet<QGesture*> &gestures,
 
     // sort gestures by types
     foreach (QGesture *gesture, gestures) {
-        QWidget *receiver = gestureTargets.value(gesture, 0);
+        QWidget *receiver = m_gestureTargets.value(gesture, 0);
         Q_ASSERT(receiver);
         gestureByTypes[gesture->gestureType()].insert(receiver, gesture);
     }
@@ -556,7 +556,7 @@ void QGestureManager::deliverEvents(const QSet<QGesture *> &gestures,
     for (QSet<QGesture *>::const_iterator it = gestures.begin(),
          e = gestures.end(); it != e; ++it) {
         QGesture *gesture = *it;
-        QWidget *target = gestureTargets.value(gesture, 0);
+        QWidget *target = m_gestureTargets.value(gesture, 0);
         if (!target) {
             // the gesture has just started and doesn't have a target yet.
             Q_ASSERT(gesture->state() == Qt::GestureStarted);
@@ -568,12 +568,12 @@ void QGestureManager::deliverEvents(const QSet<QGesture *> &gestures,
                 }
             } else {
                 // or use the context of the gesture
-                QObject *context = gestureOwners.value(gesture, 0);
+                QObject *context = m_gestureOwners.value(gesture, 0);
                 if (context->isWidgetType())
                     target = static_cast<QWidget *>(context);
             }
             if (target)
-                gestureTargets.insert(gesture, target);
+                m_gestureTargets.insert(gesture, target);
         }
 
         Qt::GestureType gestureType = gesture->gestureType();
@@ -625,7 +625,7 @@ void QGestureManager::deliverEvents(const QSet<QGesture *> &gestures,
                 QList<QGesture *> &gestures = normalStartedGestures[w];
                 gestures.append(gesture);
                 // override the target
-                gestureTargets[gesture] = w;
+                m_gestureTargets[gesture] = w;
             } else {
                 DEBUG() << "override event: gesture wasn't accepted. putting back:" << gesture;
                 QList<QGesture *> &gestures = normalStartedGestures[receiver];
@@ -648,18 +648,18 @@ void QGestureManager::deliverEvents(const QSet<QGesture *> &gestures,
 
 void QGestureManager::timerEvent(QTimerEvent *event)
 {
-    QMap<QGesture*, QBasicTimer>::iterator it = maybeGestures.begin(),
-                                            e = maybeGestures.end();
+    QMap<QGesture*, QBasicTimer>::iterator it = m_maybeGestures.begin(),
+                                            e = m_maybeGestures.end();
     for (; it != e; ) {
         QBasicTimer &timer = it.value();
         Q_ASSERT(timer.isActive());
         if (timer.timerId() == event->timerId()) {
             timer.stop();
             QGesture *gesture = it.key();
-            it = maybeGestures.erase(it);
+            it = m_maybeGestures.erase(it);
             DEBUG() << "QGestureManager::timerEvent: gesture stopped due to timeout:"
                     << gesture;
-            QGestureRecognizer *recognizer = gestureToRecognizer.value(gesture, 0);
+            QGestureRecognizer *recognizer = m_gestureToRecognizer.value(gesture, 0);
             if (recognizer) {
                 gesture->setGestureCancelPolicy(QGesture::CancelNone);
                 recognizer->reset(gesture);
diff --git a/src/gui/kernel/qgesturemanager_p.h b/src/gui/kernel/qgesturemanager_p.h
index e6a1d50..5a2816c 100644
--- a/src/gui/kernel/qgesturemanager_p.h
+++ b/src/gui/kernel/qgesturemanager_p.h
@@ -87,10 +87,10 @@ protected:
                                     QEvent *event);
 
 private:
-    QMultiMap<Qt::GestureType, QGestureRecognizer *> recognizers;
+    QMultiMap<Qt::GestureType, QGestureRecognizer *> m_recognizers;
 
-    QSet<QGesture *> activeGestures;
-    QMap<QGesture *, QBasicTimer> maybeGestures;
+    QSet<QGesture *> m_activeGestures;
+    QMap<QGesture *, QBasicTimer> m_maybeGestures;
 
     enum State {
         Gesture,
@@ -116,14 +116,13 @@ private:
         }
     };
 
-    // TODO rename all member vars to be m_
-    QMap<ObjectGesture, QGesture *> objectGestures; // TODO rename widgetGestures
-    QMap<QGesture *, QGestureRecognizer *> gestureToRecognizer;
-    QHash<QGesture *, QObject *> gestureOwners;
+    QMap<ObjectGesture, QGesture *> m_objectGestures;
+    QMap<QGesture *, QGestureRecognizer *> m_gestureToRecognizer;
+    QHash<QGesture *, QObject *> m_gestureOwners;
 
-    QHash<QGesture *, QWidget *> gestureTargets;
+    QHash<QGesture *, QWidget *> m_gestureTargets;
 
-    int lastCustomGestureId;
+    int m_lastCustomGestureId;
 
     QHash<QGestureRecognizer *, QList<QGesture *> > m_obsoleteGestures;
     QMap<QGesture *, QGestureRecognizer *> m_deletedRecognizers;
-- 
cgit v0.12


From 0dc77406ae05c6ad27406e91b230b177b97fbc7c Mon Sep 17 00:00:00 2001
From: Thomas Zander <t.zander@nokia.com>
Date: Wed, 28 Oct 2009 12:56:59 +0100
Subject: Make the un/registerGestureRecognizer methods static

As QApplication is a singleton this makes usage of these
easier and also in line with many other methods on the class.
---
 src/gui/kernel/qapplication.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/gui/kernel/qapplication.h b/src/gui/kernel/qapplication.h
index 5a8e325..5877ba4 100644
--- a/src/gui/kernel/qapplication.h
+++ b/src/gui/kernel/qapplication.h
@@ -288,8 +288,8 @@ public:
     static Qt::NavigationMode navigationMode();
 #endif
 
-    Qt::GestureType registerGestureRecognizer(QGestureRecognizer *recognizer);
-    void unregisterGestureRecognizer(Qt::GestureType type);
+    static Qt::GestureType registerGestureRecognizer(QGestureRecognizer *recognizer);
+    static void unregisterGestureRecognizer(Qt::GestureType type);
 
 Q_SIGNALS:
     void lastWindowClosed();
-- 
cgit v0.12


From 603d3fb41601e9c69e0f2f3afe4b3717b33f75e4 Mon Sep 17 00:00:00 2001
From: Thomas Zander <t.zander@nokia.com>
Date: Wed, 28 Oct 2009 12:59:51 +0100
Subject: Mark the QGestureEvent::setWidget as internal

The widget() getter is still publicly documented, follow the lead of
other events to make the setter internal.
---
 src/gui/kernel/qevent.cpp | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/gui/kernel/qevent.cpp b/src/gui/kernel/qevent.cpp
index ea05869..ab43e79 100644
--- a/src/gui/kernel/qevent.cpp
+++ b/src/gui/kernel/qevent.cpp
@@ -4398,6 +4398,8 @@ bool QGestureEvent::isAccepted(Qt::GestureType gestureType) const
 }
 
 /*!
+    \internal
+
     Sets the widget for this event.
 */
 void QGestureEvent::setWidget(QWidget *widget)
-- 
cgit v0.12


From 244d8993c4aac6746306e58b1b766f804e2566f4 Mon Sep 17 00:00:00 2001
From: Thomas Zander <t.zander@nokia.com>
Date: Wed, 28 Oct 2009 13:36:43 +0100
Subject: Follow refactor; use QApplication:: instead of qApp->

Our tests now call the recently converted registerRecognizer using a proper
static method.
---
 tests/auto/gestures/tst_gestures.cpp        | 46 ++++++++++++++---------------
 tests/manual/gestures/graphicsview/main.cpp |  4 +--
 2 files changed, 25 insertions(+), 25 deletions(-)

diff --git a/tests/auto/gestures/tst_gestures.cpp b/tests/auto/gestures/tst_gestures.cpp
index 39cdf63..02c8232 100644
--- a/tests/auto/gestures/tst_gestures.cpp
+++ b/tests/auto/gestures/tst_gestures.cpp
@@ -344,14 +344,14 @@ tst_Gestures::~tst_Gestures()
 
 void tst_Gestures::initTestCase()
 {
-    CustomGesture::GestureType = qApp->registerGestureRecognizer(new CustomGestureRecognizer);
+    CustomGesture::GestureType = QApplication::registerGestureRecognizer(new CustomGestureRecognizer);
     QVERIFY(CustomGesture::GestureType != Qt::GestureType(0));
     QVERIFY(CustomGesture::GestureType != Qt::CustomGesture);
 }
 
 void tst_Gestures::cleanupTestCase()
 {
-    qApp->unregisterGestureRecognizer(CustomGesture::GestureType);
+    QApplication::unregisterGestureRecognizer(CustomGesture::GestureType);
 }
 
 void tst_Gestures::init()
@@ -558,7 +558,7 @@ void tst_Gestures::conflictingGestures()
     parent.reset();
     child->reset();
 
-    Qt::GestureType ContinuousGesture = qApp->registerGestureRecognizer(new CustomContinuousGestureRecognizer);
+    Qt::GestureType ContinuousGesture = QApplication::registerGestureRecognizer(new CustomContinuousGestureRecognizer);
     static const int ContinuousGestureEventsCount = CustomGesture::SerialFinishedThreshold - CustomGesture::SerialMaybeThreshold + 1;
     child->grabGesture(ContinuousGesture);
     // child accepts override. And it also receives another custom gesture.
@@ -572,7 +572,7 @@ void tst_Gestures::conflictingGestures()
     QCOMPARE(parent.gestureOverrideEventsReceived, 0);
     QCOMPARE(parent.gestureEventsReceived, 0);
 
-    qApp->unregisterGestureRecognizer(ContinuousGesture);
+    QApplication::unregisterGestureRecognizer(ContinuousGesture);
 }
 
 void tst_Gestures::finishedWithoutStarted()
@@ -981,7 +981,7 @@ void tst_Gestures::twoGesturesOnDifferentLevel()
     GestureWidget *child = new GestureWidget("child");
     l->addWidget(child);
 
-    Qt::GestureType SecondGesture = qApp->registerGestureRecognizer(new CustomGestureRecognizer);
+    Qt::GestureType SecondGesture = QApplication::registerGestureRecognizer(new CustomGestureRecognizer);
 
     parent.grabGesture(CustomGesture::GestureType, Qt::WidgetWithChildrenGesture);
     child->grabGesture(SecondGesture, Qt::WidgetWithChildrenGesture);
@@ -1009,7 +1009,7 @@ void tst_Gestures::twoGesturesOnDifferentLevel()
     for(int i = 0; i < child->events.all.size(); ++i)
         QCOMPARE(parent.events.all.at(i), CustomGesture::GestureType);
 
-    qApp->unregisterGestureRecognizer(SecondGesture);
+    QApplication::unregisterGestureRecognizer(SecondGesture);
 }
 
 void tst_Gestures::multipleGesturesInTree()
@@ -1021,8 +1021,8 @@ void tst_Gestures::multipleGesturesInTree()
     GestureWidget *D = new GestureWidget("D", C);
 
     Qt::GestureType FirstGesture  = CustomGesture::GestureType;
-    Qt::GestureType SecondGesture = qApp->registerGestureRecognizer(new CustomGestureRecognizer);
-    Qt::GestureType ThirdGesture  = qApp->registerGestureRecognizer(new CustomGestureRecognizer);
+    Qt::GestureType SecondGesture = QApplication::registerGestureRecognizer(new CustomGestureRecognizer);
+    Qt::GestureType ThirdGesture  = QApplication::registerGestureRecognizer(new CustomGestureRecognizer);
 
     A->grabGesture(FirstGesture, Qt::WidgetWithChildrenGesture);   // A [1   3]
     A->grabGesture(ThirdGesture, Qt::WidgetWithChildrenGesture);   // |
@@ -1079,8 +1079,8 @@ void tst_Gestures::multipleGesturesInTree()
     QCOMPARE(A->events.all.count(SecondGesture), 0);
     QCOMPARE(A->events.all.count(ThirdGesture), TotalGestureEventsCount);
 
-    qApp->unregisterGestureRecognizer(SecondGesture);
-    qApp->unregisterGestureRecognizer(ThirdGesture);
+    QApplication::unregisterGestureRecognizer(SecondGesture);
+    QApplication::unregisterGestureRecognizer(ThirdGesture);
 }
 
 void tst_Gestures::multipleGesturesInComplexTree()
@@ -1092,12 +1092,12 @@ void tst_Gestures::multipleGesturesInComplexTree()
     GestureWidget *D = new GestureWidget("D", C);
 
     Qt::GestureType FirstGesture   = CustomGesture::GestureType;
-    Qt::GestureType SecondGesture  = qApp->registerGestureRecognizer(new CustomGestureRecognizer);
-    Qt::GestureType ThirdGesture   = qApp->registerGestureRecognizer(new CustomGestureRecognizer);
-    Qt::GestureType FourthGesture  = qApp->registerGestureRecognizer(new CustomGestureRecognizer);
-    Qt::GestureType FifthGesture   = qApp->registerGestureRecognizer(new CustomGestureRecognizer);
-    Qt::GestureType SixthGesture   = qApp->registerGestureRecognizer(new CustomGestureRecognizer);
-    Qt::GestureType SeventhGesture = qApp->registerGestureRecognizer(new CustomGestureRecognizer);
+    Qt::GestureType SecondGesture  = QApplication::registerGestureRecognizer(new CustomGestureRecognizer);
+    Qt::GestureType ThirdGesture   = QApplication::registerGestureRecognizer(new CustomGestureRecognizer);
+    Qt::GestureType FourthGesture  = QApplication::registerGestureRecognizer(new CustomGestureRecognizer);
+    Qt::GestureType FifthGesture   = QApplication::registerGestureRecognizer(new CustomGestureRecognizer);
+    Qt::GestureType SixthGesture   = QApplication::registerGestureRecognizer(new CustomGestureRecognizer);
+    Qt::GestureType SeventhGesture = QApplication::registerGestureRecognizer(new CustomGestureRecognizer);
 
     A->grabGesture(FirstGesture, Qt::WidgetWithChildrenGesture);   // A [1,3,4]
     A->grabGesture(ThirdGesture, Qt::WidgetWithChildrenGesture);   // |
@@ -1175,12 +1175,12 @@ void tst_Gestures::multipleGesturesInComplexTree()
     QCOMPARE(A->events.all.count(SixthGesture), 0);
     QCOMPARE(A->events.all.count(SeventhGesture), 0);
 
-    qApp->unregisterGestureRecognizer(SecondGesture);
-    qApp->unregisterGestureRecognizer(ThirdGesture);
-    qApp->unregisterGestureRecognizer(FourthGesture);
-    qApp->unregisterGestureRecognizer(FifthGesture);
-    qApp->unregisterGestureRecognizer(SixthGesture);
-    qApp->unregisterGestureRecognizer(SeventhGesture);
+    QApplication::unregisterGestureRecognizer(SecondGesture);
+    QApplication::unregisterGestureRecognizer(ThirdGesture);
+    QApplication::unregisterGestureRecognizer(FourthGesture);
+    QApplication::unregisterGestureRecognizer(FifthGesture);
+    QApplication::unregisterGestureRecognizer(SixthGesture);
+    QApplication::unregisterGestureRecognizer(SeventhGesture);
 }
 
 void tst_Gestures::testMapToScene()
@@ -1329,7 +1329,7 @@ void tst_Gestures::autoCancelGestures()
     GestureWidget *child = new GestureWidget("child", &parent);
     child->setGeometry(10, 10, 100, 80);
 
-    Qt::GestureType type = qApp->registerGestureRecognizer(new MockRecognizer());
+    Qt::GestureType type = QApplication::registerGestureRecognizer(new MockRecognizer());
     parent.grabGesture(type, Qt::WidgetWithChildrenGesture);
     child->grabGesture(type, Qt::WidgetWithChildrenGesture);
 
diff --git a/tests/manual/gestures/graphicsview/main.cpp b/tests/manual/gestures/graphicsview/main.cpp
index e9065eb..de92afe 100644
--- a/tests/manual/gestures/graphicsview/main.cpp
+++ b/tests/manual/gestures/graphicsview/main.cpp
@@ -152,8 +152,8 @@ private:
 
 MainWindow::MainWindow()
 {
-    (void)qApp->registerGestureRecognizer(new MousePanGestureRecognizer);
-    ThreeFingerSlideGesture::Type = qApp->registerGestureRecognizer(new ThreeFingerSlideGestureRecognizer);
+    (void)QApplication::registerGestureRecognizer(new MousePanGestureRecognizer);
+    ThreeFingerSlideGesture::Type = QApplication::registerGestureRecognizer(new ThreeFingerSlideGestureRecognizer);
 
     tabWidget = new QTabWidget;
 
-- 
cgit v0.12


From 4f4c4fda9925f585128175796d04926863943dad Mon Sep 17 00:00:00 2001
From: dka <darpan.k-a@nokia.com>
Date: Mon, 19 Oct 2009 12:21:02 +0300
Subject: QLocale: AM/PM symbol support for symbian platform

Reviewed-by: Denis Dzyubenko
---
 src/corelib/tools/qlocale_symbian.cpp | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/corelib/tools/qlocale_symbian.cpp b/src/corelib/tools/qlocale_symbian.cpp
index 1660e95..1273d06 100644
--- a/src/corelib/tools/qlocale_symbian.cpp
+++ b/src/corelib/tools/qlocale_symbian.cpp
@@ -873,9 +873,11 @@ QVariant QSystemLocale::query(QueryType type, QVariant in = QVariant()) const
             }
         case NegativeSign:
         case PositiveSign:
+            break;
         case AMText:
+            return qt_TDes2QString(TAmPmName(TAmPm(EAm)));
         case PMText:
-            break;
+            return qt_TDes2QString(TAmPmName(TAmPm(EPm)));
         default:
             break;
     }
-- 
cgit v0.12


From 7a215265994bca72bbc7fcc198048c2f6bb7527a Mon Sep 17 00:00:00 2001
From: Denis Dzyubenko <denis.dzyubenko@nokia.com>
Date: Wed, 28 Oct 2009 12:05:26 +0100
Subject: Removed obsolete private field from the QGesture and fixed the doc.

Reviewed-by: Thomas Zander
---
 src/gui/kernel/qgesture.cpp           | 11 +++++------
 src/gui/kernel/qgesture_p.h           |  5 +----
 src/gui/kernel/qgesturerecognizer.cpp |  2 +-
 3 files changed, 7 insertions(+), 11 deletions(-)

diff --git a/src/gui/kernel/qgesture.cpp b/src/gui/kernel/qgesture.cpp
index c302c51..b72fae0 100644
--- a/src/gui/kernel/qgesture.cpp
+++ b/src/gui/kernel/qgesture.cpp
@@ -69,10 +69,9 @@ QT_BEGIN_NAMESPACE
 
     \section1 Lifecycle of a Gesture Object
 
-    A QGesture instance is created when the application calls QWidget::grabGesture()
-    or QGraphicsObject::grabGesture() to configure a widget or graphics object (the
-    target object) for gesture input. One gesture object is created for each target
-    object.
+    A QGesture instance is implicitely created when needed and is owned by Qt,
+    so application developer should never destroy them or store a pointer to a
+    QGesture object.
 
     The registered gesture recognizer monitors the input events for the target
     object via its \l{QGestureRecognizer::}{filterEvent()} function, updating the
@@ -133,8 +132,8 @@ QGesture::~QGesture()
     QWidget::mapFromGlobal() or QGestureEvent::mapToScene() to get a
     local hot-spot.
 
-    If the hot-spot is not set, the targetObject is used as the receiver of the
-    gesture event.
+    The hot-spot should be set by the gesture recognizer to allow gesture event
+    delivery to a QGraphicsObject.
 */
 
 /*!
diff --git a/src/gui/kernel/qgesture_p.h b/src/gui/kernel/qgesture_p.h
index d2ef8a7..34fbb26 100644
--- a/src/gui/kernel/qgesture_p.h
+++ b/src/gui/kernel/qgesture_p.h
@@ -68,9 +68,7 @@ class QGesturePrivate : public QObjectPrivate
 public:
     QGesturePrivate()
         : gestureType(Qt::CustomGesture), state(Qt::NoGesture),
-          targetObject(0),
-          isHotSpotSet(false),
-          gestureCancelPolicy(0)
+          isHotSpotSet(false), gestureCancelPolicy(0)
 
     {
     }
@@ -78,7 +76,6 @@ public:
     Qt::GestureType gestureType;
     Qt::GestureState state;
     QPointF hotSpot;
-    QObject *targetObject;
     uint isHotSpotSet : 1;
     uint gestureCancelPolicy : 2;
 };
diff --git a/src/gui/kernel/qgesturerecognizer.cpp b/src/gui/kernel/qgesturerecognizer.cpp
index c2b26f0..2673be3 100644
--- a/src/gui/kernel/qgesturerecognizer.cpp
+++ b/src/gui/kernel/qgesturerecognizer.cpp
@@ -178,7 +178,7 @@ void QGestureRecognizer::reset(QGesture *gesture)
         QGesturePrivate *d = gesture->d_func();
         d->state = Qt::NoGesture;
         d->hotSpot = QPointF();
-        d->targetObject = 0;
+        d->isHotSpotSet = false;
     }
 }
 
-- 
cgit v0.12


From a2b12363c96d4307444552eefc21eebf430dba5d Mon Sep 17 00:00:00 2001
From: Denis Dzyubenko <denis.dzyubenko@nokia.com>
Date: Wed, 28 Oct 2009 13:05:20 +0100
Subject: Fixed the scrollarea gesture manual test.

Reviewed-by: trustme
---
 tests/manual/gestures/scrollarea/mousepangesturerecognizer.cpp | 2 +-
 tests/manual/gestures/scrollarea/mousepangesturerecognizer.h   | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/tests/manual/gestures/scrollarea/mousepangesturerecognizer.cpp b/tests/manual/gestures/scrollarea/mousepangesturerecognizer.cpp
index 5f94dbc..63d3e76 100644
--- a/tests/manual/gestures/scrollarea/mousepangesturerecognizer.cpp
+++ b/tests/manual/gestures/scrollarea/mousepangesturerecognizer.cpp
@@ -49,7 +49,7 @@ MousePanGestureRecognizer::MousePanGestureRecognizer()
 {
 }
 
-QGesture* MousePanGestureRecognizer::createGesture(QObject *) const
+QGesture* MousePanGestureRecognizer::createGesture(QObject *)
 {
     return new QPanGesture;
 }
diff --git a/tests/manual/gestures/scrollarea/mousepangesturerecognizer.h b/tests/manual/gestures/scrollarea/mousepangesturerecognizer.h
index c92d477..b062fd0 100644
--- a/tests/manual/gestures/scrollarea/mousepangesturerecognizer.h
+++ b/tests/manual/gestures/scrollarea/mousepangesturerecognizer.h
@@ -49,7 +49,7 @@ class MousePanGestureRecognizer : public QGestureRecognizer
 public:
     MousePanGestureRecognizer();
 
-    QGesture* createGesture(QObject *target) const;
+    QGesture* createGesture(QObject *target);
     QGestureRecognizer::Result filterEvent(QGesture *state, QObject *watched, QEvent *event);
     void reset(QGesture *state);
 };
-- 
cgit v0.12


From 3ce8fb5e754014ed29cabf9e33b71dabecb02e46 Mon Sep 17 00:00:00 2001
From: Denis Dzyubenko <denis.dzyubenko@nokia.com>
Date: Wed, 28 Oct 2009 13:06:03 +0100
Subject: Fixed the gesture event filtering through multiple gesture
 recognizers.

When there are several gesture recognizers registered for the same
gesture type, we need to know which recognizer we need to get a state
object for since those QGesture objects are tied to the recognizer that
created them.

Reviewed-by: Thomas Zander
---
 src/gui/kernel/qgesturemanager.cpp | 49 ++++++++++++++++++++------------------
 src/gui/kernel/qgesturemanager_p.h |  5 ++--
 2 files changed, 29 insertions(+), 25 deletions(-)

diff --git a/src/gui/kernel/qgesturemanager.cpp b/src/gui/kernel/qgesturemanager.cpp
index a90c299..04dcfe3 100644
--- a/src/gui/kernel/qgesturemanager.cpp
+++ b/src/gui/kernel/qgesturemanager.cpp
@@ -118,7 +118,7 @@ void QGestureManager::unregisterGestureRecognizer(Qt::GestureType type)
 
     foreach (QGestureRecognizer *recognizer, list) {
         QList<QGesture *> obsoleteGestures;
-        QMap<ObjectGesture, QGesture *>::Iterator iter = m_objectGestures.begin();
+        QMap<ObjectGesture, QList<QGesture *> >::Iterator iter = m_objectGestures.begin();
         while (iter != m_objectGestures.end()) {
             ObjectGesture objectGesture = iter.key();
             if (objectGesture.gesture == type)
@@ -131,11 +131,11 @@ void QGestureManager::unregisterGestureRecognizer(Qt::GestureType type)
 
 void QGestureManager::cleanupCachedGestures(QObject *target, Qt::GestureType type)
 {
-    QMap<ObjectGesture, QGesture *>::Iterator iter = m_objectGestures.begin();
+    QMap<ObjectGesture, QList<QGesture *> >::Iterator iter = m_objectGestures.begin();
     while (iter != m_objectGestures.end()) {
         ObjectGesture objectGesture = iter.key();
         if (objectGesture.gesture == type && target == objectGesture.object.data()) {
-            delete iter.value();
+            qDeleteAll(iter.value());
             iter = m_objectGestures.erase(iter);
         } else {
             ++iter;
@@ -144,7 +144,7 @@ void QGestureManager::cleanupCachedGestures(QObject *target, Qt::GestureType typ
 }
 
 // get or create a QGesture object that will represent the state for a given object, used by the recognizer
-QGesture *QGestureManager::getState(QObject *object, Qt::GestureType type)
+QGesture *QGestureManager::getState(QObject *object, QGestureRecognizer *recognizer, Qt::GestureType type)
 {
     // if the widget is being deleted we should be carefull and not to
     // create a new state, as it will create QWeakPointer which doesnt work
@@ -158,28 +158,31 @@ QGesture *QGestureManager::getState(QObject *object, Qt::GestureType type)
         Q_ASSERT(qobject_cast<QGraphicsObject *>(object));
     }
 
-    QGesture *state =
+    QList<QGesture *> states =
             m_objectGestures.value(QGestureManager::ObjectGesture(object, type));
-    if (!state) {
-        QGestureRecognizer *recognizer = m_recognizers.value(type);
-        if (recognizer) {
-            state = recognizer->createGesture(object);
-            if (!state)
-                return 0;
-            state->setParent(this);
-            if (state->gestureType() == Qt::CustomGesture) {
-                // if the recognizer didn't fill in the gesture type, then this
-                // is a custom gesture with autogenerated it and we fill it.
-                state->d_func()->gestureType = type;
+    // check if the QGesture for this recognizer has already been created
+    foreach (QGesture *state, states) {
+        if (m_gestureToRecognizer.value(state) == recognizer)
+            return state;
+    }
+
+    Q_ASSERT(recognizer);
+    QGesture *state = recognizer->createGesture(object);
+    if (!state)
+        return 0;
+    state->setParent(this);
+    if (state->gestureType() == Qt::CustomGesture) {
+        // if the recognizer didn't fill in the gesture type, then this
+        // is a custom gesture with autogenerated id and we fill it.
+        state->d_func()->gestureType = type;
 #if defined(GESTURE_DEBUG)
-                state->setObjectName(QString::number((int)type));
+        state->setObjectName(QString::number((int)type));
 #endif
-            }
-            m_objectGestures.insert(QGestureManager::ObjectGesture(object, type), state);
-            m_gestureToRecognizer[state] = recognizer;
-            m_gestureOwners[state] = object;
-        }
     }
+    m_objectGestures[QGestureManager::ObjectGesture(object, type)].append(state);
+    m_gestureToRecognizer[state] = recognizer;
+    m_gestureOwners[state] = object;
+
     return state;
 }
 
@@ -208,7 +211,7 @@ bool QGestureManager::filterEventThroughContexts(const QMap<QObject *,
         for (; rit != re; ++rit) {
             QGestureRecognizer *recognizer = rit.value();
             QObject *target = cit.key();
-            QGesture *state = getState(target, gestureType);
+            QGesture *state = getState(target, recognizer, gestureType);
             if (!state)
                 continue;
             QGestureRecognizer::Result result = recognizer->filterEvent(state, target, event);
diff --git a/src/gui/kernel/qgesturemanager_p.h b/src/gui/kernel/qgesturemanager_p.h
index 5a2816c..f128273 100644
--- a/src/gui/kernel/qgesturemanager_p.h
+++ b/src/gui/kernel/qgesturemanager_p.h
@@ -116,7 +116,7 @@ private:
         }
     };
 
-    QMap<ObjectGesture, QGesture *> m_objectGestures;
+    QMap<ObjectGesture, QList<QGesture *> > m_objectGestures;
     QMap<QGesture *, QGestureRecognizer *> m_gestureToRecognizer;
     QHash<QGesture *, QObject *> m_gestureOwners;
 
@@ -128,7 +128,8 @@ private:
     QMap<QGesture *, QGestureRecognizer *> m_deletedRecognizers;
     void cleanupGesturesForRemovedRecognizer(QGesture *gesture);
 
-    QGesture *getState(QObject *widget, Qt::GestureType gesture);
+    QGesture *getState(QObject *widget, QGestureRecognizer *recognizer,
+                       Qt::GestureType gesture);
     void deliverEvents(const QSet<QGesture *> &gestures,
                        QSet<QGesture *> *undeliveredGestures);
     void getGestureTargets(const QSet<QGesture*> &gestures,
-- 
cgit v0.12


From 96b8e9f824daaf88cb8c153caa774a92b0261580 Mon Sep 17 00:00:00 2001
From: Denis Dzyubenko <denis.dzyubenko@nokia.com>
Date: Wed, 28 Oct 2009 13:11:49 +0100
Subject: Delete all gesture objects and recognizers when gesture manager is
 deleted.

When application closes and we haven't deleted the unregistered gestures
and gesture recognizer, we should delete them.

Reviewed-by: Thomas Zander
---
 src/gui/kernel/qgesturemanager.cpp | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/src/gui/kernel/qgesturemanager.cpp b/src/gui/kernel/qgesturemanager.cpp
index 04dcfe3..3eb15cf 100644
--- a/src/gui/kernel/qgesturemanager.cpp
+++ b/src/gui/kernel/qgesturemanager.cpp
@@ -83,6 +83,11 @@ QGestureManager::QGestureManager(QObject *parent)
 QGestureManager::~QGestureManager()
 {
     qDeleteAll(m_recognizers.values());
+    foreach (QGestureRecognizer *recognizer, m_obsoleteGestures.keys()) {
+        qDeleteAll(m_obsoleteGestures.value(recognizer));
+        delete recognizer;
+    }
+    m_obsoleteGestures.clear();
 }
 
 Qt::GestureType QGestureManager::registerGestureRecognizer(QGestureRecognizer *recognizer)
-- 
cgit v0.12


From 6efb1b7df725c74f265d0f315993542b0bd19b97 Mon Sep 17 00:00:00 2001
From: Denis Dzyubenko <denis.dzyubenko@nokia.com>
Date: Wed, 28 Oct 2009 14:07:53 +0100
Subject: Tiny doc change by David Boddie.

Reviewed-by: David Boddie
---
 src/gui/kernel/qgesture.cpp | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/gui/kernel/qgesture.cpp b/src/gui/kernel/qgesture.cpp
index b72fae0..850f22c 100644
--- a/src/gui/kernel/qgesture.cpp
+++ b/src/gui/kernel/qgesture.cpp
@@ -69,9 +69,9 @@ QT_BEGIN_NAMESPACE
 
     \section1 Lifecycle of a Gesture Object
 
-    A QGesture instance is implicitely created when needed and is owned by Qt,
-    so application developer should never destroy them or store a pointer to a
-    QGesture object.
+    A QGesture instance is implicitly created when needed and is owned by Qt.
+    Developers should never destroy them or store them for later use as Qt may
+    destroy particular instances of them and create new ones to replace them.
 
     The registered gesture recognizer monitors the input events for the target
     object via its \l{QGestureRecognizer::}{filterEvent()} function, updating the
-- 
cgit v0.12


From 4b3ef85b499d9ec508acdf83d250e022161defbb Mon Sep 17 00:00:00 2001
From: Denis Dzyubenko <denis.dzyubenko@nokia.com>
Date: Wed, 28 Oct 2009 14:30:11 +0100
Subject: Replaced QMap with QHash where possible in the gesture manager
 implementation.

There is no reason to use QMap when the key is a pointer.

Reviewed-by: Thomas Zander
---
 src/gui/kernel/qgesturemanager.cpp | 18 +++++++++---------
 src/gui/kernel/qgesturemanager_p.h |  8 ++++----
 2 files changed, 13 insertions(+), 13 deletions(-)

diff --git a/src/gui/kernel/qgesturemanager.cpp b/src/gui/kernel/qgesturemanager.cpp
index 3eb15cf..f1abc89 100644
--- a/src/gui/kernel/qgesturemanager.cpp
+++ b/src/gui/kernel/qgesturemanager.cpp
@@ -113,7 +113,7 @@ void QGestureManager::unregisterGestureRecognizer(Qt::GestureType type)
 {
     QList<QGestureRecognizer *> list = m_recognizers.values(type);
     m_recognizers.remove(type);
-    foreach (QGesture* g, m_gestureToRecognizer.keys()) {
+    foreach (QGesture *g, m_gestureToRecognizer.keys()) {
         QGestureRecognizer *recognizer = m_gestureToRecognizer.value(g);
         if (list.contains(recognizer)) {
             m_deletedRecognizers.insert(g, recognizer);
@@ -191,7 +191,7 @@ QGesture *QGestureManager::getState(QObject *object, QGestureRecognizer *recogni
     return state;
 }
 
-bool QGestureManager::filterEventThroughContexts(const QMap<QObject *,
+bool QGestureManager::filterEventThroughContexts(const QMultiHash<QObject *,
                                                  Qt::GestureType> &contexts,
                                                  QEvent *event)
 {
@@ -207,7 +207,7 @@ bool QGestureManager::filterEventThroughContexts(const QMap<QObject *,
     bool ret = false;
 
     // filter the event through recognizers
-    typedef QMap<QObject *, Qt::GestureType>::const_iterator ContextIterator;
+    typedef QHash<QObject *, Qt::GestureType>::const_iterator ContextIterator;
     for (ContextIterator cit = contexts.begin(), ce = contexts.end(); cit != ce; ++cit) {
         Qt::GestureType gestureType = cit.value();
         QMap<Qt::GestureType, QGestureRecognizer *>::const_iterator
@@ -269,7 +269,7 @@ bool QGestureManager::filterEventThroughContexts(const QMap<QObject *,
                                          | finishedGestures | canceledGestures
                                          | notGestures);
     foreach(QGesture *gesture, notMaybeGestures) {
-        QMap<QGesture *, QBasicTimer>::iterator it =
+        QHash<QGesture *, QBasicTimer>::iterator it =
                 m_maybeGestures.find(gesture);
         if (it != m_maybeGestures.end()) {
             it.value().stop();
@@ -437,7 +437,7 @@ void QGestureManager::cleanupGesturesForRemovedRecognizer(QGesture *gesture)
 bool QGestureManager::filterEvent(QWidget *receiver, QEvent *event)
 {
     QSet<Qt::GestureType> types;
-    QMap<QObject *, Qt::GestureType> contexts;
+    QMultiHash<QObject *, Qt::GestureType> contexts;
     QWidget *w = receiver;
     typedef QMap<Qt::GestureType, Qt::GestureContext>::const_iterator ContextIterator;
     if (!w->d_func()->gestureContext.isEmpty()) {
@@ -470,7 +470,7 @@ bool QGestureManager::filterEvent(QWidget *receiver, QEvent *event)
 bool QGestureManager::filterEvent(QGraphicsObject *receiver, QEvent *event)
 {
     QSet<Qt::GestureType> types;
-    QMap<QObject *, Qt::GestureType> contexts;
+    QMultiHash<QObject *, Qt::GestureType> contexts;
     QGraphicsObject *item = receiver;
     if (!item->QGraphicsItem::d_func()->gestureContext.isEmpty()) {
         typedef QMap<Qt::GestureType, Qt::GestureContext>::const_iterator ContextIterator;
@@ -501,7 +501,7 @@ bool QGestureManager::filterEvent(QGraphicsObject *receiver, QEvent *event)
 
 bool QGestureManager::filterEvent(QGesture *state, QEvent *event)
 {
-    QMap<QObject *, Qt::GestureType> contexts;
+    QMultiHash<QObject *, Qt::GestureType> contexts;
     contexts.insert(state, state->gestureType());
     return filterEventThroughContexts(contexts, event);
 }
@@ -656,8 +656,8 @@ void QGestureManager::deliverEvents(const QSet<QGesture *> &gestures,
 
 void QGestureManager::timerEvent(QTimerEvent *event)
 {
-    QMap<QGesture*, QBasicTimer>::iterator it = m_maybeGestures.begin(),
-                                            e = m_maybeGestures.end();
+    QHash<QGesture *, QBasicTimer>::iterator it = m_maybeGestures.begin(),
+                                             e = m_maybeGestures.end();
     for (; it != e; ) {
         QBasicTimer &timer = it.value();
         Q_ASSERT(timer.isActive());
diff --git a/src/gui/kernel/qgesturemanager_p.h b/src/gui/kernel/qgesturemanager_p.h
index f128273..4958cdb 100644
--- a/src/gui/kernel/qgesturemanager_p.h
+++ b/src/gui/kernel/qgesturemanager_p.h
@@ -83,14 +83,14 @@ public:
 
 protected:
     void timerEvent(QTimerEvent *event);
-    bool filterEventThroughContexts(const QMap<QObject *, Qt::GestureType> &contexts,
+    bool filterEventThroughContexts(const QMultiHash<QObject *, Qt::GestureType> &contexts,
                                     QEvent *event);
 
 private:
     QMultiMap<Qt::GestureType, QGestureRecognizer *> m_recognizers;
 
     QSet<QGesture *> m_activeGestures;
-    QMap<QGesture *, QBasicTimer> m_maybeGestures;
+    QHash<QGesture *, QBasicTimer> m_maybeGestures;
 
     enum State {
         Gesture,
@@ -117,7 +117,7 @@ private:
     };
 
     QMap<ObjectGesture, QList<QGesture *> > m_objectGestures;
-    QMap<QGesture *, QGestureRecognizer *> m_gestureToRecognizer;
+    QHash<QGesture *, QGestureRecognizer *> m_gestureToRecognizer;
     QHash<QGesture *, QObject *> m_gestureOwners;
 
     QHash<QGesture *, QWidget *> m_gestureTargets;
@@ -125,7 +125,7 @@ private:
     int m_lastCustomGestureId;
 
     QHash<QGestureRecognizer *, QList<QGesture *> > m_obsoleteGestures;
-    QMap<QGesture *, QGestureRecognizer *> m_deletedRecognizers;
+    QHash<QGesture *, QGestureRecognizer *> m_deletedRecognizers;
     void cleanupGesturesForRemovedRecognizer(QGesture *gesture);
 
     QGesture *getState(QObject *widget, QGestureRecognizer *recognizer,
-- 
cgit v0.12


From e4606e2d6491bd7020e8bfb12665c3addc24b7e3 Mon Sep 17 00:00:00 2001
From: Prasanth Ullattil <prasanth.ulattil@nokia.com>
Date: Wed, 28 Oct 2009 14:47:28 +0100
Subject: Wrong font used when moving a tab in document mode.

Dragging is handled by a seperate window in document mode. The currently
selected tabbar item is drawn to a pixmap for this purpose. That
paintdevice was not initialized correctly. (e.g. font)

Reviewed-by: Trond
---
 src/gui/widgets/qtabbar.cpp | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/gui/widgets/qtabbar.cpp b/src/gui/widgets/qtabbar.cpp
index 4dffbdc..3935c55 100644
--- a/src/gui/widgets/qtabbar.cpp
+++ b/src/gui/widgets/qtabbar.cpp
@@ -1812,6 +1812,7 @@ void QTabBarPrivate::setupMovableTab()
     QPixmap grabImage(grabRect.size());
     grabImage.fill(Qt::transparent);
     QStylePainter p(&grabImage, q);
+    p.initFrom(q);
 
     QStyleOptionTabV3 tab;
     q->initStyleOption(&tab, pressedIndex);
-- 
cgit v0.12


From dbaa856d4d20840394baf8f4c9abf78051a6693a Mon Sep 17 00:00:00 2001
From: Jens Bache-Wiig <jbache@trolltech.com>
Date: Wed, 7 Oct 2009 16:15:43 +0200
Subject: Fix split tool button drawing on Vista when not in a tool bar

When a tool button is not in a tool bar on XP and Vista it will get a
slightly different appearance from normal tool buttons. I resolved
this by drawing a normal tool button with a divider line on top
if the autoraise property is not set on the button. (which is by
default enabled only for buttons in a tool bar).

Task-number: QTBUG-5061
Reviewed-by: prasanth
---
 src/gui/styles/qwindowsxpstyle.cpp | 46 +++++++++++++++++++++++++++++---------
 1 file changed, 36 insertions(+), 10 deletions(-)

diff --git a/src/gui/styles/qwindowsxpstyle.cpp b/src/gui/styles/qwindowsxpstyle.cpp
index 2f00f07..b5dc647 100644
--- a/src/gui/styles/qwindowsxpstyle.cpp
+++ b/src/gui/styles/qwindowsxpstyle.cpp
@@ -2841,8 +2841,8 @@ void QWindowsXPStyle::drawComplexControl(ComplexControl cc, const QStyleOptionCo
 
             State bflags = toolbutton->state & ~State_Sunken;
             State mflags = bflags;
-
-            if (bflags & State_AutoRaise) {
+            bool autoRaise = flags & State_AutoRaise;
+            if (autoRaise) {
                 if (!(bflags & State_MouseOver) || !(bflags & State_Enabled)) {
                     bflags &= ~State_Raised;
                 }
@@ -2861,8 +2861,8 @@ void QWindowsXPStyle::drawComplexControl(ComplexControl cc, const QStyleOptionCo
             QStyleOption tool(0);
             tool.palette = toolbutton->palette;
             if (toolbutton->subControls & SC_ToolButton) {
-                if (flags & (State_Sunken | State_On | State_Raised) || !(flags & State_AutoRaise)) {
-                    if (toolbutton->features & QStyleOptionToolButton::MenuButtonPopup) {
+                if (flags & (State_Sunken | State_On | State_Raised) || !autoRaise) {
+                    if (toolbutton->features & QStyleOptionToolButton::MenuButtonPopup && autoRaise) {
                         XPThemeData theme(widget, p, QLatin1String("TOOLBAR"));
                         theme.partId = TP_SPLITBUTTON;
                         theme.rect = button;
@@ -2881,13 +2881,12 @@ void QWindowsXPStyle::drawComplexControl(ComplexControl cc, const QStyleOptionCo
                         theme.stateId = stateId;
                         d->drawBackground(theme);
                     } else {
-                        tool.rect = button;
+                        tool.rect = option->rect;
                         tool.state = bflags;
-                        if (widget && !qobject_cast<QToolBar*>(widget->parentWidget())
-                                   && !(bflags & State_AutoRaise))
-                            proxy()->drawPrimitive(PE_PanelButtonBevel, &tool, p, widget);
-                        else
+                        if (autoRaise) // for tool bars
                             proxy()->drawPrimitive(PE_PanelButtonTool, &tool, p, widget);
+                        else
+                            proxy()->drawPrimitive(PE_PanelButtonBevel, &tool, p, widget);
                     }
                 }
             }
@@ -2904,13 +2903,40 @@ void QWindowsXPStyle::drawComplexControl(ComplexControl cc, const QStyleOptionCo
             QStyleOptionToolButton label = *toolbutton;
             label.state = bflags;
             int fw = 2;
+            if (!autoRaise)
+                label.state &= ~State_Sunken;
             label.rect = button.adjusted(fw, fw, -fw, -fw);
             proxy()->drawControl(CE_ToolButtonLabel, &label, p, widget);
 
             if (toolbutton->subControls & SC_ToolButtonMenu) {
                 tool.rect = menuarea;
                 tool.state = mflags;
-                proxy()->drawPrimitive(PE_IndicatorButtonDropDown, &tool, p, widget);
+                if (autoRaise) {
+                    proxy()->drawPrimitive(PE_IndicatorButtonDropDown, &tool, p, widget);
+                } else {
+                    tool.state = mflags;
+                    menuarea.adjust(-2, 0, 0, 0);
+                    // Draw menu button
+                    if ((bflags & State_Sunken) != (mflags & State_Sunken)){
+                        p->save();
+                        p->setClipRect(menuarea);
+                        tool.rect = option->rect;
+                        proxy()->drawPrimitive(PE_PanelButtonBevel, &tool, p, 0);
+                        p->restore();
+                    }
+                    // Draw arrow
+                    p->save();
+                    p->setPen(option->palette.dark());
+                    p->drawLine(menuarea.left(), menuarea.top() + 3,
+                                menuarea.left(), menuarea.bottom() - 3);
+                    p->setPen(option->palette.light());
+                    p->drawLine(menuarea.left() - 1, menuarea.top() + 3,
+                                menuarea.left() - 1, menuarea.bottom() - 3);
+
+                    tool.rect = menuarea.adjusted(2, 3, -2, -1);
+                    proxy()->drawPrimitive(PE_IndicatorArrowDown, &tool, p, widget);
+                    p->restore();
+                }
             } else if (toolbutton->features & QStyleOptionToolButton::HasMenu) {
                 int mbi = proxy()->pixelMetric(PM_MenuButtonIndicator, toolbutton, widget);
                 QRect ir = toolbutton->rect;
-- 
cgit v0.12


From 5eb2f63acda335aaf06e302ee4564259bc60222a Mon Sep 17 00:00:00 2001
From: Jens Bache-Wiig <jbache@trolltech.com>
Date: Wed, 7 Oct 2009 18:29:46 +0200
Subject: Fix a combobox autotest on Vista

The subcontrol rect offset was correctly reporting
not to work on Vista style. The problem was that we were
getting the size of the arrow by subtracting the xoffset.
But this would mean that the

Reviewed-by: ogoffart
---
 src/gui/styles/qwindowsvistastyle.cpp | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/gui/styles/qwindowsvistastyle.cpp b/src/gui/styles/qwindowsvistastyle.cpp
index 6cb8b40..974bce1 100644
--- a/src/gui/styles/qwindowsvistastyle.cpp
+++ b/src/gui/styles/qwindowsvistastyle.cpp
@@ -2217,14 +2217,15 @@ QRect QWindowsVistaStyle::subControlRect(ComplexControl control, const QStyleOpt
             int xpos = x;
             int margin = cb->frame ? 3 : 0;
             int bmarg = cb->frame ? 2 : 0;
-            xpos += wi - bmarg - 16;
+            int arrowButtonWidth = bmarg + 16;
+            xpos += wi - arrowButtonWidth;
 
             switch (subControl) {
             case SC_ComboBoxFrame:
                 rect = cb->rect;
                 break;
             case SC_ComboBoxArrow:
-                rect.setRect(xpos, y , wi - xpos, he);
+                rect.setRect(xpos, y , arrowButtonWidth, he);
                 break;
             case SC_ComboBoxEditField:
                 rect.setRect(x + margin, y + margin, wi - 2 * margin - 16, he - 2 * margin);
-- 
cgit v0.12


From b1f9882fa52745c922eb0109daa011908214dcf7 Mon Sep 17 00:00:00 2001
From: Dean Dettman <dean.dettman@nokia.com>
Date: Thu, 29 Oct 2009 11:29:08 +0100
Subject: Ensure that button returns 0 for mouse move events

This was a platform regression for the cocoa platform

Reviewed-by: Prasanth
---
 src/gui/kernel/qcocoaview_mac.mm           |  7 ++-
 tests/auto/qmouseevent/tst_qmouseevent.cpp | 75 ++++++++++++++++++++++++++++++
 2 files changed, 78 insertions(+), 4 deletions(-)

diff --git a/src/gui/kernel/qcocoaview_mac.mm b/src/gui/kernel/qcocoaview_mac.mm
index ecc6bc9..a16d1f8 100644
--- a/src/gui/kernel/qcocoaview_mac.mm
+++ b/src/gui/kernel/qcocoaview_mac.mm
@@ -745,7 +745,7 @@ extern "C" {
 {
     qMacDnDParams()->view = self;
     qMacDnDParams()->theEvent = theEvent;
-    bool mouseOK = qt_mac_handleMouseEvent(self, theEvent, QEvent::MouseMove, Qt::LeftButton);
+    bool mouseOK = qt_mac_handleMouseEvent(self, theEvent, QEvent::MouseMove, Qt::NoButton);
 
     if (!mouseOK)
         [super mouseDragged:theEvent];
@@ -755,7 +755,7 @@ extern "C" {
 {
     qMacDnDParams()->view = self;
     qMacDnDParams()->theEvent = theEvent;
-    bool mouseOK = qt_mac_handleMouseEvent(self, theEvent, QEvent::MouseMove, Qt::RightButton);
+    bool mouseOK = qt_mac_handleMouseEvent(self, theEvent, QEvent::MouseMove, Qt::NoButton);
 
     if (!mouseOK)
         [super rightMouseDragged:theEvent];
@@ -765,8 +765,7 @@ extern "C" {
 {
     qMacDnDParams()->view = self;
     qMacDnDParams()->theEvent = theEvent;
-    Qt::MouseButton mouseButton = cocoaButton2QtButton([theEvent buttonNumber]);
-    bool mouseOK = qt_mac_handleMouseEvent(self, theEvent, QEvent::MouseMove, mouseButton);
+    bool mouseOK = qt_mac_handleMouseEvent(self, theEvent, QEvent::MouseMove, Qt::NoButton);
 
     if (!mouseOK)
         [super otherMouseDragged:theEvent];
diff --git a/tests/auto/qmouseevent/tst_qmouseevent.cpp b/tests/auto/qmouseevent/tst_qmouseevent.cpp
index b961851..d700181 100644
--- a/tests/auto/qmouseevent/tst_qmouseevent.cpp
+++ b/tests/auto/qmouseevent/tst_qmouseevent.cpp
@@ -62,6 +62,7 @@ public:
     }
     bool mousePressEventRecieved;
     bool mouseReleaseEventRecieved;
+    bool mouseMoveEventRecieved;
 #ifdef QT3_SUPPORT
     int mousePressStateBefore;
     int mousePressStateAfter;
@@ -76,6 +77,13 @@ public:
     int mouseReleaseButton;
     int mouseReleaseButtons;
     int mouseReleaseModifiers;
+#ifdef QT3_SUPPORT
+    int mouseMoveStateBefore;
+    int mouseMoveStateAfter;
+#endif
+    int mouseMoveButton;
+    int mouseMoveButtons;
+    int mouseMoveModifiers;
 protected:
     void mousePressEvent(QMouseEvent *e)
     {
@@ -103,6 +111,19 @@ protected:
 	mouseReleaseEventRecieved = TRUE;
 	e->accept();
     }
+    void mouseMoveEvent(QMouseEvent *e)
+    {
+        QWidget::mouseMoveEvent(e);
+#ifdef QT3_SUPPORT
+        mouseMoveStateBefore = e->state();
+        mouseMoveStateAfter = e->stateAfter();
+#endif
+        mouseMoveButton = e->button();
+        mouseMoveButtons = e->buttons();
+        mouseMoveModifiers = e->modifiers();
+        mouseMoveEventRecieved = TRUE;
+        e->accept();
+    }
 };
 
 class tst_QMouseEvent : public QObject
@@ -124,6 +145,8 @@ private slots:
     void checkMousePressEvent();
     void checkMouseReleaseEvent_data();
     void checkMouseReleaseEvent();
+    void checkMouseMoveEvent_data();
+    void checkMouseMoveEvent();
 
     void qt3supportConstructors();
 
@@ -157,11 +180,14 @@ void tst_QMouseEvent::init()
 {
     testMouseWidget->mousePressEventRecieved = FALSE;
     testMouseWidget->mouseReleaseEventRecieved = FALSE;
+    testMouseWidget->mouseMoveEventRecieved = FALSE;
 #ifdef QT3_SUPPORT
     testMouseWidget->mousePressStateBefore = 0;
     testMouseWidget->mousePressStateAfter = 0;
     testMouseWidget->mouseReleaseStateBefore = 0;
     testMouseWidget->mouseReleaseStateAfter = 0;
+    testMouseWidget->mouseMoveStateBefore = 0;
+    testMouseWidget->mouseMoveStateAfter = 0;
 #endif
     testMouseWidget->mousePressButton = 0;
     testMouseWidget->mousePressButtons = 0;
@@ -169,6 +195,9 @@ void tst_QMouseEvent::init()
     testMouseWidget->mouseReleaseButton = 0;
     testMouseWidget->mouseReleaseButtons = 0;
     testMouseWidget->mouseReleaseModifiers = 0;
+    testMouseWidget->mouseMoveButton = 0;
+    testMouseWidget->mouseMoveButtons = 0;
+    testMouseWidget->mouseMoveModifiers = 0;
 }
 
 void tst_QMouseEvent::cleanup()
@@ -265,6 +294,52 @@ void tst_QMouseEvent::checkMouseReleaseEvent()
 #endif
 }
 
+void tst_QMouseEvent::checkMouseMoveEvent_data()
+{
+    QTest::addColumn<int>("buttonMoved");
+    QTest::addColumn<int>("keyPressed");
+
+    QTest::newRow("leftButton-nokey") << int(Qt::LeftButton) << int(Qt::NoButton);
+    QTest::newRow("leftButton-shiftkey") << int(Qt::LeftButton) << int(Qt::ShiftModifier);
+    QTest::newRow("leftButton-controlkey") << int(Qt::LeftButton) << int(Qt::ControlModifier);
+    QTest::newRow("leftButton-altkey") << int(Qt::LeftButton) << int(Qt::AltModifier);
+    QTest::newRow("leftButton-metakey") << int(Qt::LeftButton) << int(Qt::MetaModifier);
+    QTest::newRow("rightButton-nokey") << int(Qt::RightButton) << int(Qt::NoButton);
+    QTest::newRow("rightButton-shiftkey") << int(Qt::RightButton) << int(Qt::ShiftModifier);
+    QTest::newRow("rightButton-controlkey") << int(Qt::RightButton) << int(Qt::ControlModifier);
+    QTest::newRow("rightButton-altkey") << int(Qt::RightButton) << int(Qt::AltModifier);
+    QTest::newRow("rightButton-metakey") << int(Qt::RightButton) << int(Qt::MetaModifier);
+    QTest::newRow("midButton-nokey") << int(Qt::MidButton) << int(Qt::NoButton);
+    QTest::newRow("midButton-shiftkey") << int(Qt::MidButton) << int(Qt::ShiftModifier);
+    QTest::newRow("midButton-controlkey") << int(Qt::MidButton) << int(Qt::ControlModifier);
+    QTest::newRow("midButton-altkey") << int(Qt::MidButton) << int(Qt::AltModifier);
+    QTest::newRow("midButton-metakey") << int(Qt::MidButton) << int(Qt::MetaModifier);
+}
+
+void tst_QMouseEvent::checkMouseMoveEvent()
+{
+    QFETCH(int,buttonMoved);
+    QFETCH(int,keyPressed);
+    int button = (int)Qt::NoButton;
+    int buttons = buttonMoved;
+    int modifiers = keyPressed;
+
+    QTest::mousePress(testMouseWidget, Qt::MouseButton(buttonMoved), Qt::KeyboardModifiers(keyPressed));
+    QTest::mouseMove(testMouseWidget, QPoint(10,10));
+    QVERIFY(testMouseWidget->mouseMoveEventRecieved);
+    QCOMPARE(testMouseWidget->mouseMoveButton, button);
+    QCOMPARE(testMouseWidget->mouseMoveButtons, buttons);
+    QCOMPARE(testMouseWidget->mouseMoveModifiers, modifiers);
+#ifdef QT3_SUPPORT
+    int stateAfter = buttons|modifiers;
+    int stateBefore = stateAfter|button;
+
+    QCOMPARE(testMouseWidget->mouseMoveStateBefore, stateBefore);
+    QCOMPARE(testMouseWidget->mouseMoveStateAfter, stateAfter);
+#endif
+    QTest::mouseRelease(testMouseWidget, Qt::MouseButton(buttonMoved), Qt::KeyboardModifiers(keyPressed));
+}
+
 void tst_QMouseEvent::qt3supportConstructors()
 {
 #if !defined(QT3_SUPPORT)
-- 
cgit v0.12


From 9551b8c349ce4e15a57c24a2408ee1b73c2b7510 Mon Sep 17 00:00:00 2001
From: Prasanth Ullattil <prasanth.ulattil@nokia.com>
Date: Thu, 29 Oct 2009 13:46:45 +0100
Subject: Tabs with corner widgets are drawn incorrectly in document mode on
 Mac.

While drawing the tabbar frame, mac style needs the QTabBar pointer to
calculate the correct size.
Since the QTabWidget also uses the PE_FrameTabBarBase to draw background
of the corner widgets, the mac style has to use position passed with the
style option. This only works with horizontal tabs.

Reviewed-by: Jens Bache-Wiig
---
 src/gui/styles/qmacstyle_mac.mm                   | 10 +++++-----
 src/gui/widgets/qtabwidget.cpp                    |  4 ++--
 tools/assistant/tools/assistant/centralwidget.cpp |  1 +
 3 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/src/gui/styles/qmacstyle_mac.mm b/src/gui/styles/qmacstyle_mac.mm
index 4dcb469..38c3feb 100644
--- a/src/gui/styles/qmacstyle_mac.mm
+++ b/src/gui/styles/qmacstyle_mac.mm
@@ -342,12 +342,12 @@ void drawTabBase(QPainter *p, const QStyleOptionTabBarBaseV2 *tbb, const QWidget
         borderHighlightTop = QColor(207, 207, 207);
     }
     p->setPen(borderHighlightTop);
-    p->drawLine(0, 0, width, 0);
+    p->drawLine(tabRect.x(), 0, width, 0);
     p->setPen(borderTop);
-    p->drawLine(0, 1, width, 1);
+    p->drawLine(tabRect.x(), 1, width, 1);
 
     // center block
-    QRect centralRect(0, 2, width, height - 2);
+    QRect centralRect(tabRect.x(), 2, width, height - 2);
     if (active) {
         QColor mainColor = QColor(120, 120, 120);
         p->fillRect(centralRect, mainColor);
@@ -370,9 +370,9 @@ void drawTabBase(QPainter *p, const QStyleOptionTabBarBaseV2 *tbb, const QWidget
         borderBottom = QColor(127, 127, 127);
     }
     p->setPen(borderHighlightBottom);
-    p->drawLine(0, height - 2, width, height - 2);
+    p->drawLine(tabRect.x(), height - 2, width, height - 2);
     p->setPen(borderBottom);
-    p->drawLine(0, height - 1, width, height - 1);
+    p->drawLine(tabRect.x(), height - 1, width, height - 1);
 }
 
 /*
diff --git a/src/gui/widgets/qtabwidget.cpp b/src/gui/widgets/qtabwidget.cpp
index 9aeb033..0c89a72 100644
--- a/src/gui/widgets/qtabwidget.cpp
+++ b/src/gui/widgets/qtabwidget.cpp
@@ -1167,8 +1167,8 @@ void QTabWidget::tabRemoved(int index)
 void QTabWidget::paintEvent(QPaintEvent *)
 {
     Q_D(QTabWidget);
-    QStylePainter p(this);
     if (documentMode()) {
+        QStylePainter p(this, tabBar());
         if (QWidget *w = cornerWidget(Qt::TopLeftCorner)) {
             QStyleOptionTabBarBaseV2 opt;
             QTabBarPrivate::initStyleBaseOption(&opt, tabBar(), w->size());
@@ -1185,7 +1185,7 @@ void QTabWidget::paintEvent(QPaintEvent *)
         }
         return;
     }
-
+    QStylePainter p(this);
     QStyleOptionTabWidgetFrame opt;
     initStyleOption(&opt);
     opt.rect = d->panelRect;
diff --git a/tools/assistant/tools/assistant/centralwidget.cpp b/tools/assistant/tools/assistant/centralwidget.cpp
index 04739d4..2722b2f 100644
--- a/tools/assistant/tools/assistant/centralwidget.cpp
+++ b/tools/assistant/tools/assistant/centralwidget.cpp
@@ -230,6 +230,7 @@ CentralWidget::CentralWidget(QHelpEngine *engine, MainWindow *parent)
 #endif
 
     tabWidget = new QTabWidget(this);
+    tabWidget->setDocumentMode(true);
     connect(tabWidget, SIGNAL(currentChanged(int)), this,
         SLOT(currentPageChanged(int)));
 
-- 
cgit v0.12


From 8c4edbd04f350294462fd689748de2dd7cc84d47 Mon Sep 17 00:00:00 2001
From: Jens Bache-Wiig <jbache@trolltech.com>
Date: Thu, 8 Oct 2009 21:10:01 +0200
Subject: Fix tab widget painting in QGtkStyle with reverse

This also adds QStyleOptionTabWidgetFrameV2 so that we do not have
to do ugly hacks in the style to obtain it.

Task-number: QTBUG-5187
Reviewed-by: ogoffart
---
 src/gui/styles/qgtkstyle.cpp        |  43 ++++++--------
 src/gui/styles/qstyleoption.cpp     | 113 ++++++++++++++++++++++++++++++++++++
 src/gui/styles/qstyleoption.h       |  20 +++++++
 src/gui/styles/qstylesheetstyle.cpp |   2 +-
 src/gui/styles/qwindowsxpstyle.cpp  |   2 +-
 src/gui/widgets/qtabwidget.cpp      |  14 ++++-
 6 files changed, 166 insertions(+), 28 deletions(-)

diff --git a/src/gui/styles/qgtkstyle.cpp b/src/gui/styles/qgtkstyle.cpp
index d315c98..a7c291b 100644
--- a/src/gui/styles/qgtkstyle.cpp
+++ b/src/gui/styles/qgtkstyle.cpp
@@ -1004,32 +1004,27 @@ void QGtkStyle::drawPrimitive(PrimitiveElement element,
             gtkPainter.setAlphaSupport(false);
             GtkShadowType shadow = GTK_SHADOW_OUT;
             GtkStateType state = GTK_STATE_NORMAL; // Only state supported by gtknotebook
-            if (const QTabWidget *tabwidget = qobject_cast<const QTabWidget*>(widget)) {
-                // We should introduce QStyleOptionTabWidgetFrameV2 to obtain this information
-                // No gap if we do not show the actual tabs
-                QTabBar *tabBar = tabwidget->findChild<QTabBar*>();
-                if (tabwidget->count() > 0 && tabBar->isVisible()) {
-                    QRect tabRect = tabBar->tabRect(tabBar->currentIndex());
-                    int begin = 0, size = 0;
-                    GtkPositionType frameType = GTK_POS_TOP;
-                    QTabBar::Shape shape = frame->shape;
-                    if (shape == QTabBar::RoundedNorth || shape == QTabBar::RoundedSouth) {
-                        begin = option->direction == Qt::LeftToRight ?
-                                frame->leftCornerWidgetSize.width() + tabRect.left() :
-                                frame->rect.width() - frame->tabBarSize.width() + tabRect.left()
-                                - frame->rightCornerWidgetSize.width();
-                        size = tabRect.width();
-                        frameType = (shape == QTabBar::RoundedNorth) ? GTK_POS_TOP : GTK_POS_BOTTOM;
-                    } else {
-                        begin = frame->leftCornerWidgetSize.height() + tabRect.top();
-                        size = tabRect.height();
-                        frameType = (shape == QTabBar::RoundedWest) ? GTK_POS_LEFT : GTK_POS_RIGHT;
-                    }
-                    gtkPainter.paintBoxGap(gtkNotebook, "notebook",  option->rect, state, shadow, frameType,
-                                            begin, size, style);
-                    break; // done
+            bool reverse = (option->direction == Qt::RightToLeft);
+            QGtk::gtk_widget_set_direction(gtkNotebook, reverse ? GTK_TEXT_DIR_RTL : GTK_TEXT_DIR_LTR);
+            if (const QStyleOptionTabWidgetFrameV2 *tabframe = qstyleoption_cast<const QStyleOptionTabWidgetFrameV2*>(option)) {
+                GtkPositionType frameType = GTK_POS_TOP;
+                QTabBar::Shape shape = frame->shape;
+                int gapStart = 0;
+                int gapSize = 0;
+                if (shape == QTabBar::RoundedNorth || shape == QTabBar::RoundedSouth) {
+                    frameType = (shape == QTabBar::RoundedNorth) ? GTK_POS_TOP : GTK_POS_BOTTOM;
+                    gapStart = tabframe->selectedTabRect.left();
+                    gapSize = tabframe->selectedTabRect.width();
+                } else {
+                    frameType = (shape == QTabBar::RoundedWest) ? GTK_POS_LEFT : GTK_POS_RIGHT;
+                    gapStart = tabframe->selectedTabRect.y();
+                    gapSize = tabframe->selectedTabRect.height();
                 }
+                gtkPainter.paintBoxGap(gtkNotebook, "notebook",  option->rect, state, shadow, frameType,
+                                        gapStart, gapSize, style);
+                break; // done
             }
+
             // Note this is only the fallback option
             gtkPainter.paintBox(gtkNotebook, "notebook",  option->rect, state, shadow, style);
         }
diff --git a/src/gui/styles/qstyleoption.cpp b/src/gui/styles/qstyleoption.cpp
index 061afcc..f5a2b94 100644
--- a/src/gui/styles/qstyleoption.cpp
+++ b/src/gui/styles/qstyleoption.cpp
@@ -4654,6 +4654,119 @@ QStyleOptionTabWidgetFrame::QStyleOptionTabWidgetFrame(int version)
 
     The default value is QSize(-1, -1), i.e. an invalid size.
 */
+
+
+/*!
+
+    \class QStyleOptionTabWidgetFrameV2
+    \brief The QStyleOptionTabWidgetFrameV2 class is used to describe the
+    parameters for drawing the frame around a tab widget.
+
+    QStyleOptionTabWidgetFrameV2 contains all the information that
+    QStyle functions need to draw the frame around QTabWidget.
+
+    For performance reasons, the access to the member variables is
+    direct (i.e., using the \c . or \c -> operator). This low-level feel
+    makes the structures straightforward to use and emphasizes that
+    these are simply parameters used by the style functions.
+
+    For an example demonstrating how style options can be used, see
+    the \l {widgets/styles}{Styles} example.
+
+    \sa QStyleOption, QTabWidget
+*/
+
+
+/*!
+    \variable QStyleOptionTabWidgetFrameV2::tabBarRect
+    \brief the rectangle containing all the tabs
+
+    The default value is a null rectangle, i.e. a rectangle with both
+    the width and the height set to 0.
+*/
+
+/*!
+    \variable QStyleOptionTabWidgetFrameV2::selectedTabRect
+    \brief the rectangle containing the selected tab
+
+    This rectangle is contained within the tabBarRect. The default
+    value is a null rectangle, i.e. a rectangle with both the width
+    and the height set to 0.
+*/
+
+
+/*!
+    Constructs a QStyleOptionTabWidgetFrameV2, initializing the members
+    variables to their default values.
+*/
+
+QStyleOptionTabWidgetFrameV2::QStyleOptionTabWidgetFrameV2()
+    : QStyleOptionTabWidgetFrame(Version)
+{
+}
+
+
+/*! \internal */
+QStyleOptionTabWidgetFrameV2::QStyleOptionTabWidgetFrameV2(int version)
+    : QStyleOptionTabWidgetFrame(version)
+{
+}
+
+
+/*!
+    Constructs a QStyleOptionTabWidgetFrameV2 copy of the \a other style option
+    which can be either of the QStyleOptionTabWidgetFrameV2 or
+    QStyleOptionTabWidgetFrame types.
+
+    If the \a other style option's version is 1, the new style option's \l
+    selectedTabRect and tabBarRect will contain null rects
+
+    \sa version
+*/
+QStyleOptionTabWidgetFrameV2::QStyleOptionTabWidgetFrameV2(const QStyleOptionTabWidgetFrame &other)
+{
+    QStyleOptionTabWidgetFrameV2::operator=(other);
+
+}
+
+
+/*!
+    Assigns the \a other style option to this style option. The \a
+    other style option can be either of the QStyleOptionFrameV2 or
+    QStyleOptionFrame types.
+
+    If the \a{other} style option's version is 1, this style option's
+    \l FrameFeature value is set to \l QStyleOptionFrameV2::None. If
+    its version is 2, its \l FrameFeature value is simply copied to
+    this style option.
+*/
+QStyleOptionTabWidgetFrameV2 &QStyleOptionTabWidgetFrameV2::operator=(const QStyleOptionTabWidgetFrame &other)
+{
+    QStyleOptionTabWidgetFrame::operator=(other);
+    if (const QStyleOptionTabWidgetFrameV2 *f2 = qstyleoption_cast<const QStyleOptionTabWidgetFrameV2 *>(&other)) {
+        selectedTabRect = f2->selectedTabRect;
+        tabBarRect = f2->tabBarRect;
+    }
+    return *this;
+}
+
+
+/*!
+    \enum QStyleOptionTabWidgetFrameV2::StyleOptionVersion
+
+    This enum is used to hold information about the version of the style option, and
+    is defined for each QStyleOption subclass.
+
+    \value Version 2
+
+    The version is used by QStyleOption subclasses to implement
+    extensions without breaking compatibility. If you use
+    qstyleoption_cast(), you normally do not need to check it.
+
+    \sa StyleOptionType
+*/
+
+
 #endif // QT_NO_TABWIDGET
 
 #ifndef QT_NO_TABBAR
diff --git a/src/gui/styles/qstyleoption.h b/src/gui/styles/qstyleoption.h
index bf8b479..abd52bf 100644
--- a/src/gui/styles/qstyleoption.h
+++ b/src/gui/styles/qstyleoption.h
@@ -192,8 +192,28 @@ public:
 protected:
     QStyleOptionTabWidgetFrame(int version);
 };
+
+class Q_GUI_EXPORT QStyleOptionTabWidgetFrameV2 : public QStyleOptionTabWidgetFrame
+{
+public:
+    enum StyleOptionVersion { Version = 2 };
+
+    QRect tabBarRect;
+    QRect selectedTabRect;
+
+    QStyleOptionTabWidgetFrameV2();
+    QStyleOptionTabWidgetFrameV2(const QStyleOptionTabWidgetFrameV2 &other) :
+            QStyleOptionTabWidgetFrame(Version) { *this = other; }
+    QStyleOptionTabWidgetFrameV2(const QStyleOptionTabWidgetFrame &other);
+    QStyleOptionTabWidgetFrameV2 &operator=(const QStyleOptionTabWidgetFrame &other);
+
+protected:
+    QStyleOptionTabWidgetFrameV2(int version);
+};
+
 #endif
 
+
 #ifndef QT_NO_TABBAR
 class Q_GUI_EXPORT QStyleOptionTabBarBase : public QStyleOption
 {
diff --git a/src/gui/styles/qstylesheetstyle.cpp b/src/gui/styles/qstylesheetstyle.cpp
index 2d90aa1..ae1d33a 100644
--- a/src/gui/styles/qstylesheetstyle.cpp
+++ b/src/gui/styles/qstylesheetstyle.cpp
@@ -4325,7 +4325,7 @@ void QStyleSheetStyle::drawPrimitive(PrimitiveElement pe, const QStyleOption *op
             QRenderRule subRule = renderRule(w, opt, PseudoElement_TabWidgetPane);
             if (subRule.hasNativeBorder()) {
                 subRule.drawBackground(p, opt->rect);
-                QStyleOptionTabWidgetFrame frmCopy(*frm);
+                QStyleOptionTabWidgetFrameV2 frmCopy(*frm);
                 subRule.configurePalette(&frmCopy.palette, QPalette::WindowText, QPalette::Window);
                 baseStyle()->drawPrimitive(pe, &frmCopy, p, w);
             } else {
diff --git a/src/gui/styles/qwindowsxpstyle.cpp b/src/gui/styles/qwindowsxpstyle.cpp
index b5dc647..9fd9ce9 100644
--- a/src/gui/styles/qwindowsxpstyle.cpp
+++ b/src/gui/styles/qwindowsxpstyle.cpp
@@ -1582,7 +1582,7 @@ case PE_Frame:
                 // This should work, but currently there's an error in the ::drawBackgroundDirectly()
                 // code, when using the HDC directly..
                 if (useGradient) {
-                    QStyleOptionTabWidgetFrame frameOpt = *tab;
+                    QStyleOptionTabWidgetFrameV2 frameOpt = *tab;
                     frameOpt.rect = widget->rect();
                     QRect contentsRect = subElementRect(SE_TabWidgetTabContents, &frameOpt, widget);
                     QRegion reg = option->rect;
diff --git a/src/gui/widgets/qtabwidget.cpp b/src/gui/widgets/qtabwidget.cpp
index 0c89a72..d22bd54 100644
--- a/src/gui/widgets/qtabwidget.cpp
+++ b/src/gui/widgets/qtabwidget.cpp
@@ -313,7 +313,16 @@ void QTabWidget::initStyleOption(QStyleOptionTabWidgetFrame *option) const
                                                         : QTabBar::TriangularEast;
         break;
     }
+
     option->tabBarSize = t;
+
+    if (QStyleOptionTabWidgetFrameV2 *tabframe = qstyleoption_cast<QStyleOptionTabWidgetFrameV2*>(option)) {
+        QRect tbRect = tabBar()->geometry();
+        QRect selectedTabRect = tabBar()->tabRect(tabBar()->currentIndex());
+        tabframe->tabBarRect = tbRect;
+        selectedTabRect.moveTopLeft(selectedTabRect.topLeft() + tbRect.topLeft());
+        tabframe->selectedTabRect = selectedTabRect;
+    }
 }
 
 /*!
@@ -756,7 +765,7 @@ void QTabWidget::setUpLayout(bool onlyCheck)
     if (onlyCheck && !d->dirty)
         return; // nothing to do
 
-    QStyleOptionTabWidgetFrame option;
+    QStyleOptionTabWidgetFrameV2 option;
     initStyleOption(&option);
 
     // this must be done immediately, because QWidgetItem relies on it (even if !isVisible())
@@ -1186,7 +1195,8 @@ void QTabWidget::paintEvent(QPaintEvent *)
         return;
     }
     QStylePainter p(this);
-    QStyleOptionTabWidgetFrame opt;
+
+    QStyleOptionTabWidgetFrameV2 opt;
     initStyleOption(&opt);
     opt.rect = d->panelRect;
     p.drawPrimitive(QStyle::PE_FrameTabWidget, opt);
-- 
cgit v0.12


From e4954731369d9b339a79ec9fe737d70ef6dc4755 Mon Sep 17 00:00:00 2001
From: Thierry Bastian <thierry.bastian@nokia.com>
Date: Thu, 22 Oct 2009 15:38:25 +0200
Subject: In Vista style, renaming Animation, Transition and Pulse

There is a name clash, so we prefixed them with QWindowsVista

Reviewed-by: Benjamin Poulain
---
 src/gui/styles/qwindowsvistastyle.cpp | 50 +++++++++++++++++------------------
 src/gui/styles/qwindowsvistastyle_p.h | 24 ++++++++---------
 2 files changed, 37 insertions(+), 37 deletions(-)

diff --git a/src/gui/styles/qwindowsvistastyle.cpp b/src/gui/styles/qwindowsvistastyle.cpp
index 6cb8b40..aafd087 100644
--- a/src/gui/styles/qwindowsvistastyle.cpp
+++ b/src/gui/styles/qwindowsvistastyle.cpp
@@ -159,7 +159,7 @@ QWindowsVistaStyle::QWindowsVistaStyle()
 }
 
 //convert Qt state flags to uxtheme button states
-int buttonStateId(int flags, int partId)
+static int buttonStateId(int flags, int partId)
 {
     int stateId = 0;
     if (partId == BP_RADIOBUTTON || partId == BP_CHECKBOX) {
@@ -190,7 +190,7 @@ int buttonStateId(int flags, int partId)
     return stateId;
 }
 
-void Animation::paint(QPainter *painter, const QStyleOption *option)
+void QWindowsVistaAnimation::paint(QPainter *painter, const QStyleOption *option)
 {
     Q_UNUSED(option);
     Q_UNUSED(painter);
@@ -205,7 +205,7 @@ void Animation::paint(QPainter *painter, const QStyleOption *option)
   + ((1-alpha)*_secondaryImage)
 
 */
-void Animation::drawBlendedImage(QPainter *painter, QRect rect, float alpha) {
+void QWindowsVistaAnimation::drawBlendedImage(QPainter *painter, QRect rect, float alpha) {
     if (_secondaryImage.isNull() || _primaryImage.isNull())
         return;
 
@@ -251,7 +251,7 @@ void Animation::drawBlendedImage(QPainter *painter, QRect rect, float alpha) {
   initial and final state of the transition, depending on the time
   difference between _startTime and current time.
 */
-void Transition::paint(QPainter *painter, const QStyleOption *option)
+void QWindowsVistaTransition::paint(QPainter *painter, const QStyleOption *option)
 {
     float alpha = 1.0;
     if (_duration > 0) {
@@ -278,7 +278,7 @@ void Transition::paint(QPainter *painter, const QStyleOption *option)
   secondary pulse images depending on the time difference between
   _startTime and current time.
 */
-void Pulse::paint(QPainter *painter, const QStyleOption *option)
+void QWindowsVistaPulse::paint(QPainter *painter, const QStyleOption *option)
 {
     float alpha = 1.0;
     if (_duration > 0) {
@@ -393,8 +393,8 @@ void QWindowsVistaStyle::drawPrimitive(PrimitiveElement element, const QStyleOpt
                 startImage.fill(0);
                 QPainter startPainter(&startImage);
 
-                Animation *anim = d->widgetAnimation(widget);
-                Transition *t = new Transition;
+                QWindowsVistaAnimation *anim = d->widgetAnimation(widget);
+                QWindowsVistaTransition *t = new QWindowsVistaTransition;
                 t->setWidget(w);
 
                 // If we have a running animation on the widget already, we will use that to paint the initial
@@ -531,7 +531,7 @@ void QWindowsVistaStyle::drawPrimitive(PrimitiveElement element, const QStyleOpt
     case PE_IndicatorCheckBox:
     case PE_IndicatorRadioButton:
         {
-            if (Animation *a = d->widgetAnimation(widget)) {
+            if (QWindowsVistaAnimation *a = d->widgetAnimation(widget)) {
                 a->paint(painter, option);
             } else {
                 QWindowsXPStyle::drawPrimitive(element, option, painter, widget);
@@ -644,7 +644,7 @@ void QWindowsVistaStyle::drawPrimitive(PrimitiveElement element, const QStyleOpt
         break;
 
     case PE_FrameLineEdit:
-        if (Animation *anim = d->widgetAnimation(widget)) {
+        if (QWindowsVistaAnimation *anim = d->widgetAnimation(widget)) {
             anim->paint(painter, option);
         } else {
             QPainter *p = painter;
@@ -929,13 +929,13 @@ void QWindowsVistaStyle::drawControl(ControlElement element, const QStyleOption
                 if (doTransition) {
                     QImage startImage(option->rect.size(), QImage::Format_ARGB32_Premultiplied);
                     QImage endImage(option->rect.size(), QImage::Format_ARGB32_Premultiplied);
-                    Animation *anim = d->widgetAnimation(widget);
+                    QWindowsVistaAnimation *anim = d->widgetAnimation(widget);
 
                     QStyleOptionButton opt = *button;
                     opt.state = (QStyle::State)oldState;
 
                     startImage.fill(0);
-                    Transition *t = new Transition;
+                    QWindowsVistaTransition *t = new QWindowsVistaTransition;
                     t->setWidget(w);
                     QPainter startPainter(&startImage);
 
@@ -972,7 +972,7 @@ void QWindowsVistaStyle::drawControl(ControlElement element, const QStyleOption
         if (const QStyleOptionButton *btn = qstyleoption_cast<const QStyleOptionButton *>(option))
         {
 
-            if (Animation *anim = d->widgetAnimation(widget)) {
+            if (QWindowsVistaAnimation *anim = d->widgetAnimation(widget)) {
                 anim->paint(painter, option);
             } else {
                 name = QLatin1String("BUTTON");
@@ -999,14 +999,14 @@ void QWindowsVistaStyle::drawControl(ControlElement element, const QStyleOption
                         !(state & (State_Sunken | State_On)) && !(state & State_MouseOver) &&
                          (state & State_Enabled) && (state & State_Active))
                         {
-                        Animation *anim = d->widgetAnimation(widget);
+                        QWindowsVistaAnimation *anim = d->widgetAnimation(widget);
                         if (!anim && widget) {
                             QImage startImage(option->rect.size(), QImage::Format_ARGB32_Premultiplied);
                             startImage.fill(0);
                             QImage alternateImage(option->rect.size(), QImage::Format_ARGB32_Premultiplied);
                             alternateImage.fill(0);
 
-                            Pulse *pulse = new Pulse;
+                            QWindowsVistaPulse *pulse = new QWindowsVistaPulse;
                             pulse->setWidget(const_cast<QWidget*>(widget));
 
                             QPainter startPainter(&startImage);
@@ -1079,7 +1079,7 @@ void QWindowsVistaStyle::drawControl(ControlElement element, const QStyleOption
             if (const QProgressBar *progressbar = qobject_cast<const QProgressBar *>(widget)) {
                 if (((progressbar->value() > 0  && d->transitionsEnabled()) || isIndeterminate)) {
                     if (!d->widgetAnimation(progressbar) && progressbar->value() < progressbar->maximum()) {
-                        Animation *a = new Animation;
+                        QWindowsVistaAnimation *a = new QWindowsVistaAnimation;
                         a->setWidget(const_cast<QWidget*>(widget));
                         a->setStartTime(QTime::currentTime());
                         d->startAnimation(a);
@@ -1095,7 +1095,7 @@ void QWindowsVistaStyle::drawControl(ControlElement element, const QStyleOption
             QTime current = QTime::currentTime();
 
             if (isIndeterminate) {
-                if (Animation *a = d->widgetAnimation(widget)) {
+                if (QWindowsVistaAnimation *a = d->widgetAnimation(widget)) {
                     int glowSize = 120;
                     int animationWidth = glowSize * 2 + (vertical ? theme.rect.height() : theme.rect.width());
                     int animOffset = a->startTime().msecsTo(current) / 4;
@@ -1165,7 +1165,7 @@ void QWindowsVistaStyle::drawControl(ControlElement element, const QStyleOption
                 }
                 d->drawBackground(theme);
 
-                if (Animation *a = d->widgetAnimation(widget)) {
+                if (QWindowsVistaAnimation *a = d->widgetAnimation(widget)) {
                     int glowSize = 140;
                     int animationWidth = glowSize * 2 + (vertical ? theme.rect.height() : theme.rect.width());
                     int animOffset = a->startTime().msecsTo(current) / 4;
@@ -1603,8 +1603,8 @@ void QWindowsVistaStyle::drawComplexControl(ComplexControl control, const QStyle
             if (doTransition) {
                 QImage startImage(option->rect.size(), QImage::Format_ARGB32_Premultiplied);
                 QImage endImage(option->rect.size(), QImage::Format_ARGB32_Premultiplied);
-                Animation *anim = d->widgetAnimation(widget);
-                Transition *t = new Transition;
+                QWindowsVistaAnimation *anim = d->widgetAnimation(widget);
+                QWindowsVistaTransition *t = new QWindowsVistaTransition;
                 t->setWidget(w);
                 if (!anim) {
                     if (const QStyleOptionComboBox *combo = qstyleoption_cast<const QStyleOptionComboBox*>(option)) {
@@ -1651,7 +1651,7 @@ void QWindowsVistaStyle::drawComplexControl(ComplexControl control, const QStyle
                     t->setDuration(500);
             }
 
-            if (Animation *anim = d->widgetAnimation(widget)) {
+            if (QWindowsVistaAnimation *anim = d->widgetAnimation(widget)) {
                 anim->paint(painter, option);
                 return;
             }
@@ -2533,7 +2533,7 @@ void QWindowsVistaStylePrivate::timerEvent()
             !animations[i]->running() ||
             !QWindowsVistaStylePrivate::useVista())
         {
-            Animation *a = animations.takeAt(i);
+            QWindowsVistaAnimation *a = animations.takeAt(i);
             delete a;
         }
     }
@@ -2546,14 +2546,14 @@ void QWindowsVistaStylePrivate::stopAnimation(const QWidget *w)
 {
     for (int i = animations.size() - 1 ; i >= 0 ; --i) {
         if (animations[i]->widget() == w) {
-            Animation *a = animations.takeAt(i);
+            QWindowsVistaAnimation *a = animations.takeAt(i);
             delete a;
             break;
         }
     }
 }
 
-void QWindowsVistaStylePrivate::startAnimation(Animation *t)
+void QWindowsVistaStylePrivate::startAnimation(QWindowsVistaAnimation *t)
 {
     Q_Q(QWindowsVistaStyle);
     stopAnimation(t->widget());
@@ -2575,11 +2575,11 @@ bool QWindowsVistaStylePrivate::transitionsEnabled() const
 }
 
 
-Animation * QWindowsVistaStylePrivate::widgetAnimation(const QWidget *widget) const
+QWindowsVistaAnimation * QWindowsVistaStylePrivate::widgetAnimation(const QWidget *widget) const
 {
     if (!widget)
         return 0;
-    foreach (Animation *a, animations) {
+    foreach (QWindowsVistaAnimation *a, animations) {
         if (a->widget() == widget)
             return a;
     }
diff --git a/src/gui/styles/qwindowsvistastyle_p.h b/src/gui/styles/qwindowsvistastyle_p.h
index e9bbb77..04823c1 100644
--- a/src/gui/styles/qwindowsvistastyle_p.h
+++ b/src/gui/styles/qwindowsvistastyle_p.h
@@ -136,11 +136,11 @@ QT_BEGIN_NAMESPACE
 #define TDLG_SECONDARYPANEL         8
 #endif
 
-class Animation
+class QWindowsVistaAnimation
 {
 public :
-    Animation() : _running(true) { }
-    virtual ~Animation() { }
+    QWindowsVistaAnimation() : _running(true) { }
+    virtual ~QWindowsVistaAnimation() { }
     QWidget * widget() const { return _widget; }
     bool running() const { return _running; }
     const QTime &startTime() const { return _startTime; }
@@ -161,11 +161,11 @@ protected:
 
 
 // Handles state transition animations
-class Transition : public Animation
+class QWindowsVistaTransition : public QWindowsVistaAnimation
 {
 public :
-    Transition() : Animation() {}
-    virtual ~Transition() { }
+    QWindowsVistaTransition() : QWindowsVistaAnimation() {}
+    virtual ~QWindowsVistaTransition() { }
     void setDuration(int duration) { _duration = duration; }
     void setStartImage(const QImage &image) { _primaryImage = image; }
     void setEndImage(const QImage &image) { _secondaryImage = image; }
@@ -176,11 +176,11 @@ public :
 
 
 // Handles pulse animations (default buttons)
-class Pulse: public Animation
+class QWindowsVistaPulse: public QWindowsVistaAnimation
 {
 public :
-    Pulse() : Animation() {}
-    virtual ~Pulse() { }
+    QWindowsVistaPulse() : QWindowsVistaAnimation() {}
+    virtual ~QWindowsVistaPulse() { }
     void setDuration(int duration) { _duration = duration; }
     void setPrimaryImage(const QImage &image) { _primaryImage = image; }
     void setAlternateImage(const QImage &image) { _secondaryImage = image; }
@@ -199,15 +199,15 @@ public:
     ~QWindowsVistaStylePrivate();
     static bool resolveSymbols();
     static inline bool useVista();
-    void startAnimation(Animation *);
+    void startAnimation(QWindowsVistaAnimation *);
     void stopAnimation(const QWidget *);
-    Animation* widgetAnimation(const QWidget *) const;
+    QWindowsVistaAnimation* widgetAnimation(const QWidget *) const;
     void timerEvent();
     bool transitionsEnabled() const;
     QWidget *treeViewHelper();
 
 private:
-    QList <Animation*> animations;
+    QList <QWindowsVistaAnimation*> animations;
     QBasicTimer animationTimer;
     QWidget *m_treeViewHelper;
 };
-- 
cgit v0.12


From 63b8a706c57ed292d82fc16a446daa543cf12a38 Mon Sep 17 00:00:00 2001
From: Olivier Goffart <ogoffart@trolltech.com>
Date: Thu, 22 Oct 2009 15:21:29 +0200
Subject: stabilize QListView test

---
 tests/auto/qlistview/tst_qlistview.cpp | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/tests/auto/qlistview/tst_qlistview.cpp b/tests/auto/qlistview/tst_qlistview.cpp
index 6e211ae..3968529 100644
--- a/tests/auto/qlistview/tst_qlistview.cpp
+++ b/tests/auto/qlistview/tst_qlistview.cpp
@@ -1132,6 +1132,7 @@ void tst_QListView::selection()
 #endif
 
     v.show();
+    QTest::qWaitForWindowShown(&v);
     QApplication::processEvents();
 
     v.setSelection(selectionRect, QItemSelectionModel::ClearAndSelect);
@@ -1184,6 +1185,7 @@ void tst_QListView::scrollTo()
     lv.setModel(&model);
     lv.setFixedSize(100, 200);
     lv.show();
+    QTest::qWaitForWindowShown(&lv);
 
     //by default, the list view scrolls per item and has no wrapping
     QModelIndex index = model.index(6,0);
@@ -1782,12 +1784,13 @@ void tst_QListView::task262152_setModelColumnNavigate()
     view.setModelColumn(1);
 
     view.show();
-    QTest::qWait(100);
+    QTest::qWaitForWindowShown(&view);
+    QTest::qWait(10);
     QTest::keyClick(&view, Qt::Key_Down);
-    QTest::qWait(100);
+    QTest::qWait(10);
     QCOMPARE(view.currentIndex(), model.index(1,1));
     QTest::keyClick(&view, Qt::Key_Down);
-    QTest::qWait(100);
+    QTest::qWait(10);
     QCOMPARE(view.currentIndex(), model.index(2,1));
 
 }
-- 
cgit v0.12


From 44aa15a08dd8e7e1ea428fd8868a8e531f5ba4d9 Mon Sep 17 00:00:00 2001
From: Thierry Bastian <thierry.bastian@nokia.com>
Date: Thu, 22 Oct 2009 16:04:34 +0200
Subject: Autotest fix for parallel animation group

On macos (as on symbian), we need to leave some time for the
application to become responsive.
---
 .../tst_qparallelanimationgroup.cpp                     | 17 ++++++-----------
 1 file changed, 6 insertions(+), 11 deletions(-)

diff --git a/tests/auto/qparallelanimationgroup/tst_qparallelanimationgroup.cpp b/tests/auto/qparallelanimationgroup/tst_qparallelanimationgroup.cpp
index 8578d36..8d937e9 100644
--- a/tests/auto/qparallelanimationgroup/tst_qparallelanimationgroup.cpp
+++ b/tests/auto/qparallelanimationgroup/tst_qparallelanimationgroup.cpp
@@ -56,8 +56,7 @@ public:
     virtual ~tst_QParallelAnimationGroup();
 
 public Q_SLOTS:
-    void init();
-    void cleanup();
+    void initTestCase();
 
 private slots:
     void construction();
@@ -86,13 +85,13 @@ tst_QParallelAnimationGroup::~tst_QParallelAnimationGroup()
 {
 }
 
-void tst_QParallelAnimationGroup::init()
+void tst_QParallelAnimationGroup::initTestCase()
 {
     qRegisterMetaType<QAbstractAnimation::State>("QAbstractAnimation::State");
-}
-
-void tst_QParallelAnimationGroup::cleanup()
-{
+#if defined(Q_OS_SYMBIAN) || defined(Q_WS_MAC) || defined(Q_WS_WINCE)
+    // give the Symbian and mac app start event queue time to clear
+    QTest::qWait(1000);
+#endif
 }
 
 void tst_QParallelAnimationGroup::construction()
@@ -486,10 +485,6 @@ void tst_QParallelAnimationGroup::updateChildrenWithRunningGroup()
 
 void tst_QParallelAnimationGroup::deleteChildrenWithRunningGroup()
 {
-#if defined(Q_OS_SYMBIAN)
-    // give the Symbian app start event queue time to clear
-    QTest::qWait(1000);
-#endif
     // test if children can be activated when their group is stopped
     QParallelAnimationGroup group;
 
-- 
cgit v0.12


From 82caa7b3f97c6cda0ebceb477856442653a83699 Mon Sep 17 00:00:00 2001
From: Alexis Menard <alexis.menard@nokia.com>
Date: Thu, 22 Oct 2009 18:11:19 +0200
Subject: Warning --

Reviewed-by:TrustMe
---
 src/gui/graphicsview/qgraphicsproxywidget.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/gui/graphicsview/qgraphicsproxywidget.cpp b/src/gui/graphicsview/qgraphicsproxywidget.cpp
index 64c51ad..e9173a9 100644
--- a/src/gui/graphicsview/qgraphicsproxywidget.cpp
+++ b/src/gui/graphicsview/qgraphicsproxywidget.cpp
@@ -397,7 +397,7 @@ QWidget *QGraphicsProxyWidgetPrivate::findFocusChild(QWidget *child, bool next)
     do {
         if (child->isEnabled()
 	    && child->isVisibleTo(widget)
-            && (child->focusPolicy() & focus_flag == focus_flag)
+            && ((child->focusPolicy() & focus_flag) == focus_flag)
             && !(child->d_func()->extra && child->d_func()->extra->focus_proxy)) {
             return child;
         }
-- 
cgit v0.12


From a5f7f88932c6911fb65552d65d62efdcf496beec Mon Sep 17 00:00:00 2001
From: Alexis Menard <alexis.menard@nokia.com>
Date: Thu, 22 Oct 2009 18:11:34 +0200
Subject: Fix crash in QGraphicsView BSP discovered in Amarok.

Basically some items were not properly remove in the BSP which means
that if you delete one of items, the BSP tree may contain dangling pointers.
The problem was in removeItemHelper in QGraphicsScene were the child
were removed after reparenting to 0 the topmost parent. The
sceneBoundingRect for children was invalid which means that we were removing
them in the wrong position inside the BSP. Reparenting to 0 means that the
sceneBoundingRect will be the boundingRect but wasn't the case before
(for the topmost parent).

Reviewed-by:bnilsen
---
 src/gui/graphicsview/qgraphicsscene.cpp            | 14 +++---
 .../tst_qgraphicssceneindex.cpp                    | 58 ++++++++++++++++++++++
 2 files changed, 66 insertions(+), 6 deletions(-)

diff --git a/src/gui/graphicsview/qgraphicsscene.cpp b/src/gui/graphicsview/qgraphicsscene.cpp
index a624b10..03c8a97 100644
--- a/src/gui/graphicsview/qgraphicsscene.cpp
+++ b/src/gui/graphicsview/qgraphicsscene.cpp
@@ -518,6 +518,14 @@ void QGraphicsScenePrivate::removeItemHelper(QGraphicsItem *item)
 
     item->d_func()->scene = 0;
 
+    //We need to remove all children first because they might use their parent
+    //attributes (e.g. sceneTransform).
+    if (!item->d_ptr->inDestructor) {
+        // Remove all children recursively
+        for (int i = 0; i < item->d_ptr->children.size(); ++i)
+            q->removeItem(item->d_ptr->children.at(i));
+    }
+
     // Unregister focus proxy.
     item->d_ptr->resetFocusProxy();
 
@@ -564,12 +572,6 @@ void QGraphicsScenePrivate::removeItemHelper(QGraphicsItem *item)
             ++iterator;
     }
 
-    if (!item->d_ptr->inDestructor) {
-        // Remove all children recursively
-        for (int i = 0; i < item->d_ptr->children.size(); ++i)
-            q->removeItem(item->d_ptr->children.at(i));
-    }
-
     if (item->isPanel() && item->isVisible() && item->panelModality() != QGraphicsItem::NonModal)
         leaveModal(item);
 
diff --git a/tests/auto/qgraphicssceneindex/tst_qgraphicssceneindex.cpp b/tests/auto/qgraphicssceneindex/tst_qgraphicssceneindex.cpp
index 1109e5e..9dfd486 100644
--- a/tests/auto/qgraphicssceneindex/tst_qgraphicssceneindex.cpp
+++ b/tests/auto/qgraphicssceneindex/tst_qgraphicssceneindex.cpp
@@ -66,6 +66,7 @@ private slots:
     void movingItems();
     void connectedToSceneRectChanged();
     void items();
+    void removeItems();
     void clear();
 
 private:
@@ -268,6 +269,63 @@ void tst_QGraphicsSceneIndex::items()
     QCOMPARE(scene.items().size(), 3);
 }
 
+class RectWidget : public QGraphicsWidget
+{
+    Q_OBJECT
+public:
+    RectWidget(QGraphicsItem *parent = 0) : QGraphicsWidget(parent)
+    {
+    }
+
+    void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
+    {
+        painter->setBrush(brush);
+        painter->drawRect(boundingRect());
+    }
+public:
+    QBrush brush;
+};
+
+void tst_QGraphicsSceneIndex::removeItems()
+{
+     QGraphicsScene scene;
+
+    RectWidget *parent = new RectWidget;
+    parent->brush = QBrush(QColor(Qt::magenta));
+    parent->setGeometry(250, 250, 400, 400);
+
+    RectWidget *widget = new RectWidget(parent);
+    widget->brush = QBrush(QColor(Qt::blue));
+    widget->setGeometry(10, 10, 200, 200);
+
+    RectWidget *widgetChild1 = new RectWidget(widget);
+    widgetChild1->brush = QBrush(QColor(Qt::green));
+    widgetChild1->setGeometry(20, 20, 100, 100);
+
+    RectWidget *widgetChild2 = new RectWidget(widgetChild1);
+    widgetChild2->brush = QBrush(QColor(Qt::yellow));
+    widgetChild2->setGeometry(25, 25, 50, 50);
+
+    scene.addItem(parent);
+
+    QGraphicsView view(&scene);
+    view.resize(600, 600);
+    view.show();
+    QApplication::setActiveWindow(&view);
+    QTest::qWaitForWindowShown(&view);
+
+    QApplication::processEvents();
+
+    scene.removeItem(widgetChild1);
+
+    delete widgetChild1;
+
+    //We move the parent
+    scene.items(295, 295, 50, 50);
+
+    //This should not crash
+}
+
 void tst_QGraphicsSceneIndex::clear()
 {
     class MyItem : public QGraphicsItem
-- 
cgit v0.12


From a95883e90fadeddd2f49da6765fb2d79f7ce77bd Mon Sep 17 00:00:00 2001
From: Gabriel de Dietrich <gabriel.dietrich-de@nokia.com>
Date: Fri, 23 Oct 2009 09:14:39 +0200
Subject: Added visual DnD indicator for left to right flow in QListView

Extended the behaviour already present in QAbstractItemView into
QListView. This means some code duplication which should maybe be refactored
at some point. (Seems to be the price to pay when some delegate does almost
the same thing as the base class).

No auto-test, as it's a drag-and-drop related task.

Reviewed-by: Thierry
Task-number: QTBUG-3730
---
 src/gui/itemviews/qabstractitemview.h   |   1 +
 src/gui/itemviews/qabstractitemview_p.h |   3 +-
 src/gui/itemviews/qlistview.cpp         | 109 +++++++++++++++++++++++++++++++-
 src/gui/itemviews/qlistview_p.h         |   9 +++
 4 files changed, 119 insertions(+), 3 deletions(-)

diff --git a/src/gui/itemviews/qabstractitemview.h b/src/gui/itemviews/qabstractitemview.h
index b4f0957..f438148 100644
--- a/src/gui/itemviews/qabstractitemview.h
+++ b/src/gui/itemviews/qabstractitemview.h
@@ -361,6 +361,7 @@ private:
 
     friend class QTreeViewPrivate; // needed to compile with MSVC
     friend class QAccessibleItemRow;
+    friend class QListModeViewBase;
 };
 
 Q_DECLARE_OPERATORS_FOR_FLAGS(QAbstractItemView::EditTriggers)
diff --git a/src/gui/itemviews/qabstractitemview_p.h b/src/gui/itemviews/qabstractitemview_p.h
index fcf381a..66b7662 100644
--- a/src/gui/itemviews/qabstractitemview_p.h
+++ b/src/gui/itemviews/qabstractitemview_p.h
@@ -164,7 +164,8 @@ public:
     }
 
 #ifndef QT_NO_DRAGANDDROP
-    QAbstractItemView::DropIndicatorPosition position(const QPoint &pos, const QRect &rect, const QModelIndex &idx) const;
+    virtual QAbstractItemView::DropIndicatorPosition position(const QPoint &pos, const QRect &rect, const QModelIndex &idx) const;
+
     inline bool canDecode(QDropEvent *e) const {
         QStringList modelTypes = model->mimeTypes();
         const QMimeData *mime = e->mimeData();
diff --git a/src/gui/itemviews/qlistview.cpp b/src/gui/itemviews/qlistview.cpp
index f58f458..109d760 100644
--- a/src/gui/itemviews/qlistview.cpp
+++ b/src/gui/itemviews/qlistview.cpp
@@ -853,8 +853,13 @@ void QListView::resizeEvent(QResizeEvent *e)
 */
 void QListView::dragMoveEvent(QDragMoveEvent *e)
 {
-    if (!d_func()->commonListView->filterDragMoveEvent(e))
-        QAbstractItemView::dragMoveEvent(e);
+    Q_D(QListView);
+    if (!d->commonListView->filterDragMoveEvent(e)) {
+        if (viewMode() == QListView::ListMode && flow() == QListView::LeftToRight)
+            static_cast<QListModeViewBase *>(d->commonListView)->dragMoveEvent(e);
+        else
+            QAbstractItemView::dragMoveEvent(e);
+    }
 }
 
 
@@ -1804,6 +1809,16 @@ QItemSelection QListViewPrivate::selection(const QRect &rect) const
     return selection;
 }
 
+#ifndef QT_NO_DRAGANDDROP
+QAbstractItemView::DropIndicatorPosition QListViewPrivate::position(const QPoint &pos, const QRect &rect, const QModelIndex &idx) const
+{
+    if (viewMode == QListView::ListMode && flow == QListView::LeftToRight)
+        return static_cast<QListModeViewBase *>(commonListView)->position(pos, rect, idx);
+    else
+        return QAbstractItemViewPrivate::position(pos, rect, idx);
+}
+#endif
+
 /*
  * Common ListView Implementation
 */
@@ -1893,6 +1908,96 @@ void QListModeViewBase::paintDragDrop(QPainter *painter)
     // in IconMode, it makes no sense to show it
     dd->paintDropIndicator(painter);
 }
+
+QAbstractItemView::DropIndicatorPosition QListModeViewBase::position(const QPoint &pos, const QRect &rect, const QModelIndex &index) const
+{
+    QAbstractItemView::DropIndicatorPosition r = QAbstractItemView::OnViewport;
+    if (!dd->overwrite) {
+        const int margin = 2;
+        if (pos.x() - rect.left() < margin) {
+            r = QAbstractItemView::AboveItem;   // Visually, on the left
+        } else if (rect.right() - pos.x() < margin) {
+            r = QAbstractItemView::BelowItem;   // Visually, on the right
+        } else if (rect.contains(pos, true)) {
+            r = QAbstractItemView::OnItem;
+        }
+    } else {
+        QRect touchingRect = rect;
+        touchingRect.adjust(-1, -1, 1, 1);
+        if (touchingRect.contains(pos, false)) {
+            r = QAbstractItemView::OnItem;
+        }
+    }
+
+    if (r == QAbstractItemView::OnItem && (!(dd->model->flags(index) & Qt::ItemIsDropEnabled)))
+        r = pos.x() < rect.center().x() ? QAbstractItemView::AboveItem : QAbstractItemView::BelowItem;
+
+    return r;
+}
+
+void QListModeViewBase::dragMoveEvent(QDragMoveEvent *event)
+{
+    if (qq->dragDropMode() == QAbstractItemView::InternalMove
+        && (event->source() != qq || !(event->possibleActions() & Qt::MoveAction)))
+        return;
+
+    // ignore by default
+    event->ignore();
+
+    QModelIndex index = qq->indexAt(event->pos());
+    dd->hover = index;
+    if (!dd->droppingOnItself(event, index)
+        && dd->canDecode(event)) {
+
+        if (index.isValid() && dd->showDropIndicator) {
+            QRect rect = qq->visualRect(index);
+            dd->dropIndicatorPosition = position(event->pos(), rect, index);
+            switch (dd->dropIndicatorPosition) {
+            case QAbstractItemView::AboveItem:
+                if (dd->isIndexDropEnabled(index.parent())) {
+                    dd->dropIndicatorRect = QRect(rect.left(), rect.top(), 0, rect.height());
+                    event->accept();
+                } else {
+                    dd->dropIndicatorRect = QRect();
+                }
+                break;
+            case QAbstractItemView::BelowItem:
+                if (dd->isIndexDropEnabled(index.parent())) {
+                    dd->dropIndicatorRect = QRect(rect.right(), rect.top(), 0, rect.height());
+                    event->accept();
+                } else {
+                    dd->dropIndicatorRect = QRect();
+                }
+                break;
+            case QAbstractItemView::OnItem:
+                if (dd->isIndexDropEnabled(index)) {
+                    dd->dropIndicatorRect = rect;
+                    event->accept();
+                } else {
+                    dd->dropIndicatorRect = QRect();
+                }
+                break;
+            case QAbstractItemView::OnViewport:
+                dd->dropIndicatorRect = QRect();
+                if (dd->isIndexDropEnabled(qq->rootIndex())) {
+                    event->accept(); // allow dropping in empty areas
+                }
+                break;
+            }
+        } else {
+            dd->dropIndicatorRect = QRect();
+            dd->dropIndicatorPosition = QAbstractItemView::OnViewport;
+            if (dd->isIndexDropEnabled(qq->rootIndex())) {
+                event->accept(); // allow dropping in empty areas
+            }
+        }
+        dd->viewport->update();
+    } // can decode
+
+    if (dd->shouldAutoScroll(event->pos()))
+        qq->startAutoScroll();
+}
+
 #endif //QT_NO_DRAGANDDROP
 
 void QListModeViewBase::updateVerticalScrollBar(const QSize &step)
diff --git a/src/gui/itemviews/qlistview_p.h b/src/gui/itemviews/qlistview_p.h
index de4c7f3..3f8f9db 100644
--- a/src/gui/itemviews/qlistview_p.h
+++ b/src/gui/itemviews/qlistview_p.h
@@ -231,6 +231,11 @@ public:
 
 #ifndef QT_NO_DRAGANDDROP
     void paintDragDrop(QPainter *painter);
+
+    // The next two methods are to be used on LefToRight flow only.
+    // WARNING: Plenty of duplicated code from QAbstractItemView{,Private}.
+    QAbstractItemView::DropIndicatorPosition position(const QPoint &pos, const QRect &rect, const QModelIndex &idx) const;
+    void dragMoveEvent(QDragMoveEvent *e);
 #endif
 
 private:
@@ -356,6 +361,10 @@ public:
     QItemSelection selection(const QRect &rect) const;
     void selectAll(QItemSelectionModel::SelectionFlags command);
 
+#ifndef QT_NO_DRAGANDDROP
+    virtual QAbstractItemView::DropIndicatorPosition position(const QPoint &pos, const QRect &rect, const QModelIndex &idx) const;
+#endif
+
     inline void setGridSize(const QSize &size) { grid = size; }
     inline QSize gridSize() const { return grid; }
     inline void setWrapping(bool b) { wrap = b; }
-- 
cgit v0.12


From cc4d3fbc317bc9044c3ce23569f0225b29af4fd5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bj=C3=B8rn=20Erik=20Nilsen?= <bjorn.nilsen@nokia.com>
Date: Thu, 22 Oct 2009 14:49:40 +0200
Subject: QGraphicsLineItem leave traces when moving around (reg. against 4.5)

The problem was that QGraphicsLineItem's bounding rect is an empty rect
(either width is 0 or height is 0), and when updating the item's old
occupied area, we explicitly checked whether the rect was empty() or
not. In case of being empty (rect.isEmpty()) we did nothing, which was
the root of the problem.

We can safely remove the rect.isEmpty() check without any significant
loss of performance since the common case is that the rect is non-empty.
And in the case of being empty, we'll bail out from
QGraphicsViewPrivate::updateRect's highly optimized rect intersection.

Auto test included.

Task: QTBUG-4877
Reviewed-by: alexis
---
 src/gui/graphicsview/qgraphicsscene.cpp        |  2 +-
 tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp | 34 ++++++++++++++++++++++++++
 2 files changed, 35 insertions(+), 1 deletion(-)

diff --git a/src/gui/graphicsview/qgraphicsscene.cpp b/src/gui/graphicsview/qgraphicsscene.cpp
index 03c8a97..9736c3e 100644
--- a/src/gui/graphicsview/qgraphicsscene.cpp
+++ b/src/gui/graphicsview/qgraphicsscene.cpp
@@ -4888,7 +4888,7 @@ void QGraphicsScenePrivate::processDirtyItemsRecursive(QGraphicsItem *item, bool
                     continue;
                 }
 
-                if (item->d_ptr->paintedViewBoundingRectsNeedRepaint && !paintedViewBoundingRect.isEmpty()) {
+                if (item->d_ptr->paintedViewBoundingRectsNeedRepaint) {
                     paintedViewBoundingRect.translate(viewPrivate->dirtyScrollOffset);
                     if (!viewPrivate->updateRect(paintedViewBoundingRect))
                         paintedViewBoundingRect = QRect(-1, -1, -1, -1); // Outside viewport.
diff --git a/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp b/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp
index dcad8e1..4fae911 100644
--- a/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp
+++ b/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp
@@ -372,6 +372,7 @@ private slots:
     void itemUsesExtendedStyleOption();
     void itemSendsGeometryChanges();
     void moveItem();
+    void moveLineItem();
     void sorting_data();
     void sorting();
     void itemHasNoContents();
@@ -7438,6 +7439,39 @@ void tst_QGraphicsItem::moveItem()
     COMPARE_REGIONS(view.paintedRegion, expectedParentRegion);
 }
 
+void tst_QGraphicsItem::moveLineItem()
+{
+    QGraphicsScene scene;
+    scene.setSceneRect(0, 0, 200, 200);
+    QGraphicsLineItem *item = new QGraphicsLineItem(0, 0, 100, 0);
+    item->setPos(50, 50);
+    scene.addItem(item);
+
+    MyGraphicsView view(&scene);
+    view.show();
+#ifdef Q_WS_X11
+    qt_x11_wait_for_window_manager(&view);
+#endif
+    QTest::qWait(200);
+    view.reset();
+
+    const QRect itemDeviceBoundingRect = item->deviceTransform(view.viewportTransform())
+                                         .mapRect(item->boundingRect()).toRect();
+    QRegion expectedRegion = itemDeviceBoundingRect.adjusted(-2, -2, 2, 2); // antialiasing
+
+    // Make sure the calculated region is correct.
+    item->update();
+    QTest::qWait(10);
+    QCOMPARE(view.paintedRegion, expectedRegion);
+    view.reset();
+
+    // Old position: (50, 50)
+    item->setPos(50, 100);
+    expectedRegion += expectedRegion.translated(0, 50);
+    QTest::qWait(10);
+    QCOMPARE(view.paintedRegion, expectedRegion);
+}
+
 void tst_QGraphicsItem::sorting_data()
 {
     QTest::addColumn<int>("index");
-- 
cgit v0.12


From e751b8e9b0fdc1e23084a102ca6d86fea7f530d4 Mon Sep 17 00:00:00 2001
From: Thierry Bastian <thierry.bastian@nokia.com>
Date: Fri, 23 Oct 2009 12:05:30 +0200
Subject: MAke sure we call setCurrentTime when an animation is started

This could be prevented by a pause animation currently running.

Reviewed-by: Leo
---
 src/corelib/animation/qabstractanimation.cpp       | 19 ++++++++-----------
 src/corelib/animation/qabstractanimation_p.h       |  2 +-
 tests/auto/qpauseanimation/tst_qpauseanimation.cpp |  9 +++++++++
 3 files changed, 18 insertions(+), 12 deletions(-)

diff --git a/src/corelib/animation/qabstractanimation.cpp b/src/corelib/animation/qabstractanimation.cpp
index f83c2a1..b8b9214 100644
--- a/src/corelib/animation/qabstractanimation.cpp
+++ b/src/corelib/animation/qabstractanimation.cpp
@@ -194,15 +194,10 @@ QUnifiedTimer *QUnifiedTimer::instance()
     return inst;
 }
 
-void QUnifiedTimer::ensureTimerUpdate(QAbstractAnimation *animation)
+void QUnifiedTimer::ensureTimerUpdate()
 {
-    if (isPauseTimerActive) {
+    if (isPauseTimerActive)
         updateAnimationsTime();
-    } else {
-        // this code is needed when ensureTimerUpdate is called from setState because we update
-        // the currentTime when an animation starts running (otherwise we could remove it)
-        animation->setCurrentTime(animation->currentTime());
-    }
 }
 
 void QUnifiedTimer::updateAnimationsTime()
@@ -381,7 +376,7 @@ void QAbstractAnimationPrivate::setState(QAbstractAnimation::State newState)
     case QAbstractAnimation::Paused:
         if (hasRegisteredTimer)
             // currentTime needs to be updated if pauseTimer is active
-            QUnifiedTimer::instance()->ensureTimerUpdate(q);
+            QUnifiedTimer::instance()->ensureTimerUpdate();
         if (!guard)
             return;
         //here we're sure that we were in running state before and that the
@@ -395,9 +390,11 @@ void QAbstractAnimationPrivate::setState(QAbstractAnimation::State newState)
 
             // this ensures that the value is updated now that the animation is running
             if (oldState == QAbstractAnimation::Stopped) {
-                if (isTopLevel)
+                if (isTopLevel) {
                     // currentTime needs to be updated if pauseTimer is active
-                    QUnifiedTimer::instance()->ensureTimerUpdate(q);
+                    QUnifiedTimer::instance()->ensureTimerUpdate();
+                    q->setCurrentTime(totalCurrentTime);
+                }
             }
         }
         break;
@@ -558,7 +555,7 @@ void QAbstractAnimation::setDirection(Direction direction)
     // the commands order below is important: first we need to setCurrentTime with the old direction,
     // then update the direction on this and all children and finally restart the pauseTimer if needed
     if (d->hasRegisteredTimer)
-        QUnifiedTimer::instance()->ensureTimerUpdate(this);
+        QUnifiedTimer::instance()->ensureTimerUpdate();
 
     d->direction = direction;
     updateDirection(direction);
diff --git a/src/corelib/animation/qabstractanimation_p.h b/src/corelib/animation/qabstractanimation_p.h
index bef0499..f989bce 100644
--- a/src/corelib/animation/qabstractanimation_p.h
+++ b/src/corelib/animation/qabstractanimation_p.h
@@ -142,7 +142,7 @@ public:
         this is used for updating the currentTime of all animations in case the pause
         timer is active or, otherwise, only of the animation passed as parameter.
     */
-    void ensureTimerUpdate(QAbstractAnimation *animation);
+    void ensureTimerUpdate();
 
     /*
         this will evaluate the need of restarting the pause timer in case there is still
diff --git a/tests/auto/qpauseanimation/tst_qpauseanimation.cpp b/tests/auto/qpauseanimation/tst_qpauseanimation.cpp
index b11efa0..2546163 100644
--- a/tests/auto/qpauseanimation/tst_qpauseanimation.cpp
+++ b/tests/auto/qpauseanimation/tst_qpauseanimation.cpp
@@ -260,6 +260,9 @@ void tst_QPauseAnimation::sequentialPauseGroup()
     animation3.setDuration(200);
 
     group.start();
+    QCOMPARE(animation1.m_updateCurrentTimeCount, 1);
+    QCOMPARE(animation2.m_updateCurrentTimeCount, 0);
+    QCOMPARE(animation3.m_updateCurrentTimeCount, 0);
 
     QVERIFY(group.state() == QAbstractAnimation::Running);
     QVERIFY(animation1.state() == QAbstractAnimation::Running);
@@ -267,6 +270,9 @@ void tst_QPauseAnimation::sequentialPauseGroup()
     QVERIFY(animation3.state() == QAbstractAnimation::Stopped);
 
     group.setCurrentTime(250);
+    QCOMPARE(animation1.m_updateCurrentTimeCount, 2);
+    QCOMPARE(animation2.m_updateCurrentTimeCount, 1);
+    QCOMPARE(animation3.m_updateCurrentTimeCount, 0);
 
     QVERIFY(group.state() == QAbstractAnimation::Running);
     QVERIFY(animation1.state() == QAbstractAnimation::Stopped);
@@ -275,6 +281,9 @@ void tst_QPauseAnimation::sequentialPauseGroup()
     QVERIFY(animation3.state() == QAbstractAnimation::Stopped);
 
     group.setCurrentTime(500);
+    QCOMPARE(animation1.m_updateCurrentTimeCount, 2);
+    QCOMPARE(animation2.m_updateCurrentTimeCount, 2);
+    QCOMPARE(animation3.m_updateCurrentTimeCount, 1);
 
     QVERIFY(group.state() == QAbstractAnimation::Running);
     QVERIFY(animation1.state() == QAbstractAnimation::Stopped);
-- 
cgit v0.12


From a1301736c3fdc25bdf6f35bf67747804adb83ac3 Mon Sep 17 00:00:00 2001
From: Leonardo Sobral Cunha <leo.cunha@nokia.com>
Date: Fri, 23 Oct 2009 12:08:54 +0200
Subject: Increase realiability of pauseanimation autotests on win

Reviewed-by: thierry
---
 tests/auto/qpauseanimation/tst_qpauseanimation.cpp | 44 ++++++++++++----------
 1 file changed, 24 insertions(+), 20 deletions(-)

diff --git a/tests/auto/qpauseanimation/tst_qpauseanimation.cpp b/tests/auto/qpauseanimation/tst_qpauseanimation.cpp
index 2546163..4d0a7a7 100644
--- a/tests/auto/qpauseanimation/tst_qpauseanimation.cpp
+++ b/tests/auto/qpauseanimation/tst_qpauseanimation.cpp
@@ -93,8 +93,7 @@ public:
     virtual ~tst_QPauseAnimation();
 
 public Q_SLOTS:
-    void init();
-    void cleanup();
+    void initTestCase();
 
 private slots:
     void changeDirectionWhileRunning();
@@ -117,20 +116,15 @@ tst_QPauseAnimation::~tst_QPauseAnimation()
 {
 }
 
-void tst_QPauseAnimation::init()
+void tst_QPauseAnimation::initTestCase()
 {
     qRegisterMetaType<QAbstractAnimation::State>("QAbstractAnimation::State");
     qRegisterMetaType<QAbstractAnimation::DeletionPolicy>("QAbstractAnimation::DeletionPolicy");
 }
 
-void tst_QPauseAnimation::cleanup()
-{
-}
-
 void tst_QPauseAnimation::changeDirectionWhileRunning()
 {
-    QUnifiedTimer *timer = QUnifiedTimer::instance();
-    timer->setConsistentTiming(true);
+    EnableConsistentTiming enabled;
 
     TestablePauseAnimation animation;
     animation.setDuration(400);
@@ -140,8 +134,6 @@ void tst_QPauseAnimation::changeDirectionWhileRunning()
     animation.setDirection(QAbstractAnimation::Backward);
     QTest::qWait(animation.totalDuration() + 50);
     QVERIFY(animation.state() == QAbstractAnimation::Stopped);
-
-    timer->setConsistentTiming(false);
 }
 
 void tst_QPauseAnimation::noTimerUpdates_data()
@@ -157,8 +149,7 @@ void tst_QPauseAnimation::noTimerUpdates_data()
 
 void tst_QPauseAnimation::noTimerUpdates()
 {
-    QUnifiedTimer *timer = QUnifiedTimer::instance();
-    timer->setConsistentTiming(true);
+    EnableConsistentTiming enabled;
 
     QFETCH(int, duration);
     QFETCH(int, loopCount);
@@ -168,16 +159,19 @@ void tst_QPauseAnimation::noTimerUpdates()
     animation.setLoopCount(loopCount);
     animation.start();
     QTest::qWait(animation.totalDuration() + 100);
+
+#ifdef Q_OS_WIN
+    if (animation.state() != QAbstractAnimation::Stopped)
+        QEXPECT_FAIL("", "On windows, consistent timing is not working properly due to bad timer resolution", Abort);
+#endif
+
     QVERIFY(animation.state() == QAbstractAnimation::Stopped);
     QCOMPARE(animation.m_updateCurrentTimeCount, 1 + loopCount);
-
-    timer->setConsistentTiming(false);
 }
 
 void tst_QPauseAnimation::mulitplePauseAnimations()
 {
-    QUnifiedTimer *timer = QUnifiedTimer::instance();
-    timer->setConsistentTiming(true);
+    EnableConsistentTiming enabled;
 
     TestablePauseAnimation animation;
     animation.setDuration(200);
@@ -188,16 +182,26 @@ void tst_QPauseAnimation::mulitplePauseAnimations()
     animation.start();
     animation2.start();
     QTest::qWait(animation.totalDuration() + 100);
+
+#ifdef Q_OS_WIN
+    if (animation.state() != QAbstractAnimation::Stopped)
+        QEXPECT_FAIL("", "On windows, consistent timing is not working properly due to bad timer resolution", Abort);
+#endif
+
     QVERIFY(animation.state() == QAbstractAnimation::Stopped);
     QVERIFY(animation2.state() == QAbstractAnimation::Running);
     QCOMPARE(animation.m_updateCurrentTimeCount, 2);
     QCOMPARE(animation2.m_updateCurrentTimeCount, 2);
 
     QTest::qWait(550);
+
+#ifdef Q_OS_WIN
+    if (animation2.state() != QAbstractAnimation::Stopped)
+        QEXPECT_FAIL("", "On windows, consistent timing is not working properly due to bad timer resolution", Abort);
+#endif
+
     QVERIFY(animation2.state() == QAbstractAnimation::Stopped);
     QCOMPARE(animation2.m_updateCurrentTimeCount, 3);
-
-    timer->setConsistentTiming(false);
 }
 
 void tst_QPauseAnimation::pauseAndPropertyAnimations()
@@ -243,7 +247,7 @@ void tst_QPauseAnimation::pauseResume()
     animation.pause();
     QVERIFY(animation.state() == QAbstractAnimation::Paused);
     animation.start();
-    QTest::qWait(250);
+    QTest::qWait(300);
     QVERIFY(animation.state() == QAbstractAnimation::Stopped);
     QCOMPARE(animation.m_updateCurrentTimeCount, 3);
 }
-- 
cgit v0.12


From 72fb0f2637db401efd178b9d4139fc2b6ef59112 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bj=C3=B8rn=20Erik=20Nilsen?= <bjorn.nilsen@nokia.com>
Date: Fri, 23 Oct 2009 13:17:06 +0200
Subject: Wrong worldTransform() on the painter in
 QGraphicsScene::drawForeground.

The painter's worldTransform() is updated for each item we draw, and
when the DontSavePainterState optimization flag is set, this change is
not protected by save() and restore(). After all the items are drawn, it
means the painter is left with the last drawn item's transform. We
therefore have to make sure it is reset back to whatever it was before
the items were drawn.

Auto-test included.

Task-number: QTBUG-4973
Reviewed-by: alexis
Reviewed-by: andreas
---
 src/gui/graphicsview/qgraphicsview.cpp         |  8 +++++
 tests/auto/qgraphicsview/tst_qgraphicsview.cpp | 49 ++++++++++++++++++++++++++
 2 files changed, 57 insertions(+)

diff --git a/src/gui/graphicsview/qgraphicsview.cpp b/src/gui/graphicsview/qgraphicsview.cpp
index 32747cc..49348de 100644
--- a/src/gui/graphicsview/qgraphicsview.cpp
+++ b/src/gui/graphicsview/qgraphicsview.cpp
@@ -3306,6 +3306,14 @@ void QGraphicsView::paintEvent(QPaintEvent *event)
     if (!(d->optimizationFlags & IndirectPainting)) {
         d->scene->d_func()->drawItems(&painter, viewTransformed ? &viewTransform : 0,
                                       &d->exposedRegion, viewport());
+        // Make sure the painter's world transform is restored correctly when
+        // drawing without painter state protection (DontSavePainterState).
+        // We only change the worldTransform() so there's no need to do a full-blown
+        // save() and restore(). Also note that we don't have to do this in case of
+        // IndirectPainting (the else branch), because in that case we always save()
+        // and restore() in QGraphicsScene::drawItems().
+        if (!d->scene->d_func()->painterStateProtection)
+            painter.setWorldTransform(viewTransform);
     } else {
         // Find all exposed items
         bool allItems = false;
diff --git a/tests/auto/qgraphicsview/tst_qgraphicsview.cpp b/tests/auto/qgraphicsview/tst_qgraphicsview.cpp
index dc08d0e..092f81d 100644
--- a/tests/auto/qgraphicsview/tst_qgraphicsview.cpp
+++ b/tests/auto/qgraphicsview/tst_qgraphicsview.cpp
@@ -194,6 +194,8 @@ private slots:
     void acceptDrops();
     void optimizationFlags();
     void optimizationFlags_dontSavePainterState();
+    void optimizationFlags_dontSavePainterState2_data();
+    void optimizationFlags_dontSavePainterState2();
     void levelOfDetail_data();
     void levelOfDetail();
     void scrollBarRanges_data();
@@ -2455,6 +2457,53 @@ void tst_QGraphicsView::optimizationFlags_dontSavePainterState()
     QTest::qWaitForWindowShown(&painter2);
 }
 
+void tst_QGraphicsView::optimizationFlags_dontSavePainterState2_data()
+{
+    QTest::addColumn<bool>("savePainter");
+    QTest::newRow("With painter state protection") << true;
+    QTest::newRow("Without painter state protection") << false;
+}
+
+void tst_QGraphicsView::optimizationFlags_dontSavePainterState2()
+{
+    QFETCH(bool, savePainter);
+
+    class MyScene : public QGraphicsScene
+    {
+    public:
+        void drawBackground(QPainter *p, const QRectF &)
+        { transformInDrawBackground = p->worldTransform(); }
+
+        void drawForeground(QPainter *p, const QRectF &)
+        { transformInDrawForeground = p->worldTransform(); }
+
+        QTransform transformInDrawBackground;
+        QTransform transformInDrawForeground;
+    };
+
+    MyScene scene;
+    // Add transformed dummy items to make sure the painter's worldTransform() is changed in drawItems.
+    scene.addRect(0, 0, 20, 20)->setTransform(QTransform::fromScale(2, 2));
+    scene.addRect(50, 50, 20, 20)->setTransform(QTransform::fromTranslate(200, 200));
+
+    QGraphicsView view(&scene);
+    if (!savePainter)
+        view.setOptimizationFlag(QGraphicsView::DontSavePainterState);
+    view.rotate(45);
+    view.scale(1.5, 1.5);
+    view.show();
+#ifdef Q_WS_X11
+    qt_x11_wait_for_window_manager(&view);
+#endif
+    QTest::qWait(150);
+
+    // Make sure the painter's world transform is preserved after drawItems.
+    const QTransform expectedTransform = view.viewportTransform();
+    QVERIFY(!expectedTransform.isIdentity());
+    QCOMPARE(scene.transformInDrawForeground, expectedTransform);
+    QCOMPARE(scene.transformInDrawBackground, expectedTransform);
+}
+
 class LodItem : public QGraphicsRectItem
 {
 public:
-- 
cgit v0.12


From b2cc784cbba9c790c2cc083cf99d9a2a112a9c27 Mon Sep 17 00:00:00 2001
From: Thierry Bastian <thierry.bastian@nokia.com>
Date: Fri, 23 Oct 2009 15:36:30 +0200
Subject: Phonon: allows to stream wave files from QIODevice

Reviewed-by: trust Me
---
 src/3rdparty/phonon/ds9/iodevicereader.cpp | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/src/3rdparty/phonon/ds9/iodevicereader.cpp b/src/3rdparty/phonon/ds9/iodevicereader.cpp
index e0c505c..695af59 100644
--- a/src/3rdparty/phonon/ds9/iodevicereader.cpp
+++ b/src/3rdparty/phonon/ds9/iodevicereader.cpp
@@ -36,17 +36,20 @@ namespace Phonon
         //these mediatypes define a stream, its type will be autodetected by DirectShow
         static QVector<AM_MEDIA_TYPE> getMediaTypes()
         {
-            AM_MEDIA_TYPE mt = { MEDIATYPE_Stream, MEDIASUBTYPE_NULL, TRUE, FALSE, 1, GUID_NULL, 0, 0, 0};
+            //the order here is important because otherwise,
+            //directshow might not be able to detect the stream type correctly
+
+            AM_MEDIA_TYPE mt = { MEDIATYPE_Stream, MEDIASUBTYPE_Avi, TRUE, FALSE, 1, GUID_NULL, 0, 0, 0};
 
             QVector<AM_MEDIA_TYPE> ret;
-            //normal auto-detect stream
-            ret << mt;
             //AVI stream
-            mt.subtype = MEDIASUBTYPE_Avi;
             ret << mt;
             //WAVE stream
             mt.subtype = MEDIASUBTYPE_WAVE;
             ret << mt;
+            //normal auto-detect stream (must be at the end!)
+            mt.subtype = MEDIASUBTYPE_NULL;
+            ret << mt;
             return ret;
         }
 
-- 
cgit v0.12


From b14338cce8cb13003a4943d134502e085f36ab08 Mon Sep 17 00:00:00 2001
From: Andreas Aardal Hanssen <andreas.aardal.hanssen@nokia.com>
Date: Mon, 26 Oct 2009 09:07:39 +0100
Subject: Fix buglet in QGraphicsItem::stackBefore().

Reported by Alan. The stackBefore() implementation did not alter the
insertion order if the two items' current Z values were different. The
fix is to ensure it is updated, so that the stackBefore() operation
takes effect should the Z values become equal in the future. Example:

Current order: A-B-C-D
A->setZValue(1);
Current order: B-C-D-A (A moves to the end)
D->stackBefore(A);
Current order: B-C-D-A (unchanged, D is already before A)
A->setZValue(0);
Current order: D-A-B-C (now A moves back, and D moves in front)

Reviewed-by: Aaron Kennedy
---
 src/gui/graphicsview/qgraphicsitem.cpp         |  2 +-
 tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp | 56 +++++++++++++-------------
 2 files changed, 29 insertions(+), 29 deletions(-)

diff --git a/src/gui/graphicsview/qgraphicsitem.cpp b/src/gui/graphicsview/qgraphicsitem.cpp
index 4b2ff52..ad672a3 100644
--- a/src/gui/graphicsview/qgraphicsitem.cpp
+++ b/src/gui/graphicsview/qgraphicsitem.cpp
@@ -4261,7 +4261,7 @@ void QGraphicsItem::stackBefore(const QGraphicsItem *sibling)
     // Only move items with the same Z value, and that need moving.
     int siblingIndex = sibling->d_ptr->siblingIndex;
     int myIndex = d_ptr->siblingIndex;
-    if (myIndex >= siblingIndex && d_ptr->z == sibling->d_ptr->z) {
+    if (myIndex >= siblingIndex) {
         siblings->move(myIndex, siblingIndex);
         // Fixup the insertion ordering.
         for (int i = 0; i < siblings->size(); ++i) {
diff --git a/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp b/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp
index 4fae911..dabf64c 100644
--- a/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp
+++ b/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp
@@ -8569,24 +8569,24 @@ void tst_QGraphicsItem::stackBefore()
     QCOMPARE(parent.childItems(), (QList<QGraphicsItem *>() << child1 << child3 << child4 << child2));
 
     // Move child2 before child1
-    child2->stackBefore(child1);
+    child2->stackBefore(child1); // 2134
     QCOMPARE(parent.childItems(), (QList<QGraphicsItem *>() << child2 << child1 << child3 << child4));
-    child2->stackBefore(child2);
+    child2->stackBefore(child2); // 2134
     QCOMPARE(parent.childItems(), (QList<QGraphicsItem *>() << child2 << child1 << child3 << child4));
-    child1->setZValue(1);
+    child1->setZValue(1); // 2341
     QCOMPARE(parent.childItems(), (QList<QGraphicsItem *>() << child2 << child3 << child4 << child1));
-    child1->stackBefore(child2); // no effect
+    child1->stackBefore(child2); // 2341
     QCOMPARE(parent.childItems(), (QList<QGraphicsItem *>() << child2 << child3 << child4 << child1));
-    child1->setZValue(0);
-    QCOMPARE(parent.childItems(), (QList<QGraphicsItem *>() << child2 << child1 << child3 << child4));
-    child4->stackBefore(child1);
-    QCOMPARE(parent.childItems(), (QList<QGraphicsItem *>() << child2 << child4 << child1 << child3));
-    child4->setZValue(1);
-    QCOMPARE(parent.childItems(), (QList<QGraphicsItem *>() << child2 << child1 << child3 << child4));
-    child3->stackBefore(child1);
-    QCOMPARE(parent.childItems(), (QList<QGraphicsItem *>() << child2 << child3 << child1 << child4));
-    child4->setZValue(0);
-    QCOMPARE(parent.childItems(), (QList<QGraphicsItem *>() << child2 << child4 << child3 << child1));
+    child1->setZValue(0); // 1234
+    QCOMPARE(parent.childItems(), (QList<QGraphicsItem *>() << child1 << child2 << child3 << child4));
+    child4->stackBefore(child1); // 4123
+    QCOMPARE(parent.childItems(), (QList<QGraphicsItem *>() << child4 << child1 << child2 << child3));
+    child4->setZValue(1); // 1234 (4123)
+    QCOMPARE(parent.childItems(), (QList<QGraphicsItem *>() << child1 << child2 << child3 << child4));
+    child3->stackBefore(child1); // 3124 (4312)
+    QCOMPARE(parent.childItems(), (QList<QGraphicsItem *>() << child3 << child1 << child2 << child4));
+    child4->setZValue(0); // 4312
+    QCOMPARE(parent.childItems(), (QList<QGraphicsItem *>() << child4 << child3 << child1 << child2));
 
     // Make them all toplevels
     child1->setParentItem(0);
@@ -8608,24 +8608,24 @@ void tst_QGraphicsItem::stackBefore()
     QCOMPARE(scene.items(QPointF(2, 2), Qt::IntersectsItemBoundingRect, Qt::AscendingOrder), (QList<QGraphicsItem *>() << child1 << child3 << child4 << child2));
 
     // Move child2 before child1
-    child2->stackBefore(child1);
+    child2->stackBefore(child1); // 2134
     QCOMPARE(scene.items(QPointF(2, 2), Qt::IntersectsItemBoundingRect, Qt::AscendingOrder), (QList<QGraphicsItem *>() << child2 << child1 << child3 << child4));
-    child2->stackBefore(child2);
+    child2->stackBefore(child2); // 2134
     QCOMPARE(scene.items(QPointF(2, 2), Qt::IntersectsItemBoundingRect, Qt::AscendingOrder), (QList<QGraphicsItem *>() << child2 << child1 << child3 << child4));
-    child1->setZValue(1);
+    child1->setZValue(1); // 2341
     QCOMPARE(scene.items(QPointF(2, 2), Qt::IntersectsItemBoundingRect, Qt::AscendingOrder), (QList<QGraphicsItem *>() << child2 << child3 << child4 << child1));
-    child1->stackBefore(child2); // no effect
+    child1->stackBefore(child2); // 2341
     QCOMPARE(scene.items(QPointF(2, 2), Qt::IntersectsItemBoundingRect, Qt::AscendingOrder), (QList<QGraphicsItem *>() << child2 << child3 << child4 << child1));
-    child1->setZValue(0);
-    QCOMPARE(scene.items(QPointF(2, 2), Qt::IntersectsItemBoundingRect, Qt::AscendingOrder), (QList<QGraphicsItem *>() << child2 << child1 << child3 << child4));
-    child4->stackBefore(child1);
-    QCOMPARE(scene.items(QPointF(2, 2), Qt::IntersectsItemBoundingRect, Qt::AscendingOrder), (QList<QGraphicsItem *>() << child2 << child4 << child1 << child3));
-    child4->setZValue(1);
-    QCOMPARE(scene.items(QPointF(2, 2), Qt::IntersectsItemBoundingRect, Qt::AscendingOrder), (QList<QGraphicsItem *>() << child2 << child1 << child3 << child4));
-    child3->stackBefore(child1);
-    QCOMPARE(scene.items(QPointF(2, 2), Qt::IntersectsItemBoundingRect, Qt::AscendingOrder), (QList<QGraphicsItem *>() << child2 << child3 << child1 << child4));
-    child4->setZValue(0);
-    QCOMPARE(scene.items(QPointF(2, 2), Qt::IntersectsItemBoundingRect, Qt::AscendingOrder), (QList<QGraphicsItem *>() << child2 << child4 << child3 << child1));
+    child1->setZValue(0); // 1234
+    QCOMPARE(scene.items(QPointF(2, 2), Qt::IntersectsItemBoundingRect, Qt::AscendingOrder), (QList<QGraphicsItem *>() << child1 << child2 << child3 << child4));
+    child4->stackBefore(child1); // 4123
+    QCOMPARE(scene.items(QPointF(2, 2), Qt::IntersectsItemBoundingRect, Qt::AscendingOrder), (QList<QGraphicsItem *>() << child4 << child1 << child2 << child3));
+    child4->setZValue(1); // 1234 (4123)
+    QCOMPARE(scene.items(QPointF(2, 2), Qt::IntersectsItemBoundingRect, Qt::AscendingOrder), (QList<QGraphicsItem *>() << child1 << child2 << child3 << child4));
+    child3->stackBefore(child1); // 3124 (4312)
+    QCOMPARE(scene.items(QPointF(2, 2), Qt::IntersectsItemBoundingRect, Qt::AscendingOrder), (QList<QGraphicsItem *>() << child3 << child1 << child2 << child4));
+    child4->setZValue(0); // 4312
+    QCOMPARE(scene.items(QPointF(2, 2), Qt::IntersectsItemBoundingRect, Qt::AscendingOrder), (QList<QGraphicsItem *>() << child4 << child3 << child1 << child2));
 }
 
 void tst_QGraphicsItem::QTBUG_4233_updateCachedWithSceneRect()
-- 
cgit v0.12


From 319482a6b33ce1bd365457054aca49a51d885e07 Mon Sep 17 00:00:00 2001
From: Gabriel de Dietrich <gabriel.dietrich-de@nokia.com>
Date: Fri, 23 Oct 2009 09:14:39 +0200
Subject: Drag and drop in QListWidget would not preserve the selection

Now, when dropping items, these will remain selected, and in the same visual
order as when dragged.

Auto-test included for the items moving part. For the rest, it's a
drag-and-drop thing.

Reviewed-by: Olivier
---
 src/gui/itemviews/qlistwidget.cpp          | 31 ++++++++++------
 src/gui/itemviews/qlistwidget_p.h          |  3 +-
 tests/auto/qlistwidget/tst_qlistwidget.cpp | 59 ++++++++++++++++++++++++++++++
 3 files changed, 80 insertions(+), 13 deletions(-)

diff --git a/src/gui/itemviews/qlistwidget.cpp b/src/gui/itemviews/qlistwidget.cpp
index a978d0f..5dd1d76 100644
--- a/src/gui/itemviews/qlistwidget.cpp
+++ b/src/gui/itemviews/qlistwidget.cpp
@@ -169,6 +169,20 @@ QListWidgetItem *QListModel::take(int row)
     return item;
 }
 
+void QListModel::move(int srcRow, int dstRow)
+{
+    if (srcRow == dstRow
+        || srcRow < 0 || srcRow >= items.count()
+        || dstRow < 0 || dstRow >= items.count())
+        return;
+
+    beginMoveRows(QModelIndex(), srcRow, srcRow, QModelIndex(), dstRow);
+    if (srcRow < dstRow)
+        --dstRow;
+    items.move(srcRow, dstRow);
+    endMoveRows();
+}
+
 int QListModel::rowCount(const QModelIndex &parent) const
 {
     return parent.isValid() ? 0 : items.count();
@@ -1804,22 +1818,15 @@ void QListWidget::dropEvent(QDropEvent *event) {
 
             if (persIndexes.contains(topIndex))
                 return;
+            qSort(persIndexes); // The dropped items will remain in the same visual order.
 
             QPersistentModelIndex dropRow = model()->index(row, col, topIndex);
 
-            QList<QListWidgetItem *> taken;
-            for (int i = 0; i < persIndexes.count(); ++i)
-                taken.append(takeItem(persIndexes.at(i).row()));
-
-            // insert them back in at their new positions
+            int r = row == -1 ? count() : (dropRow.row() >= 0 ? dropRow.row() : row);
             for (int i = 0; i < persIndexes.count(); ++i) {
-                // Either at a specific point or appended
-                if (row == -1) {
-                    insertItem(count(), taken.takeFirst());
-                } else {
-                    int r = dropRow.row() >= 0 ? dropRow.row() : row;
-                    insertItem(qMin(r, count()), taken.takeFirst());
-                }
+                const QPersistentModelIndex &pIndex = persIndexes.at(i);
+                d->listModel()->move(pIndex.row(), r);
+                r = pIndex.row() + 1;   // Dropped items are inserted contiguously and in the right order.
             }
 
             event->accept();
diff --git a/src/gui/itemviews/qlistwidget_p.h b/src/gui/itemviews/qlistwidget_p.h
index 69cfa26..b5f28e3 100644
--- a/src/gui/itemviews/qlistwidget_p.h
+++ b/src/gui/itemviews/qlistwidget_p.h
@@ -77,7 +77,7 @@ public:
         { return *i2 < *i1; }
 };
 
-class QListModel : public QAbstractListModel
+class Q_AUTOTEST_EXPORT QListModel : public QAbstractListModel
 {
     Q_OBJECT
 public:
@@ -90,6 +90,7 @@ public:
     void insert(int row, const QStringList &items);
     void remove(QListWidgetItem *item);
     QListWidgetItem *take(int row);
+    void move(int srcRow, int dstRow);
 
     int rowCount(const QModelIndex &parent = QModelIndex()) const;
 
diff --git a/tests/auto/qlistwidget/tst_qlistwidget.cpp b/tests/auto/qlistwidget/tst_qlistwidget.cpp
index e825c8f..5c6ed54 100644
--- a/tests/auto/qlistwidget/tst_qlistwidget.cpp
+++ b/tests/auto/qlistwidget/tst_qlistwidget.cpp
@@ -46,6 +46,7 @@
 #include <qlist.h>
 
 #include <qlistwidget.h>
+#include <private/qlistwidget_p.h>
 
 //TESTED_CLASS=
 //TESTED_FILES=
@@ -95,6 +96,8 @@ private slots:
     void insertItem();
     void insertItems_data();
     void insertItems();
+    void moveItemsPriv_data();
+    void moveItemsPriv();
 
     void itemAssignment();
     void item_data();
@@ -849,6 +852,62 @@ void tst_QListWidget::removeItems()
 
 }
 
+void tst_QListWidget::moveItemsPriv_data()
+{
+    QTest::addColumn<int>("rowCount");
+    QTest::addColumn<int>("srcRow");
+    QTest::addColumn<int>("dstRow");
+    QTest::addColumn<bool>("shouldHaveSignaled");
+
+    QTest::newRow("Empty") << 0 << 0 << 0 << false;
+    QTest::newRow("Overflow src") << 5 << 5 << 2 << false;
+    QTest::newRow("Underflow src") << 5 << -1 << 2 << false;
+    QTest::newRow("Overflow dst") << 5 << 2 << 5 << false;
+    QTest::newRow("Underflow dst") << 5 << 2 << -1 << false;
+    QTest::newRow("Same place") << 5 << 2 << 2 << false;
+    QTest::newRow("Up") << 5 << 4 << 2 << true;
+    QTest::newRow("Down") << 5 << 2 << 4 << true;
+}
+
+void tst_QListWidget::moveItemsPriv()
+{
+    QFETCH(int, rowCount);
+    QFETCH(int, srcRow);
+    QFETCH(int, dstRow);
+    QFETCH(bool, shouldHaveSignaled);
+
+    for (int r = 0; r < rowCount; ++r)
+        new QListWidgetItem(QString::number(r), testWidget);
+
+    QListModel *model = dynamic_cast<QListModel *>(testWidget->model());
+    QVERIFY(model);
+    QSignalSpy beginMoveSpy(model, SIGNAL(rowsAboutToBeMoved(QModelIndex,int,int,QModelIndex,int)));
+    QSignalSpy movedSpy(model, SIGNAL(rowsMoved(QModelIndex,int,int,QModelIndex,int)));
+    model->move(srcRow, dstRow);
+
+    if (shouldHaveSignaled) {
+        if (srcRow < dstRow)
+            QCOMPARE(testWidget->item(dstRow - 1)->text(), QString::number(srcRow));
+        else
+            QCOMPARE(testWidget->item(dstRow)->text(), QString::number(srcRow));
+
+        QCOMPARE(beginMoveSpy.count(), 1);
+        const QList<QVariant> &beginMoveArgs = beginMoveSpy.takeFirst();
+        QCOMPARE(beginMoveArgs.at(1).toInt(), srcRow);
+        QCOMPARE(beginMoveArgs.at(2).toInt(), srcRow);
+        QCOMPARE(beginMoveArgs.at(4).toInt(), dstRow);
+
+        QCOMPARE(movedSpy.count(), 1);
+        const QList<QVariant> &movedArgs = movedSpy.takeFirst();
+        QCOMPARE(movedArgs.at(1).toInt(), srcRow);
+        QCOMPARE(movedArgs.at(2).toInt(), srcRow);
+        QCOMPARE(movedArgs.at(4).toInt(), dstRow);
+    } else {
+        QCOMPARE(beginMoveSpy.count(), 0);
+        QCOMPARE(movedSpy.count(), 0);
+    }
+}
+
 void tst_QListWidget::itemStreaming_data()
 {
     QTest::addColumn<QString>("text");
-- 
cgit v0.12


From c7e8c1844819bc9b078403f8cdbad9c104452a30 Mon Sep 17 00:00:00 2001
From: Gabriel de Dietrich <gabriel.dietrich-de@nokia.com>
Date: Mon, 26 Oct 2009 12:52:30 +0100
Subject: Fixed typo

Would not have introduced any bug as invald QModelIndex are currently
initialised with -1 for row and column.

Reviewed-by: trust me
---
 src/gui/itemviews/qitemselectionmodel.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/gui/itemviews/qitemselectionmodel.cpp b/src/gui/itemviews/qitemselectionmodel.cpp
index dfebe03..f2ccb6e 100644
--- a/src/gui/itemviews/qitemselectionmodel.cpp
+++ b/src/gui/itemviews/qitemselectionmodel.cpp
@@ -599,7 +599,7 @@ void QItemSelectionModelPrivate::_q_rowsAboutToBeRemoved(const QModelIndex &pare
             while (itParent.isValid() && itParent.parent() != parent)
                 itParent = itParent.parent();
 
-            if (parent.isValid() && start <= itParent.row() && itParent.row() <= end) {
+            if (itParent.isValid() && start <= itParent.row() && itParent.row() <= end) {
                 deselected.append(*it);
                 it = ranges.erase(it);
             } else {
-- 
cgit v0.12


From 9c78eb972041a066e455bf04d63f3290afacb982 Mon Sep 17 00:00:00 2001
From: Olivier Goffart <ogoffart@trolltech.com>
Date: Mon, 26 Oct 2009 15:15:59 +0100
Subject: stabilize test and fix warning

---
 src/gui/kernel/qguiplatformplugin.cpp  | 2 ++
 tests/auto/qlistview/tst_qlistview.cpp | 6 +++---
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/src/gui/kernel/qguiplatformplugin.cpp b/src/gui/kernel/qguiplatformplugin.cpp
index 6e074a1..b01d40f 100644
--- a/src/gui/kernel/qguiplatformplugin.cpp
+++ b/src/gui/kernel/qguiplatformplugin.cpp
@@ -288,6 +288,8 @@ int QGuiPlatformPlugin::platformHint(PlatformHint hint)
 #endif
             //by default keep ret = 0 so QCommonStyle will use the style default
             break;
+        default:
+            break;
     }
     return ret;
 }
diff --git a/tests/auto/qlistview/tst_qlistview.cpp b/tests/auto/qlistview/tst_qlistview.cpp
index 3968529..65ab12d 100644
--- a/tests/auto/qlistview/tst_qlistview.cpp
+++ b/tests/auto/qlistview/tst_qlistview.cpp
@@ -1785,12 +1785,12 @@ void tst_QListView::task262152_setModelColumnNavigate()
 
     view.show();
     QTest::qWaitForWindowShown(&view);
-    QTest::qWait(10);
+    QTest::qWait(100);
     QTest::keyClick(&view, Qt::Key_Down);
-    QTest::qWait(10);
+    QTest::qWait(100);
     QCOMPARE(view.currentIndex(), model.index(1,1));
     QTest::keyClick(&view, Qt::Key_Down);
-    QTest::qWait(10);
+    QTest::qWait(100);
     QCOMPARE(view.currentIndex(), model.index(2,1));
 
 }
-- 
cgit v0.12


From 2d750192e73244f5b4ad6b451f264728d42669be Mon Sep 17 00:00:00 2001
From: Gabriel de Dietrich <gabriel.dietrich-de@nokia.com>
Date: Mon, 26 Oct 2009 15:53:47 +0100
Subject: Fixed crash when setting header data in QSqlQueryModel.

The crash (Q_ASSERT_X failure) happened when a proxy model was being attached
to the QSqlQueryModel, and no query was set yet. The headerDataChanged()
signal was being received by the proxy model who wouldn't check its
"proxyfied" data bounds.

The patch introduces a behaviour change. However, this change makes the usage
of QSqlQueryModel::setHeaderData() to be more in accordance with the current
documentation, and to behave in the same way as for QStandardItemModel,
QTreeModel, and QTableModel.

Task-number: QTBUG-4963
Reviewed-by: Olivier
---
 src/sql/models/qsqlquerymodel.cpp                |  2 +-
 tests/auto/qsqlquerymodel/tst_qsqlquerymodel.cpp | 18 ++++++++++++++----
 2 files changed, 15 insertions(+), 5 deletions(-)

diff --git a/src/sql/models/qsqlquerymodel.cpp b/src/sql/models/qsqlquerymodel.cpp
index a72ad8c..1719239 100644
--- a/src/sql/models/qsqlquerymodel.cpp
+++ b/src/sql/models/qsqlquerymodel.cpp
@@ -417,7 +417,7 @@ bool QSqlQueryModel::setHeaderData(int section, Qt::Orientation orientation,
                                    const QVariant &value, int role)
 {
     Q_D(QSqlQueryModel);
-    if (orientation != Qt::Horizontal || section < 0)
+    if (orientation != Qt::Horizontal || section < 0 || columnCount() <= section)
         return false;
 
     if (d->headers.size() <= section)
diff --git a/tests/auto/qsqlquerymodel/tst_qsqlquerymodel.cpp b/tests/auto/qsqlquerymodel/tst_qsqlquerymodel.cpp
index 3131f35..02b48fa 100644
--- a/tests/auto/qsqlquerymodel/tst_qsqlquerymodel.cpp
+++ b/tests/auto/qsqlquerymodel/tst_qsqlquerymodel.cpp
@@ -96,6 +96,7 @@ private slots:
 
     void task_180617();
     void task_180617_data() { generic_data(); }
+    void task_QTBUG_4963_setHeaderDataWithProxyModel();
 
 private:
     void generic_data(const QString &engine=QString());
@@ -428,6 +429,8 @@ void tst_QSqlQueryModel::setHeaderData()
     QVERIFY(!model.setHeaderData(5, Qt::Vertical, "foo"));
     QVERIFY(model.headerData(5, Qt::Vertical).isValid());
 
+    model.setQuery(QSqlQuery("select * from " + qTableName("test"), db));
+
     qRegisterMetaType<Qt::Orientation>("Qt::Orientation");
     QSignalSpy spy(&model, SIGNAL(headerDataChanged(Qt::Orientation, int, int)));
     QVERIFY(model.setHeaderData(2, Qt::Horizontal, "bar"));
@@ -437,10 +440,8 @@ void tst_QSqlQueryModel::setHeaderData()
     QCOMPARE(spy.value(0).value(1).toInt(), 2);
     QCOMPARE(spy.value(0).value(2).toInt(), 2);
 
-    QVERIFY(model.setHeaderData(7, Qt::Horizontal, "foo", Qt::ToolTipRole));
-    QVERIFY(model.headerData(7, Qt::Horizontal, Qt::ToolTipRole).isValid());
-
-    model.setQuery(QSqlQuery("select * from " + qTableName("test"), db));
+    QVERIFY(!model.setHeaderData(7, Qt::Horizontal, "foo", Qt::ToolTipRole));
+    QVERIFY(!model.headerData(7, Qt::Horizontal, Qt::ToolTipRole).isValid());
 
     bool isToUpper = db.driverName().startsWith("QIBASE") || db.driverName().startsWith("QOCI") || db.driverName().startsWith("QDB2");
     QCOMPARE(model.headerData(0, Qt::Horizontal).toString(), isToUpper ? QString("ID") : QString("id"));
@@ -603,5 +604,14 @@ void tst_QSqlQueryModel::task_180617()
     QCOMPARE(view.rowAt(0), -1);
 }
 
+void tst_QSqlQueryModel::task_QTBUG_4963_setHeaderDataWithProxyModel()
+{
+    QSqlQueryModel plainModel;
+    QSortFilterProxyModel proxyModel;
+    proxyModel.setSourceModel(&plainModel);
+    QVERIFY(!plainModel.setHeaderData(0, Qt::Horizontal, QObject::tr("ID")));
+    // And it should not crash.
+}
+
 QTEST_MAIN(tst_QSqlQueryModel)
 #include "tst_qsqlquerymodel.moc"
-- 
cgit v0.12


From 96f59cb98c248185a3873f06d0e1a2e7652d8cec Mon Sep 17 00:00:00 2001
From: Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
Date: Mon, 19 Oct 2009 07:30:52 -0300
Subject: QGAL: complex anchors can indicate errors when refreshing sizehint

Now the refreshSizeHints() returns a boolean, and the parallel anchor
will return false in unfeasible cases, e.g. one anchor has maximum
size smaller than other minimum size.

Signed-off-by: Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
Reviewed-by: Eduardo M. Fleury <eduardo.fleury@openbossa.org>
---
 src/gui/graphicsview/qgraphicsanchorlayout_p.cpp | 43 ++++++++++++++----------
 src/gui/graphicsview/qgraphicsanchorlayout_p.h   | 10 +++---
 2 files changed, 31 insertions(+), 22 deletions(-)

diff --git a/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp b/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp
index 8c8c303..a92a63e 100644
--- a/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp
+++ b/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp
@@ -141,7 +141,7 @@ static void internalSizeHints(QSizePolicy::Policy policy,
         *expSize = *prefSize;
 }
 
-void AnchorData::refreshSizeHints(qreal effectiveSpacing)
+bool AnchorData::refreshSizeHints(qreal effectiveSpacing)
 {
     const bool isInternalAnchor = from->m_item == to->m_item;
 
@@ -164,7 +164,7 @@ void AnchorData::refreshSizeHints(qreal effectiveSpacing)
             maxSize = QWIDGETSIZE_MAX;
             if (hasCenter)
                 maxSize /= 2;
-            return;
+            return true;
         } else {
 
             QGraphicsLayoutItem *item = from->m_item;
@@ -214,6 +214,8 @@ void AnchorData::refreshSizeHints(qreal effectiveSpacing)
     sizeAtPreferred = prefSize;
     sizeAtExpanding = prefSize;
     sizeAtMaximum = prefSize;
+
+    return true;
 }
 
 void ParallelAnchorData::updateChildrenSizes()
@@ -227,26 +229,29 @@ void ParallelAnchorData::updateChildrenSizes()
     secondEdge->updateChildrenSizes();
 }
 
-void ParallelAnchorData::refreshSizeHints(qreal effectiveSpacing)
+bool ParallelAnchorData::refreshSizeHints(qreal effectiveSpacing)
 {
-    refreshSizeHints_helper(effectiveSpacing);
+    return refreshSizeHints_helper(effectiveSpacing);
 }
 
-void ParallelAnchorData::refreshSizeHints_helper(qreal effectiveSpacing,
+bool ParallelAnchorData::refreshSizeHints_helper(qreal effectiveSpacing,
                                                  bool refreshChildren)
 {
-    if (refreshChildren) {
-        firstEdge->refreshSizeHints(effectiveSpacing);
-        secondEdge->refreshSizeHints(effectiveSpacing);
+    if (refreshChildren && (!firstEdge->refreshSizeHints(effectiveSpacing)
+                            || !secondEdge->refreshSizeHints(effectiveSpacing))) {
+        return false;
     }
 
-    // ### should we warn if the parallel connection is invalid?
-    // e.g. 1-2-3 with 10-20-30, the minimum of the latter is
-    // bigger than the maximum of the former.
-
     minSize = qMax(firstEdge->minSize, secondEdge->minSize);
     maxSize = qMin(firstEdge->maxSize, secondEdge->maxSize);
 
+    // This condition means that the maximum size of one anchor being simplified is smaller than
+    // the minimum size of the other anchor. The consequence is that there won't be a valid size
+    // for this parallel setup.
+    if (minSize > maxSize) {
+        return false;
+    }
+
     expSize = qMax(firstEdge->expSize, secondEdge->expSize);
     expSize = qMin(expSize, maxSize);
 
@@ -258,6 +263,8 @@ void ParallelAnchorData::refreshSizeHints_helper(qreal effectiveSpacing,
     sizeAtPreferred = prefSize;
     sizeAtExpanding = prefSize;
     sizeAtMaximum = prefSize;
+
+    return true;
 }
 
 /*!
@@ -362,12 +369,12 @@ void SequentialAnchorData::updateChildrenSizes()
     }
 }
 
-void SequentialAnchorData::refreshSizeHints(qreal effectiveSpacing)
+bool SequentialAnchorData::refreshSizeHints(qreal effectiveSpacing)
 {
-    refreshSizeHints_helper(effectiveSpacing);
+    return refreshSizeHints_helper(effectiveSpacing);
 }
 
-void SequentialAnchorData::refreshSizeHints_helper(qreal effectiveSpacing,
+bool SequentialAnchorData::refreshSizeHints_helper(qreal effectiveSpacing,
                                                    bool refreshChildren)
 {
     minSize = 0;
@@ -379,8 +386,8 @@ void SequentialAnchorData::refreshSizeHints_helper(qreal effectiveSpacing,
         AnchorData *edge = m_edges.at(i);
 
         // If it's the case refresh children information first
-        if (refreshChildren)
-            edge->refreshSizeHints(effectiveSpacing);
+        if (refreshChildren && !edge->refreshSizeHints(effectiveSpacing))
+            return false;
 
         minSize += edge->minSize;
         prefSize += edge->prefSize;
@@ -393,6 +400,8 @@ void SequentialAnchorData::refreshSizeHints_helper(qreal effectiveSpacing,
     sizeAtPreferred = prefSize;
     sizeAtExpanding = prefSize;
     sizeAtMaximum = prefSize;
+
+    return true;
 }
 
 #ifdef QT_DEBUG
diff --git a/src/gui/graphicsview/qgraphicsanchorlayout_p.h b/src/gui/graphicsview/qgraphicsanchorlayout_p.h
index d45c004..d4eb2d4 100644
--- a/src/gui/graphicsview/qgraphicsanchorlayout_p.h
+++ b/src/gui/graphicsview/qgraphicsanchorlayout_p.h
@@ -159,7 +159,7 @@ struct AnchorData : public QSimplexVariable {
           type(Normal), hasSize(true), isLayoutAnchor(false) {}
 
     virtual void updateChildrenSizes() {}
-    virtual void refreshSizeHints(qreal effectiveSpacing);
+    virtual bool refreshSizeHints(qreal effectiveSpacing);
 
     virtual ~AnchorData() {}
 
@@ -226,9 +226,9 @@ struct SequentialAnchorData : public AnchorData
     }
 
     virtual void updateChildrenSizes();
-    virtual void refreshSizeHints(qreal effectiveSpacing);
+    virtual bool refreshSizeHints(qreal effectiveSpacing);
 
-    void refreshSizeHints_helper(qreal effectiveSpacing, bool refreshChildren = true);
+    bool refreshSizeHints_helper(qreal effectiveSpacing, bool refreshChildren = true);
 
     void setVertices(const QVector<AnchorVertex*> &vertices)
     {
@@ -261,9 +261,9 @@ struct ParallelAnchorData : public AnchorData
     }
 
     virtual void updateChildrenSizes();
-    virtual void refreshSizeHints(qreal effectiveSpacing);
+    virtual bool refreshSizeHints(qreal effectiveSpacing);
 
-    void refreshSizeHints_helper(qreal effectiveSpacing, bool refreshChildren = true);
+    bool refreshSizeHints_helper(qreal effectiveSpacing, bool refreshChildren = true);
 
     AnchorData* firstEdge;
     AnchorData* secondEdge;
-- 
cgit v0.12


From 3b025f72636041f7bfe1bf02b34e3b156a78844f Mon Sep 17 00:00:00 2001
From: Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
Date: Fri, 16 Oct 2009 17:40:02 -0300
Subject: QGAL: separate parallel anchor creation from sequence creation

Extract the creation of parallel anchors from the creation of
sequential anchor. This will be useful to keep track whether a
parallel anchor is feasible or not.

Signed-off-by: Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
Reviewed-by: Eduardo M. Fleury <eduardo.fleury@openbossa.org>
---
 src/gui/graphicsview/qgraphicsanchorlayout_p.cpp | 90 ++++++++++++++++--------
 1 file changed, 61 insertions(+), 29 deletions(-)

diff --git a/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp b/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp
index a92a63e..8b7ff08 100644
--- a/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp
+++ b/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp
@@ -519,18 +519,51 @@ inline static qreal checkAdd(qreal a, qreal b)
 }
 
 /*!
- * \internal
- *
- * Takes the sequence of vertices described by (\a before, \a vertices, \a after) and replaces
- * all anchors connected to the vertices in \a vertices with one simplified anchor between
- * \a before and \a after. The simplified anchor will be a placeholder for all the previous
- * anchors between \a before and \a after, and can be restored back to the anchors it is a
- * placeholder for.
- */
-static bool simplifySequentialChunk(Graph<AnchorVertex, AnchorData> *graph,
-                                    AnchorVertex *before,
-                                    const QVector<AnchorVertex*> &vertices,
-                                    AnchorVertex *after)
+    \internal
+
+    Adds \a newAnchor to the graph \a g.
+
+    Returns the newAnchor itself if it could be added without further changes to the graph. If a
+    new parallel anchor had to be created, then returns the new parallel anchor. In case the
+    addition is unfeasible -- because a parallel setup is not possible, returns 0.
+*/
+static AnchorData *addAnchorMaybeParallel(Graph<AnchorVertex, AnchorData> *g,
+                                          AnchorData *newAnchor)
+{
+    bool feasible = true;
+
+    // If already exists one anchor where newAnchor is supposed to be, we create a parallel
+    // anchor.
+    if (AnchorData *oldAnchor = g->takeEdge(newAnchor->from, newAnchor->to)) {
+        ParallelAnchorData *parallel = new ParallelAnchorData(oldAnchor, newAnchor);
+        parallel->isLayoutAnchor = (oldAnchor->isLayoutAnchor
+                                        || newAnchor->isLayoutAnchor);
+
+        // At this point we can identify that the parallel anchor is not feasible, e.g. one
+        // anchor minimum size is bigger than the other anchor maximum size.
+        feasible = parallel->refreshSizeHints_helper(0, false);
+        newAnchor = parallel;
+    }
+
+    g->createEdge(newAnchor->from, newAnchor->to, newAnchor);
+    return feasible ? newAnchor : 0;
+}
+
+
+/*!
+    \internal
+
+    Takes the sequence of vertices described by (\a before, \a vertices, \a after) and removes
+    all anchors connected to the vertices in \a vertices, returning one simplified anchor between
+    \a before and \a after.
+
+    Note that this function doesn't add the created anchor to the graph. This should be done by
+    the caller.
+*/
+static AnchorData *createSequence(Graph<AnchorVertex, AnchorData> *graph,
+                                  AnchorVertex *before,
+                                  const QVector<AnchorVertex*> &vertices,
+                                  AnchorVertex *after)
 {
     AnchorData *data = graph->edgeData(before, vertices.first());
     Q_ASSERT(data);
@@ -578,18 +611,7 @@ static bool simplifySequentialChunk(Graph<AnchorVertex, AnchorData> *graph,
     sequence->isLayoutAnchor = (sequence->m_edges.first()->isLayoutAnchor
                                 || sequence->m_edges.last()->isLayoutAnchor);
 
-    AnchorData *newAnchor = sequence;
-    if (AnchorData *oldAnchor = graph->takeEdge(before, after)) {
-        ParallelAnchorData *parallel = new ParallelAnchorData(oldAnchor, sequence);
-        parallel->isLayoutAnchor = (oldAnchor->isLayoutAnchor
-                                     || sequence->isLayoutAnchor);
-        parallel->refreshSizeHints_helper(0, false);
-        newAnchor = parallel;
-    }
-    graph->createEdge(before, after, newAnchor);
-
-    // True if we created a parallel anchor
-    return newAnchor != sequence;
+    return sequence;
 }
 
 /*!
@@ -803,11 +825,21 @@ bool QGraphicsAnchorLayoutPrivate::simplifyGraphIteration(QGraphicsAnchorLayoutP
                 continue;
         }
 
-        // This function will remove the candidates from the graph and create one edge between
-        // beforeSequence and afterSequence. This function returns true if the sequential
-        // simplification also caused a parallel simplification to be created. In this case we end
-        // the iteration and start again (since all the visited state we have may be outdated).
-        if (simplifySequentialChunk(&g, beforeSequence, candidates, afterSequence))
+        //
+        // Add the sequence to the graph.
+        //
+
+        AnchorData *sequence = createSequence(&g, beforeSequence, candidates, afterSequence);
+
+        // If 'beforeSequence' and 'afterSequence' already had an anchor between them, we'll
+        // create a parallel anchor between the new sequence and the old anchor.
+        AnchorData *newAnchor = addAnchorMaybeParallel(&g, sequence);
+
+        // When a new parallel anchor is create in the graph, we finish the iteration and return
+        // true to indicate a new iteration is needed. This happens because a parallel anchor
+        // changes the number of adjacents one vertex has, possibly opening up oportunities for
+        // building candidate lists (when adjacents == 2).
+        if (newAnchor != sequence)
             return true;
 
         // If there was no parallel simplification, we'll keep walking the graph. So we clear the
-- 
cgit v0.12


From f9dfd711d104bb438da6ea281012600a897ab30c Mon Sep 17 00:00:00 2001
From: Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
Date: Mon, 19 Oct 2009 11:10:31 -0300
Subject: QGAL: identify unfeasible setups even when graph is simplified

The calculate graphs now can return early due to unfeasible anchor
setups found out during simplification. This allows finding out
problems in parallel anchors, when one anchor has maximum size smaller
than the minimum size of the other anchor.

The order for simplification and refreshing size hints also has been swaped:

- First, refresh size hints for all anchors in the graph. If the graph is
  simplified, the refreshSizeHints() call will reach the children anchors.
- Then, if the simplificated graph is invalid, rebuild it. During this
  rebuild, refreshSizeHints_helper() will be called for all levels.

So in both situations we can identify an unfeasible setup.  Note that
this test alone is not enough to classify the graph as feasible, depending
on the graph, it will still need to go through the Simplex.

A test case was added and the function that traverse the graph
refreshing now is called refreshAllSizeHints(). The old name was not
so clear since the function will not fill only the anchors that have
items associated.

Last but not least, the lastCalculationUsedSimplex variable is cleared
when starting calculateGraphs(), since we now can leave the function
earlier, without reaching calculateTrunk(), which is the function that
sets it.

Signed-off-by: Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
Reviewed-by: Eduardo M. Fleury <eduardo.fleury@openbossa.org>
---
 src/gui/graphicsview/qgraphicsanchorlayout_p.cpp   | 99 +++++++++++++++-------
 src/gui/graphicsview/qgraphicsanchorlayout_p.h     |  6 +-
 .../tst_qgraphicsanchorlayout.cpp                  | 51 +++++++++++
 3 files changed, 122 insertions(+), 34 deletions(-)

diff --git a/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp b/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp
index 8b7ff08..8d13b2b 100644
--- a/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp
+++ b/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp
@@ -648,15 +648,17 @@ static AnchorData *createSequence(Graph<AnchorVertex, AnchorData> *graph,
    2. Go to (1)
    3. Done
 
+   When creating the parallel anchors, the algorithm might identify unfeasible situations. In this
+   case the simplification process stops and returns false. Otherwise returns true.
 */
-void QGraphicsAnchorLayoutPrivate::simplifyGraph(Orientation orientation)
+bool QGraphicsAnchorLayoutPrivate::simplifyGraph(Orientation orientation)
 {
     static bool noSimplification = !qgetenv("QT_ANCHORLAYOUT_NO_SIMPLIFICATION").isEmpty();
     if (noSimplification || items.isEmpty())
-        return;
+        return true;
 
     if (graphSimplified[orientation])
-        return;
+        return true;
     graphSimplified[orientation] = true;
 
 #if 0
@@ -665,12 +667,18 @@ void QGraphicsAnchorLayoutPrivate::simplifyGraph(Orientation orientation)
 #endif
 
     if (!graph[orientation].rootVertex())
-        return;
+        return true;
 
     bool dirty;
+    bool feasible = true;
     do {
-        dirty = simplifyGraphIteration(orientation);
-    } while (dirty);
+        dirty = simplifyGraphIteration(orientation, &feasible);
+    } while (dirty && feasible);
+
+    if (!feasible)
+        graphSimplified[orientation] = false;
+
+    return feasible;
 }
 
 /*!
@@ -687,7 +695,8 @@ void QGraphicsAnchorLayoutPrivate::simplifyGraph(Orientation orientation)
     Note that there are some catches to this that are not covered by the above explanation, see
     the function comments for more details.
 */
-bool QGraphicsAnchorLayoutPrivate::simplifyGraphIteration(QGraphicsAnchorLayoutPrivate::Orientation orientation)
+bool QGraphicsAnchorLayoutPrivate::simplifyGraphIteration(QGraphicsAnchorLayoutPrivate::Orientation orientation,
+                                                          bool *feasible)
 {
     Q_Q(QGraphicsAnchorLayout);
     Graph<AnchorVertex, AnchorData> &g = graph[orientation];
@@ -835,6 +844,11 @@ bool QGraphicsAnchorLayoutPrivate::simplifyGraphIteration(QGraphicsAnchorLayoutP
         // create a parallel anchor between the new sequence and the old anchor.
         AnchorData *newAnchor = addAnchorMaybeParallel(&g, sequence);
 
+        if (!newAnchor) {
+            *feasible = false;
+            return false;
+        }
+
         // When a new parallel anchor is create in the graph, we finish the iteration and return
         // true to indicate a new iteration is needed. This happens because a parallel anchor
         // changes the number of adjacents one vertex has, possibly opening up oportunities for
@@ -1679,38 +1693,52 @@ QList<AnchorData *> getVariables(QList<QSimplexConstraint *> constraints)
 }
 
 /*!
-  \internal
+    \internal
 
-  Calculate graphs is the method that puts together all the helper routines
-  so that the AnchorLayout can calculate the sizes of each item.
+    Calculate graphs is the method that puts together all the helper routines
+    so that the AnchorLayout can calculate the sizes of each item.
 
-  In a nutshell it should do:
+    In a nutshell it should do:
 
-  1) Update anchor nominal sizes, that is, the size that each anchor would
-     have if no other restrictions applied. This is done by quering the
-     layout style and the sizeHints of the items belonging to the layout.
+    1) Refresh anchor nominal sizes, that is, the size that each anchor would
+       have if no other restrictions applied. This is done by quering the
+       layout style and the sizeHints of the items belonging to the layout.
 
-  2) Simplify the graph by grouping together parallel and sequential anchors
-     into "group anchors". These have equivalent minimum, preferred and maximum
-     sizeHints as the anchors they replace.
+    2) Simplify the graph by grouping together parallel and sequential anchors
+       into "group anchors". These have equivalent minimum, preferred and maximum
+       sizeHints as the anchors they replace.
 
-  3) Check if we got to a trivial case. In some cases, the whole graph can be
-     simplified into a single anchor. If so, use this information. If not,
-     then call the Simplex solver to calculate the anchors sizes.
+    3) Check if we got to a trivial case. In some cases, the whole graph can be
+       simplified into a single anchor. If so, use this information. If not,
+       then call the Simplex solver to calculate the anchors sizes.
 
-  4) Once the root anchors had its sizes calculated, propagate that to the
-     anchors they represent.
+    4) Once the root anchors had its sizes calculated, propagate that to the
+       anchors they represent.
 */
 void QGraphicsAnchorLayoutPrivate::calculateGraphs(
     QGraphicsAnchorLayoutPrivate::Orientation orientation)
 {
     Q_Q(QGraphicsAnchorLayout);
 
-    // Simplify the graph
-    simplifyGraph(orientation);
+#if defined(QT_DEBUG) || defined(Q_AUTOTEST_EXPORT)
+    lastCalculationUsedSimplex[orientation] = false;
+#endif
+
+    // Reset the nominal sizes of each anchor based on the current item sizes.  This function
+    // works with both simplified and non-simplified graphs, so it'll work when the
+    // simplification is going to be reused.
+    if (!refreshAllSizeHints(orientation)) {
+        qWarning("QGraphicsAnchorLayout: anchor setup is not feasible.");
+        graphHasConflicts[orientation] = true;
+        return;
+    }
 
-    // Reset the nominal sizes of each anchor based on the current item sizes
-    setAnchorSizeHintsFromItems(orientation);
+    // Simplify the graph
+    if (!simplifyGraph(orientation)) {
+        qWarning("QGraphicsAnchorLayout: anchor setup is not feasible.");
+        graphHasConflicts[orientation] = true;
+        return;
+    }
 
     // Traverse all graph edges and store the possible paths to each vertex
     findPaths(orientation);
@@ -1878,12 +1906,16 @@ bool QGraphicsAnchorLayoutPrivate::calculateNonTrunk(const QList<QSimplexConstra
 }
 
 /*!
-  \internal
+    \internal
 
-  For graph edges ("anchors") that represent items, this method updates their
-  intrinsic size restrictions, based on the item size hints.
+    Traverse the graph refreshing the size hints. Complex anchors will call the
+    refresh method of their children anchors. Simple anchors, if are internal
+    anchors, will query the associated item for their size hints.
+
+    Returns false if some unfeasibility was found in the graph regarding the
+    complex anchors.
 */
-void QGraphicsAnchorLayoutPrivate::setAnchorSizeHintsFromItems(Orientation orientation)
+bool QGraphicsAnchorLayoutPrivate::refreshAllSizeHints(Orientation orientation)
 {
     Graph<AnchorVertex, AnchorData> &g = graph[orientation];
     QList<QPair<AnchorVertex *, AnchorVertex *> > vertices = g.connections();
@@ -1893,8 +1925,13 @@ void QGraphicsAnchorLayoutPrivate::setAnchorSizeHintsFromItems(Orientation orien
     for (int i = 0; i < vertices.count(); ++i) {
         AnchorData *data = g.edgeData(vertices.at(i).first, vertices.at(i).second);;
         Q_ASSERT(data->from && data->to);
-        data->refreshSizeHints(spacing);
+
+        // During the traversal we check the feasibility of the complex anchors.
+        if (!data->refreshSizeHints(spacing))
+            return false;
     }
+
+    return true;
 }
 
 /*!
diff --git a/src/gui/graphicsview/qgraphicsanchorlayout_p.h b/src/gui/graphicsview/qgraphicsanchorlayout_p.h
index d4eb2d4..a3de6f6 100644
--- a/src/gui/graphicsview/qgraphicsanchorlayout_p.h
+++ b/src/gui/graphicsview/qgraphicsanchorlayout_p.h
@@ -428,8 +428,8 @@ public:
     qreal effectiveSpacing(Orientation orientation) const;
 
     // Activation methods
-    void simplifyGraph(Orientation orientation);
-    bool simplifyGraphIteration(Orientation orientation);
+    bool simplifyGraph(Orientation orientation);
+    bool simplifyGraphIteration(Orientation orientation, bool *feasible);
     void restoreSimplifiedGraph(Orientation orientation);
 
     void calculateGraphs();
@@ -441,7 +441,7 @@ public:
     bool calculateNonTrunk(const QList<QSimplexConstraint *> &constraints,
                            const QList<AnchorData *> &variables);
 
-    void setAnchorSizeHintsFromItems(Orientation orientation);
+    bool refreshAllSizeHints(Orientation orientation);
     void findPaths(Orientation orientation);
     void constraintsFromPaths(Orientation orientation);
     void updateAnchorSizes(Orientation orientation);
diff --git a/tests/auto/qgraphicsanchorlayout/tst_qgraphicsanchorlayout.cpp b/tests/auto/qgraphicsanchorlayout/tst_qgraphicsanchorlayout.cpp
index 7b87969..facc1ef 100644
--- a/tests/auto/qgraphicsanchorlayout/tst_qgraphicsanchorlayout.cpp
+++ b/tests/auto/qgraphicsanchorlayout/tst_qgraphicsanchorlayout.cpp
@@ -82,6 +82,7 @@ private slots:
     void expandingParallel();
     void floatConflict();
     void infiniteMaxSizes();
+    void simplifiableUnfeasible();
 };
 
 class RectWidget : public QGraphicsWidget
@@ -1755,5 +1756,55 @@ void tst_QGraphicsAnchorLayout::infiniteMaxSizes()
     QCOMPARE(d->geometry(), QRectF(QWIDGETSIZE_MAX - 50, 0, 50, 10));
 }
 
+void tst_QGraphicsAnchorLayout::simplifiableUnfeasible()
+{
+    QGraphicsWidget *a = createItem(QSizeF(70.0, 100.0),
+                                    QSizeF(100.0, 100.0),
+                                    QSizeF(100.0, 100.0), "A");
+
+    QGraphicsWidget *b = createItem(QSizeF(110.0, 100.0),
+                                    QSizeF(150.0, 100.0),
+                                    QSizeF(190.0, 100.0), "B");
+
+    QGraphicsAnchorLayout *l = new QGraphicsAnchorLayout;
+    l->setContentsMargins(0, 0, 0, 0);
+    l->setSpacing(0);
+
+    l->addAnchor(l, Qt::AnchorTop, a, Qt::AnchorTop);
+    l->addAnchor(a, Qt::AnchorBottom, b, Qt::AnchorTop);
+    l->addAnchor(b, Qt::AnchorBottom, l, Qt::AnchorBottom);
+
+    l->addAnchors(l, a, Qt::Horizontal);
+    l->addAnchor(l, Qt::AnchorLeft, b, Qt::AnchorLeft);
+    l->addAnchor(b, Qt::AnchorRight, a, Qt::AnchorRight);
+
+    QCOMPARE(l->count(), 2);
+
+    QGraphicsWidget p;
+    p.setLayout(l);
+
+    l->invalidate();
+    QVERIFY(layoutHasConflict(l));
+    if (hasSimplification)
+        QVERIFY(!usedSimplex(l, Qt::Horizontal));
+
+    // Now we make it valid again
+    b->setMinimumWidth(100);
+
+    l->invalidate();
+    QVERIFY(!layoutHasConflict(l));
+    if (hasSimplification)
+        QVERIFY(!usedSimplex(l, Qt::Horizontal));
+
+    // And make it invalid again
+    a->setPreferredWidth(70);
+    a->setMaximumWidth(70);
+
+    l->invalidate();
+    QVERIFY(layoutHasConflict(l));
+    if (hasSimplification)
+        QVERIFY(!usedSimplex(l, Qt::Horizontal));
+}
+
 QTEST_MAIN(tst_QGraphicsAnchorLayout)
 #include "tst_qgraphicsanchorlayout.moc"
-- 
cgit v0.12


From bee00ac4ca0865e621edaea54d079005c68f120e Mon Sep 17 00:00:00 2001
From: Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
Date: Fri, 16 Oct 2009 12:26:21 -0300
Subject: QGAL: store item and center-ness information in the anchor

We used to look for this information in the anchor's from and to
vertices, but to enable simplification of vertices, we have to store
this information in the anchor.

Signed-off-by: Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
Reviewed-by: Eduardo M. Fleury <eduardo.fleury@openbossa.org>
---
 src/gui/graphicsview/qgraphicsanchorlayout_p.cpp | 24 ++++++++++++------------
 src/gui/graphicsview/qgraphicsanchorlayout_p.h   |  9 +++++++--
 2 files changed, 19 insertions(+), 14 deletions(-)

diff --git a/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp b/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp
index 8d13b2b..aa510f1 100644
--- a/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp
+++ b/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp
@@ -143,31 +143,25 @@ static void internalSizeHints(QSizePolicy::Policy policy,
 
 bool AnchorData::refreshSizeHints(qreal effectiveSpacing)
 {
-    const bool isInternalAnchor = from->m_item == to->m_item;
-
     QSizePolicy::Policy policy;
     qreal minSizeHint;
     qreal prefSizeHint;
     qreal maxSizeHint;
 
-    if (isInternalAnchor) {
+    // It is an internal anchor
+    if (item) {
         const QGraphicsAnchorLayoutPrivate::Orientation orient =
             QGraphicsAnchorLayoutPrivate::edgeOrientation(from->m_edge);
-        const Qt::AnchorPoint centerEdge =
-            QGraphicsAnchorLayoutPrivate::pickEdge(Qt::AnchorHorizontalCenter, orient);
-        bool hasCenter = (from->m_edge == centerEdge || to->m_edge == centerEdge);
 
         if (isLayoutAnchor) {
             minSize = 0;
             prefSize = 0;
             expSize = 0;
             maxSize = QWIDGETSIZE_MAX;
-            if (hasCenter)
+            if (isCenterAnchor)
                 maxSize /= 2;
             return true;
         } else {
-
-            QGraphicsLayoutItem *item = from->m_item;
             if (orient == QGraphicsAnchorLayoutPrivate::Horizontal) {
                 policy = item->sizePolicy().horizontalPolicy();
                 minSizeHint = item->effectiveSizeHint(Qt::MinimumSize).width();
@@ -180,7 +174,7 @@ bool AnchorData::refreshSizeHints(qreal effectiveSpacing)
                 maxSizeHint = item->effectiveSizeHint(Qt::MaximumSize).height();
             }
 
-            if (hasCenter) {
+            if (isCenterAnchor) {
                 minSizeHint /= 2;
                 prefSizeHint /= 2;
                 maxSizeHint /= 2;
@@ -1063,11 +1057,13 @@ void QGraphicsAnchorLayoutPrivate::createCenterAnchors(
     AnchorData *data = new AnchorData;
     c->variables.insert(data, 1.0);
     addAnchor_helper(item, firstEdge, item, centerEdge, data);
+    data->isCenterAnchor = true;
     data->refreshSizeHints(0);
 
     data = new AnchorData;
     c->variables.insert(data, -1.0);
     addAnchor_helper(item, centerEdge, item, lastEdge, data);
+    data->isCenterAnchor = true;
     data->refreshSizeHints(0);
 
     itemCenterConstraints[orientation].append(c);
@@ -1304,6 +1300,10 @@ void QGraphicsAnchorLayoutPrivate::addAnchor_helper(QGraphicsLayoutItem *firstIt
         removeAnchor_helper(v1, v2);
     }
 
+    // If its an internal anchor, set the associated item
+    if (firstItem == secondItem)
+        data->item = firstItem;
+
     // Create a bi-directional edge in the sense it can be transversed both
     // from v1 or v2. "data" however is shared between the two references
     // so we still know that the anchor direction is from 1 to 2.
@@ -2188,8 +2188,8 @@ void QGraphicsAnchorLayoutPrivate::identifyNonFloatItems_helper(const AnchorData
 
     switch(ad->type) {
     case AnchorData::Normal:
-        if (ad->from->m_item == ad->to->m_item && ad->to->m_item != q)
-            nonFloatingItemsIdentifiedSoFar->insert(ad->to->m_item);
+        if (ad->item && ad->item != q)
+            nonFloatingItemsIdentifiedSoFar->insert(ad->item);
         break;
     case AnchorData::Sequential:
         foreach (const AnchorData *d, static_cast<const SequentialAnchorData *>(ad)->m_edges)
diff --git a/src/gui/graphicsview/qgraphicsanchorlayout_p.h b/src/gui/graphicsview/qgraphicsanchorlayout_p.h
index a3de6f6..511e1ec 100644
--- a/src/gui/graphicsview/qgraphicsanchorlayout_p.h
+++ b/src/gui/graphicsview/qgraphicsanchorlayout_p.h
@@ -151,12 +151,13 @@ struct AnchorData : public QSimplexVariable {
     };
 
     AnchorData()
-        : QSimplexVariable(), from(0), to(0),
+        : QSimplexVariable(), item(0), from(0), to(0),
           minSize(0), prefSize(0), expSize(0), maxSize(0),
           sizeAtMinimum(0), sizeAtPreferred(0),
           sizeAtExpanding(0), sizeAtMaximum(0),
           graphicsAnchor(0), skipInPreferred(0),
-          type(Normal), hasSize(true), isLayoutAnchor(false) {}
+          type(Normal), hasSize(true), isLayoutAnchor(false),
+          isCenterAnchor(false) {}
 
     virtual void updateChildrenSizes() {}
     virtual bool refreshSizeHints(qreal effectiveSpacing);
@@ -180,6 +181,9 @@ struct AnchorData : public QSimplexVariable {
         hasSize = false;
     }
 
+    // Internal anchors have associated items
+    QGraphicsLayoutItem *item;
+
     // Anchor is semantically directed
     AnchorVertex *from;
     AnchorVertex *to;
@@ -206,6 +210,7 @@ struct AnchorData : public QSimplexVariable {
     uint type : 2;            // either Normal, Sequential or Parallel
     uint hasSize : 1;         // if false, get size from style.
     uint isLayoutAnchor : 1;  // if this anchor is connected to a layout 'edge'
+    uint isCenterAnchor : 1;
 };
 
 #ifdef QT_DEBUG
-- 
cgit v0.12


From d4c1a4675bdff63912b31243e5292766ff5215a5 Mon Sep 17 00:00:00 2001
From: Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
Date: Fri, 16 Oct 2009 12:43:25 -0300
Subject: QGAL: simplification doesn't depend on vertex anchor point
 information

Look for information inside the anchor instead of on the
vertices. This will give us flexibility of simplifying vertices before
the anchor simplification phase.

Signed-off-by: Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
Reviewed-by: Eduardo M. Fleury <eduardo.fleury@openbossa.org>
---
 src/gui/graphicsview/qgraphicsanchorlayout_p.cpp | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp b/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp
index aa510f1..b0b1408 100644
--- a/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp
+++ b/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp
@@ -701,8 +701,6 @@ bool QGraphicsAnchorLayoutPrivate::simplifyGraphIteration(QGraphicsAnchorLayoutP
     QVector<AnchorVertex*> candidates;
     bool candidatesForward;
 
-    const Qt::AnchorPoint centerEdge = pickEdge(Qt::AnchorHorizontalCenter, orientation);
-
     // Walk depth-first, in the stack we store start of the candidate sequence (beforeSequence)
     // and the vertex to be visited.
     while (!stack.isEmpty()) {
@@ -811,7 +809,8 @@ bool QGraphicsAnchorLayoutPrivate::simplifyGraphIteration(QGraphicsAnchorLayoutP
 
         // One restriction we have is to not simplify half of an anchor and let the other half
         // unsimplified. So we remove center edges before and after the sequence.
-        if (beforeSequence->m_edge == centerEdge && beforeSequence->m_item == candidates.first()->m_item) {
+        const AnchorData *firstAnchor = g.edgeData(beforeSequence, candidates.first());
+        if (firstAnchor->isCenterAnchor) {
             beforeSequence = candidates.first();
             candidates.remove(0);
 
@@ -820,7 +819,8 @@ bool QGraphicsAnchorLayoutPrivate::simplifyGraphIteration(QGraphicsAnchorLayoutP
                 continue;
         }
 
-        if (afterSequence->m_edge == centerEdge && afterSequence->m_item == candidates.last()->m_item) {
+        const AnchorData *lastAnchor = g.edgeData(candidates.last(), afterSequence);
+        if (lastAnchor->isCenterAnchor) {
             afterSequence = candidates.last();
             candidates.remove(candidates.count() - 1);
 
-- 
cgit v0.12


From 73d89d68d5d710e86e6aa74b2924ee4aca11881e Mon Sep 17 00:00:00 2001
From: Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
Date: Fri, 16 Oct 2009 13:10:13 -0300
Subject: QGAL: add orientation bit to the anchor

Use a free bit in the anchor struct to save the orientation
information. That way we do not depend on looking for this information
in the vertices (by looking the orientation of its edge).

Signed-off-by: Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
Reviewed-by: Eduardo M. Fleury <eduardo.fleury@openbossa.org>
---
 src/gui/graphicsview/qgraphicsanchorlayout_p.cpp | 17 +++++++++--------
 src/gui/graphicsview/qgraphicsanchorlayout_p.h   |  3 ++-
 2 files changed, 11 insertions(+), 9 deletions(-)

diff --git a/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp b/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp
index b0b1408..41e067c 100644
--- a/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp
+++ b/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp
@@ -150,9 +150,6 @@ bool AnchorData::refreshSizeHints(qreal effectiveSpacing)
 
     // It is an internal anchor
     if (item) {
-        const QGraphicsAnchorLayoutPrivate::Orientation orient =
-            QGraphicsAnchorLayoutPrivate::edgeOrientation(from->m_edge);
-
         if (isLayoutAnchor) {
             minSize = 0;
             prefSize = 0;
@@ -162,7 +159,7 @@ bool AnchorData::refreshSizeHints(qreal effectiveSpacing)
                 maxSize /= 2;
             return true;
         } else {
-            if (orient == QGraphicsAnchorLayoutPrivate::Horizontal) {
+            if (orientation == QGraphicsAnchorLayoutPrivate::Horizontal) {
                 policy = item->sizePolicy().horizontalPolicy();
                 minSizeHint = item->effectiveSizeHint(Qt::MinimumSize).width();
                 prefSizeHint = item->effectiveSizeHint(Qt::PreferredSize).width();
@@ -1285,9 +1282,11 @@ void QGraphicsAnchorLayoutPrivate::addAnchor_helper(QGraphicsLayoutItem *firstIt
 {
     Q_Q(QGraphicsAnchorLayout);
 
+    const Orientation orientation = edgeOrientation(firstEdge);
+
     // Guarantee that the graph is no simplified when adding this anchor,
     // anchor manipulation always happen in the full graph
-    restoreSimplifiedGraph(edgeOrientation(firstEdge));
+    restoreSimplifiedGraph(orientation);
 
     // Is the Vertex (firstItem, firstEdge) already represented in our
     // internal structure?
@@ -1296,7 +1295,7 @@ void QGraphicsAnchorLayoutPrivate::addAnchor_helper(QGraphicsLayoutItem *firstIt
 
     // Remove previous anchor
     // ### Could we update the existing edgeData rather than creating a new one?
-    if (graph[edgeOrientation(firstEdge)].edgeData(v1, v2)) {
+    if (graph[orientation].edgeData(v1, v2)) {
         removeAnchor_helper(v1, v2);
     }
 
@@ -1304,6 +1303,8 @@ void QGraphicsAnchorLayoutPrivate::addAnchor_helper(QGraphicsLayoutItem *firstIt
     if (firstItem == secondItem)
         data->item = firstItem;
 
+    data->orientation = orientation;
+
     // Create a bi-directional edge in the sense it can be transversed both
     // from v1 or v2. "data" however is shared between the two references
     // so we still know that the anchor direction is from 1 to 2.
@@ -1315,7 +1316,7 @@ void QGraphicsAnchorLayoutPrivate::addAnchor_helper(QGraphicsLayoutItem *firstIt
     // Keep track of anchors that are connected to the layout 'edges'
     data->isLayoutAnchor = (v1->m_item == q || v2->m_item == q);
 
-    graph[edgeOrientation(firstEdge)].createEdge(v1, v2, data);
+    graph[orientation].createEdge(v1, v2, data);
 }
 
 QGraphicsAnchor *QGraphicsAnchorLayoutPrivate::getAnchor(QGraphicsLayoutItem *firstItem,
@@ -1480,7 +1481,7 @@ void QGraphicsAnchorLayoutPrivate::anchorSize(const AnchorData *data,
     Q_ASSERT(minSize || prefSize || maxSize);
     Q_ASSERT(data);
     QGraphicsAnchorLayoutPrivate *that = const_cast<QGraphicsAnchorLayoutPrivate *>(this);
-    that->restoreSimplifiedGraph(edgeOrientation(data->from->m_edge));
+    that->restoreSimplifiedGraph(Orientation(data->orientation));
 
     if (minSize)
         *minSize = data->minSize;
diff --git a/src/gui/graphicsview/qgraphicsanchorlayout_p.h b/src/gui/graphicsview/qgraphicsanchorlayout_p.h
index 511e1ec..8525eb3 100644
--- a/src/gui/graphicsview/qgraphicsanchorlayout_p.h
+++ b/src/gui/graphicsview/qgraphicsanchorlayout_p.h
@@ -157,7 +157,7 @@ struct AnchorData : public QSimplexVariable {
           sizeAtExpanding(0), sizeAtMaximum(0),
           graphicsAnchor(0), skipInPreferred(0),
           type(Normal), hasSize(true), isLayoutAnchor(false),
-          isCenterAnchor(false) {}
+          isCenterAnchor(false), orientation(0) {}
 
     virtual void updateChildrenSizes() {}
     virtual bool refreshSizeHints(qreal effectiveSpacing);
@@ -211,6 +211,7 @@ struct AnchorData : public QSimplexVariable {
     uint hasSize : 1;         // if false, get size from style.
     uint isLayoutAnchor : 1;  // if this anchor is connected to a layout 'edge'
     uint isCenterAnchor : 1;
+    uint orientation : 1;
 };
 
 #ifdef QT_DEBUG
-- 
cgit v0.12


From a79539b1364fa8c155c5fbd00a977ae40b24acbe Mon Sep 17 00:00:00 2001
From: Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
Date: Mon, 19 Oct 2009 16:17:35 -0300
Subject: QGAL: clarify the usage of isLayoutAnchor bit

The 'isLayoutAnchor' is necessary only as a way to flag Layout
internal anchors, i.e. anchors with the Layout as 'item' in the
AnchorData structure.

We don't need to propagate this bit when composing anchors.

Signed-off-by: Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
Reviewed-by: Eduardo M. Fleury <eduardo.fleury@openbossa.org>
---
 src/gui/graphicsview/qgraphicsanchorlayout_p.cpp | 13 +++----------
 src/gui/graphicsview/qgraphicsanchorlayout_p.h   |  2 +-
 2 files changed, 4 insertions(+), 11 deletions(-)

diff --git a/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp b/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp
index 41e067c..7dbfba9 100644
--- a/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp
+++ b/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp
@@ -527,8 +527,6 @@ static AnchorData *addAnchorMaybeParallel(Graph<AnchorVertex, AnchorData> *g,
     // anchor.
     if (AnchorData *oldAnchor = g->takeEdge(newAnchor->from, newAnchor->to)) {
         ParallelAnchorData *parallel = new ParallelAnchorData(oldAnchor, newAnchor);
-        parallel->isLayoutAnchor = (oldAnchor->isLayoutAnchor
-                                        || newAnchor->isLayoutAnchor);
 
         // At this point we can identify that the parallel anchor is not feasible, e.g. one
         // anchor minimum size is bigger than the other anchor maximum size.
@@ -596,12 +594,6 @@ static AnchorData *createSequence(Graph<AnchorVertex, AnchorData> *graph,
 
     sequence->refreshSizeHints_helper(0, false);
 
-    // Note that since layout 'edges' can't be simplified away from
-    // the graph, it's safe to assume that if there's a layout
-    // 'edge', it'll be in the boundaries of the sequence.
-    sequence->isLayoutAnchor = (sequence->m_edges.first()->isLayoutAnchor
-                                || sequence->m_edges.last()->isLayoutAnchor);
-
     return sequence;
 }
 
@@ -1313,8 +1305,9 @@ void QGraphicsAnchorLayoutPrivate::addAnchor_helper(QGraphicsLayoutItem *firstIt
 #ifdef QT_DEBUG
     data->name = QString::fromAscii("%1 --to--> %2").arg(v1->toString()).arg(v2->toString());
 #endif
-    // Keep track of anchors that are connected to the layout 'edges'
-    data->isLayoutAnchor = (v1->m_item == q || v2->m_item == q);
+    // ### bit to track internal anchors, since inside AnchorData methods
+    // we don't have access to the 'q' pointer.
+    data->isLayoutAnchor = (data->item == q);
 
     graph[orientation].createEdge(v1, v2, data);
 }
diff --git a/src/gui/graphicsview/qgraphicsanchorlayout_p.h b/src/gui/graphicsview/qgraphicsanchorlayout_p.h
index 8525eb3..8eb65c5 100644
--- a/src/gui/graphicsview/qgraphicsanchorlayout_p.h
+++ b/src/gui/graphicsview/qgraphicsanchorlayout_p.h
@@ -209,7 +209,7 @@ struct AnchorData : public QSimplexVariable {
     uint skipInPreferred : 1;
     uint type : 2;            // either Normal, Sequential or Parallel
     uint hasSize : 1;         // if false, get size from style.
-    uint isLayoutAnchor : 1;  // if this anchor is connected to a layout 'edge'
+    uint isLayoutAnchor : 1;  // if this anchor is an internal layout anchor
     uint isCenterAnchor : 1;
     uint orientation : 1;
 };
-- 
cgit v0.12


From dc89e929d0f60e996c132e9484357e0b42f99436 Mon Sep 17 00:00:00 2001
From: "Eduardo M. Fleury" <eduardo.fleury@openbossa.org>
Date: Fri, 16 Oct 2009 16:09:28 -0300
Subject: QGAL: Use constraints of type "equal" for fixed items

We usually create two restrictions for each item, one to tell its
size should be more than its minimum size and other enforcing it to
be at most its maximum size.

Now, for items that have fixed size, ie. minSize == maxSize, we create
a single constraint telling its size should be equal its min/maxSize.

The immediate advantage is to have one less constraint for each of
these items. The indirect advantage is that the simplex solver can
take advantage of such information.

Signed-off-by: Eduardo M. Fleury <eduardo.fleury@openbossa.org>
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
---
 src/gui/graphicsview/qgraphicsanchorlayout_p.cpp | 34 +++++++++++++++---------
 1 file changed, 22 insertions(+), 12 deletions(-)

diff --git a/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp b/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp
index 7dbfba9..a83e619 100644
--- a/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp
+++ b/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp
@@ -2032,17 +2032,27 @@ QList<QSimplexConstraint *> QGraphicsAnchorLayoutPrivate::constraintsFromSizeHin
 {
     QList<QSimplexConstraint *> anchorConstraints;
     for (int i = 0; i < anchors.size(); ++i) {
-        QSimplexConstraint *c = new QSimplexConstraint;
-        c->variables.insert(anchors[i], 1.0);
-        c->constant = anchors[i]->minSize;
-        c->ratio = QSimplexConstraint::MoreOrEqual;
-        anchorConstraints += c;
-
-        c = new QSimplexConstraint;
-        c->variables.insert(anchors[i], 1.0);
-        c->constant = anchors[i]->maxSize;
-        c->ratio = QSimplexConstraint::LessOrEqual;
-        anchorConstraints += c;
+        AnchorData *ad = anchors[i];
+
+        if ((ad->minSize == ad->maxSize) || qFuzzyCompare(ad->minSize, ad->maxSize)) {
+            QSimplexConstraint *c = new QSimplexConstraint;
+            c->variables.insert(ad, 1.0);
+            c->constant = ad->minSize;
+            c->ratio = QSimplexConstraint::Equal;
+            anchorConstraints += c;
+        } else {
+            QSimplexConstraint *c = new QSimplexConstraint;
+            c->variables.insert(ad, 1.0);
+            c->constant = ad->minSize;
+            c->ratio = QSimplexConstraint::MoreOrEqual;
+            anchorConstraints += c;
+
+            c = new QSimplexConstraint;
+            c->variables.insert(ad, 1.0);
+            c->constant = ad->maxSize;
+            c->ratio = QSimplexConstraint::LessOrEqual;
+            anchorConstraints += c;
+        }
     }
 
     return anchorConstraints;
@@ -2608,7 +2618,7 @@ void QGraphicsAnchorLayoutPrivate::solveExpanding(const QList<QSimplexConstraint
             hasExpanding = true;
 
         // Lock anchor between boundedExpSize and sizeAtMaximum (ensure 3.a)
-        if (boundedExpSize == ad->sizeAtMaximum) {
+        if (boundedExpSize == ad->sizeAtMaximum || qFuzzyCompare(boundedExpSize, ad->sizeAtMaximum)) {
             // The interval has only one possible value, we can use an "Equal"
             // constraint and don't need to add this variable to the objective.
             QSimplexConstraint *itemC = new QSimplexConstraint;
-- 
cgit v0.12


From 3f29c77a26d0a898ca3a7c9c6715da90f1ecc50a Mon Sep 17 00:00:00 2001
From: "Eduardo M. Fleury" <eduardo.fleury@openbossa.org>
Date: Fri, 16 Oct 2009 16:10:29 -0300
Subject: QGAL: Add QSimplexConstraint::toString() method for debugging

Signed-off-by: Eduardo M. Fleury <eduardo.fleury@openbossa.org>
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
---
 src/gui/graphicsview/qsimplex_p.h | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/src/gui/graphicsview/qsimplex_p.h b/src/gui/graphicsview/qsimplex_p.h
index 51991a9..423f9bc 100644
--- a/src/gui/graphicsview/qsimplex_p.h
+++ b/src/gui/graphicsview/qsimplex_p.h
@@ -118,6 +118,29 @@ struct QSimplexConstraint
             return false;
         }
     }
+
+    QString toString() {
+        QString result;
+        result += QString::fromAscii("-- QSimplexConstraint %1 --").arg(int(this), 0, 16);
+
+        QHash<QSimplexVariable *, qreal>::const_iterator iter;
+        for (iter = variables.constBegin(); iter != variables.constEnd(); ++iter) {
+            result += QString::fromAscii("  %1 x %2").arg(iter.value()).arg(int(iter.key()), 0, 16);
+        }
+
+        switch (ratio) {
+        case LessOrEqual:
+            result += QString::fromAscii("  (less) <= %1").arg(constant);
+            break;
+        case MoreOrEqual:
+            result += QString::fromAscii("  (more) >= %1").arg(constant);
+            break;
+        default:
+            result += QString::fromAscii("  (eqal) == %1").arg(constant);
+        }
+
+        return result;
+    }
 #endif
 };
 
-- 
cgit v0.12


From fa767bf7b104a4e44e4e283522f0dfd942094375 Mon Sep 17 00:00:00 2001
From: "Eduardo M. Fleury" <eduardo.fleury@openbossa.org>
Date: Tue, 20 Oct 2009 18:54:43 -0300
Subject: QGAL (QSimplex): Make deep copy of constraints inside QSimplex

The idea is to allow QSimplex solver to modify the constraints
without breaking other parts of the code that rely on the original
ones.

Signed-off-by: Eduardo M. Fleury <eduardo.fleury@openbossa.org>
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
---
 src/gui/graphicsview/qgraphicsanchorlayout_p.cpp |  2 +-
 src/gui/graphicsview/qsimplex_p.cpp              | 15 +++++++++++----
 src/gui/graphicsview/qsimplex_p.h                |  8 +-------
 3 files changed, 13 insertions(+), 12 deletions(-)

diff --git a/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp b/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp
index a83e619..b4666c6 100644
--- a/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp
+++ b/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp
@@ -2459,7 +2459,7 @@ bool QGraphicsAnchorLayoutPrivate::solveMinMax(const QList<QSimplexConstraint *>
         *min = simplex.solveMin();
 
         // Save sizeAtMinimum results
-        QList<QSimplexVariable *> variables = simplex.constraintsVariables();
+        QList<AnchorData *> variables = getVariables(constraints);
         for (int i = 0; i < variables.size(); ++i) {
             AnchorData *ad = static_cast<AnchorData *>(variables[i]);
             Q_ASSERT(ad->result >= ad->minSize || qFuzzyCompare(ad->result, ad->minSize));
diff --git a/src/gui/graphicsview/qsimplex_p.cpp b/src/gui/graphicsview/qsimplex_p.cpp
index b8f8fb4..b3997fa 100644
--- a/src/gui/graphicsview/qsimplex_p.cpp
+++ b/src/gui/graphicsview/qsimplex_p.cpp
@@ -108,10 +108,8 @@ void QSimplex::clearDataStructures()
     // Constraints
     for (int i = 0; i < constraints.size(); ++i) {
         delete constraints[i]->helper.first;
-        constraints[i]->helper.first = 0;
-        constraints[i]->helper.second = 0.0;
         delete constraints[i]->artificial;
-        constraints[i]->artificial = 0;
+        delete constraints[i];
     }
     constraints.clear();
 
@@ -137,7 +135,16 @@ bool QSimplex::setConstraints(const QList<QSimplexConstraint *> newConstraints)
 
     if (newConstraints.isEmpty())
         return true;    // we are ok with no constraints
-    constraints = newConstraints;
+
+    // Make deep copy of constraints. We need this copy because we may change
+    // them in the simplification method.
+    for (int i = 0; i < newConstraints.size(); ++i) {
+        QSimplexConstraint *c = new QSimplexConstraint;
+        c->constant = newConstraints[i]->constant;
+        c->ratio = newConstraints[i]->ratio;
+        c->variables = newConstraints[i]->variables;
+        constraints << c;
+    }
 
     ///////////////////////////////////////
     // Prepare variables and constraints //
diff --git a/src/gui/graphicsview/qsimplex_p.h b/src/gui/graphicsview/qsimplex_p.h
index 423f9bc..5ec13c3 100644
--- a/src/gui/graphicsview/qsimplex_p.h
+++ b/src/gui/graphicsview/qsimplex_p.h
@@ -106,7 +106,7 @@ struct QSimplexConstraint
 
         Q_ASSERT(constant > 0 || qFuzzyCompare(1, 1 + constant));
 
-        if (qFuzzyCompare(1000 + leftHandSide, 1000 + constant))
+        if ((leftHandSide == constant) || qFuzzyCompare(1000 + leftHandSide, 1000 + constant))
             return true;
 
         switch (ratio) {
@@ -152,7 +152,6 @@ public:
 
     qreal solveMin();
     qreal solveMax();
-    QList<QSimplexVariable *> constraintsVariables();
 
     bool setConstraints(const QList<QSimplexConstraint *> constraints);
     void setObjective(QSimplexConstraint *objective);
@@ -191,11 +190,6 @@ private:
     qreal *matrix;
 };
 
-inline QList<QSimplexVariable *> QSimplex::constraintsVariables()
-{
-    return variables;
-}
-
 inline qreal QSimplex::valueAt(int rowIndex, int columnIndex)
 {
     return matrix[rowIndex * columns + columnIndex];
-- 
cgit v0.12


From b14a16ce149fe9bc0e4ab66d946eb90416bd4a88 Mon Sep 17 00:00:00 2001
From: "Eduardo M. Fleury" <eduardo.fleury@openbossa.org>
Date: Fri, 16 Oct 2009 16:10:52 -0300
Subject: QGAL (QSimplex): Add constraints simplification

Now the simplex solver is able to remove fixed variables from its
constraints as to improve its running time.

The simplification consists of two actions that are done iteratively
until no possible changes exist:

 1st) Look for constraints of type Var == Constant
      Save constant as the trivial value of Var
 2nd) Substitute known results in existing constraints

Signed-off-by: Eduardo M. Fleury <eduardo.fleury@openbossa.org>
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
---
 src/gui/graphicsview/qsimplex_p.cpp | 96 ++++++++++++++++++++++++++++++++++++-
 src/gui/graphicsview/qsimplex_p.h   |  7 ++-
 2 files changed, 99 insertions(+), 4 deletions(-)

diff --git a/src/gui/graphicsview/qsimplex_p.cpp b/src/gui/graphicsview/qsimplex_p.cpp
index b3997fa..86b10b4 100644
--- a/src/gui/graphicsview/qsimplex_p.cpp
+++ b/src/gui/graphicsview/qsimplex_p.cpp
@@ -146,6 +146,13 @@ bool QSimplex::setConstraints(const QList<QSimplexConstraint *> newConstraints)
         constraints << c;
     }
 
+    // Remove constraints of type Var == K and replace them for their value.
+    if (!simplifyConstraints(&constraints)) {
+        qWarning() << "QSimplex: No feasible solution!";
+        clearDataStructures();
+        return false;
+    }
+
     ///////////////////////////////////////
     // Prepare variables and constraints //
     ///////////////////////////////////////
@@ -515,11 +522,21 @@ qreal QSimplex::solver(solverFactor factor)
     // Remove old objective
     clearRow(0);
 
-    // Set new objective
+    // Set new objective in the first row of the simplex matrix
+    qreal resultOffset = 0;
     QHash<QSimplexVariable *, qreal>::const_iterator iter;
     for (iter = objective->variables.constBegin();
          iter != objective->variables.constEnd();
          ++iter) {
+
+        // Check if the variable was removed in the simplification process.
+        // If so, we save its offset to the objective function and skip adding
+        // it to the matrix.
+        if (iter.key()->index == -1) {
+            resultOffset += iter.value() * iter.key()->result;
+            continue;
+        }
+
         setValueAt(0, iter.key()->index, -1 * factor * iter.value());
     }
 
@@ -532,7 +549,9 @@ qreal QSimplex::solver(solverFactor factor)
     }
 #endif
 
-    return factor * valueAt(0, columns - 1);
+    // Return the value calculated by the simplex plus the value of the
+    // fixed variables.
+    return (factor * valueAt(0, columns - 1)) + resultOffset;
 }
 
 /*!
@@ -578,4 +597,77 @@ void QSimplex::collectResults()
     }
 }
 
+/*!
+  \internal
+
+  Looks for single-valued variables and remove them from the constraints list.
+*/
+bool QSimplex::simplifyConstraints(QList<QSimplexConstraint *> *constraints)
+{
+    QHash<QSimplexVariable *, qreal> results;   // List of single-valued variables
+    bool modified = true;                       // Any chance more optimization exists?
+
+    while (modified) {
+        modified = false;
+
+        // For all constraints
+        QList<QSimplexConstraint *>::iterator iter = constraints->begin();
+        while (iter != constraints->end()) {
+            QSimplexConstraint *c = *iter;
+            if ((c->ratio == QSimplexConstraint::Equal) && (c->variables.count() == 1)) {
+                // Check whether this is a constraint of type Var == K
+                // If so, save its value to "results".
+                QSimplexVariable *variable = c->variables.constBegin().key();
+                qreal result = c->constant / c->variables.value(variable);
+
+                results.insert(variable, result);
+                variable->result = result;
+                variable->index = -1;
+                modified = true;
+
+            }
+
+            // Replace known values among their variables
+            QHash<QSimplexVariable *, qreal>::const_iterator r;
+            for (r = results.constBegin(); r != results.constEnd(); ++r) {
+                if (c->variables.contains(r.key())) {
+                    c->constant -= r.value() * c->variables.take(r.key());
+                    modified = true;
+                }
+            }
+
+            // Keep it normalized
+            if (c->constant < 0)
+                c->invert();
+
+            if (c->variables.isEmpty()) {
+                // If constraint became empty due to substitution, delete it.
+                if (c->isSatisfied() == false)
+                    // We must ensure that the constraint soon to be deleted would not
+                    // make the problem unfeasible if left behind. If that's the case,
+                    // we return false so the simplex solver can properly report that.
+                    return false;
+
+                delete c;
+                iter = constraints->erase(iter);
+            } else {
+                ++iter;
+            }
+        }
+    }
+
+    return true;
+}
+
+void QSimplexConstraint::invert()
+{
+    constant = -constant;
+    ratio = Ratio(2 - ratio);
+
+    QHash<QSimplexVariable *, qreal>::iterator iter;
+    for (iter = variables.begin(); iter != variables.end(); ++iter) {
+        iter.value() = -iter.value();
+    }
+}
+
 QT_END_NAMESPACE
diff --git a/src/gui/graphicsview/qsimplex_p.h b/src/gui/graphicsview/qsimplex_p.h
index 5ec13c3..66ea739 100644
--- a/src/gui/graphicsview/qsimplex_p.h
+++ b/src/gui/graphicsview/qsimplex_p.h
@@ -63,7 +63,7 @@ struct QSimplexVariable
     QSimplexVariable() : result(0), index(0) {}
 
     qreal result;
-    uint index;
+    int index;
 };
 
 
@@ -95,7 +95,8 @@ struct QSimplexConstraint
     QPair<QSimplexVariable *, qreal> helper;
     QSimplexVariable * artificial;
 
-#ifdef QT_DEBUG
+    void invert();
+
     bool isSatisfied() {
         qreal leftHandSide(0);
 
@@ -119,6 +120,7 @@ struct QSimplexConstraint
         }
     }
 
+#ifdef QT_DEBUG
     QString toString() {
         QString result;
         result += QString::fromAscii("-- QSimplexConstraint %1 --").arg(int(this), 0, 16);
@@ -167,6 +169,7 @@ private:
     void combineRows(int toIndex, int fromIndex, qreal factor);
 
     // Simplex
+    bool simplifyConstraints(QList<QSimplexConstraint *> *constraints);
     int findPivotColumn();
     int pivotRowForColumn(int column);
     void reducedRowEchelon();
-- 
cgit v0.12


From 1607216cc6292ef9a4af68ce6d29dc79fffea92c Mon Sep 17 00:00:00 2001
From: "Eduardo M. Fleury" <eduardo.fleury@openbossa.org>
Date: Mon, 26 Oct 2009 16:55:20 -0300
Subject: QGAL: Add test for David Boddie bug

The current simplification code does not handle sequences with anchors
pointed to different directions could not be simplified together into
a sequential anchor.

       A (10 / 20 / 50 )   B (20 / 20 / 20)
Ex:   o-----------------> <----------------o

The reason we don't support it yet is shown in the example above. The
resulting anchor would be either:

             Result_1 (-10 / 0 / 30)
      o------------------------------------>
                                                 (or)

             Result_2 (-30 / 0 / 10)
      <------------------------------------o

But the current implementation assumes no anchors can have negative
sizes.

Hopefully, the next commits will add support for it and then enable
such simplification.  :-)

Signed-off-by: Eduardo M. Fleury <eduardo.fleury@openbossa.org>
---
 .../tst_qgraphicsanchorlayout.cpp                  | 46 ++++++++++++++++++++++
 1 file changed, 46 insertions(+)

diff --git a/tests/auto/qgraphicsanchorlayout/tst_qgraphicsanchorlayout.cpp b/tests/auto/qgraphicsanchorlayout/tst_qgraphicsanchorlayout.cpp
index facc1ef..5348e59 100644
--- a/tests/auto/qgraphicsanchorlayout/tst_qgraphicsanchorlayout.cpp
+++ b/tests/auto/qgraphicsanchorlayout/tst_qgraphicsanchorlayout.cpp
@@ -83,6 +83,7 @@ private slots:
     void floatConflict();
     void infiniteMaxSizes();
     void simplifiableUnfeasible();
+    void simplificationVsOrder();
 };
 
 class RectWidget : public QGraphicsWidget
@@ -1806,5 +1807,50 @@ void tst_QGraphicsAnchorLayout::simplifiableUnfeasible()
         QVERIFY(!usedSimplex(l, Qt::Horizontal));
 }
 
+/*
+  Test whether the anchor direction can prevent it from
+  being simplificated
+*/
+void tst_QGraphicsAnchorLayout::simplificationVsOrder()
+{
+    QSizeF min(10, 10);
+    QSizeF pref(20, 10);
+    QSizeF max(50, 10);
+
+    QGraphicsWidget *a = createItem(min, pref, max);
+    QGraphicsWidget *b = createItem(min, pref, max);
+    QGraphicsWidget *c = createItem(min, pref, max);
+
+    QGraphicsAnchorLayout *l = new QGraphicsAnchorLayout;
+
+    // Bulk anchors
+    l->addAnchor(l, Qt::AnchorLeft, a, Qt::AnchorLeft);
+    l->addAnchor(a, Qt::AnchorRight, b, Qt::AnchorLeft);
+    l->addAnchor(b, Qt::AnchorLeft, c, Qt::AnchorLeft);
+    l->addAnchor(c, Qt::AnchorRight, l, Qt::AnchorRight);
+
+    // Problematic anchor, direction b->c
+    QGraphicsAnchor *anchor = l->addAnchor(b, Qt::AnchorRight, c, Qt::AnchorRight);
+    anchor->setSpacing(5);
+
+    l->effectiveSizeHint(Qt::MinimumSize);
+    if (hasSimplification) {
+        QCOMPARE(usedSimplex(l, Qt::Horizontal), false);
+        QCOMPARE(usedSimplex(l, Qt::Vertical), false);
+    }
+
+    // Problematic anchor, direction c->b
+    delete anchor;
+    anchor = l->addAnchor(c, Qt::AnchorRight, b, Qt::AnchorRight);
+    anchor->setSpacing(5);
+
+    l->effectiveSizeHint(Qt::MinimumSize);
+    if (hasSimplification) {
+        QEXPECT_FAIL("", "Sequential anchors cannot handle children of opposite directions", Continue);
+        QCOMPARE(usedSimplex(l, Qt::Horizontal), false);
+        QCOMPARE(usedSimplex(l, Qt::Vertical), false);
+    }
+}
+
 QTEST_MAIN(tst_QGraphicsAnchorLayout)
 #include "tst_qgraphicsanchorlayout.moc"
-- 
cgit v0.12


From f5398e1adc5203b3aa56d50ee3a9bd936531a119 Mon Sep 17 00:00:00 2001
From: Janne Anttila <janne.anttila@digia.com>
Date: Tue, 27 Oct 2009 10:51:30 +0200
Subject: Switched setWindowIcon_sys to use QPixmpa::toSymbianCFbsBitmap in
 S60.

There were TODOs in code to remove the temporary solution for creating
native CFbsBitmap out of QPixmap. Now when QPixmpa has native backed
and it provides toSymbianCFbsBitmap, it it preferred to use
toSymbianCFbsBitmap since in best case it can only duplicate the bitmap
handle instead of copying the data.

Task-number: QTBUG-4948
Reviewed-by: Jani Hautakangas
---
 src/gui/kernel/qwidget_s60.cpp | 72 +++---------------------------------------
 1 file changed, 4 insertions(+), 68 deletions(-)

diff --git a/src/gui/kernel/qwidget_s60.cpp b/src/gui/kernel/qwidget_s60.cpp
index cb615fe..a6d8ed7 100644
--- a/src/gui/kernel/qwidget_s60.cpp
+++ b/src/gui/kernel/qwidget_s60.cpp
@@ -716,62 +716,6 @@ void QWidgetPrivate::s60UpdateIsOpaque()
         window->SetTransparentRegion(TRegionFix<1>());
 }
 
-CFbsBitmap* qt_pixmapToNativeBitmap(QPixmap pixmap, bool invert)
-{
-    CFbsBitmap* fbsBitmap = q_check_ptr(new CFbsBitmap);    // CBase derived object needs check on new
-    TSize size(pixmap.size().width(), pixmap.size().height());
-    TDisplayMode mode(EColor16MU);
-
-    bool isNull = pixmap.isNull();
-    int depth = pixmap.depth();
-
-    // TODO: dummy assumptions from bit amounts for each color
-    // Will fix later on when native pixmap is implemented
-    switch(pixmap.depth()) {
-    case 1:
-        mode = EGray2;
-        break;
-    case 4:
-        mode = EColor16;
-        break;
-    case 8:
-        mode = EColor256;
-        break;
-    case 12:
-        mode = EColor4K;
-        break;
-    case 16:
-        mode = EColor64K;
-        break;
-    case 24:
-        mode = EColor16M;
-        break;
-    case 32:
-        case EColor16MU:
-        break;
-    default:
-        qFatal("Unsupported pixmap depth");
-        break;
-    }
-
-    qt_symbian_throwIfError(fbsBitmap->Create(size, mode));
-    fbsBitmap->LockHeap();
-    QImage image = pixmap.toImage();
-
-    if (invert)
-        image.invertPixels();
-
-    int height = pixmap.size().height();
-    for(int i=0;i<height;i++ )
-        {
-        TPtr8 scanline(image.scanLine(i), image.bytesPerLine(), image.bytesPerLine());
-        fbsBitmap->SetScanLine( scanline, i );
-        }
-
-    fbsBitmap->UnlockHeap();
-    return fbsBitmap;
-}
-
 void QWidgetPrivate::setWindowIcon_sys(bool forceReset)
 {
 #ifdef Q_WS_S60
@@ -800,12 +744,8 @@ void QWidgetPrivate::setWindowIcon_sys(bool forceReset)
                 mask.fill(Qt::color1);
             }
 
-            // Convert to CFbsBitmp
-            // TODO: When QPixmap is adapted to use native CFbsBitmap,
-            // it could be set directly to context pane
-            CFbsBitmap* nBitmap = qt_pixmapToNativeBitmap(pm, false);
-            CFbsBitmap* nMask = qt_pixmapToNativeBitmap(mask, true);
-
+            CFbsBitmap* nBitmap = pm.toSymbianCFbsBitmap();
+            CFbsBitmap* nMask = mask.toSymbianCFbsBitmap();
             contextPane->SetPicture(nBitmap,nMask);
         } else {
             // Icon set to null -> set context pane picture to default
@@ -836,12 +776,8 @@ void QWidgetPrivate::setWindowIcon_sys(bool forceReset)
                     mask.fill(Qt::color1);
                 }
 
-                // Convert to CFbsBitmp
-                // TODO: When QPixmap is adapted to use native CFbsBitmap,
-                // it could be set directly to context pane
-                CFbsBitmap* nBitmap = qt_pixmapToNativeBitmap(pm, false);
-                CFbsBitmap* nMask = qt_pixmapToNativeBitmap(mask, true);
-
+                CFbsBitmap* nBitmap = pm.toSymbianCFbsBitmap();
+                CFbsBitmap* nMask = mask.toSymbianCFbsBitmap();
                 titlePane->SetSmallPicture( nBitmap, nMask, ETrue );
             } else {
                 // Icon set to null -> set context pane picture to default
-- 
cgit v0.12


From a36ee30a9753c766be1017550df581ab941b87e3 Mon Sep 17 00:00:00 2001
From: Miikka Heikkinen <miikka.heikkinen@digia.com>
Date: Tue, 27 Oct 2009 11:30:25 +0200
Subject: Temporary fix for FEP crash with input masked QLineEdits

QLineEdits with input masks report the cursor position relative to
displayed text via inputMethodQuery(), but the text returned is
the actual text of the control, which can differ from displayed text,
causing mismatch between FEP display and control display.

To properly fix this we would need to know the displayText of
QLineEdits instead of just the text, which on itself should be a trivial
change. The difficulties start when we need to commit the changes back
to the QLineEdit, which would have to be somehow able to handle
displayText, too.

Task made to fix this properly: QTBUG-5050

Task-number: QTBUG-4892
Reviewed-by: axis
---
 src/gui/inputmethod/qcoefepinputcontext_s60.cpp | 24 ++++++++++++++++++++++--
 1 file changed, 22 insertions(+), 2 deletions(-)

diff --git a/src/gui/inputmethod/qcoefepinputcontext_s60.cpp b/src/gui/inputmethod/qcoefepinputcontext_s60.cpp
index c4d17ff..3f21bc3 100644
--- a/src/gui/inputmethod/qcoefepinputcontext_s60.cpp
+++ b/src/gui/inputmethod/qcoefepinputcontext_s60.cpp
@@ -561,8 +561,28 @@ void QCoeFepInputContext::GetCursorSelectionForFep(TCursorSelection& aCursorSele
 
     int cursor = w->inputMethodQuery(Qt::ImCursorPosition).toInt() + m_preeditString.size();
     int anchor = w->inputMethodQuery(Qt::ImAnchorPosition).toInt() + m_preeditString.size();
-    aCursorSelection.iAnchorPos = anchor;
-    aCursorSelection.iCursorPos = cursor;
+    QString text = w->inputMethodQuery(Qt::ImSurroundingText).value<QString>();
+    int combinedSize = text.size() + m_preeditString.size();
+    if (combinedSize < anchor || combinedSize < cursor) {
+        // ### TODO! FIXME! QTBUG-5050
+        // This is a hack to prevent crashing in 4.6 with QLineEdits that use input masks.
+        // The root problem is that cursor position is relative to displayed text instead of the
+        // actual text we get.
+        //
+        // To properly fix this we would need to know the displayText of QLineEdits instead
+        // of just the text, which on itself should be a trivial change. The difficulties start
+        // when we need to commit the changes back to the QLineEdit, which would have to be somehow
+        // able to handle displayText, too.
+        //
+        // Until properly fixed, the cursor and anchor positions will not reflect correct positions
+        // for masked QLineEdits, unless all the masked positions are filled in order so that
+        // cursor position relative to the displayed text matches position relative to actual text.
+        aCursorSelection.iAnchorPos = combinedSize;
+        aCursorSelection.iCursorPos = combinedSize;
+    } else {
+        aCursorSelection.iAnchorPos = anchor;
+        aCursorSelection.iCursorPos = cursor;
+    }
 }
 
 void QCoeFepInputContext::GetEditorContentForFep(TDes& aEditorContent, TInt aDocumentPosition,
-- 
cgit v0.12


From 68ab3b34571cfdde4002de9982388f9eec4d9939 Mon Sep 17 00:00:00 2001
From: Thierry Bastian <thierry.bastian@nokia.com>
Date: Mon, 26 Oct 2009 15:54:18 +0100
Subject: Fixed a bug in QMenuBar in RTL that would display menu at the wrong
 place

This could happen when adding actions in response to the aboutToShow
signal.

Task-number: QT-2596
Reviewed-by: ogoffart
---
 src/gui/widgets/qmenu.cpp            |  4 ++++
 src/gui/widgets/qmenubar.cpp         | 29 ++++++++++++-----------------
 tests/auto/qmenubar/tst_qmenubar.cpp | 29 ++++++++++++++++++++++++++++-
 3 files changed, 44 insertions(+), 18 deletions(-)

diff --git a/src/gui/widgets/qmenu.cpp b/src/gui/widgets/qmenu.cpp
index ea25901..1b5d1cd 100644
--- a/src/gui/widgets/qmenu.cpp
+++ b/src/gui/widgets/qmenu.cpp
@@ -1878,6 +1878,10 @@ void QMenu::popup(const QPoint &p, QAction *atAction)
             if(snapToMouse) //position flowing left from the mouse
                 pos.setX(mouse.x()-size.width());
 
+            //if in a menubar, it should be right-aligned
+            if (qobject_cast<QMenuBar*>(d->causedPopup.widget))
+                pos.rx() -= size.width();
+
             if (pos.x() < screen.left()+desktopFrame)
                 pos.setX(qMax(p.x(), screen.left()+desktopFrame));
             if (pos.x()+size.width()-1 > screen.right()-desktopFrame)
diff --git a/src/gui/widgets/qmenubar.cpp b/src/gui/widgets/qmenubar.cpp
index f2f0722..689d2e1 100644
--- a/src/gui/widgets/qmenubar.cpp
+++ b/src/gui/widgets/qmenubar.cpp
@@ -336,30 +336,25 @@ void QMenuBarPrivate::popupAction(QAction *action, bool activateFirst)
 
         const bool fitUp = (q->mapToGlobal(adjustedActionRect.topLeft()).y() >= popup_size.height());
         const bool fitDown = (pos.y() + popup_size.height() <= screenRect.bottom());
+        const bool rtl = q->isRightToLeft();
         const int actionWidth = adjustedActionRect.width();
 
         if (!fitUp && !fitDown) { //we should shift the menu
-            bool shouldShiftToRight = !q->isRightToLeft();
-            if (q->isRightToLeft() && popup_size.width() > pos.x())
+            bool shouldShiftToRight = !rtl;
+            if (rtl && popup_size.width() > pos.x())
                 shouldShiftToRight = true;
             else if (actionWidth + popup_size.width() + pos.x() > screenRect.right())
                 shouldShiftToRight = false;
 
-            if (shouldShiftToRight)
-                pos.rx() += actionWidth;
-            else
-                pos.rx() -= popup_size.width();
-        } else if (q->isRightToLeft()) {
-            pos.setX(pos.x()-(popup_size.width() - actionWidth));
-        }
-
-        if(pos.x() < screenRect.x()) {
-            pos.setX(screenRect.x());
-        } else {
-            const int off = pos.x()+popup_size.width() - screenRect.right();
-            if(off > 0)
-                pos.setX(qMax(screenRect.x(), pos.x()-off));
-
+            if (shouldShiftToRight) {
+                pos.rx() += actionWidth + (rtl ? popup_size.width() : 0);
+            } else {
+                //shift to left
+                if (!rtl)
+                    pos.rx() -= popup_size.width();
+            }
+        } else if (rtl) {
+            pos.rx() += actionWidth;
         }
 
         if(!defaultPopDown || (fitUp && !fitDown))
diff --git a/tests/auto/qmenubar/tst_qmenubar.cpp b/tests/auto/qmenubar/tst_qmenubar.cpp
index 07aa9f4..4291c3e 100644
--- a/tests/auto/qmenubar/tst_qmenubar.cpp
+++ b/tests/auto/qmenubar/tst_qmenubar.cpp
@@ -86,6 +86,18 @@ private:
     uint sel_count;
 };
 
+class Menu : public QMenu
+{
+    Q_OBJECT
+        public slots:
+            void addActions()
+            {
+                //this will change the geometry of the menu
+                addAction("action1");
+                addAction("action2");
+            }
+};
+
 class tst_QMenuBar : public QObject
 {
     Q_OBJECT
@@ -1442,7 +1454,7 @@ void tst_QMenuBar::check_menuPosition()
 #ifdef Q_OS_WINCE_WM
     QSKIP("Qt/CE uses native menubar", SkipAll);
 #endif
-    QMenu menu;
+    Menu menu;
 #ifdef QT3_SUPPORT
     initComplexMenubar();
 #else
@@ -1496,6 +1508,21 @@ void tst_QMenuBar::check_menuPosition()
         menu.close();
     }
 
+    //in RTL, the menu should be stuck at the right of the action geometry
+    {
+        Qt::LayoutDirection dir = qApp->layoutDirection();
+        qApp->setLayoutDirection(Qt::RightToLeft);
+        menu.clear();
+        QObject::connect(&menu, SIGNAL(aboutToShow()), &menu, SLOT(addActions()));
+        QRect mbItemRect = mw->menuBar()->actionGeometry(menu_action);
+        mbItemRect.moveTo(mw->menuBar()->mapToGlobal(mbItemRect.topLeft()));
+        QTest::keyClick(mw, Qt::Key_M, Qt::AltModifier );
+        QVERIFY(menu.isActiveWindow());
+        QCOMPARE(menu.geometry().right(), mbItemRect.right());
+        menu.close();
+        qApp->setLayoutDirection(dir);
+    }
+
 }
 
 void tst_QMenuBar::task223138_triggered()
-- 
cgit v0.12


From 0f6ab9612eba6c5418991443b65a10820d6b5a1f Mon Sep 17 00:00:00 2001
From: Leonardo Sobral Cunha <leo.cunha@nokia.com>
Date: Tue, 27 Oct 2009 09:56:28 +0100
Subject: Stabilize sequential animation startDelay autotest on win

Reviewed-by: thierry
---
 .../tst_qsequentialanimationgroup.cpp                       | 13 +++++--------
 1 file changed, 5 insertions(+), 8 deletions(-)

diff --git a/tests/auto/qsequentialanimationgroup/tst_qsequentialanimationgroup.cpp b/tests/auto/qsequentialanimationgroup/tst_qsequentialanimationgroup.cpp
index aa6801a..f6afc5b 100644
--- a/tests/auto/qsequentialanimationgroup/tst_qsequentialanimationgroup.cpp
+++ b/tests/auto/qsequentialanimationgroup/tst_qsequentialanimationgroup.cpp
@@ -929,16 +929,13 @@ void tst_QSequentialAnimationGroup::startDelay()
     group.addPause(125);
     QCOMPARE(group.totalDuration(), 375);
 
-    QEventLoop loop;
-    QObject::connect(&group, SIGNAL(finished()), &loop, SLOT(quit()));
-
-    QTime time;
-    time.start();
     group.start();
-    loop.exec();
+    QCOMPARE(group.state(), QAnimationGroup::Running);
 
-    QVERIFY(time.elapsed() >= 375);
-    QVERIFY(time.elapsed() < 1000);
+    QTest::qWait(500);
+
+    QVERIFY(group.currentTime() == 375);
+    QCOMPARE(group.state(), QAnimationGroup::Stopped);
 }
 
 void tst_QSequentialAnimationGroup::clearGroup()
-- 
cgit v0.12


From dd89851abe4b0d0a3c293b5cadace00eb3f75a47 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jan-Arve=20S=C3=A6ther?= <jan-arve.saether@nokia.com>
Date: Tue, 27 Oct 2009 11:01:45 +0100
Subject: If a QGraphicsWidget gets a StyleChange event, invalidate its layout.
 The layout should be invalidated because all layouts are dependent on some
 style-specific defaults. (e.g. PM_LayoutHorizontalSpacing can differ.)

Reviewed-by: alexis
---
 src/gui/graphicsview/qgraphicswidget.cpp | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/gui/graphicsview/qgraphicswidget.cpp b/src/gui/graphicsview/qgraphicswidget.cpp
index 35a3c13..d70a281 100644
--- a/src/gui/graphicsview/qgraphicswidget.cpp
+++ b/src/gui/graphicsview/qgraphicswidget.cpp
@@ -1352,6 +1352,8 @@ void QGraphicsWidget::changeEvent(QEvent *event)
     case QEvent::StyleChange:
         // ### Don't unset if the margins are explicitly set.
         unsetWindowFrameMargins();
+        if (d->layout)
+            d->layout->invalidate();
     case QEvent::FontChange:
         update();
         updateGeometry();
-- 
cgit v0.12


From 890fbc5c6a271d345ec5a47501c4ae716a96fe44 Mon Sep 17 00:00:00 2001
From: Frans Englich <frans.englich@nokia.com>
Date: Tue, 27 Oct 2009 10:58:28 +0100
Subject: Compile on Symbian winscw.

Patch by Martin Jones. Malformed in codepaster so was manually applied. Builds
with public 5th SDK. The compiler workaround was documented.

Reviewed-by: Frans Englich
---
 src/xmlpatterns/schema/qxsdstatemachine.cpp | 64 --------------------------
 src/xmlpatterns/schema/qxsdstatemachine_p.h | 69 +++++++++++++++++++++++++++--
 2 files changed, 66 insertions(+), 67 deletions(-)

diff --git a/src/xmlpatterns/schema/qxsdstatemachine.cpp b/src/xmlpatterns/schema/qxsdstatemachine.cpp
index 85bc752..8a43411 100644
--- a/src/xmlpatterns/schema/qxsdstatemachine.cpp
+++ b/src/xmlpatterns/schema/qxsdstatemachine.cpp
@@ -335,64 +335,6 @@ typename XsdStateMachine<TransitionType>::StateId XsdStateMachine<TransitionType
     return dfaState;
 }
 
-
-template <typename TransitionType>
-QSet<typename XsdStateMachine<TransitionType>::StateId> XsdStateMachine<TransitionType>::epsilonClosure(const QSet<StateId> &input) const
-{
-    // every state can reach itself by epsilon transition, so include the input states
-    // in the result as well
-    QSet<StateId> result = input;
-
-    // add the input states to the list of to be processed states
-    QList<StateId> workStates = input.toList();
-    while (!workStates.isEmpty()) { // while there are states to be processed left...
-
-        // dequeue one state from list
-        const StateId state = workStates.takeFirst();
-
-        // get the list of states that can be reached by the epsilon transition
-        // from the current 'state'
-        const QVector<StateId> targetStates = m_epsilonTransitions.value(state);
-        for (int i = 0; i < targetStates.count(); ++i) {
-            // if we have this target state not in our result set yet...
-            if (!result.contains(targetStates.at(i))) {
-                // ... add it to the result set
-                result.insert(targetStates.at(i));
-
-                // add the target state to the list of to be processed states as well,
-                // as we want to have the epsilon transitions not only for the first
-                // level of following states
-                workStates.append(targetStates.at(i));
-            }
-        }
-    }
-
-    return result;
-}
-
-template <typename TransitionType>
-QSet<typename XsdStateMachine<TransitionType>::StateId> XsdStateMachine<TransitionType>::move(const QSet<StateId> &states, TransitionType input) const
-{
-    QSet<StateId> result;
-
-    QSetIterator<StateId> it(states);
-    while (it.hasNext()) { // iterate over all given states
-        const StateId state = it.next();
-
-        // get the transition table for the current state
-        const QHash<TransitionType, QVector<StateId> > transitions = m_transitions.value(state);
-
-        // get the target states for the given input
-        const QVector<StateId> targetStates = transitions.value(input);
-
-        // add all target states to the result
-        for (int i = 0; i < targetStates.size(); ++i)
-            result.insert(targetStates.at(i));
-    }
-
-    return result;
-}
-
 template <typename TransitionType>
 XsdStateMachine<TransitionType> XsdStateMachine<TransitionType>::toDFA() const
 {
@@ -469,9 +411,3 @@ QHash<typename XsdStateMachine<TransitionType>::StateId, typename XsdStateMachin
 {
     return m_states;
 }
-
-template <typename TransitionType>
-QHash<typename XsdStateMachine<TransitionType>::StateId, QHash<TransitionType, QVector<typename XsdStateMachine<TransitionType>::StateId> > > XsdStateMachine<TransitionType>::transitions() const
-{
-    return m_transitions;
-}
diff --git a/src/xmlpatterns/schema/qxsdstatemachine_p.h b/src/xmlpatterns/schema/qxsdstatemachine_p.h
index e671499..294eb50 100644
--- a/src/xmlpatterns/schema/qxsdstatemachine_p.h
+++ b/src/xmlpatterns/schema/qxsdstatemachine_p.h
@@ -204,8 +204,14 @@ namespace QPatternist
 
             /**
              * Returns the information of all transitions of the state machine.
+             *
+             * The implementation is inlined in order to workaround a compiler
+             * bug on Symbian/winscw.
              */
-            QHash<StateId, QHash<TransitionType, QVector<StateId> > > transitions() const;
+            QHash<StateId, QHash<TransitionType, QVector<StateId> > > transitions() const
+            {
+                return m_transitions;
+            }
 
         private:
             /**
@@ -217,14 +223,71 @@ namespace QPatternist
             /**
              * Returns the set of all states that can be reached from the set of @p input states
              * by the epsilon transition.
+             *
+             * The implementation is inlined in order to workaround a compiler
+             * bug on Symbian/winscw.
              */
-            QSet<StateId> epsilonClosure(const QSet<StateId> &input) const;
+            QSet<StateId> epsilonClosure(const QSet<StateId> &input) const
+            {
+                // every state can reach itself by epsilon transition, so include the input states
+                // in the result as well
+                QSet<StateId> result = input;
+
+                // add the input states to the list of to be processed states
+                QList<StateId> workStates = input.toList();
+                while (!workStates.isEmpty()) { // while there are states to be processed left...
+
+                    // dequeue one state from list
+                    const StateId state = workStates.takeFirst();
+
+                    // get the list of states that can be reached by the epsilon transition
+                    // from the current 'state'
+                    const QVector<StateId> targetStates = m_epsilonTransitions.value(state);
+                    for (int i = 0; i < targetStates.count(); ++i) {
+                        // if we have this target state not in our result set yet...
+                        if (!result.contains(targetStates.at(i))) {
+                            // ... add it to the result set
+                            result.insert(targetStates.at(i));
+
+                            // add the target state to the list of to be processed states as well,
+                            // as we want to have the epsilon transitions not only for the first
+                            // level of following states
+                            workStates.append(targetStates.at(i));
+                        }
+                    }
+                }
+
+                return result;
+            }
 
             /**
              * Returns the set of all states that can be reached from the set of given @p states
              * by the given @p input.
+             *
+             * The implementation is inlined in order to workaround a compiler
+             * bug on Symbian/winscw.
              */
-            QSet<StateId> move(const QSet<StateId> &states, TransitionType input) const;
+            QSet<StateId> move(const QSet<StateId> &states, TransitionType input) const
+            {
+                QSet<StateId> result;
+
+                QSetIterator<StateId> it(states);
+                while (it.hasNext()) { // iterate over all given states
+                    const StateId state = it.next();
+
+                    // get the transition table for the current state
+                    const QHash<TransitionType, QVector<StateId> > transitions = m_transitions.value(state);
+
+                    // get the target states for the given input
+                    const QVector<StateId> targetStates = transitions.value(input);
+
+                    // add all target states to the result
+                    for (int i = 0; i < targetStates.size(); ++i)
+                        result.insert(targetStates.at(i));
+                }
+
+                return result;
+            }
 
             NamePool::Ptr                                             m_namePool;
             QHash<StateId, StateType>                                 m_states;
-- 
cgit v0.12


From b9a48dd97e14b36a17590c4008ab5e94c1a734b8 Mon Sep 17 00:00:00 2001
From: Frans Englich <frans.englich@nokia.com>
Date: Tue, 27 Oct 2009 11:32:27 +0100
Subject: Enable webkit and xmlpatterns by default on Symbian.

Suggested by Lars, OK'd by Jason, Kristian and Shane.
---
 configure.exe                    | Bin 2170880 -> 1169408 bytes
 tools/configure/configureapp.cpp |   4 ++--
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/configure.exe b/configure.exe
index dabf10c..f433888 100755
Binary files a/configure.exe and b/configure.exe differ
diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp
index f57f3a8..adf7a1a 100644
--- a/tools/configure/configureapp.cpp
+++ b/tools/configure/configureapp.cpp
@@ -1448,10 +1448,10 @@ void Configure::applySpecSpecifics()
         dictionary[ "IWMMXT" ]              = "no";
         dictionary[ "CE_CRT" ]              = "no";
         dictionary[ "DIRECT3D" ]            = "no";
-        dictionary[ "WEBKIT" ]              = "no";
+        dictionary[ "WEBKIT" ]              = "yes";
         dictionary[ "ASSISTANT_WEBKIT" ]    = "no";
         dictionary[ "PHONON" ]              = "yes";
-        dictionary[ "XMLPATTERNS" ]         = "no";
+        dictionary[ "XMLPATTERNS" ]         = "yes";
         dictionary[ "QT_GLIB" ]             = "no";
         dictionary[ "S60" ]                 = "yes";
         // iconv makes makes apps start and run ridiculously slowly in symbian emulator (HW not tested)
-- 
cgit v0.12


From c17e8c19212d68a6bc2e9492b5ffacdf8c251090 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Sami=20Meril=C3=A4?= <sami.merila@nokia.com>
Date: Tue, 27 Oct 2009 12:51:33 +0200
Subject: Use PM_SplitterWidth in QS60Style

Updated pixel metrics values from latest S60 layouts. Also, updated
pixel metrics harvester to collect pixel metric for QSplitter.

Task-number: QT-686
Reviewed-by: Shane Kearns
---
 src/gui/styles/qs60style.cpp           | 39 +++++++++++++++++-----------------
 util/s60pixelmetrics/pixel_metrics.cpp |  6 +++---
 util/s60pixelmetrics/pm_mapper.mmp     |  2 +-
 util/s60pixelmetrics/pm_mapperapp.cpp  |  2 +-
 4 files changed, 25 insertions(+), 24 deletions(-)

diff --git a/src/gui/styles/qs60style.cpp b/src/gui/styles/qs60style.cpp
index 8d59d14..8ef0dd3 100644
--- a/src/gui/styles/qs60style.cpp
+++ b/src/gui/styles/qs60style.cpp
@@ -91,14 +91,14 @@ static const qreal goldenRatio = 1.618;
 
 const layoutHeader QS60StylePrivate::m_layoutHeaders[] = {
 // *** generated layout data ***
-{240,320,1,14,true,"QVGA Landscape Mirrored"},
-{240,320,1,14,false,"QVGA Landscape"},
-{320,240,1,14,true,"QVGA Portrait Mirrored"},
-{320,240,1,14,false,"QVGA Portrait"},
-{360,640,1,14,true,"NHD Landscape Mirrored"},
-{360,640,1,14,false,"NHD Landscape"},
-{640,360,1,14,true,"NHD Portrait Mirrored"},
-{640,360,1,14,false,"NHD Portrait"},
+{240,320,1,15,true,"QVGA Landscape Mirrored"},
+{240,320,1,15,false,"QVGA Landscape"},
+{320,240,1,15,true,"QVGA Portrait Mirrored"},
+{320,240,1,15,false,"QVGA Portrait"},
+{360,640,1,15,true,"NHD Landscape Mirrored"},
+{360,640,1,15,false,"NHD Landscape"},
+{640,360,1,15,true,"NHD Portrait Mirrored"},
+{640,360,1,15,false,"NHD Portrait"},
 {352,800,1,12,true,"E90 Landscape Mirrored"},
 {352,800,1,12,false,"E90 Landscape"}
 // *** End of generated data ***
@@ -108,16 +108,16 @@ const int QS60StylePrivate::m_numberOfLayouts =
 
 const short QS60StylePrivate::data[][MAX_PIXELMETRICS] = {
 // *** generated pixel metrics ***
-{5,0,-909,0,0,1,0,0,-1,8,15,22,15,15,7,198,-909,-909,-909,19,15,2,0,0,21,-909,21,-909,4,4,1,-909,-909,0,2,0,0,13,23,17,17,21,21,2,115,21,0,-909,-909,-909,-909,0,0,15,1,-909,0,0,-909,15,-909,-909,-909,-909,32,21,51,27,51,4,4,5,10,15,-909,5,58,12,5,0,7,4,4,9,4,4,-909,1,-909,-909,-909,-909,4,4,3,1},
-{5,0,-909,0,0,1,0,0,-1,8,15,22,15,15,7,198,-909,-909,-909,19,15,2,0,0,21,-909,21,-909,4,4,1,-909,-909,0,2,0,0,13,23,17,17,21,21,2,115,21,0,-909,-909,-909,-909,0,0,15,1,-909,0,0,-909,15,-909,-909,-909,-909,32,21,51,27,51,4,4,5,10,15,-909,5,58,12,5,0,4,4,7,9,4,4,-909,1,-909,-909,-909,-909,4,4,3,1},
-{5,0,-909,0,0,1,0,0,-1,8,14,22,15,15,7,164,-909,-909,-909,19,15,2,0,0,21,-909,27,-909,4,4,1,-909,-909,0,7,6,0,13,23,17,17,21,21,7,115,21,0,-909,-909,-909,-909,0,0,15,1,-909,0,0,-909,15,-909,-909,-909,-909,32,21,65,27,65,4,4,5,10,15,-909,5,58,13,5,0,7,4,4,9,4,4,-909,1,-909,-909,-909,-909,4,4,3,1},
-{5,0,-909,0,0,1,0,0,-1,8,14,22,15,15,7,164,-909,-909,-909,19,15,2,0,0,21,-909,27,-909,4,4,1,-909,-909,0,7,6,0,13,23,17,17,21,21,7,115,21,0,-909,-909,-909,-909,0,0,15,1,-909,0,0,-909,15,-909,-909,-909,-909,32,21,65,27,65,4,4,5,10,15,-909,5,58,13,5,0,4,4,7,9,4,4,-909,1,-909,-909,-909,-909,4,4,3,1},
-{7,0,-909,0,0,2,0,0,-1,20,53,28,19,19,9,258,-909,-909,-909,29,19,26,0,0,32,-909,72,-909,5,5,2,-909,-909,0,7,21,0,17,29,22,22,27,27,7,173,29,0,-909,-909,-909,-909,0,0,25,2,-909,0,0,-909,25,-909,-909,-909,-909,87,27,77,35,77,5,5,6,8,19,-909,7,74,19,7,0,8,5,5,12,5,5,-909,2,-909,-909,-909,-909,7,7,3,1},
-{7,0,-909,0,0,2,0,0,-1,20,53,28,19,19,9,258,-909,-909,-909,29,19,26,0,0,32,-909,72,-909,5,5,2,-909,-909,0,7,21,0,17,29,22,22,27,27,7,173,29,0,-909,-909,-909,-909,0,0,25,2,-909,0,0,-909,25,-909,-909,-909,-909,87,27,77,35,77,5,5,6,8,19,-909,7,74,19,7,0,5,5,8,12,5,5,-909,2,-909,-909,-909,-909,7,7,3,1},
-{7,0,-909,0,0,2,0,0,-1,20,52,28,19,19,9,258,-909,-909,-909,29,19,6,0,0,32,-909,60,-909,5,5,2,-909,-909,0,7,32,0,17,29,22,22,27,27,7,173,29,0,-909,-909,-909,-909,0,0,26,2,-909,0,0,-909,26,-909,-909,-909,-909,87,27,98,35,98,5,5,6,8,19,-909,7,74,22,7,0,8,5,5,12,5,5,-909,2,-909,-909,-909,-909,7,7,3,1},
-{7,0,-909,0,0,2,0,0,-1,20,52,28,19,19,9,258,-909,-909,-909,29,19,6,0,0,32,-909,60,-909,5,5,2,-909,-909,0,7,32,0,17,29,22,22,27,27,7,173,29,0,-909,-909,-909,-909,0,0,26,2,-909,0,0,-909,26,-909,-909,-909,-909,87,27,98,35,98,5,5,6,8,19,-909,7,74,22,7,0,5,5,8,12,5,5,-909,2,-909,-909,-909,-909,7,7,3,1},
-{7,0,-909,0,0,2,0,0,-1,10,20,27,18,18,9,301,-909,-909,-909,29,18,5,0,0,35,-909,32,-909,5,5,2,-909,-909,0,2,8,0,16,28,21,21,26,26,2,170,26,0,-909,-909,-909,-909,0,0,21,5,-909,0,0,-909,-909,-909,-909,-909,-909,54,26,265,34,265,5,5,6,3,18,-909,7,72,19,7,0,8,6,5,11,6,5,-909,2,-909,-909,-909,-909,5,5,3,1},
-{7,0,-909,0,0,2,0,0,-1,10,20,27,18,18,9,301,-909,-909,-909,29,18,5,0,0,35,-909,32,-909,5,5,2,-909,-909,0,2,8,0,16,28,21,21,26,26,2,170,26,0,-909,-909,-909,-909,0,0,21,6,-909,0,0,-909,-909,-909,-909,-909,-909,54,26,265,34,265,5,5,6,3,18,-909,7,72,19,7,0,5,6,8,11,6,5,-909,2,-909,-909,-909,-909,5,5,3,1}
+{5,0,-909,0,0,2,0,0,-1,7,12,19,13,13,6,200,-909,-909,-909,20,13,2,0,0,21,7,18,-909,3,3,1,-909,-909,0,1,0,0,12,20,15,15,18,18,1,115,18,0,-909,-909,-909,-909,0,0,16,2,-909,0,0,-909,16,-909,-909,-909,-909,32,18,55,24,55,3,3,4,9,13,-909,5,51,11,5,0,6,3,3,8,3,3,-909,2,-909,-909,-909,-909,5,5,3,1},
+{5,0,-909,0,0,2,0,0,-1,7,12,19,13,13,6,200,-909,-909,-909,20,13,2,0,0,21,7,18,-909,3,3,1,-909,-909,0,1,0,0,12,20,15,15,18,18,1,115,18,0,-909,-909,-909,-909,0,0,16,2,-909,0,0,-909,16,-909,-909,-909,-909,32,18,55,24,55,3,3,4,9,13,-909,5,51,11,5,0,3,3,6,8,3,3,-909,2,-909,-909,-909,-909,5,5,3,1},
+{5,0,-909,0,0,1,0,0,-1,8,14,22,15,15,7,164,-909,-909,-909,19,15,2,0,0,21,8,27,-909,4,4,1,-909,-909,0,7,6,0,13,23,17,17,21,21,7,115,21,0,-909,-909,-909,-909,0,0,15,1,-909,0,0,-909,15,-909,-909,-909,-909,32,21,65,27,65,4,4,5,10,15,-909,5,58,13,5,0,7,4,4,9,4,4,-909,2,-909,-909,-909,-909,6,6,3,1},
+{5,0,-909,0,0,1,0,0,-1,8,14,22,15,15,7,164,-909,-909,-909,19,15,2,0,0,21,8,27,-909,4,4,1,-909,-909,0,7,6,0,13,23,17,17,21,21,7,115,21,0,-909,-909,-909,-909,0,0,15,1,-909,0,0,-909,15,-909,-909,-909,-909,32,21,65,27,65,4,4,5,10,15,-909,5,58,13,5,0,4,4,7,9,4,4,-909,2,-909,-909,-909,-909,6,6,3,1},
+{7,0,-909,0,0,2,0,0,-1,25,69,28,19,19,9,258,-909,-909,-909,23,19,26,0,0,32,25,72,-909,5,5,2,-909,-909,0,7,21,0,17,29,22,22,27,27,7,173,29,0,-909,-909,-909,-909,0,0,25,2,-909,0,0,-909,25,-909,-909,-909,-909,87,27,77,35,77,5,5,6,8,19,-909,7,74,19,7,0,8,5,5,12,5,5,-909,3,-909,-909,-909,-909,7,7,3,1},
+{7,0,-909,0,0,2,0,0,-1,25,69,28,19,19,9,258,-909,-909,-909,23,19,26,0,0,32,25,72,-909,5,5,2,-909,-909,0,7,21,0,17,29,22,22,27,27,7,173,29,0,-909,-909,-909,-909,0,0,25,2,-909,0,0,-909,25,-909,-909,-909,-909,87,27,77,35,77,5,5,6,8,19,-909,7,74,19,7,0,5,5,8,12,5,5,-909,3,-909,-909,-909,-909,7,7,3,1},
+{7,0,-909,0,0,2,0,0,-1,25,68,28,19,19,9,258,-909,-909,-909,31,19,6,0,0,32,25,60,-909,5,5,2,-909,-909,0,7,32,0,17,29,22,22,27,27,7,173,29,0,-909,-909,-909,-909,0,0,26,2,-909,0,0,-909,26,-909,-909,-909,-909,87,27,96,35,96,5,5,6,8,19,-909,7,74,22,7,0,8,5,5,12,5,5,-909,3,-909,-909,-909,-909,7,7,3,1},
+{7,0,-909,0,0,2,0,0,-1,25,68,28,19,19,9,258,-909,-909,-909,31,19,6,0,0,32,25,60,-909,5,5,2,-909,-909,0,7,32,0,17,29,22,22,27,27,7,173,29,0,-909,-909,-909,-909,0,0,26,2,-909,0,0,-909,26,-909,-909,-909,-909,87,27,96,35,96,5,5,6,8,19,-909,7,74,22,7,0,5,5,8,12,5,5,-909,3,-909,-909,-909,-909,7,7,3,1},
+{7,0,-909,0,0,2,0,0,-1,10,20,27,18,18,9,301,-909,-909,-909,29,18,5,0,0,35,7,32,-909,5,5,2,-909,-909,0,2,8,0,16,28,21,21,26,26,2,170,26,0,-909,-909,-909,-909,0,0,21,5,-909,0,0,-909,-909,-909,-909,-909,-909,54,26,265,34,265,5,5,6,3,18,-909,7,72,19,7,0,8,6,5,11,6,5,-909,2,-909,-909,-909,-909,5,5,3,1},
+{7,0,-909,0,0,2,0,0,-1,10,20,27,18,18,9,301,-909,-909,-909,29,18,5,0,0,35,7,32,-909,5,5,2,-909,-909,0,2,8,0,16,28,21,21,26,26,2,170,26,0,-909,-909,-909,-909,0,0,21,6,-909,0,0,-909,-909,-909,-909,-909,-909,54,26,265,34,265,5,5,6,3,18,-909,7,72,19,7,0,5,6,8,11,6,5,-909,2,-909,-909,-909,-909,5,5,3,1}
 // *** End of generated data ***
 };
 
@@ -526,6 +526,7 @@ void QS60StylePrivate::drawPart(QS60StyleEnums::SkinParts skinPart,
 #else
         true;
 #endif
+
     const QPixmap skinPartPixMap((doCache ? cachedPart : part)(skinPart, rect.size(), flags));
     if (!skinPartPixMap.isNull())
         painter->drawPixmap(rect.topLeft(), skinPartPixMap);
@@ -2190,7 +2191,7 @@ int QS60Style::pixelMetric(PixelMetric metric, const QStyleOption *option, const
     if (metricValue == KNotFound)
         metricValue = QCommonStyle::pixelMetric(metric, option, widget);
 
-    if (metric == PM_SubMenuOverlap && widget){
+    if (metric == PM_SubMenuOverlap && widget) {
         const QMenu *menu = qobject_cast<const QMenu *>(widget);
         if (menu && menu->activeAction() && menu->activeAction()->menu()) {
             const int menuWidth = menu->activeAction()->menu()->sizeHint().width();
diff --git a/util/s60pixelmetrics/pixel_metrics.cpp b/util/s60pixelmetrics/pixel_metrics.cpp
index 939a718..9507c67 100644
--- a/util/s60pixelmetrics/pixel_metrics.cpp
+++ b/util/s60pixelmetrics/pixel_metrics.cpp
@@ -50,7 +50,7 @@
 // so that we can keep dynamic and static values inline.
 // Please adjust version data if correcting dynamic PM calculations.
 const TInt KPMMajorVersion = 1;
-const TInt KPMMinorVersion = 14;
+const TInt KPMMinorVersion = 15;
 
 TPixelMetricsVersion PixelMetrics::Version()
     {
@@ -726,6 +726,7 @@ TInt PixelMetrics::PixelMetricValue(QStyle::PixelMetric metric)
             value = -1; //disable - not in S60
             }
             break;
+        case QStyle::PM_SplitterWidth:
         case QStyle::PM_ScrollBarExtent:
             {
             TAknLayoutRect miscGraphicsRect;
@@ -1000,7 +1001,7 @@ TInt PixelMetrics::PixelMetricValue(QStyle::PixelMetric metric)
         case QStyle::PM_ButtonShiftVertical:
             value = 0;
             break;
-        
+
         case QStyle::PM_ToolBarExtensionExtent:
             value = PixelMetricTabValue(QStyle::PM_TabBarScrollButtonWidth, appWindow.Rect(), landscape);
             break;
@@ -1016,7 +1017,6 @@ TInt PixelMetrics::PixelMetricValue(QStyle::PixelMetric metric)
         case QStyle::PM_DockWidgetSeparatorExtent: // not in S60
         case QStyle::PM_MdiSubWindowMinimizedWidth: //no such thing in S60
         case QStyle::PM_HeaderGripMargin: // not in S60
-        case QStyle::PM_SplitterWidth: // not in S60
         case QStyle::PM_ToolBarSeparatorExtent: // not in S60
         case QStyle::PM_ToolBarHandleExtent: // not in s60
         case QStyle::PM_MenuButtonIndicator: // none???
diff --git a/util/s60pixelmetrics/pm_mapper.mmp b/util/s60pixelmetrics/pm_mapper.mmp
index 7777a3d..a2e2571 100644
--- a/util/s60pixelmetrics/pm_mapper.mmp
+++ b/util/s60pixelmetrics/pm_mapper.mmp
@@ -40,7 +40,7 @@
 ****************************************************************************/
 
 #include    <data_caging_paths.hrh>
-#include    <domain\osextensions\platform_paths.hrh>
+#include    <platform_paths.hrh>
 
 TARGET          pm_mapper.exe
 TARGETTYPE      exe
diff --git a/util/s60pixelmetrics/pm_mapperapp.cpp b/util/s60pixelmetrics/pm_mapperapp.cpp
index e24ed29..de6af0d 100644
--- a/util/s60pixelmetrics/pm_mapperapp.cpp
+++ b/util/s60pixelmetrics/pm_mapperapp.cpp
@@ -138,7 +138,7 @@ void CPixelMetricsMapperAppUi::ConstructL()
 //
 TKeyResponse CPixelMetricsMapperAppUi::HandleKeyEventL(
         const TKeyEvent& /*aKeyEvent*/,
-        TEventCode aType )
+        TEventCode /*aType*/ )
     {
     return EKeyWasNotConsumed;
     }
-- 
cgit v0.12


From 8a9ab43e572443eefbf19d59740fdc64d25d1005 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jan-Arve=20S=C3=A6ther?= <jan-arve.saether@nokia.com>
Date: Tue, 27 Oct 2009 11:54:47 +0100
Subject: Respect the per-item layoutSpacing() if the style uses that feature.

We move the QLayoutStyleInfo class out of the gridlayout engine to a
common header file so that anchor layout also can utilize it.

Due to that we now can have a per-item spacing we have to change the
'effectiveSpacing' argument of refreshSizeHints to just take a
QLayoutStyleInfo pointer that we will later query for the actual
spacing used.
---
 src/gui/graphicsview/qgraphicsanchorlayout.cpp     |   7 +-
 src/gui/graphicsview/qgraphicsanchorlayout_p.cpp   |  78 +++++-----
 src/gui/graphicsview/qgraphicsanchorlayout_p.h     |  17 ++-
 src/gui/graphicsview/qgraphicslayout_p.h           |  51 +++++++
 src/gui/graphicsview/qgridlayoutengine_p.h         |  25 +---
 .../tst_qgraphicsanchorlayout.cpp                  | 162 +++++++++++++++++++++
 6 files changed, 271 insertions(+), 69 deletions(-)

diff --git a/src/gui/graphicsview/qgraphicsanchorlayout.cpp b/src/gui/graphicsview/qgraphicsanchorlayout.cpp
index 081572f..00d3478 100644
--- a/src/gui/graphicsview/qgraphicsanchorlayout.cpp
+++ b/src/gui/graphicsview/qgraphicsanchorlayout.cpp
@@ -400,7 +400,7 @@ void QGraphicsAnchorLayout::setSpacing(qreal spacing)
 qreal QGraphicsAnchorLayout::horizontalSpacing() const
 {
     Q_D(const QGraphicsAnchorLayout);
-    return d->effectiveSpacing(QGraphicsAnchorLayoutPrivate::Horizontal);
+    return d->styleInfo().defaultSpacing(Qt::Horizontal);
 }
 
 /*!
@@ -411,7 +411,7 @@ qreal QGraphicsAnchorLayout::horizontalSpacing() const
 qreal QGraphicsAnchorLayout::verticalSpacing() const
 {
     Q_D(const QGraphicsAnchorLayout);
-    return d->effectiveSpacing(QGraphicsAnchorLayoutPrivate::Vertical);
+    return d->styleInfo().defaultSpacing(Qt::Vertical);
 }
 
 /*!
@@ -481,7 +481,8 @@ void QGraphicsAnchorLayout::invalidate()
 {
     Q_D(QGraphicsAnchorLayout);
     QGraphicsLayout::invalidate();
-    d->calculateGraphCacheDirty = 1;
+    d->calculateGraphCacheDirty = true;
+    d->styleInfoDirty = true;
 }
 
 /*!
diff --git a/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp b/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp
index 8c8c303..5bc6708 100644
--- a/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp
+++ b/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp
@@ -141,7 +141,7 @@ static void internalSizeHints(QSizePolicy::Policy policy,
         *expSize = *prefSize;
 }
 
-void AnchorData::refreshSizeHints(qreal effectiveSpacing)
+void AnchorData::refreshSizeHints(const QLayoutStyleInfo *styleInfo)
 {
     const bool isInternalAnchor = from->m_item == to->m_item;
 
@@ -196,7 +196,20 @@ void AnchorData::refreshSizeHints(qreal effectiveSpacing)
             // their effective size hints might be narrowed down due to their size policies.
             prefSizeHint = prefSize;
         } else {
-            prefSizeHint = effectiveSpacing;
+            const Qt::Orientation orient = Qt::Orientation(QGraphicsAnchorLayoutPrivate::edgeOrientation(from->m_edge) + 1);
+            qreal s = styleInfo->defaultSpacing(orient);
+            if (s < 0) {
+                QSizePolicy::ControlType controlTypeFrom = from->m_item->sizePolicy().controlType();
+                QSizePolicy::ControlType controlTypeTo = to->m_item->sizePolicy().controlType();
+                s = styleInfo->perItemSpacing(controlTypeFrom, controlTypeTo, orient);
+
+                // ### Currently we do not support negative anchors inside the graph.
+                // To avoid those being created by a negative style spacing, we must
+                // make this test.
+                if (s < 0)
+                    s = 0;
+            }
+            prefSizeHint = s;
         }
         maxSizeHint = QWIDGETSIZE_MAX;
     }
@@ -227,17 +240,17 @@ void ParallelAnchorData::updateChildrenSizes()
     secondEdge->updateChildrenSizes();
 }
 
-void ParallelAnchorData::refreshSizeHints(qreal effectiveSpacing)
+void ParallelAnchorData::refreshSizeHints(const QLayoutStyleInfo *styleInfo)
 {
-    refreshSizeHints_helper(effectiveSpacing);
+    refreshSizeHints_helper(styleInfo);
 }
 
-void ParallelAnchorData::refreshSizeHints_helper(qreal effectiveSpacing,
+void ParallelAnchorData::refreshSizeHints_helper(const QLayoutStyleInfo *styleInfo,
                                                  bool refreshChildren)
 {
     if (refreshChildren) {
-        firstEdge->refreshSizeHints(effectiveSpacing);
-        secondEdge->refreshSizeHints(effectiveSpacing);
+        firstEdge->refreshSizeHints(styleInfo);
+        secondEdge->refreshSizeHints(styleInfo);
     }
 
     // ### should we warn if the parallel connection is invalid?
@@ -362,12 +375,12 @@ void SequentialAnchorData::updateChildrenSizes()
     }
 }
 
-void SequentialAnchorData::refreshSizeHints(qreal effectiveSpacing)
+void SequentialAnchorData::refreshSizeHints(const QLayoutStyleInfo *styleInfo)
 {
-    refreshSizeHints_helper(effectiveSpacing);
+    refreshSizeHints_helper(styleInfo);
 }
 
-void SequentialAnchorData::refreshSizeHints_helper(qreal effectiveSpacing,
+void SequentialAnchorData::refreshSizeHints_helper(const QLayoutStyleInfo *styleInfo,
                                                    bool refreshChildren)
 {
     minSize = 0;
@@ -380,7 +393,7 @@ void SequentialAnchorData::refreshSizeHints_helper(qreal effectiveSpacing,
 
         // If it's the case refresh children information first
         if (refreshChildren)
-            edge->refreshSizeHints(effectiveSpacing);
+            edge->refreshSizeHints(styleInfo);
 
         minSize += edge->minSize;
         prefSize += edge->prefSize;
@@ -458,7 +471,7 @@ QString GraphPath::toString() const
 #endif
 
 QGraphicsAnchorLayoutPrivate::QGraphicsAnchorLayoutPrivate()
-    : calculateGraphCacheDirty(1)
+    : calculateGraphCacheDirty(true), styleInfoDirty(true)
 {
     for (int i = 0; i < NOrientations; ++i) {
         for (int j = 0; j < 3; ++j) {
@@ -1565,34 +1578,32 @@ void QGraphicsAnchorLayoutPrivate::correctEdgeDirection(QGraphicsLayoutItem *&fi
     }
 }
 
-qreal QGraphicsAnchorLayoutPrivate::effectiveSpacing(Orientation orientation) const
+QLayoutStyleInfo &QGraphicsAnchorLayoutPrivate::styleInfo() const
 {
-    Q_Q(const QGraphicsAnchorLayout);
-    qreal s = spacings[orientation];
-    if (s < 0) {
-        // ### make sure behaviour is the same as in QGraphicsGridLayout
+    if (styleInfoDirty) {
+        Q_Q(const QGraphicsAnchorLayout);
+        //### Fix this if QGV ever gets support for Metal style or different Aqua sizes.
+        QWidget *wid = 0;
+
         QGraphicsLayoutItem *parent = q->parentLayoutItem();
         while (parent && parent->isLayout()) {
             parent = parent->parentLayoutItem();
         }
+        QGraphicsWidget *w = 0;
         if (parent) {
             QGraphicsItem *parentItem = parent->graphicsItem();
-            if (parentItem && parentItem->isWidget()) {
-                QGraphicsWidget *w = static_cast<QGraphicsWidget*>(parentItem);
-                s = w->style()->pixelMetric(orientation == Horizontal
-                                            ? QStyle::PM_LayoutHorizontalSpacing
-                                            : QStyle::PM_LayoutVerticalSpacing);
-            }
+            if (parentItem && parentItem->isWidget())
+                w = static_cast<QGraphicsWidget*>(parentItem);
         }
-    }
 
-    // ### Currently we do not support negative anchors inside the graph.
-    // To avoid those being created by a negative style spacing, we must
-    // make this test.
-    if (s < 0)
-        s = 0;
+        QStyle *style = w ? w->style() : QApplication::style();
+        cachedStyleInfo = QLayoutStyleInfo(style, wid);
+        cachedStyleInfo.setDefaultSpacing(Qt::Horizontal, spacings[0]);
+        cachedStyleInfo.setDefaultSpacing(Qt::Vertical, spacings[1]);
 
-    return s;
+        styleInfoDirty = false;
+    }
+    return cachedStyleInfo;
 }
 
 /*!
@@ -1620,7 +1631,7 @@ void QGraphicsAnchorLayoutPrivate::calculateGraphs()
     dumpGraph(QString::fromAscii("%1-after").arg(count));
 #endif
 
-    calculateGraphCacheDirty = 0;
+    calculateGraphCacheDirty = false;
 }
 
 // ### Maybe getGraphParts could return the variables when traversing, at least
@@ -1847,12 +1858,11 @@ void QGraphicsAnchorLayoutPrivate::setAnchorSizeHintsFromItems(Orientation orien
     Graph<AnchorVertex, AnchorData> &g = graph[orientation];
     QList<QPair<AnchorVertex *, AnchorVertex *> > vertices = g.connections();
 
-    qreal spacing = effectiveSpacing(orientation);
-
+    QLayoutStyleInfo styleInf = styleInfo();
     for (int i = 0; i < vertices.count(); ++i) {
         AnchorData *data = g.edgeData(vertices.at(i).first, vertices.at(i).second);;
         Q_ASSERT(data->from && data->to);
-        data->refreshSizeHints(spacing);
+        data->refreshSizeHints(&styleInf);
     }
 }
 
diff --git a/src/gui/graphicsview/qgraphicsanchorlayout_p.h b/src/gui/graphicsview/qgraphicsanchorlayout_p.h
index d45c004..9b7d41e 100644
--- a/src/gui/graphicsview/qgraphicsanchorlayout_p.h
+++ b/src/gui/graphicsview/qgraphicsanchorlayout_p.h
@@ -159,7 +159,7 @@ struct AnchorData : public QSimplexVariable {
           type(Normal), hasSize(true), isLayoutAnchor(false) {}
 
     virtual void updateChildrenSizes() {}
-    virtual void refreshSizeHints(qreal effectiveSpacing);
+    virtual void refreshSizeHints(const QLayoutStyleInfo *styleInfo);
 
     virtual ~AnchorData() {}
 
@@ -226,9 +226,9 @@ struct SequentialAnchorData : public AnchorData
     }
 
     virtual void updateChildrenSizes();
-    virtual void refreshSizeHints(qreal effectiveSpacing);
+    virtual void refreshSizeHints(const QLayoutStyleInfo *styleInfo);
 
-    void refreshSizeHints_helper(qreal effectiveSpacing, bool refreshChildren = true);
+    void refreshSizeHints_helper(const QLayoutStyleInfo *styleInfo, bool refreshChildren = true);
 
     void setVertices(const QVector<AnchorVertex*> &vertices)
     {
@@ -261,9 +261,9 @@ struct ParallelAnchorData : public AnchorData
     }
 
     virtual void updateChildrenSizes();
-    virtual void refreshSizeHints(qreal effectiveSpacing);
+    virtual void refreshSizeHints(const QLayoutStyleInfo *styleInfo);
 
-    void refreshSizeHints_helper(qreal effectiveSpacing, bool refreshChildren = true);
+    void refreshSizeHints_helper(const QLayoutStyleInfo *styleInfo, bool refreshChildren = true);
 
     AnchorData* firstEdge;
     AnchorData* secondEdge;
@@ -423,9 +423,8 @@ public:
                               Qt::AnchorPoint &firstEdge,
                               QGraphicsLayoutItem *&secondItem,
                               Qt::AnchorPoint &secondEdge);
-    // for getting the actual spacing (will query the style if the
-    // spacing is not explicitly set).
-    qreal effectiveSpacing(Orientation orientation) const;
+
+    QLayoutStyleInfo &styleInfo() const;
 
     // Activation methods
     void simplifyGraph(Orientation orientation);
@@ -524,6 +523,8 @@ public:
 #endif
 
     uint calculateGraphCacheDirty : 1;
+    mutable uint styleInfoDirty : 1;
+    mutable QLayoutStyleInfo cachedStyleInfo;
 
     friend class QGraphicsAnchorPrivate;
 };
diff --git a/src/gui/graphicsview/qgraphicslayout_p.h b/src/gui/graphicsview/qgraphicslayout_p.h
index 59c6dba..4aeae39 100644
--- a/src/gui/graphicsview/qgraphicslayout_p.h
+++ b/src/gui/graphicsview/qgraphicslayout_p.h
@@ -60,6 +60,8 @@
 #include "qgraphicslayout.h"
 #include "qgraphicslayoutitem_p.h"
 #include <QtGui/qstyle.h>
+#include <QtGui/qwidget.h>
+#include <QtGui/qstyleoption.h>
 
 QT_BEGIN_NAMESPACE
 
@@ -76,6 +78,55 @@ inline bool qt_graphicsLayoutDebug()
 }
 #endif
 
+
+class QLayoutStyleInfo
+{
+public:
+    inline QLayoutStyleInfo() { invalidate(); }
+    inline QLayoutStyleInfo(QStyle *style, QWidget *widget)
+        : m_valid(true), m_style(style), m_widget(widget) 
+    {
+        Q_ASSERT(style);
+        if (widget) //###
+            m_styleOption.initFrom(widget);
+        m_defaultSpacing[0] = style->pixelMetric(QStyle::PM_LayoutHorizontalSpacing);
+        m_defaultSpacing[1] = style->pixelMetric(QStyle::PM_LayoutVerticalSpacing);
+    }
+
+    inline void invalidate() { m_valid = false; m_style = 0; m_widget = 0; }
+
+    inline QStyle *style() const { return m_style; }
+    inline QWidget *widget() const { return m_widget; }
+
+    inline bool operator==(const QLayoutStyleInfo &other)
+        { return m_style == other.m_style && m_widget == other.m_widget; }
+    inline bool operator!=(const QLayoutStyleInfo &other)
+        { return !(*this == other); }
+
+    inline void setDefaultSpacing(Qt::Orientation o, qreal spacing){
+        if (spacing >= 0)
+            m_defaultSpacing[o - 1] = spacing;
+    }
+
+    inline qreal defaultSpacing(Qt::Orientation o) const {
+        return m_defaultSpacing[o - 1];
+    }
+
+    inline qreal perItemSpacing(QSizePolicy::ControlType control1, 
+                                  QSizePolicy::ControlType control2,
+                                  Qt::Orientation orientation) const
+    {
+        Q_ASSERT(style());
+        return style()->layoutSpacing(control1, control2, orientation, &m_styleOption, widget());
+    }
+private:
+    bool m_valid;
+    QStyle *m_style;
+    QWidget *m_widget;
+    QStyleOption m_styleOption;
+    qreal m_defaultSpacing[2];
+};
+
 class Q_AUTOTEST_EXPORT QGraphicsLayoutPrivate : public QGraphicsLayoutItemPrivate
 {
     Q_DECLARE_PUBLIC(QGraphicsLayout)
diff --git a/src/gui/graphicsview/qgridlayoutengine_p.h b/src/gui/graphicsview/qgridlayoutengine_p.h
index a42a537..ed335a8 100644
--- a/src/gui/graphicsview/qgridlayoutengine_p.h
+++ b/src/gui/graphicsview/qgridlayoutengine_p.h
@@ -59,7 +59,7 @@
 #include "qmap.h"
 #include "qpair.h"
 #include "qvector.h"
-
+#include "qgraphicslayout_p.h"
 #include <float.h>
 
 QT_BEGIN_NAMESPACE
@@ -128,29 +128,6 @@ public:
 
 };
 
-class QLayoutStyleInfo
-{
-public:
-    inline QLayoutStyleInfo() { invalidate(); }
-    inline QLayoutStyleInfo(QStyle *style, QWidget *widget)
-        : q_valid(true), q_style(style), q_widget(widget) {}
-
-    inline void invalidate() { q_valid = false; q_style = 0; q_widget = 0; }
-
-    inline QStyle *style() const { return q_style; }
-    inline QWidget *widget() const { return q_widget; }
-
-    inline bool operator==(const QLayoutStyleInfo &other)
-        { return q_style == other.q_style && q_widget == other.q_widget; }
-    inline bool operator!=(const QLayoutStyleInfo &other)
-        { return !(*this == other); }
-
-private:
-    bool q_valid;
-    QStyle *q_style;
-    QWidget *q_widget;
-};
-
 class QGridLayoutBox
 {
 public:
diff --git a/tests/auto/qgraphicsanchorlayout/tst_qgraphicsanchorlayout.cpp b/tests/auto/qgraphicsanchorlayout/tst_qgraphicsanchorlayout.cpp
index 7b87969..f6f1868 100644
--- a/tests/auto/qgraphicsanchorlayout/tst_qgraphicsanchorlayout.cpp
+++ b/tests/auto/qgraphicsanchorlayout/tst_qgraphicsanchorlayout.cpp
@@ -45,6 +45,7 @@
 #include <QtGui/qgraphicswidget.h>
 #include <QtGui/qgraphicsproxywidget.h>
 #include <QtGui/qgraphicsview.h>
+#include <QtGui/qwindowsstyle.h>
 
 class tst_QGraphicsAnchorLayout : public QObject {
     Q_OBJECT;
@@ -72,6 +73,7 @@ private slots:
     void proportionalPreferred();
     void example();
     void setSpacing();
+    void styleDefaults();
     void hardComplexS60();
     void stability();
     void delete_anchor();
@@ -1102,6 +1104,166 @@ void tst_QGraphicsAnchorLayout::setSpacing()
     delete view;
 }
 
+class CustomLayoutStyle : public QWindowsStyle
+{
+    Q_OBJECT
+public:
+    CustomLayoutStyle() : QWindowsStyle()
+    {
+        hspacing = 5;
+        vspacing = 10;
+    }
+
+    virtual int pixelMetric(PixelMetric metric, const QStyleOption * option = 0,
+                            const QWidget * widget = 0 ) const;
+
+    int hspacing;
+    int vspacing;
+
+protected slots:
+    int layoutSpacingImplementation(QSizePolicy::ControlType control1,
+                                    QSizePolicy::ControlType control2,
+                                    Qt::Orientation orientation,
+                                    const QStyleOption *option = 0,
+                                    const QWidget *widget = 0) const;
+
+};
+
+#define CT1(c) CT2(c, c)
+#define CT2(c1, c2) ((uint)c1 << 16) | (uint)c2
+
+int CustomLayoutStyle::layoutSpacingImplementation(QSizePolicy::ControlType control1,
+                                QSizePolicy::ControlType control2,
+                                Qt::Orientation orientation,
+                                const QStyleOption * /*option = 0*/,
+                                const QWidget * /*widget = 0*/) const
+{
+    if (orientation == Qt::Horizontal) {
+        switch (CT2(control1, control2)) {
+            case CT1(QSizePolicy::PushButton):
+                return 2;
+                break;
+        }
+        return 5;
+    } else {
+        switch (CT2(control1, control2)) {
+            case CT1(QSizePolicy::RadioButton):
+                return 2;
+                break;
+
+        }
+        return 10;
+    }
+}
+
+int CustomLayoutStyle::pixelMetric(PixelMetric metric, const QStyleOption * option /*= 0*/,
+                                   const QWidget * widget /*= 0*/ ) const
+{
+    switch (metric) {
+        case PM_LayoutLeftMargin:
+            return 0;
+        break;
+        case PM_LayoutTopMargin:
+            return 3;
+        break;
+        case PM_LayoutRightMargin:
+            return 6;
+        break;
+        case PM_LayoutBottomMargin:
+            return 9;
+        break;
+        case PM_LayoutHorizontalSpacing:
+            return hspacing;
+        case PM_LayoutVerticalSpacing:
+            return vspacing;
+        break;
+        default:
+            break;
+    }
+    return QWindowsStyle::pixelMetric(metric, option, widget);
+}
+
+void tst_QGraphicsAnchorLayout::styleDefaults()
+{
+    QSizeF min (10, 10);
+    QSizeF pref(20, 20);
+    QSizeF max (50, 50);
+
+    /* 
+    create this layout, where a,b have controlType QSizePolicy::RadioButton
+    c,d have controlType QSizePolicy::PushButton:
+    +-------+
+    |a      |
+    |  b    |
+    |    c  |
+    |      d|
+    +-------+
+    */
+    QGraphicsScene scene;
+    QGraphicsWidget *a = createItem(min, pref, max);
+    QSizePolicy spRadioButton = a->sizePolicy();
+    spRadioButton.setControlType(QSizePolicy::RadioButton);
+    a->setSizePolicy(spRadioButton);
+
+    QGraphicsWidget *b = createItem(min, pref, max);
+    b->setSizePolicy(spRadioButton);
+
+    QGraphicsWidget *c = createItem(min, pref, max);
+    QSizePolicy spPushButton = c->sizePolicy();
+    spPushButton.setControlType(QSizePolicy::PushButton);
+    c->setSizePolicy(spPushButton);
+
+    QGraphicsWidget *d = createItem(min, pref, max);
+    d->setSizePolicy(spPushButton);
+
+    QGraphicsWidget *window = new QGraphicsWidget(0, Qt::Window);
+
+    // Test layoutSpacingImplementation
+    CustomLayoutStyle *style = new CustomLayoutStyle;
+    style->hspacing = -1;
+    style->vspacing = -1;
+    window->setStyle(style);
+    QGraphicsAnchorLayout *l = new QGraphicsAnchorLayout;
+
+    l->addCornerAnchors(l, Qt::TopLeftCorner, a, Qt::TopLeftCorner);
+    l->addCornerAnchors(a, Qt::BottomRightCorner, b, Qt::TopLeftCorner);
+    l->addCornerAnchors(b, Qt::BottomRightCorner, c, Qt::TopLeftCorner);
+    l->addCornerAnchors(c, Qt::BottomRightCorner, d, Qt::TopLeftCorner);
+    l->addCornerAnchors(d, Qt::BottomRightCorner, l, Qt::BottomRightCorner);
+
+    window->setLayout(l);
+
+    scene.addItem(window);
+
+    window->show();
+    QGraphicsView *view = new QGraphicsView(&scene);
+    view->resize(200, 200);
+    view->show();
+
+    window->adjustSize();
+    QCOMPARE(a->geometry(), QRectF(0,   3, 20, 20));    //radio
+    QCOMPARE(b->geometry(), QRectF(25, 25, 20, 20));    //radio
+    QCOMPARE(c->geometry(), QRectF(50, 55, 20, 20));    //push
+    QCOMPARE(d->geometry(), QRectF(72, 85, 20, 20));    //push
+    QCOMPARE(l->geometry(), QRectF(0,   0, 98, 114));
+
+
+    // Test pixelMetric(PM_Layout{Horizontal|Vertical}Spacing
+    window->setStyle(0);
+
+    style->hspacing = 1;
+    style->vspacing = 2;
+
+    window->setStyle(style);
+    window->adjustSize();
+    QCOMPARE(a->geometry(), QRectF(0,   3, 20, 20));
+    QCOMPARE(b->geometry(), QRectF(21, 25, 20, 20));     
+    QCOMPARE(c->geometry(), QRectF(42, 47, 20, 20));
+    QCOMPARE(d->geometry(), QRectF(63, 69, 20, 20));
+    QCOMPARE(l->geometry(), QRectF(0,   0, 89, 98));
+}
+
+
 /*!
     Taken from "hard" complex case, found at
     https://cwiki.nokia.com/S60QTUI/AnchorLayoutComplexCases
-- 
cgit v0.12


From bc49cbaab3356770eb4b27dcbc2e585bf21e9200 Mon Sep 17 00:00:00 2001
From: Thierry Bastian <thierry.bastian@nokia.com>
Date: Tue, 27 Oct 2009 12:15:49 +0100
Subject: QTableView would not correctly resize to contents

The problem was that we didn't call ensurePolished when getting the
size of the sections.

Task-number: QTBUG-1002
Reviewed-by: ogoffart
---
 src/gui/itemviews/qheaderview.cpp        |  2 ++
 src/gui/itemviews/qtableview.cpp         |  4 ++++
 tests/auto/qtableview/tst_qtableview.cpp | 11 ++++++-----
 3 files changed, 12 insertions(+), 5 deletions(-)

diff --git a/src/gui/itemviews/qheaderview.cpp b/src/gui/itemviews/qheaderview.cpp
index fc9820f..4b5ec71 100644
--- a/src/gui/itemviews/qheaderview.cpp
+++ b/src/gui/itemviews/qheaderview.cpp
@@ -2516,6 +2516,8 @@ QSize QHeaderView::sectionSizeFromContents(int logicalIndex) const
     Q_D(const QHeaderView);
     Q_ASSERT(logicalIndex >= 0);
 
+    ensurePolished();
+
     // use SizeHintRole
     QVariant variant = d->model->headerData(logicalIndex, d->orientation, Qt::SizeHintRole);
     if (variant.isValid())
diff --git a/src/gui/itemviews/qtableview.cpp b/src/gui/itemviews/qtableview.cpp
index 2a937f1..c80faa2 100644
--- a/src/gui/itemviews/qtableview.cpp
+++ b/src/gui/itemviews/qtableview.cpp
@@ -2065,6 +2065,8 @@ int QTableView::sizeHintForRow(int row) const
     if (!model())
         return -1;
 
+    ensurePolished();
+
     int left = qMax(0, columnAt(0));
     int right = columnAt(d->viewport->width());
     if (right == -1) // the table don't have enough columns to fill the viewport
@@ -2122,6 +2124,8 @@ int QTableView::sizeHintForColumn(int column) const
     if (!model())
         return -1;
 
+    ensurePolished();
+
     int top = qMax(0, rowAt(0));
     int bottom = rowAt(d->viewport->height());
     if (!isVisible() || bottom == -1) // the table don't have enough rows to fill the viewport
diff --git a/tests/auto/qtableview/tst_qtableview.cpp b/tests/auto/qtableview/tst_qtableview.cpp
index d8110e1..8f8781d 100644
--- a/tests/auto/qtableview/tst_qtableview.cpp
+++ b/tests/auto/qtableview/tst_qtableview.cpp
@@ -2017,8 +2017,9 @@ void tst_QTableView::resizeRowsToContents()
     view.resizeRowsToContents();
 
     QCOMPARE(resizedSpy.count(), model.rowCount());
-    for (int r = 0; r < model.rowCount(); ++r)
+    for (int r = 0; r < model.rowCount(); ++r) {
         QCOMPARE(view.rowHeight(r), rowHeight);
+    }
 }
 
 void tst_QTableView::resizeColumnsToContents_data()
@@ -3267,12 +3268,12 @@ void tst_QTableView::resizeToContents()
 
     //now let's check the row/col sizes
     for(int i = 0;i<table.columnCount();i++) {
-        QVERIFY( table.columnWidth(i) == table2.columnWidth(i));
-        QVERIFY( table2.columnWidth(i) == table3.columnWidth(i));
+        QCOMPARE( table.columnWidth(i), table2.columnWidth(i));
+        QCOMPARE( table2.columnWidth(i), table3.columnWidth(i));
     }
     for(int i = 0;i<table.rowCount();i++) {
-        QVERIFY( table.rowHeight(i) == table2.rowHeight(i));
-        QVERIFY( table2.rowHeight(i) == table3.rowHeight(i));
+        QCOMPARE( table.rowHeight(i), table2.rowHeight(i));
+        QCOMPARE( table2.rowHeight(i), table3.rowHeight(i));
     }
 
 }
-- 
cgit v0.12


From 11b1ced7cdc2af028164381d43c146ec79919f19 Mon Sep 17 00:00:00 2001
From: Olivier Goffart <ogoffart@trolltech.com>
Date: Mon, 26 Oct 2009 15:55:16 +0100
Subject: Do not hardecode the ToolBar Icon Size

So we correctly get the size from the platform plugin

Reviewed-by: jbache
---
 src/gui/styles/qcommonstyle.cpp    | 2 +-
 src/gui/styles/qplastiquestyle.cpp | 3 ---
 src/gui/styles/qwindowsstyle.cpp   | 3 ---
 3 files changed, 1 insertion(+), 7 deletions(-)

diff --git a/src/gui/styles/qcommonstyle.cpp b/src/gui/styles/qcommonstyle.cpp
index 5886512..b871842 100644
--- a/src/gui/styles/qcommonstyle.cpp
+++ b/src/gui/styles/qcommonstyle.cpp
@@ -4661,7 +4661,7 @@ int QCommonStyle::pixelMetric(PixelMetric m, const QStyleOption *opt, const QWid
     case PM_ToolBarIconSize:
         ret = qt_guiPlatformPlugin()->platformHint(QGuiPlatformPlugin::PH_ToolBarIconSize);
         if (!ret)
-            ret = proxy()->pixelMetric(PM_SmallIconSize, opt, widget);
+            ret = int(QStyleHelper::dpiScaled(24.));
         break;
 
     case PM_TabBarIconSize:
diff --git a/src/gui/styles/qplastiquestyle.cpp b/src/gui/styles/qplastiquestyle.cpp
index ce2109a..1f77d90 100644
--- a/src/gui/styles/qplastiquestyle.cpp
+++ b/src/gui/styles/qplastiquestyle.cpp
@@ -5514,9 +5514,6 @@ int QPlastiqueStyle::pixelMetric(PixelMetric metric, const QStyleOption *option,
     case PM_MenuHMargin:
         ret = 0;
         break;
-    case PM_ToolBarIconSize:
-        ret = 24;
-        break;
     case PM_ButtonShiftHorizontal:
     case PM_ButtonShiftVertical:
         ret = 1;
diff --git a/src/gui/styles/qwindowsstyle.cpp b/src/gui/styles/qwindowsstyle.cpp
index 0f72440..5cf738e 100644
--- a/src/gui/styles/qwindowsstyle.cpp
+++ b/src/gui/styles/qwindowsstyle.cpp
@@ -454,9 +454,6 @@ int QWindowsStyle::pixelMetric(PixelMetric pm, const QStyleOption *opt, const QW
         ret = proxy()->pixelMetric(PM_LargeIconSize, opt, widget);
         break;
 
-    case PM_ToolBarIconSize:
-        ret = int(QStyleHelper::dpiScaled(24.));
-        break;
     case PM_DockWidgetTitleMargin:
         ret = int(QStyleHelper::dpiScaled(2.));
         break;
-- 
cgit v0.12


From 5ff7b773a0f59e174001da1f0550a7f0c2b6f485 Mon Sep 17 00:00:00 2001
From: Olivier Goffart <ogoffart@trolltech.com>
Date: Tue, 27 Oct 2009 11:39:51 +0100
Subject: Fixes QTreeView: stylesheet :has-children pseudo selector doesn't
 works for the ::item pseudo-class

The State_Children was not set on the QStyleOption.
Refactorized a little bit the way it was computed.

Reviewed-by: Thierry
Task-number: 234930
Task-number: QTBUG-3129
---
 src/gui/itemviews/qtreeview.cpp        | 28 +++++++++++++++------------
 src/gui/itemviews/qtreeview_p.h        |  3 ++-
 tests/auto/qtreeview/tst_qtreeview.cpp | 35 +++++++++++++++++++++++++++++++---
 3 files changed, 50 insertions(+), 16 deletions(-)

diff --git a/src/gui/itemviews/qtreeview.cpp b/src/gui/itemviews/qtreeview.cpp
index f37d8c7..49c8e34 100644
--- a/src/gui/itemviews/qtreeview.cpp
+++ b/src/gui/itemviews/qtreeview.cpp
@@ -1422,8 +1422,8 @@ void QTreeView::drawTree(QPainter *painter, const QRegion &region) const
         for (; i < viewItems.count() && y <= area.bottom(); ++i) {
             const int itemHeight = d->itemHeight(i);
             option.rect.setRect(0, y, viewportWidth, itemHeight);
-            option.state = state | (viewItems.at(i).expanded
-                                    ? QStyle::State_Open : QStyle::State_None);
+            option.state = state | (viewItems.at(i).expanded ? QStyle::State_Open : QStyle::State_None)
+                                 | (viewItems.at(i).hasChildren ? QStyle::State_Children : QStyle::State_None );
             d->current = i;
             d->spanning = viewItems.at(i).spanning;
             if (!multipleRects || !drawn.contains(i)) {
@@ -1748,8 +1748,7 @@ void QTreeView::drawBranches(QPainter *painter, const QRect &rect,
         opt.rect = primitive;
 
         const bool expanded = viewItem.expanded;
-        const bool children = (((expanded && viewItem.total > 0)) // already laid out and has children
-                                || d->hasVisibleChildren(index)); // not laid out yet, so we don't know
+        const bool children = viewItem.hasChildren;
         bool moreSiblings = false;
         if (d->hiddenIndexes.isEmpty())
             moreSiblings = (d->model->rowCount(parent) - 1 > index.row());
@@ -3135,17 +3134,22 @@ void QTreeViewPrivate::layout(int i)
             last = j - hidden + children;
         } else {
             last = j - hidden + children;
-            viewItems[last].index = current;
-            viewItems[last].level = level;
-            viewItems[last].height = 0;
-            viewItems[last].spanning = q->isFirstColumnSpanned(current.row(), parent);
-            viewItems[last].expanded = false;
-            viewItems[last].total = 0;
+            QTreeViewItem *item = &viewItems[last];
+            item->index = current;
+            item->level = level;
+            item->height = 0;
+            item->spanning = q->isFirstColumnSpanned(current.row(), parent);
+            item->expanded = false;
+            item->total = 0;
             if (isIndexExpanded(current)) {
-                viewItems[last].expanded = true;
+                item->expanded = true;
                 layout(last);
-                children += viewItems[last].total;
+                item = &viewItems[last];
+                children += item->total;
+                item->hasChildren = item->total > 0;
                 last = j - hidden + children;
+            } else {
+                item->hasChildren = hasVisibleChildren(current);
             }
         }
     }
diff --git a/src/gui/itemviews/qtreeview_p.h b/src/gui/itemviews/qtreeview_p.h
index def8253..f89c328 100644
--- a/src/gui/itemviews/qtreeview_p.h
+++ b/src/gui/itemviews/qtreeview_p.h
@@ -66,7 +66,8 @@ struct QTreeViewItem
     QModelIndex index; // we remove items whenever the indexes are invalidated
     uint expanded : 1;
     uint spanning : 1;
-    uint total : 30; // total number of children visible
+    uint hasChildren : 1; // if the item has visible children (even if collapsed)
+    uint total : 29; // total number of children visible
     uint level : 16; // indentation
     int height : 16; // row height
 };
diff --git a/tests/auto/qtreeview/tst_qtreeview.cpp b/tests/auto/qtreeview/tst_qtreeview.cpp
index da58725..8d824cb 100644
--- a/tests/auto/qtreeview/tst_qtreeview.cpp
+++ b/tests/auto/qtreeview/tst_qtreeview.cpp
@@ -2891,7 +2891,8 @@ void tst_QTreeView::styleOptionViewItem()
 
                 QVERIFY(!opt.text.isEmpty());
                 QCOMPARE(opt.index, index);
-                QCOMPARE(!(opt.features & QStyleOptionViewItemV2::Alternate), !(index.row() % 2));
+                if (allCollapsed)
+                    QCOMPARE(!(opt.features & QStyleOptionViewItemV2::Alternate), !(index.row() % 2));
                 QCOMPARE(!(opt.features & QStyleOptionViewItemV2::HasCheckIndicator), !opt.text.contains("Checkable"));
 
                 if (opt.text.contains("Beginning"))
@@ -2911,12 +2912,15 @@ void tst_QTreeView::styleOptionViewItem()
                 else
                     QCOMPARE(opt.checkState, Qt::Unchecked);
 
+                QCOMPARE(!(opt.state & QStyle::State_Children) , !opt.text.contains("HasChildren"));
+
                 QVERIFY(!opt.text.contains("Assert"));
 
                 QStyledItemDelegate::paint(painter, option, index);
                 count++;
             }
             mutable int count;
+            bool allCollapsed;
     };
 
     QTreeView view;
@@ -2926,8 +2930,9 @@ void tst_QTreeView::styleOptionViewItem()
     view.setItemDelegate(&delegate);
     model.appendRow(QList<QStandardItem*>()
         << new QStandardItem("Beginning") <<  new QStandardItem("Middle") << new QStandardItem("Middle") << new QStandardItem("End") );
+    QStandardItem *par1 = new QStandardItem("Beginning HasChildren");
     model.appendRow(QList<QStandardItem*>()
-        << new QStandardItem("Beginning") <<  new QStandardItem("Middle") << new QStandardItem("Middle") << new QStandardItem("End") );
+        << par1 <<  new QStandardItem("Middle HasChildren") << new QStandardItem("Middle HasChildren") << new QStandardItem("End HasChildren") );
     model.appendRow(QList<QStandardItem*>()
         << new QStandardItem("OnlyOne") <<  new QStandardItem("Assert") << new QStandardItem("Assert") << new QStandardItem("Assert") );
     QStandardItem *checkable = new QStandardItem("Checkable");
@@ -2938,12 +2943,37 @@ void tst_QTreeView::styleOptionViewItem()
     model.appendRow(QList<QStandardItem*>()
         << new QStandardItem("Beginning") <<  checkable << checked << new QStandardItem("End") );
 
+    par1->appendRow(QList<QStandardItem*>()
+        << new QStandardItem("Beginning") <<  new QStandardItem("Middle") << new QStandardItem("Middle") << new QStandardItem("End") );
+    QStandardItem *par2 = new QStandardItem("Beginning HasChildren");
+    par1->appendRow(QList<QStandardItem*>()
+        << par2 <<  new QStandardItem("Middle HasChildren") << new QStandardItem("Middle HasChildren") << new QStandardItem("End HasChildren") );
+    par2->appendRow(QList<QStandardItem*>()
+        << new QStandardItem("Beginning") <<  new QStandardItem("Middle") << new QStandardItem("Middle") << new QStandardItem("End") );
+
+    QStandardItem *par3 = new QStandardItem("Beginning");
+    par1->appendRow(QList<QStandardItem*>()
+        << par3 <<  new QStandardItem("Middle") << new QStandardItem("Middle") << new QStandardItem("End") );
+    par3->appendRow(QList<QStandardItem*>()
+        << new QStandardItem("Beginning") <<  new QStandardItem("Middle") << new QStandardItem("Middle") << new QStandardItem("End") );
+    view.setRowHidden(0, par3->index(), true);
+
     view.setFirstColumnSpanned(2, QModelIndex(), true);
     view.setAlternatingRowColors(true);
 
     delegate.count = 0;
+    delegate.allCollapsed = true;
     view.showMaximized();
+    QApplication::processEvents();
     QTRY_VERIFY(delegate.count >= 13);
+    delegate.count = 0;
+    delegate.allCollapsed = false;
+    view.expandAll();
+    QApplication::processEvents();
+    QTRY_VERIFY(delegate.count >= 13);
+    view.collapse(par2->index());
+    QApplication::processEvents();
+    QTRY_VERIFY(delegate.count >= 4);
 }
 
 class task174627_TreeView : public QTreeView
@@ -3508,6 +3538,5 @@ void tst_QTreeView::task245654_changeModelAndExpandAll()
 }
 
 
-
 QTEST_MAIN(tst_QTreeView)
 #include "tst_qtreeview.moc"
-- 
cgit v0.12


From 0897713a560700f574386499a872f59e3fc4ce7d Mon Sep 17 00:00:00 2001
From: Olivier Goffart <ogoffart@trolltech.com>
Date: Tue, 27 Oct 2009 12:45:21 +0100
Subject: QTreeView: Make sure the state QStyle::State_Sibling is correctly set

That state used not to be set for drawing the content of the items.
Also, it could be wrong for branches if there was hidden items.

Reviewed-by: Thierry
Task-number: related to 234930
---
 src/gui/itemviews/qtreeview.cpp        | 17 ++++++++---------
 src/gui/itemviews/qtreeview_p.h        |  3 ++-
 tests/auto/qtreeview/tst_qtreeview.cpp | 15 +++++++++++----
 3 files changed, 21 insertions(+), 14 deletions(-)

diff --git a/src/gui/itemviews/qtreeview.cpp b/src/gui/itemviews/qtreeview.cpp
index 49c8e34..e74ecfc 100644
--- a/src/gui/itemviews/qtreeview.cpp
+++ b/src/gui/itemviews/qtreeview.cpp
@@ -1423,7 +1423,8 @@ void QTreeView::drawTree(QPainter *painter, const QRegion &region) const
             const int itemHeight = d->itemHeight(i);
             option.rect.setRect(0, y, viewportWidth, itemHeight);
             option.state = state | (viewItems.at(i).expanded ? QStyle::State_Open : QStyle::State_None)
-                                 | (viewItems.at(i).hasChildren ? QStyle::State_Children : QStyle::State_None );
+                                 | (viewItems.at(i).hasChildren ? QStyle::State_Children : QStyle::State_None)
+                                 | (viewItems.at(i).hasMoreSiblings ? QStyle::State_Sibling : QStyle::State_None);
             d->current = i;
             d->spanning = viewItems.at(i).spanning;
             if (!multipleRects || !drawn.contains(i)) {
@@ -1749,12 +1750,7 @@ void QTreeView::drawBranches(QPainter *painter, const QRect &rect,
 
         const bool expanded = viewItem.expanded;
         const bool children = viewItem.hasChildren;
-        bool moreSiblings = false;
-        if (d->hiddenIndexes.isEmpty())
-            moreSiblings = (d->model->rowCount(parent) - 1 > index.row());
-        else
-            moreSiblings = ((d->viewItems.size() > item +1)
-                            && (d->viewItems.at(item + 1).index.parent() == parent));
+        bool moreSiblings = viewItem.hasMoreSiblings;
 
         opt.state = QStyle::State_Item | extraFlags
                     | (moreSiblings ? QStyle::State_Sibling : QStyle::State_None)
@@ -3126,7 +3122,7 @@ void QTreeViewPrivate::layout(int i)
     int hidden = 0;
     int last = 0;
     int children = 0;
-
+    QTreeViewItem *item = 0;
     for (int j = first; j < first + count; ++j) {
         current = model->index(j - first, 0, parent);
         if (isRowHidden(current)) {
@@ -3134,13 +3130,16 @@ void QTreeViewPrivate::layout(int i)
             last = j - hidden + children;
         } else {
             last = j - hidden + children;
-            QTreeViewItem *item = &viewItems[last];
+            if (item)
+                item->hasMoreSiblings = true;
+            item = &viewItems[last];
             item->index = current;
             item->level = level;
             item->height = 0;
             item->spanning = q->isFirstColumnSpanned(current.row(), parent);
             item->expanded = false;
             item->total = 0;
+            item->hasMoreSiblings = false;
             if (isIndexExpanded(current)) {
                 item->expanded = true;
                 layout(last);
diff --git a/src/gui/itemviews/qtreeview_p.h b/src/gui/itemviews/qtreeview_p.h
index f89c328..62676d8 100644
--- a/src/gui/itemviews/qtreeview_p.h
+++ b/src/gui/itemviews/qtreeview_p.h
@@ -67,7 +67,8 @@ struct QTreeViewItem
     uint expanded : 1;
     uint spanning : 1;
     uint hasChildren : 1; // if the item has visible children (even if collapsed)
-    uint total : 29; // total number of children visible
+    uint hasMoreSiblings : 1;
+    uint total : 28; // total number of children visible
     uint level : 16; // indentation
     int height : 16; // row height
 };
diff --git a/tests/auto/qtreeview/tst_qtreeview.cpp b/tests/auto/qtreeview/tst_qtreeview.cpp
index 8d824cb..cbc999f 100644
--- a/tests/auto/qtreeview/tst_qtreeview.cpp
+++ b/tests/auto/qtreeview/tst_qtreeview.cpp
@@ -2913,6 +2913,7 @@ void tst_QTreeView::styleOptionViewItem()
                     QCOMPARE(opt.checkState, Qt::Unchecked);
 
                 QCOMPARE(!(opt.state & QStyle::State_Children) , !opt.text.contains("HasChildren"));
+                QCOMPARE(!!(opt.state & QStyle::State_Sibling) , !opt.text.contains("Last"));
 
                 QVERIFY(!opt.text.contains("Assert"));
 
@@ -2942,6 +2943,8 @@ void tst_QTreeView::styleOptionViewItem()
     checked->setCheckState(Qt::Checked);
     model.appendRow(QList<QStandardItem*>()
         << new QStandardItem("Beginning") <<  checkable << checked << new QStandardItem("End") );
+    model.appendRow(QList<QStandardItem*>()
+        << new QStandardItem("Beginning Last") <<  new QStandardItem("Middle Last") << new QStandardItem("Middle Last") << new QStandardItem("End Last") );
 
     par1->appendRow(QList<QStandardItem*>()
         << new QStandardItem("Beginning") <<  new QStandardItem("Middle") << new QStandardItem("Middle") << new QStandardItem("End") );
@@ -2949,14 +2952,18 @@ void tst_QTreeView::styleOptionViewItem()
     par1->appendRow(QList<QStandardItem*>()
         << par2 <<  new QStandardItem("Middle HasChildren") << new QStandardItem("Middle HasChildren") << new QStandardItem("End HasChildren") );
     par2->appendRow(QList<QStandardItem*>()
-        << new QStandardItem("Beginning") <<  new QStandardItem("Middle") << new QStandardItem("Middle") << new QStandardItem("End") );
+        << new QStandardItem("Beginning Last") <<  new QStandardItem("Middle Last") << new QStandardItem("Middle Last") << new QStandardItem("End Last") );
 
-    QStandardItem *par3 = new QStandardItem("Beginning");
+    QStandardItem *par3 = new QStandardItem("Beginning Last");
     par1->appendRow(QList<QStandardItem*>()
-        << par3 <<  new QStandardItem("Middle") << new QStandardItem("Middle") << new QStandardItem("End") );
+        << par3 <<  new QStandardItem("Middle Last") << new QStandardItem("Middle Last") << new QStandardItem("End Last") );
     par3->appendRow(QList<QStandardItem*>()
-        << new QStandardItem("Beginning") <<  new QStandardItem("Middle") << new QStandardItem("Middle") << new QStandardItem("End") );
+        << new QStandardItem("Assert") <<  new QStandardItem("Assert") << new QStandardItem("Assert") << new QStandardItem("Asser") );
     view.setRowHidden(0, par3->index(), true);
+    par1->appendRow(QList<QStandardItem*>()
+        << new QStandardItem("Assert") <<  new QStandardItem("Assert") << new QStandardItem("Assert") << new QStandardItem("Asser") );
+    view.setRowHidden(3, par1->index(), true);
+
 
     view.setFirstColumnSpanned(2, QModelIndex(), true);
     view.setAlternatingRowColors(true);
-- 
cgit v0.12


From 40d7920da5762addbbef36ebc049c32409b575cf Mon Sep 17 00:00:00 2001
From: Janne Anttila <janne.anttila@digia.com>
Date: Tue, 27 Oct 2009 14:21:53 +0200
Subject: Cleanup softkeymanager keyedactions hash when QAction is being
 deleted.

Reviewed-by: TrustMe
---
 src/gui/kernel/qsoftkeymanager.cpp | 9 ++++++++-
 src/gui/kernel/qsoftkeymanager_p.h | 1 +
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/src/gui/kernel/qsoftkeymanager.cpp b/src/gui/kernel/qsoftkeymanager.cpp
index 75c321e..a5e8eff 100644
--- a/src/gui/kernel/qsoftkeymanager.cpp
+++ b/src/gui/kernel/qsoftkeymanager.cpp
@@ -139,11 +139,18 @@ QAction *QSoftKeyManager::createKeyedAction(StandardSoftKey standardKey, Qt::Key
     QScopedPointer<QAction> action(createAction(standardKey, actionWidget));
 
     connect(action.data(), SIGNAL(triggered()), QSoftKeyManager::instance(), SLOT(sendKeyEvent()));
-
+    connect(action.data(), SIGNAL(destroyed(QObject*)), QSoftKeyManager::instance(), SLOT(cleanupHash(QObject*)));
     QSoftKeyManager::instance()->d_func()->keyedActions.insert(action.data(), key);
     return action.take();
 }
 
+void QSoftKeyManager::cleanupHash(QObject* obj)
+{
+    Q_D(QSoftKeyManager);
+    QAction *action = qobject_cast<QAction*>(obj);
+    d->keyedActions.remove(action);
+}
+
 void QSoftKeyManager::sendKeyEvent()
 {
     Q_D(QSoftKeyManager);
diff --git a/src/gui/kernel/qsoftkeymanager_p.h b/src/gui/kernel/qsoftkeymanager_p.h
index b455445..81218cf 100644
--- a/src/gui/kernel/qsoftkeymanager_p.h
+++ b/src/gui/kernel/qsoftkeymanager_p.h
@@ -96,6 +96,7 @@ protected:
     Q_DISABLE_COPY(QSoftKeyManager)
 
 private Q_SLOTS:
+    void cleanupHash(QObject* obj);
     void sendKeyEvent();
 };
 
-- 
cgit v0.12


From 8dd9e9b5f3e794ecdb70a3b43c4a2e17a8d139a8 Mon Sep 17 00:00:00 2001
From: Janne Anttila <janne.anttila@digia.com>
Date: Tue, 27 Oct 2009 14:33:29 +0200
Subject: Fixed 'illegal empty declaration' warning from XmlPatters.

The following warning was reported by MWCCSYM2
(Symbian emulator compiler):

\src\xmlpatterns\api\qxmlquery.h:77: warning: illegal empty declaration

Reviewed-by: TrustMe
---
 src/xmlpatterns/api/qxmlquery.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/xmlpatterns/api/qxmlquery.h b/src/xmlpatterns/api/qxmlquery.h
index abfddc0..37e4fe1 100644
--- a/src/xmlpatterns/api/qxmlquery.h
+++ b/src/xmlpatterns/api/qxmlquery.h
@@ -74,7 +74,7 @@ namespace QPatternist
     class XsdSchemaParser;
     class XsdValidatingInstanceReader;
     class VariableLoader;
-};
+}
 
 class Q_XMLPATTERNS_EXPORT QXmlQuery
 {
-- 
cgit v0.12


From d683fd25512dedacdac141222db36209ef65e42d Mon Sep 17 00:00:00 2001
From: Thierry Bastian <thierry.bastian@nokia.com>
Date: Tue, 27 Oct 2009 13:43:42 +0100
Subject: Fixed QTreeView not emitting doubleCliked when 1st col is spanned

Task-number: QTBUG-976
Reviewed-by: ogoffart
---
 src/gui/itemviews/qtreeview.cpp        |  4 +---
 tests/auto/qtreeview/tst_qtreeview.cpp | 29 +++++++++++++++++++++++++++++
 2 files changed, 30 insertions(+), 3 deletions(-)

diff --git a/src/gui/itemviews/qtreeview.cpp b/src/gui/itemviews/qtreeview.cpp
index e74ecfc..16b454d 100644
--- a/src/gui/itemviews/qtreeview.cpp
+++ b/src/gui/itemviews/qtreeview.cpp
@@ -1840,9 +1840,7 @@ void QTreeView::mouseDoubleClickEvent(QMouseEvent *event)
             return; // user clicked outside the items
 
         const QPersistentModelIndex firstColumnIndex = d->viewItems.at(i).index;
-
-        int column = d->header->logicalIndexAt(event->x());
-        QPersistentModelIndex persistent = firstColumnIndex.sibling(firstColumnIndex.row(), column);
+        const QPersistentModelIndex persistent = indexAt(event->pos());
 
         if (d->pressedIndex != persistent) {
             mousePressEvent(event);
diff --git a/tests/auto/qtreeview/tst_qtreeview.cpp b/tests/auto/qtreeview/tst_qtreeview.cpp
index cbc999f..1429771 100644
--- a/tests/auto/qtreeview/tst_qtreeview.cpp
+++ b/tests/auto/qtreeview/tst_qtreeview.cpp
@@ -235,6 +235,7 @@ private slots:
     void task254234_proxySort();
     void task248022_changeSelection();
     void task245654_changeModelAndExpandAll();
+    void doubleClickedWithSpans();
 };
 
 class QtTestModel: public QAbstractItemModel
@@ -3544,6 +3545,34 @@ void tst_QTreeView::task245654_changeModelAndExpandAll()
 
 }
 
+void tst_QTreeView::doubleClickedWithSpans()
+{
+    QTreeView view;
+    QStandardItemModel model(1, 2);
+    view.setModel(&model);
+    view.setFirstColumnSpanned(0, QModelIndex(), true);
+    view.show();
+
+    QPoint p(10, 10);
+    QCOMPARE(view.indexAt(p), model.index(0, 0));
+    QSignalSpy spy(&view, SIGNAL(doubleClicked(QModelIndex)));
+    QTest::mousePress(view.viewport(), Qt::LeftButton, 0, p);
+    QTest::mouseDClick(view.viewport(), Qt::LeftButton, 0, p);
+    QTest::mouseRelease(view.viewport(), Qt::LeftButton, 0, p);
+    QCOMPARE(spy.count(), 1);
+
+    //let's click on the 2nd column
+    p.setX(p.x() + view.header()->sectionSize(0));
+    QCOMPARE(view.indexAt(p), model.index(0, 0));
+
+    //end the previous edition
+    QTest::mouseClick(view.viewport(), Qt::LeftButton, 0, p);
+    QTest::qWait(100);
+    QTest::mousePress(view.viewport(), Qt::LeftButton, 0, p);
+    QTest::mouseDClick(view.viewport(), Qt::LeftButton, 0, p);
+    QTest::mouseRelease(view.viewport(), Qt::LeftButton, 0, p);
+    QCOMPARE(spy.count(), 2);
+}
 
 QTEST_MAIN(tst_QTreeView)
 #include "tst_qtreeview.moc"
-- 
cgit v0.12


From 8f040ea4da93f1b9cae1db560e5e9f9b3140b3ff Mon Sep 17 00:00:00 2001
From: Olivier Goffart <ogoffart@trolltech.com>
Date: Tue, 27 Oct 2009 13:48:39 +0100
Subject: QVariant::isNull does not return the right result with
 QVariant::setValue

Inspired by merge request 1911

Reveiwed-by: Thierry
---
 src/corelib/kernel/qvariant.h        | 1 +
 tests/auto/qvariant/tst_qvariant.cpp | 8 ++++++++
 2 files changed, 9 insertions(+)

diff --git a/src/corelib/kernel/qvariant.h b/src/corelib/kernel/qvariant.h
index eb4fb56..4cce529 100644
--- a/src/corelib/kernel/qvariant.h
+++ b/src/corelib/kernel/qvariant.h
@@ -460,6 +460,7 @@ inline void qVariantSetValue(QVariant &v, const T &t)
     QVariant::Private &d = v.data_ptr();
     if (v.isDetached() && (type <= int(QVariant::Char) || type == d.type)) {
         d.type = type;
+        d.is_null = false;
         T *old = reinterpret_cast<T*>(d.is_shared ? d.data.shared->ptr : &d.data.ptr);
         if (QTypeInfo<T>::isComplex)
             old->~T();
diff --git a/tests/auto/qvariant/tst_qvariant.cpp b/tests/auto/qvariant/tst_qvariant.cpp
index 9295897..de4d7b4 100644
--- a/tests/auto/qvariant/tst_qvariant.cpp
+++ b/tests/auto/qvariant/tst_qvariant.cpp
@@ -318,6 +318,14 @@ void tst_QVariant::constructor()
     QVariant var6(qlonglong(0));
     QCOMPARE(var6.type(), QVariant::LongLong);
     QCOMPARE(var6.typeName(), "qlonglong");
+
+    QVariant var7 = 5;
+    QVERIFY(var7.isValid());
+    QVERIFY(!var7.isNull());
+    QVariant var8;
+    var8.setValue<int>(5);
+    QVERIFY(var8.isValid());
+    QVERIFY(!var8.isNull());
 }
 
 void tst_QVariant::copy_constructor()
-- 
cgit v0.12


From 5bc69a86b75c1e25e0859ee27714e54878193e2f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Sami=20Meril=C3=A4?= <sami.merila@nokia.com>
Date: Tue, 27 Oct 2009 15:20:56 +0200
Subject: Draw QSplitter in QS60Style

Previously QS60Style did not draw CE_Splitter control at all.
With this change, the style draws it when user presses the splitter
down to make a drag. Since native side does not have splitter at all,
we are drawing splitter rect as partially transparent rounded rect
with QPalette::Light (which has been picked from active theme).

Task-number: QT-686
Reviewed-by: Shane Kearns
---
 src/gui/styles/qs60style.cpp | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/src/gui/styles/qs60style.cpp b/src/gui/styles/qs60style.cpp
index 8ef0dd3..580f949 100644
--- a/src/gui/styles/qs60style.cpp
+++ b/src/gui/styles/qs60style.cpp
@@ -1890,6 +1890,17 @@ void QS60Style::drawControl(ControlElement element, const QStyleOption *option,
             painter->restore();
         }
         break;
+    case CE_Splitter:
+        if (option->state & State_Sunken && option->state & State_Enabled) {
+            painter->save();
+            painter->setOpacity(0.5);
+            painter->setBrush(d->themePalette()->light());
+            painter->setRenderHint(QPainter::Antialiasing);
+            const qreal roundRectRadius = 4 * goldenRatio;
+            painter->drawRoundedRect(option->rect, roundRectRadius, roundRectRadius);            
+            painter->restore();
+        }
+        break;
     default:
         QCommonStyle::drawControl(element, option, painter, widget);
     }
-- 
cgit v0.12


From c79d83b6d661ea49d893b4590480a434d75b19bd Mon Sep 17 00:00:00 2001
From: Thierry Bastian <thierry.bastian@nokia.com>
Date: Tue, 27 Oct 2009 15:18:59 +0100
Subject: QComboBox did not emit currentItemChanged when the model was reset

Task-number: QTBUG-569
Reviewed-by: ogoffart
---
 src/gui/widgets/qcombobox.cpp          | 27 +++++++++++----------------
 src/gui/widgets/qcombobox.h            |  3 +--
 src/gui/widgets/qcombobox_p.h          |  3 +--
 tests/auto/qcombobox/tst_qcombobox.cpp | 33 +++++++++++++++++++++++++++++++++
 4 files changed, 46 insertions(+), 20 deletions(-)

diff --git a/src/gui/widgets/qcombobox.cpp b/src/gui/widgets/qcombobox.cpp
index 0e888d6..7cf35c7 100644
--- a/src/gui/widgets/qcombobox.cpp
+++ b/src/gui/widgets/qcombobox.cpp
@@ -192,6 +192,8 @@ void QComboBoxPrivate::_q_modelReset()
         lineEdit->setText(QString());
         updateLineEditGeometry();
     }
+    if (currentIndex.row() != indexBeforeChange)
+        _q_emitCurrentIndexChanged(currentIndex);
     q->update();
 }
 
@@ -992,14 +994,6 @@ void QComboBoxPrivate::_q_dataChanged(const QModelIndex &topLeft, const QModelIn
     }
 }
 
-void QComboBoxPrivate::_q_rowsAboutToBeInserted(const QModelIndex & parent,
-                                             int /*start*/, int /*end*/)
-{
-    if (parent != root)
-        return;
-    indexBeforeChange = currentIndex.row();
-}
-
 void QComboBoxPrivate::_q_rowsInserted(const QModelIndex &parent, int start, int end)
 {
     Q_Q(QComboBox);
@@ -1022,11 +1016,8 @@ void QComboBoxPrivate::_q_rowsInserted(const QModelIndex &parent, int start, int
     }
 }
 
-void QComboBoxPrivate::_q_rowsAboutToBeRemoved(const QModelIndex &parent, int /*start*/, int /*end*/)
+void QComboBoxPrivate::_q_updateIndexBeforeChange()
 {
-    if (parent != root)
-        return;
-
     indexBeforeChange = currentIndex.row();
 }
 
@@ -1868,15 +1859,17 @@ void QComboBox::setModel(QAbstractItemModel *model)
         disconnect(d->model, SIGNAL(dataChanged(QModelIndex,QModelIndex)),
                    this, SLOT(_q_dataChanged(QModelIndex,QModelIndex)));
         disconnect(d->model, SIGNAL(rowsAboutToBeInserted(QModelIndex,int,int)),
-                   this, SLOT(_q_rowsAboutToBeInserted(QModelIndex,int,int)));
+                   this, SLOT(_q_updateIndexBeforeChange()));
         disconnect(d->model, SIGNAL(rowsInserted(QModelIndex,int,int)),
                    this, SLOT(_q_rowsInserted(QModelIndex,int,int)));
         disconnect(d->model, SIGNAL(rowsAboutToBeRemoved(QModelIndex,int,int)),
-                   this, SLOT(_q_rowsAboutToBeRemoved(QModelIndex,int,int)));
+                   this, SLOT(_q_updateIndexBeforeChange()));
         disconnect(d->model, SIGNAL(rowsRemoved(QModelIndex,int,int)),
                    this, SLOT(_q_rowsRemoved(QModelIndex,int,int)));
         disconnect(d->model, SIGNAL(destroyed()),
                    this, SLOT(_q_modelDestroyed()));
+        disconnect(d->model, SIGNAL(modelAboutToBeReset()),
+                   this, SLOT(_q_updateIndexBeforeChange()));
         disconnect(d->model, SIGNAL(modelReset()),
                    this, SLOT(_q_modelReset()));
         if (d->model->QObject::parent() == this)
@@ -1888,15 +1881,17 @@ void QComboBox::setModel(QAbstractItemModel *model)
     connect(model, SIGNAL(dataChanged(QModelIndex,QModelIndex)),
             this, SLOT(_q_dataChanged(QModelIndex,QModelIndex)));
     connect(model, SIGNAL(rowsAboutToBeInserted(QModelIndex,int,int)),
-            this, SLOT(_q_rowsAboutToBeInserted(QModelIndex,int,int)));
+            this, SLOT(_q_updateIndexBeforeChange()));
     connect(model, SIGNAL(rowsInserted(QModelIndex,int,int)),
             this, SLOT(_q_rowsInserted(QModelIndex,int,int)));
     connect(model, SIGNAL(rowsAboutToBeRemoved(QModelIndex,int,int)),
-            this, SLOT(_q_rowsAboutToBeRemoved(QModelIndex,int,int)));
+            this, SLOT(_q_updateIndexBeforeChange()));
     connect(model, SIGNAL(rowsRemoved(QModelIndex,int,int)),
             this, SLOT(_q_rowsRemoved(QModelIndex,int,int)));
     connect(model, SIGNAL(destroyed()),
             this, SLOT(_q_modelDestroyed()));
+    connect(model, SIGNAL(modelAboutToBeReset()),
+            this, SLOT(_q_updateIndexBeforeChange()));
     connect(model, SIGNAL(modelReset()),
             this, SLOT(_q_modelReset()));
 
diff --git a/src/gui/widgets/qcombobox.h b/src/gui/widgets/qcombobox.h
index 6a85096..4089a09 100644
--- a/src/gui/widgets/qcombobox.h
+++ b/src/gui/widgets/qcombobox.h
@@ -308,9 +308,8 @@ private:
     Q_PRIVATE_SLOT(d_func(), void _q_returnPressed())
     Q_PRIVATE_SLOT(d_func(), void _q_resetButton())
     Q_PRIVATE_SLOT(d_func(), void _q_dataChanged(const QModelIndex &, const QModelIndex &))
-    Q_PRIVATE_SLOT(d_func(), void _q_rowsAboutToBeInserted(const QModelIndex & parent, int start, int end))
+    Q_PRIVATE_SLOT(d_func(), void _q_updateIndexBeforeChange())
     Q_PRIVATE_SLOT(d_func(), void _q_rowsInserted(const QModelIndex & parent, int start, int end))
-    Q_PRIVATE_SLOT(d_func(), void _q_rowsAboutToBeRemoved(const QModelIndex & parent, int start, int end))
     Q_PRIVATE_SLOT(d_func(), void _q_rowsRemoved(const QModelIndex & parent, int start, int end))
     Q_PRIVATE_SLOT(d_func(), void _q_modelDestroyed())
     Q_PRIVATE_SLOT(d_func(), void _q_modelReset())
diff --git a/src/gui/widgets/qcombobox_p.h b/src/gui/widgets/qcombobox_p.h
index f7458c4..06e51e4 100644
--- a/src/gui/widgets/qcombobox_p.h
+++ b/src/gui/widgets/qcombobox_p.h
@@ -357,9 +357,8 @@ public:
 #endif
     void _q_resetButton();
     void _q_dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight);
-    void _q_rowsAboutToBeInserted(const QModelIndex & parent, int start, int end);
+    void _q_updateIndexBeforeChange();
     void _q_rowsInserted(const QModelIndex & parent, int start, int end);
-    void _q_rowsAboutToBeRemoved(const QModelIndex & parent, int start, int end);
     void _q_rowsRemoved(const QModelIndex & parent, int start, int end);
     void updateArrow(QStyle::StateFlag state);
     bool updateHoverControl(const QPoint &pos);
diff --git a/tests/auto/qcombobox/tst_qcombobox.cpp b/tests/auto/qcombobox/tst_qcombobox.cpp
index 0d3469d..8acae7a 100644
--- a/tests/auto/qcombobox/tst_qcombobox.cpp
+++ b/tests/auto/qcombobox/tst_qcombobox.cpp
@@ -152,6 +152,7 @@ private slots:
     void subControlRectsWithOffset();
     void task260974_menuItemRectangleForComboBoxPopup();
     void removeItem();
+    void resetModel();
 
 protected slots:
     void onEditTextChanged( const QString &newString );
@@ -2416,5 +2417,37 @@ void tst_QComboBox::removeItem()
     QCOMPARE(cb.count(), 0);
 }
 
+void tst_QComboBox::resetModel()
+{
+    class StringListModel : public QStringListModel
+    {
+    public:
+        StringListModel(const QStringList &list) : QStringListModel(list)
+        {
+        }
+
+        void reset()
+        {
+            QStringListModel::reset();
+        }
+    };
+    QComboBox cb;
+    StringListModel model( QStringList() << "1" << "2");
+    QSignalSpy spy(&cb, SIGNAL(currentIndexChanged(int)));
+    QCOMPARE(spy.count(), 0);
+    QCOMPARE(cb.currentIndex(), -1); //no selection
+
+    cb.setModel(&model);
+
+    QCOMPARE(spy.count(), 1);
+    QCOMPARE(cb.currentIndex(), 0); //first item selected
+
+    model.reset();
+    QCOMPARE(spy.count(), 2);
+    QCOMPARE(cb.currentIndex(), -1); //no selection
+
+}
+
+
 QTEST_MAIN(tst_QComboBox)
 #include "tst_qcombobox.moc"
-- 
cgit v0.12


From df26c6e14287f1a02c636c4624c5085fd8271d11 Mon Sep 17 00:00:00 2001
From: David Faure <faure@kde.org>
Date: Tue, 27 Oct 2009 15:26:11 +0100
Subject: Fix incomplete documentation for Qt::DecorationRole

As noticed by Laurent Montel.

Merge-request: 1812
Reviewed-by: Olivier Goffart <ogoffart@trolltech.com>
---
 src/corelib/global/qnamespace.qdoc        | 2 +-
 src/gui/itemviews/qitemdelegate.cpp       | 2 +-
 src/gui/itemviews/qstyleditemdelegate.cpp | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/corelib/global/qnamespace.qdoc b/src/corelib/global/qnamespace.qdoc
index e8d6df0..438678a 100644
--- a/src/corelib/global/qnamespace.qdoc
+++ b/src/corelib/global/qnamespace.qdoc
@@ -2509,7 +2509,7 @@
 
     \value DisplayRole    The key data to be rendered in the form of text. (QString)
     \value DecorationRole The data to be rendered as a decoration in the form
-                          of an icon. (QColor)
+                          of an icon. (QColor, QIcon or QPixmap)
     \value EditRole       The data in a form suitable for editing in an
                           editor. (QString)
     \value ToolTipRole    The data displayed in the item's tooltip. (QString)
diff --git a/src/gui/itemviews/qitemdelegate.cpp b/src/gui/itemviews/qitemdelegate.cpp
index 871a4b1..3b3036d 100644
--- a/src/gui/itemviews/qitemdelegate.cpp
+++ b/src/gui/itemviews/qitemdelegate.cpp
@@ -255,7 +255,7 @@ QSizeF QItemDelegatePrivate::doTextLayout(int lineWidth) const
     \row    \o \l Qt::BackgroundRole \o QBrush
     \row    \o \l Qt::BackgroundColorRole \o QColor (obsolete; use Qt::BackgroundRole instead)
     \row    \o \l Qt::CheckStateRole \o Qt::CheckState
-    \row    \o \l Qt::DecorationRole \o QIcon and QColor
+    \row    \o \l Qt::DecorationRole \o QIcon, QPixmap and QColor
     \row    \o \l Qt::DisplayRole \o QString and types with a string representation
     \row    \o \l Qt::EditRole \o See QItemEditorFactory for details
     \row    \o \l Qt::FontRole \o QFont
diff --git a/src/gui/itemviews/qstyleditemdelegate.cpp b/src/gui/itemviews/qstyleditemdelegate.cpp
index 1c36787..1ca0391 100644
--- a/src/gui/itemviews/qstyleditemdelegate.cpp
+++ b/src/gui/itemviews/qstyleditemdelegate.cpp
@@ -148,7 +148,7 @@ public:
     \row    \o \l Qt::BackgroundRole \o QBrush
     \row    \o \l Qt::BackgroundColorRole \o QColor (obsolete; use Qt::BackgroundRole instead)
     \row    \o \l Qt::CheckStateRole \o Qt::CheckState
-    \row    \o \l Qt::DecorationRole \o QIcon and QColor
+    \row    \o \l Qt::DecorationRole \o QIcon, QPixmap, QImage and QColor
     \row    \o \l Qt::DisplayRole \o QString and types with a string representation
     \row    \o \l Qt::EditRole \o See QItemEditorFactory for details
     \row    \o \l Qt::FontRole \o QFont
-- 
cgit v0.12


From cc21bffbb23212dfd6b18309aba762ae1538ae42 Mon Sep 17 00:00:00 2001
From: Frans Englich <frans.englich@nokia.com>
Date: Tue, 27 Oct 2009 16:03:05 +0100
Subject: Build fix for QtXmlPatterns' examples on Symbian

This is the same workaround as Janne did for QtWebkit.

Reviewed-by: Janne Koskinen
---
 mkspecs/features/qt_functions.prf | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.prf
index 3f84f42..1be6d9b 100644
--- a/mkspecs/features/qt_functions.prf
+++ b/mkspecs/features/qt_functions.prf
@@ -54,6 +54,10 @@ defineTest(qtAddLibrary) {
             # Needed for #include <QtXmlPatterns/QtXmlPatterns> because relative inclusion problem in toolchain
             INCLUDEPATH *= $$QMAKE_INCDIR_QT/QtXmlPatterns
         }
+        isEqual(LIB_NAME, QtXmlPatterns) {
+            # Needed for #include <QtXmlPatterns/QtXmlPatterns> because relative inclusion problem in toolchain
+            INCLUDEPATH *= $$QMAKE_INCDIR_QT/QtNetwork
+        }
     }
     isEmpty(LINKAGE) {
        if(!debug_and_release|build_pass):CONFIG(debug, debug|release) {
-- 
cgit v0.12


From 40ad4bf9bbfef57e63a51a619cf8817a28a3edd2 Mon Sep 17 00:00:00 2001
From: Shane Kearns <shane.kearns@sosco.com>
Date: Tue, 27 Oct 2009 16:41:10 +0100
Subject: Update def files after Gesture API and Text Engine changes

Reviewed-by: Trust Me
---
 src/s60installs/bwins/QtGuiu.def |  8 +++++++-
 src/s60installs/eabi/QtGuiu.def  | 32 ++++++++++++++++++++++++++------
 2 files changed, 33 insertions(+), 7 deletions(-)

diff --git a/src/s60installs/bwins/QtGuiu.def b/src/s60installs/bwins/QtGuiu.def
index 4305346..56ba18f 100644
--- a/src/s60installs/bwins/QtGuiu.def
+++ b/src/s60installs/bwins/QtGuiu.def
@@ -5488,7 +5488,7 @@ EXPORTS
 	?currentIndex@QDataWidgetMapper@@QBEHXZ @ 5487 NONAME ; int QDataWidgetMapper::currentIndex(void) const
 	?setFont@QApplication@@SAXABVQFont@@PBD@Z @ 5488 NONAME ; void QApplication::setFont(class QFont const &, char const *)
 	?resized@QDesktopWidget@@IAEXH@Z @ 5489 NONAME ; void QDesktopWidget::resized(int)
-	?fontEngine@QTextEngine@@QBEPAVQFontEngine@@ABUQScriptItem@@PAUQFixed@@1@Z @ 5490 NONAME ; class QFontEngine * QTextEngine::fontEngine(struct QScriptItem const &, struct QFixed *, struct QFixed *) const
+	?fontEngine@QTextEngine@@QBEPAVQFontEngine@@ABUQScriptItem@@PAUQFixed@@1@Z @ 5490 NONAME ABSENT ; class QFontEngine * QTextEngine::fontEngine(struct QScriptItem const &, struct QFixed *, struct QFixed *) const
 	??BQVector2D@@QBE?AVQVariant@@XZ @ 5491 NONAME ; QVector2D::operator class QVariant(void) const
 	?qt_metacall@QTreeWidget@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 5492 NONAME ; int QTreeWidget::qt_metacall(enum QMetaObject::Call, int, void * *)
 	?setSelectable@QStandardItem@@QAEX_N@Z @ 5493 NONAME ; void QStandardItem::setSelectable(bool)
@@ -12542,4 +12542,10 @@ EXPORTS
 	??0QSplitter@@QAE@PAVQWidget@@@Z @ 12541 NONAME ; QSplitter::QSplitter(class QWidget *)
 	?DocumentLengthForFep@QCoeFepInputContext@@UBEHXZ @ 12542 NONAME ; int QCoeFepInputContext::DocumentLengthForFep(void) const
 	??0QShowEvent@@QAE@XZ @ 12543 NONAME ; QShowEvent::QShowEvent(void)
+	?fontEngine@QTextEngine@@QBEPAVQFontEngine@@ABUQScriptItem@@PAUQFixed@@11@Z @ 12544 NONAME ; class QFontEngine * QTextEngine::fontEngine(struct QScriptItem const &, struct QFixed *, struct QFixed *, struct QFixed *) const
+	?leading@QTextLine@@QBEMXZ @ 12545 NONAME ; float QTextLine::leading(void) const
+	?leadingIncluded@QTextLine@@QBE_NXZ @ 12546 NONAME ; bool QTextLine::leadingIncluded(void) const
+	?projectedRotate@QMatrix4x4@@AAEAAV1@MMMM@Z @ 12547 NONAME ; class QMatrix4x4 & QMatrix4x4::projectedRotate(float, float, float, float)
+	?setLeadingIncluded@QTextLine@@QAEX_N@Z @ 12548 NONAME ; void QTextLine::setLeadingIncluded(bool)
+	?toTransform@QMatrix4x4@@QBE?AVQTransform@@XZ @ 12549 NONAME ; class QTransform QMatrix4x4::toTransform(void) const
 
diff --git a/src/s60installs/eabi/QtGuiu.def b/src/s60installs/eabi/QtGuiu.def
index ae69475..2d1c42f 100644
--- a/src/s60installs/eabi/QtGuiu.def
+++ b/src/s60installs/eabi/QtGuiu.def
@@ -1051,12 +1051,12 @@ EXPORTS
 	_ZN11QPaintEventD2Ev @ 1050 NONAME
 	_ZN11QPanGesture11qt_metacallEN11QMetaObject4CallEiPPv @ 1051 NONAME
 	_ZN11QPanGesture11qt_metacastEPKc @ 1052 NONAME
-	_ZN11QPanGesture13setLastOffsetERK6QSizeF @ 1053 NONAME
-	_ZN11QPanGesture14setTotalOffsetERK6QSizeF @ 1054 NONAME
+	_ZN11QPanGesture13setLastOffsetERK6QSizeF @ 1053 NONAME ABSENT
+	_ZN11QPanGesture14setTotalOffsetERK6QSizeF @ 1054 NONAME ABSENT
 	_ZN11QPanGesture15setAccelerationEf @ 1055 NONAME
 	_ZN11QPanGesture16staticMetaObjectE @ 1056 NONAME DATA 16
 	_ZN11QPanGesture19getStaticMetaObjectEv @ 1057 NONAME
-	_ZN11QPanGesture9setOffsetERK6QSizeF @ 1058 NONAME
+	_ZN11QPanGesture9setOffsetERK6QSizeF @ 1058 NONAME ABSENT
 	_ZN11QPanGestureC1EP7QObject @ 1059 NONAME
 	_ZN11QPanGestureC2EP7QObject @ 1060 NONAME
 	_ZN11QPixmapData12toNativeTypeENS_10NativeTypeE @ 1061 NONAME
@@ -6366,7 +6366,7 @@ EXPORTS
 	_ZN8QGesture11qt_metacallEN11QMetaObject4CallEiPPv @ 6365 NONAME
 	_ZN8QGesture11qt_metacastEPKc @ 6366 NONAME
 	_ZN8QGesture12unsetHotSpotEv @ 6367 NONAME
-	_ZN8QGesture15setTargetObjectEP7QObject @ 6368 NONAME
+	_ZN8QGesture15setTargetObjectEP7QObject @ 6368 NONAME ABSENT
 	_ZN8QGesture16staticMetaObjectE @ 6369 NONAME DATA 16
 	_ZN8QGesture19getStaticMetaObjectEv @ 6370 NONAME
 	_ZN8QGestureC1EN2Qt11GestureTypeEP7QObject @ 6371 NONAME ABSENT
@@ -7888,7 +7888,7 @@ EXPORTS
 	_ZNK11QTextCursorneERKS_ @ 7887 NONAME
 	_ZNK11QTextEngine10attributesEv @ 7888 NONAME
 	_ZNK11QTextEngine10elidedTextEN2Qt13TextElideModeERK6QFixedi @ 7889 NONAME
-	_ZNK11QTextEngine10fontEngineERK11QScriptItemP6QFixedS4_ @ 7890 NONAME
+	_ZNK11QTextEngine10fontEngineERK11QScriptItemP6QFixedS4_ @ 7890 NONAME ABSENT
 	_ZNK11QTextEngine11boundingBoxEii @ 7891 NONAME
 	_ZNK11QTextEngine11formatIndexEPK11QScriptItem @ 7892 NONAME
 	_ZNK11QTextEngine11setBoundaryEi @ 7893 NONAME
@@ -10163,7 +10163,7 @@ EXPORTS
 	_ZNK8QGesture10hasHotSpotEv @ 10162 NONAME
 	_ZNK8QGesture10metaObjectEv @ 10163 NONAME
 	_ZNK8QGesture11gestureTypeEv @ 10164 NONAME
-	_ZNK8QGesture12targetObjectEv @ 10165 NONAME
+	_ZNK8QGesture12targetObjectEv @ 10165 NONAME ABSENT
 	_ZNK8QGesture5stateEv @ 10166 NONAME
 	_ZNK8QGesture7hotSpotEv @ 10167 NONAME
 	_ZNK8QMdiArea10backgroundEv @ 10168 NONAME
@@ -11615,4 +11615,24 @@ EXPORTS
 	_Zls6QDebugRKN12QStyleOption10OptionTypeE @ 11614 NONAME
 	_ZNK14QDesktopWidget14screenGeometryEPK7QWidget @ 11615 NONAME
 	_ZNK14QDesktopWidget17availableGeometryEPK7QWidget @ 11616 NONAME
+	_ZN11QPanGesture13setLastOffsetERK7QPointF @ 11617 NONAME
+	_ZN11QPanGesture14setTotalOffsetERK7QPointF @ 11618 NONAME
+	_ZN11QPanGesture9setOffsetERK7QPointF @ 11619 NONAME
+	_ZN13QGestureEvent6d_funcEv @ 11620 NONAME
+	_ZN13QGestureEvent9setWidgetEP7QWidget @ 11621 NONAME
+	_ZN13QGestureEventD0Ev @ 11622 NONAME
+	_ZN13QGestureEventD1Ev @ 11623 NONAME
+	_ZN13QGestureEventD2Ev @ 11624 NONAME
+	_ZN14QWidgetPrivate36invalidateGraphicsEffectsRecursivelyEv @ 11625 NONAME
+	_ZN20QGraphicsItemPrivate36invalidateGraphicsEffectsRecursivelyEv @ 11626 NONAME
+	_ZNK13QGestureEvent10mapToSceneERK7QPointF @ 11627 NONAME
+	_ZNK13QGestureEvent6d_funcEv @ 11628 NONAME
+	_ZNK13QGestureEvent6widgetEv @ 11629 NONAME
+	_Zls6QDebugP15QGraphicsObject @ 11630 NONAME
+	_ZN10QMatrix4x415projectedRotateEffff @ 11631 NONAME
+	_ZN9QTextLine18setLeadingIncludedEb @ 11632 NONAME
+	_ZNK10QMatrix4x411toTransformEv @ 11633 NONAME
+	_ZNK11QTextEngine10fontEngineERK11QScriptItemP6QFixedS4_S4_ @ 11634 NONAME
+	_ZNK9QTextLine15leadingIncludedEv @ 11635 NONAME
+	_ZNK9QTextLine7leadingEv @ 11636 NONAME
 
-- 
cgit v0.12


From f80dca1e0f035807e5e6a984aec1768519f4d467 Mon Sep 17 00:00:00 2001
From: Shane Kearns <shane.kearns@sosco.com>
Date: Tue, 27 Oct 2009 16:42:31 +0100
Subject: Fix tst_QBoxLayout::setGeometry failure on S60 3.x

The S60 style posts a LayoutRequest event when a widget is shown, so
that it can draw the focus rectangle around the widget that has keyboard
focus.
Although lay2->setGeometry was working correctly, processEvents() caused
the outer layout to be re-laid out (which expands the inner layout and
QDial to fill the available space).
The processEvents() call is not necessary for the test case, so it can
be removed.

Reviewed-by: Jan-Arve
---
 tests/auto/qboxlayout/tst_qboxlayout.cpp | 1 -
 1 file changed, 1 deletion(-)

diff --git a/tests/auto/qboxlayout/tst_qboxlayout.cpp b/tests/auto/qboxlayout/tst_qboxlayout.cpp
index 7ff444b..8887288 100644
--- a/tests/auto/qboxlayout/tst_qboxlayout.cpp
+++ b/tests/auto/qboxlayout/tst_qboxlayout.cpp
@@ -211,7 +211,6 @@ void tst_QBoxLayout::setGeometry()
 
     QRect newGeom(0, 0, 70, 70);
     lay2->setGeometry(newGeom);
-    QApplication::processEvents();
     QVERIFY2(newGeom.contains(dial->geometry()), "dial->geometry() should be smaller and within newGeom");
 }
 
-- 
cgit v0.12


From 576aced5cb8270b1827a505aa0ae815781b1cfa5 Mon Sep 17 00:00:00 2001
From: Thierry Bastian <thierry.bastian@nokia.com>
Date: Tue, 27 Oct 2009 16:42:55 +0100
Subject: QToolBar has now a topLevelChanged signal like in QDockWidget

Task-number: QTBUG-4169
Reviewed-by: ogoffart
---
 src/gui/widgets/qtoolbar.cpp | 16 ++++++++++++++++
 src/gui/widgets/qtoolbar.h   |  1 +
 2 files changed, 17 insertions(+)

diff --git a/src/gui/widgets/qtoolbar.cpp b/src/gui/widgets/qtoolbar.cpp
index 40c0b02..5596ca4 100644
--- a/src/gui/widgets/qtoolbar.cpp
+++ b/src/gui/widgets/qtoolbar.cpp
@@ -183,6 +183,9 @@ void QToolBarPrivate::setWindowState(bool floating, bool unplug, const QRect &re
 
     if (visible)
         q->show();
+
+    if (floating != wasFloating)
+        emit q->topLevelChanged(floating);
 }
 
 void QToolBarPrivate::initDrag(const QPoint &pos)
@@ -518,6 +521,19 @@ void QToolBarPrivate::plug(const QRect &r)
 */
 
 /*!
+    \since 4.6
+
+    \fn void QToolBar::topLevelChanged(bool topLevel)
+
+    This signal is emitted when the \l floating property changes.
+    The \a topLevel parameter is true if the toolbar is now floating;
+    otherwise it is false.
+
+    \sa isWindow()
+*/
+
+
+/*!
     Constructs a QToolBar with the given \a parent.
 */
 QToolBar::QToolBar(QWidget *parent)
diff --git a/src/gui/widgets/qtoolbar.h b/src/gui/widgets/qtoolbar.h
index a084673..a1a24f0 100644
--- a/src/gui/widgets/qtoolbar.h
+++ b/src/gui/widgets/qtoolbar.h
@@ -142,6 +142,7 @@ Q_SIGNALS:
     void orientationChanged(Qt::Orientation orientation);
     void iconSizeChanged(const QSize &iconSize);
     void toolButtonStyleChanged(Qt::ToolButtonStyle toolButtonStyle);
+    void topLevelChanged(bool topLevel);
 
 protected:
     void actionEvent(QActionEvent *event);
-- 
cgit v0.12


From f0fa85911b1b5aeedf61a1c41ee81674b1575cc7 Mon Sep 17 00:00:00 2001
From: Thierry Bastian <thierry.bastian@nokia.com>
Date: Tue, 27 Oct 2009 17:01:32 +0100
Subject: In Qt3Support, the "line up" action for toolbars was not working

Task-number: QTBUG-1063
Reviewed-by: ogoffart
---
 src/qt3support/widgets/q3dockarea.cpp | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/qt3support/widgets/q3dockarea.cpp b/src/qt3support/widgets/q3dockarea.cpp
index afeefff..bb34622 100644
--- a/src/qt3support/widgets/q3dockarea.cpp
+++ b/src/qt3support/widgets/q3dockarea.cpp
@@ -1019,6 +1019,7 @@ void Q3DockArea::lineUp(bool keepNewLines)
         if (!keepNewLines)
             dw->setNewLine(false);
     }
+    layout->invalidate();
     layout->activate();
 }
 
-- 
cgit v0.12


From 588b1c40115b975ad4998251646f00db23144cd4 Mon Sep 17 00:00:00 2001
From: Olivier Goffart <ogoffart@trolltech.com>
Date: Tue, 27 Oct 2009 20:07:38 +0100
Subject: Compile

---
 src/gui/graphicsview/qgraphicsanchorlayout_p.cpp | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp b/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp
index 5bc6708..5f7d5b9 100644
--- a/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp
+++ b/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp
@@ -40,6 +40,7 @@
 ****************************************************************************/
 
 #include <QtGui/qwidget.h>
+#include <QtGui/qapplication.h>
 #include <QtCore/qlinkedlist.h>
 #include <QtCore/qstack.h>
 
-- 
cgit v0.12


From b209ab1e2139cb50e26bbeeb094da9a6a4a8a067 Mon Sep 17 00:00:00 2001
From: Andreas Kling <info@andreaskling.com>
Date: Tue, 27 Oct 2009 19:58:10 +0100
Subject: Always use QExplicitlySharedDataPointer<QFontPrivate>

Fixes a refcount bug that occurs when QFont is constructed from a
QFontPrivate* that was created without an initial ref().

Merge-request: 1831
Reviewed-by: Olivier Goffart <ogoffart@trolltech.com>
---
 src/gui/text/qfont.cpp        | 12 +++++------
 src/gui/text/qfontinfo.h      |  3 ++-
 src/gui/text/qfontmetrics.cpp | 49 +++++++++++++++++++------------------------
 src/gui/text/qfontmetrics.h   |  5 +++--
 4 files changed, 32 insertions(+), 37 deletions(-)

diff --git a/src/gui/text/qfont.cpp b/src/gui/text/qfont.cpp
index 1285935..8722f5b 100644
--- a/src/gui/text/qfont.cpp
+++ b/src/gui/text/qfont.cpp
@@ -2324,22 +2324,22 @@ QDataStream &operator>>(QDataStream &s, QFont &font)
 */
 QFontInfo::QFontInfo(const QFont &font)
     : d(font.d.data())
-{ d->ref.ref(); }
+{
+}
 
 /*!
     Constructs a copy of \a fi.
 */
 QFontInfo::QFontInfo(const QFontInfo &fi)
-    : d(fi.d)
-{ d->ref.ref(); }
+    : d(fi.d.data())
+{
+}
 
 /*!
     Destroys the font info object.
 */
 QFontInfo::~QFontInfo()
 {
-    if (!d->ref.deref())
-        delete d;
 }
 
 /*!
@@ -2347,7 +2347,7 @@ QFontInfo::~QFontInfo()
 */
 QFontInfo &QFontInfo::operator=(const QFontInfo &fi)
 {
-    qAtomicAssign(d, fi.d);
+    d = fi.d.data();
     return *this;
 }
 
diff --git a/src/gui/text/qfontinfo.h b/src/gui/text/qfontinfo.h
index 335d761..0998949 100644
--- a/src/gui/text/qfontinfo.h
+++ b/src/gui/text/qfontinfo.h
@@ -43,6 +43,7 @@
 #define QFONTINFO_H
 
 #include <QtGui/qfont.h>
+#include <QtCore/qsharedpointer.h>
 
 QT_BEGIN_HEADER
 
@@ -77,7 +78,7 @@ public:
     bool exactMatch() const;
 
 private:
-    QFontPrivate *d;
+    QExplicitlySharedDataPointer<QFontPrivate> d;
 };
 
 QT_END_NAMESPACE
diff --git a/src/gui/text/qfontmetrics.cpp b/src/gui/text/qfontmetrics.cpp
index ce122aa..b8c1b33 100644
--- a/src/gui/text/qfontmetrics.cpp
+++ b/src/gui/text/qfontmetrics.cpp
@@ -165,7 +165,6 @@ extern int qt_defaultDpi();
 QFontMetrics::QFontMetrics(const QFont &font)
     : d(font.d.data())
 {
-    d->ref.ref();
 }
 
 /*!
@@ -196,7 +195,6 @@ QFontMetrics::QFontMetrics(const QFont &font, QPaintDevice *paintdevice)
         d->screen = screen;
     } else {
         d = font.d.data();
-        d->ref.ref();
     }
 
 }
@@ -205,8 +203,9 @@ QFontMetrics::QFontMetrics(const QFont &font, QPaintDevice *paintdevice)
     Constructs a copy of \a fm.
 */
 QFontMetrics::QFontMetrics(const QFontMetrics &fm)
-    : d(fm.d)
-{ d->ref.ref(); }
+    : d(fm.d.data())
+{
+}
 
 /*!
     Destroys the font metrics object and frees all allocated
@@ -214,8 +213,6 @@ QFontMetrics::QFontMetrics(const QFontMetrics &fm)
 */
 QFontMetrics::~QFontMetrics()
 {
-    if (!d->ref.deref())
-        delete d;
 }
 
 /*!
@@ -223,7 +220,7 @@ QFontMetrics::~QFontMetrics()
 */
 QFontMetrics &QFontMetrics::operator=(const QFontMetrics &fm)
 {
-    qAtomicAssign(d, fm.d);
+    d = fm.d.data();
     return *this;
 }
 
@@ -536,7 +533,7 @@ int QFontMetrics::width(const QString &text, int len) const
     if (len == 0)
         return 0;
 
-    QTextEngine layout(text, d);
+    QTextEngine layout(text, d.data());
     layout.ignoreBidi = true;
     return qRound(layout.width(0, len));
 }
@@ -612,7 +609,7 @@ int QFontMetrics::charWidth(const QString &text, int pos) const
         int from = qMax(0, pos - 8);
         int to = qMin(text.length(), pos + 8);
         QString cstr = QString::fromRawData(text.unicode() + from, to - from);
-        QTextEngine layout(cstr, d);
+        QTextEngine layout(cstr, d.data());
         layout.ignoreBidi = true;
         layout.itemize();
         width = qRound(layout.width(pos-from, 1));
@@ -661,7 +658,7 @@ QRect QFontMetrics::boundingRect(const QString &text) const
     if (text.length() == 0)
         return QRect();
 
-    QTextEngine layout(text, d);
+    QTextEngine layout(text, d.data());
     layout.ignoreBidi = true;
     layout.itemize();
     glyph_metrics_t gm = layout.boundingBox(0, text.length());
@@ -770,7 +767,7 @@ QRect QFontMetrics::boundingRect(const QRect &rect, int flags, const QString &te
 
     QRectF rb;
     QRectF rr(rect);
-    qt_format_text(QFont(d), rr, flags | Qt::TextDontPrint, text, &rb, tabStops, tabArray,
+    qt_format_text(QFont(d.data()), rr, flags | Qt::TextDontPrint, text, &rb, tabStops, tabArray,
                    tabArrayLen, 0);
 
     return rb.toAlignedRect();
@@ -831,7 +828,7 @@ QRect QFontMetrics::tightBoundingRect(const QString &text) const
     if (text.length() == 0)
         return QRect();
 
-    QTextEngine layout(text, d);
+    QTextEngine layout(text, d.data());
     layout.ignoreBidi = true;
     layout.itemize();
     glyph_metrics_t gm = layout.tightBoundingBox(0, text.length());
@@ -876,7 +873,7 @@ QString QFontMetrics::elidedText(const QString &text, Qt::TextElideMode mode, in
         }
         _text = _text.mid(posA);
     }
-    QStackTextEngine engine(_text, QFont(d));
+    QStackTextEngine engine(_text, QFont(d.data()));
     return engine.elidedText(mode, width, flags);
 }
 
@@ -989,9 +986,8 @@ int QFontMetrics::lineWidth() const
     from the given \a fontMetrics object.
 */
 QFontMetricsF::QFontMetricsF(const QFontMetrics &fontMetrics)
-    : d(fontMetrics.d)
+    : d(fontMetrics.d.data())
 {
-    d->ref.ref();
 }
 
 /*!
@@ -1001,7 +997,7 @@ QFontMetricsF::QFontMetricsF(const QFontMetrics &fontMetrics)
 */
 QFontMetricsF &QFontMetricsF::operator=(const QFontMetrics &other)
 {
-    qAtomicAssign(d, other.d);
+    d = other.d.data();
     return *this;
 }
 
@@ -1021,7 +1017,6 @@ QFontMetricsF &QFontMetricsF::operator=(const QFontMetrics &other)
 QFontMetricsF::QFontMetricsF(const QFont &font)
     : d(font.d.data())
 {
-    d->ref.ref();
 }
 
 /*!
@@ -1052,7 +1047,6 @@ QFontMetricsF::QFontMetricsF(const QFont &font, QPaintDevice *paintdevice)
         d->screen = screen;
     } else {
         d = font.d.data();
-        d->ref.ref();
     }
 
 }
@@ -1061,8 +1055,9 @@ QFontMetricsF::QFontMetricsF(const QFont &font, QPaintDevice *paintdevice)
     Constructs a copy of \a fm.
 */
 QFontMetricsF::QFontMetricsF(const QFontMetricsF &fm)
-    : d(fm.d)
-{ d->ref.ref(); }
+    : d(fm.d.data())
+{
+}
 
 /*!
     Destroys the font metrics object and frees all allocated
@@ -1070,8 +1065,6 @@ QFontMetricsF::QFontMetricsF(const QFontMetricsF &fm)
 */
 QFontMetricsF::~QFontMetricsF()
 {
-    if (!d->ref.deref())
-        delete d;
 }
 
 /*!
@@ -1079,7 +1072,7 @@ QFontMetricsF::~QFontMetricsF()
 */
 QFontMetricsF &QFontMetricsF::operator=(const QFontMetricsF &fm)
 {
-    qAtomicAssign(d, fm.d);
+    d = fm.d.data();
     return *this;
 }
 
@@ -1374,7 +1367,7 @@ qreal QFontMetricsF::rightBearing(QChar ch) const
 */
 qreal QFontMetricsF::width(const QString &text) const
 {
-    QTextEngine layout(text, d);
+    QTextEngine layout(text, d.data());
     layout.ignoreBidi = true;
     layout.itemize();
     return layout.width(0, text.length()).toReal();
@@ -1451,7 +1444,7 @@ QRectF QFontMetricsF::boundingRect(const QString &text) const
     if (len == 0)
         return QRectF();
 
-    QTextEngine layout(text, d);
+    QTextEngine layout(text, d.data());
     layout.ignoreBidi = true;
     layout.itemize();
     glyph_metrics_t gm = layout.boundingBox(0, len);
@@ -1559,7 +1552,7 @@ QRectF QFontMetricsF::boundingRect(const QRectF &rect, int flags, const QString&
             tabArrayLen++;
 
     QRectF rb;
-    qt_format_text(QFont(d), rect, flags | Qt::TextDontPrint, text, &rb, tabStops, tabArray,
+    qt_format_text(QFont(d.data()), rect, flags | Qt::TextDontPrint, text, &rb, tabStops, tabArray,
                    tabArrayLen, 0);
     return rb;
 }
@@ -1624,7 +1617,7 @@ QRectF QFontMetricsF::tightBoundingRect(const QString &text) const
     if (text.length() == 0)
         return QRect();
 
-    QTextEngine layout(text, d);
+    QTextEngine layout(text, d.data());
     layout.ignoreBidi = true;
     layout.itemize();
     glyph_metrics_t gm = layout.tightBoundingBox(0, text.length());
@@ -1649,7 +1642,7 @@ QRectF QFontMetricsF::tightBoundingRect(const QString &text) const
 */
 QString QFontMetricsF::elidedText(const QString &text, Qt::TextElideMode mode, qreal width, int flags) const
 {
-    QStackTextEngine engine(text, QFont(d));
+    QStackTextEngine engine(text, QFont(d.data()));
     return engine.elidedText(mode, QFixed::fromReal(width), flags);
 }
 
diff --git a/src/gui/text/qfontmetrics.h b/src/gui/text/qfontmetrics.h
index 1147e3a..23200c5 100644
--- a/src/gui/text/qfontmetrics.h
+++ b/src/gui/text/qfontmetrics.h
@@ -43,6 +43,7 @@
 #define QFONTMETRICS_H
 
 #include <QtGui/qfont.h>
+#include <QtCore/qsharedpointer.h>
 #ifndef QT_INCLUDE_COMPAT
 #include <QtCore/qrect.h>
 #endif
@@ -131,7 +132,7 @@ private:
     friend class QFontMetricsF;
     friend class QStackTextEngine;
 
-    QFontPrivate *d;
+    QExplicitlySharedDataPointer<QFontPrivate> d;
 };
 
 
@@ -187,7 +188,7 @@ public:
     inline bool operator !=(const QFontMetricsF &other) const { return !operator==(other); }
 
 private:
-    QFontPrivate *d;
+    QExplicitlySharedDataPointer<QFontPrivate> d;
 };
 
 QT_END_NAMESPACE
-- 
cgit v0.12


From df0001a3d62938c713b351c7e59228b803ec5670 Mon Sep 17 00:00:00 2001
From: Olivier Goffart <ogoffart@trolltech.com>
Date: Tue, 27 Oct 2009 19:49:33 +0100
Subject: QFontMetrics test

For commit b209ab1e2139cb5
---
 tests/auto/qfontmetrics/tst_qfontmetrics.cpp | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/tests/auto/qfontmetrics/tst_qfontmetrics.cpp b/tests/auto/qfontmetrics/tst_qfontmetrics.cpp
index 6b2f0fe..e80f8e0 100644
--- a/tests/auto/qfontmetrics/tst_qfontmetrics.cpp
+++ b/tests/auto/qfontmetrics/tst_qfontmetrics.cpp
@@ -100,6 +100,20 @@ void tst_QFontMetrics::same()
     QFontMetrics fm(font);
     const QString text = QLatin1String("Some stupid STRING");
     QCOMPARE(fm.size(0, text), fm.size(0, text)) ;
+
+    {
+        QImage image;
+        QFontMetrics fm2(font, &image);
+        QString text2 =  QLatin1String("Foo Foo");
+        QCOMPARE(fm2.size(0, text2), fm2.size(0, text2));  //used to crash
+    }
+
+    {
+        QImage image;
+        QFontMetricsF fm3(font, &image);
+        QString text2 =  QLatin1String("Foo Foo");
+        QCOMPARE(fm3.size(0, text2), fm3.size(0, text2));  //used to crash
+    }
 }
 
 
-- 
cgit v0.12


From 6bc9ef388590b4bfb281d2e1510dc7c3d1837349 Mon Sep 17 00:00:00 2001
From: Shane Kearns <shane.kearns@sosco.com>
Date: Wed, 28 Oct 2009 08:52:30 +0100
Subject: Fix to 8e0fbc2caa3edefb78d6667721235b783bc1a850

This version of the fix will set the def file only if defblock is enabled
in qbase.pri. That means that def files don't get turned on for webkit
but not for the whole project (avoids build failures in the continuous
integration system when other teams change the exported symbols)

Reviewed-by: Jason Barron
---
 src/3rdparty/webkit/WebCore/WebCore.pro | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/src/3rdparty/webkit/WebCore/WebCore.pro b/src/3rdparty/webkit/WebCore/WebCore.pro
index a835fc7..d633a7a 100644
--- a/src/3rdparty/webkit/WebCore/WebCore.pro
+++ b/src/3rdparty/webkit/WebCore/WebCore.pro
@@ -3376,3 +3376,18 @@ CONFIG(QTDIR_build):isEqual(QT_MAJOR_VERSION, 4):greaterThan(QT_MINOR_VERSION, 4
             plugins/win/PaintHooks.asm
     }
 }
+
+# Temporary workaround to pick up the DEF file from the same place as all the others
+symbian {
+    shared {
+        contains(MMP_RULES, defBlock) {
+            MMP_RULES -= defBlock
+
+            MMP_RULES += "$${LITERAL_HASH}ifdef WINSCW" \
+                    "DEFFILE ../../../s60installs/bwins/$${TARGET}.def" \
+                    "$${LITERAL_HASH}elif defined EABI" \
+                    "DEFFILE ../../../s60installs/eabi/$${TARGET}.def" \
+                    "$${LITERAL_HASH}endif"
+        }
+    }
+}
-- 
cgit v0.12


From 1631a4b79f0f2d2b8b8075cd6ebbebe3bafbdb2b Mon Sep 17 00:00:00 2001
From: Liang QI <liang.qi@nokia.com>
Date: Wed, 28 Oct 2009 08:52:43 +0100
Subject: Enable QtXmlPatterns module in qt package and assign an UID for it.

Enable QtXmlPatterns module in qt package and assign an UID for it.

RevBy: Miikka Heikkinen
RevBy: Jason Barron
---
 src/s60installs/s60installs.pro | 4 ++++
 src/xmlpatterns/xmlpatterns.pro | 2 ++
 2 files changed, 6 insertions(+)

diff --git a/src/s60installs/s60installs.pro b/src/s60installs/s60installs.pro
index 7233e8a..154d666 100644
--- a/src/s60installs/s60installs.pro
+++ b/src/s60installs/s60installs.pro
@@ -97,6 +97,10 @@ symbian: {
         qtlibraries.sources += QtScript.dll
     }
 
+    contains(QT_CONFIG, xmlpatterns): {
+       qtlibraries.sources += QtXmlPatterns.dll
+    }
+
     contains(QT_CONFIG, webkit): {
         qtlibraries.sources += QtWebKit.dll
     }
diff --git a/src/xmlpatterns/xmlpatterns.pro b/src/xmlpatterns/xmlpatterns.pro
index bb8e452..1df497d 100644
--- a/src/xmlpatterns/xmlpatterns.pro
+++ b/src/xmlpatterns/xmlpatterns.pro
@@ -34,3 +34,5 @@ wince*: {
       QMAKE_CXXFLAGS_RELEASE ~= s/-O1/-Os -Oy -Ob2/
    }
 }
+
+symbian:TARGET.UID3=0x2001E62B
-- 
cgit v0.12


From cabbff076f40eeeb56beb53220a40f124a2e0215 Mon Sep 17 00:00:00 2001
From: Shane Kearns <shane.kearns@sosco.com>
Date: Wed, 28 Oct 2009 09:15:40 +0100
Subject: Change deployment of SQLite to check for stub SIS file

This is less wrong than searching for a file name on specific drives.
Correct solution is to use an embedded SIS file dependency, for that we
need to get a symbian-signed sis file from the symbian OS team.

Reviewed-by: Miikka Heikkinen
---
 src/s60installs/s60installs.pro | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/s60installs/s60installs.pro b/src/s60installs/s60installs.pro
index 7233e8a..f553598 100644
--- a/src/s60installs/s60installs.pro
+++ b/src/s60installs/s60installs.pro
@@ -35,8 +35,8 @@ symbian: {
     qtlibraries.pkg_postrules += qts60plugindeployment
 
     sqlitedeployment = \
-        "; EXISTS statement does not resolve !. Lets check the most common drives" \
-        "IF NOT EXISTS(\"c:\\sys\\bin\\sqlite3.dll\") AND NOT EXISTS(\"e:\\sys\\bin\\sqlite3.dll\") AND NOT EXISTS(\"z:\\sys\\bin\\sqlite3.dll\")" \
+        "; Deploy sqlite onto phone that does not have it (this should be replaced with embedded sis file when available)
+        "IF NOT package(0x2002533b) " \
         "\"$${EPOCROOT}epoc32/release/$(PLATFORM)/$(TARGET)/sqlite3.dll\" - \"!:\\sys\\bin\\sqlite3.dll\"" \
         "ENDIF"
     qtlibraries.pkg_postrules += sqlitedeployment
-- 
cgit v0.12


From c5671bcc033e6e519fe8f88b64c108e8d52371fe Mon Sep 17 00:00:00 2001
From: Shane Kearns <shane.kearns@sosco.com>
Date: Wed, 28 Oct 2009 09:26:43 +0100
Subject: Bad line ending in cabbff076f40eeeb56beb53220a40f124a2e0215

Reviewed-by: TrustMe
---
 src/s60installs/s60installs.pro | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/s60installs/s60installs.pro b/src/s60installs/s60installs.pro
index d8f164f..022a072 100644
--- a/src/s60installs/s60installs.pro
+++ b/src/s60installs/s60installs.pro
@@ -35,7 +35,7 @@ symbian: {
     qtlibraries.pkg_postrules += qts60plugindeployment
 
     sqlitedeployment = \
-        "; Deploy sqlite onto phone that does not have it (this should be replaced with embedded sis file when available)
+        "; Deploy sqlite onto phone that does not have it (this should be replaced with embedded sis file when available)" \
         "IF NOT package(0x2002533b) " \
         "\"$${EPOCROOT}epoc32/release/$(PLATFORM)/$(TARGET)/sqlite3.dll\" - \"!:\\sys\\bin\\sqlite3.dll\"" \
         "ENDIF"
-- 
cgit v0.12


From 08e5bae295204ac0cadc1dda6c7a01599f66a2bb Mon Sep 17 00:00:00 2001
From: Andreas Aardal Hanssen <andreas.aardal.hanssen@nokia.com>
Date: Wed, 28 Oct 2009 09:42:14 +0100
Subject: Let QGraphicsItem set QObjectPrivate::wasDeleted when appropriate.

This change allows children of QGraphicsObject-derived classes to check
if the parent is being deleted by checking the private flag wasDeleted.

Reverts 37b16d5cbb4e7bc534f690ebf50434d228b5ecfc, p4 change 9681, to
allow QGraphicsItem to set QObjectPrivate's wasDeleted member before
entering QObjectPrivate's destructor. The original code was in there to
let the user know, via the console output, that QObject was
double-deleted (e.g., when placing QObject on the stack, and also giving
it a parent, so that if the parent is deleted first, bang).

Reviewed-by: Aaron Kennedy
Reviewed-by: Bradley T. Hughes
---
 src/corelib/kernel/qobject.cpp                     |  7 ----
 src/gui/graphicsview/qgraphicsitem.cpp             |  2 ++
 tests/auto/qgraphicsobject/tst_qgraphicsobject.cpp | 42 ++++++++++++++++++++++
 3 files changed, 44 insertions(+), 7 deletions(-)

diff --git a/src/corelib/kernel/qobject.cpp b/src/corelib/kernel/qobject.cpp
index 7be19b3..5303975 100644
--- a/src/corelib/kernel/qobject.cpp
+++ b/src/corelib/kernel/qobject.cpp
@@ -835,14 +835,7 @@ QObject::QObject(QObjectPrivate &dd, QObject *parent)
 QObject::~QObject()
 {
     Q_D(QObject);
-    if (d->wasDeleted) {
-#if defined(QT_DEBUG)
-        qWarning("QObject: Double deletion detected");
-#endif
-        return;
-    }
     d->wasDeleted = true;
-
     d->blockSig = 0; // unblock signals so we always emit destroyed()
 
     if (!d->isWidget) {
diff --git a/src/gui/graphicsview/qgraphicsitem.cpp b/src/gui/graphicsview/qgraphicsitem.cpp
index ad672a3..2e68d3e 100644
--- a/src/gui/graphicsview/qgraphicsitem.cpp
+++ b/src/gui/graphicsview/qgraphicsitem.cpp
@@ -1286,6 +1286,8 @@ QGraphicsItem::QGraphicsItem(QGraphicsItemPrivate &dd, QGraphicsItem *parent,
 */
 QGraphicsItem::~QGraphicsItem()
 {
+    if (d_ptr->isObject)
+        QObjectPrivate::get(static_cast<QGraphicsObject *>(this))->wasDeleted = true;
     d_ptr->inDestructor = 1;
     d_ptr->removeExtraItemCache();
 
diff --git a/tests/auto/qgraphicsobject/tst_qgraphicsobject.cpp b/tests/auto/qgraphicsobject/tst_qgraphicsobject.cpp
index a9fd55a..194665d 100644
--- a/tests/auto/qgraphicsobject/tst_qgraphicsobject.cpp
+++ b/tests/auto/qgraphicsobject/tst_qgraphicsobject.cpp
@@ -46,6 +46,7 @@
 #include <qgraphicssceneevent.h>
 #include <qgraphicsview.h>
 #include <qstyleoption.h>
+#include <private/qobject_p.h>
 #include "../../shared/util.h"
 
 class tst_QGraphicsObject : public QObject {
@@ -65,6 +66,7 @@ private slots:
     void opacity();
     void enabled();
     void visible();
+    void deleted();
 };
 
 
@@ -249,6 +251,46 @@ void tst_QGraphicsObject::visible()
     QVERIFY(object.property("visible") == true);
 }
 
+class DeleteTester : public QGraphicsObject
+{
+public:
+    DeleteTester(bool *w, bool *pw, QGraphicsItem *parent = 0)
+        : QGraphicsObject(parent), wasDeleted(w), parentWasDeleted(pw)
+    { }
+
+    ~DeleteTester()
+    {
+        *wasDeleted = QObjectPrivate::get(this)->wasDeleted;
+        if (QGraphicsItem *p = parentItem()) {
+            if (QGraphicsObject *o = p->toGraphicsObject())
+                *parentWasDeleted = QObjectPrivate::get(o)->wasDeleted;
+        }
+    }
+
+    void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget * = 0)
+    { }
+    QRectF boundingRect() const
+    { return QRectF(); }
+
+    bool *wasDeleted;
+    bool *parentWasDeleted;
+};
+
+void tst_QGraphicsObject::deleted()
+{
+    bool item1_parentWasDeleted = false;
+    bool item1_wasDeleted = false;
+    bool item2_parentWasDeleted = false;
+    bool item2_wasDeleted = false;
+    DeleteTester *item1 = new DeleteTester(&item1_wasDeleted, &item1_parentWasDeleted);
+    DeleteTester *item2 = new DeleteTester(&item2_wasDeleted, &item2_parentWasDeleted, item1);
+    delete item1;
+
+    QVERIFY(!item1_wasDeleted); // destructor not called yet
+    QVERIFY(!item1_parentWasDeleted); // no parent
+    QVERIFY(!item2_wasDeleted); // destructor not called yet
+    QVERIFY(item2_parentWasDeleted);
+}
 
 QTEST_MAIN(tst_QGraphicsObject)
 #include "tst_qgraphicsobject.moc"
-- 
cgit v0.12


From 680de3b4bf3c62b2df83797f8cee5789c121bf00 Mon Sep 17 00:00:00 2001
From: Jani Hautakangas <ext-jani.hautakangas@nokia.com>
Date: Wed, 28 Oct 2009 11:13:08 +0200
Subject: Fix EColor16M conversion in QPixmap::fromSymbianCFbsBitmap()

EColor16M is in BGR format so after conversion to QImage RGB
values needs to be swapped.

Reviewed-by: jbarron
---
 src/gui/image/qpixmap_s60.cpp      | 15 +++++++++------
 tests/auto/qpixmap/tst_qpixmap.cpp |  2 ++
 2 files changed, 11 insertions(+), 6 deletions(-)

diff --git a/src/gui/image/qpixmap_s60.cpp b/src/gui/image/qpixmap_s60.cpp
index 666d608..c56e9b7 100644
--- a/src/gui/image/qpixmap_s60.cpp
+++ b/src/gui/image/qpixmap_s60.cpp
@@ -935,18 +935,21 @@ void QS60PixmapData::fromNativeType(void* pixmap, NativeType nativeType)
             da.beginDataAccess(sourceBitmap);
             uchar *bytes = (uchar*)sourceBitmap->DataAddress();
             QImage img = QImage(bytes, size.iWidth, size.iHeight, format);
+            img = img.copy();
             da.endDataAccess(sourceBitmap);
 
-            fromImage(img, Qt::AutoColor);
-
-            if(deleteSourceBitmap)
-                delete sourceBitmap;
-
             if(displayMode == EGray2) {
                 //Symbian thinks set pixels are white/transparent, Qt thinks they are foreground/solid
                 //So invert mono bitmaps so that masks work correctly.
-                image.invertPixels();
+                img.invertPixels();
+            } else if(displayMode == EColor16M) {
+                img = img.rgbSwapped(); // EColor16M is BGR
             }
+
+            fromImage(img, Qt::AutoColor);
+
+            if(deleteSourceBitmap)
+                delete sourceBitmap;
         } else {
             CFbsBitmap* duplicate = 0;
             QT_TRAP_THROWING(duplicate = new (ELeave) CFbsBitmap);
diff --git a/tests/auto/qpixmap/tst_qpixmap.cpp b/tests/auto/qpixmap/tst_qpixmap.cpp
index 53b6230..8e02c74 100644
--- a/tests/auto/qpixmap/tst_qpixmap.cpp
+++ b/tests/auto/qpixmap/tst_qpixmap.cpp
@@ -1134,6 +1134,8 @@ void tst_QPixmap::fromSymbianCFbsBitmap_data()
     QTest::newRow("EColor4K big") << EColor4K << largeWidth << largeHeight << QColor(Qt::red);
     QTest::newRow("EColor64K small") << EColor64K << smallWidth << smallHeight << QColor(Qt::green);
     QTest::newRow("EColor64K big") << EColor64K << largeWidth << largeHeight << QColor(Qt::green);
+    QTest::newRow("EColor16M small") << EColor16M << smallWidth << smallHeight << QColor(Qt::yellow);
+    QTest::newRow("EColor16M big") << EColor16M << largeWidth << largeHeight << QColor(Qt::yellow);
     QTest::newRow("EColor16MU small") << EColor16MU << smallWidth << smallHeight << QColor(Qt::red);
     QTest::newRow("EColor16MU big") << EColor16MU << largeWidth << largeHeight << QColor(Qt::red);
     QTest::newRow("EColor16MA small opaque") << EColor16MA << smallWidth << smallHeight << QColor(255, 255, 0);
-- 
cgit v0.12


From de7de35082ec21d506a90e68cb30888540ec64cc Mon Sep 17 00:00:00 2001
From: Thorvald Natvig <slicer@users.sourceforge.net>
Date: Tue, 20 Oct 2009 13:31:02 +0200
Subject: Fix XML entities in QTextDocument::toHtml()

If a QTextDocument contains an anchor with a & in it, this & is not
escaped in the toHtml() function, meaning the resulting document
can't be parsed as XML as it will contain invalid entities.

Reviewed-by: Olivier Goffart
Merge-request: 1753
---
 src/gui/text/qtextdocument.cpp                 | 33 ++++++++++++++++++++------
 tests/auto/qtextdocument/qtextdocument.pro     |  1 +
 tests/auto/qtextdocument/tst_qtextdocument.cpp | 32 +++++++++++++++++++++++--
 3 files changed, 57 insertions(+), 9 deletions(-)

diff --git a/src/gui/text/qtextdocument.cpp b/src/gui/text/qtextdocument.cpp
index a8956b8..17981e3 100644
--- a/src/gui/text/qtextdocument.cpp
+++ b/src/gui/text/qtextdocument.cpp
@@ -168,6 +168,25 @@ QString Qt::escape(const QString& plain)
     return rich;
 }
 
+static QString escapeXml(const QString &plain)
+{
+    QString rich;
+    rich.reserve(int(plain.length() * 1.1));
+    for (int i = 0; i < plain.length(); ++i) {
+        if (plain.at(i) == QLatin1Char('<'))
+            rich += QLatin1String("&lt;");
+        else if (plain.at(i) == QLatin1Char('>'))
+            rich += QLatin1String("&gt;");
+        else if (plain.at(i) == QLatin1Char('&'))
+            rich += QLatin1String("&amp;");
+        else if (plain.at(i) == QLatin1Char('"'))
+            rich += QLatin1String("&quot;");
+        else
+            rich += plain.at(i);
+    }
+    return rich;
+}
+
 /*!
     \fn QString Qt::convertFromPlainText(const QString &plain, WhiteSpaceMode mode)
 
@@ -2038,7 +2057,7 @@ void QTextHtmlExporter::emitAttribute(const char *attribute, const QString &valu
     html += QLatin1Char(' ');
     html += QLatin1String(attribute);
     html += QLatin1String("=\"");
-    html += value;
+    html += escapeXml(value);
     html += QLatin1Char('"');
 }
 
@@ -2302,12 +2321,12 @@ void QTextHtmlExporter::emitFontFamily(const QString &family)
 {
     html += QLatin1String(" font-family:");
 
-    QLatin1Char quote('\'');
-    if (family.contains(quote))
-        quote = QLatin1Char('\"');
+    QLatin1String quote("\'");
+    if (family.contains(QLatin1Char('\'')))
+        quote = QLatin1String("&quot;");
 
     html += quote;
-    html += family;
+    html += escapeXml(family);
     html += quote;
     html += QLatin1Char(';');
 }
@@ -2341,13 +2360,13 @@ void QTextHtmlExporter::emitFragment(const QTextFragment &fragment)
         const QString name = format.anchorName();
         if (!name.isEmpty()) {
             html += QLatin1String("<a name=\"");
-            html += name;
+            html += escapeXml(name);
             html += QLatin1String("\"></a>");
         }
         const QString href = format.anchorHref();
         if (!href.isEmpty()) {
             html += QLatin1String("<a href=\"");
-            html += href;
+            html += escapeXml(href);
             html += QLatin1String("\">");
             closeAnchor = true;
         }
diff --git a/tests/auto/qtextdocument/qtextdocument.pro b/tests/auto/qtextdocument/qtextdocument.pro
index d3ec45d..1e44a9c 100644
--- a/tests/auto/qtextdocument/qtextdocument.pro
+++ b/tests/auto/qtextdocument/qtextdocument.pro
@@ -1,4 +1,5 @@
 load(qttest_p4)
+QT += xml
 HEADERS += common.h
 SOURCES += tst_qtextdocument.cpp 
 
diff --git a/tests/auto/qtextdocument/tst_qtextdocument.cpp b/tests/auto/qtextdocument/tst_qtextdocument.cpp
index f393393..452b683 100644
--- a/tests/auto/qtextdocument/tst_qtextdocument.cpp
+++ b/tests/auto/qtextdocument/tst_qtextdocument.cpp
@@ -59,6 +59,7 @@
 #include <qfontmetrics.h>
 #include <qimage.h>
 #include <qtextlayout.h>
+#include <QDomDocument>
 #include "common.h"
 
 
@@ -732,7 +733,7 @@ void tst_QTextDocument::toHtml_data()
         cursor.insertText("Blah", fmt);
 
         QTest::newRow("font-family-with-quotes1") << QTextDocumentFragment(&doc)
-                                  << QString("<p DEFAULTBLOCKSTYLE><span style=\" font-family:\"Foo's Family\";\">Blah</span></p>");
+                                  << QString("<p DEFAULTBLOCKSTYLE><span style=\" font-family:&quot;Foo's Family&quot;;\">Blah</span></p>");
     }
 
     {
@@ -743,7 +744,7 @@ void tst_QTextDocument::toHtml_data()
         cursor.insertText("Blah", fmt);
 
         QTest::newRow("font-family-with-quotes2") << QTextDocumentFragment(&doc)
-                                  << QString("<p DEFAULTBLOCKSTYLE><span style=\" font-family:'Foo\"s Family';\">Blah</span></p>");
+                                  << QString("<p DEFAULTBLOCKSTYLE><span style=\" font-family:'Foo&quot;s Family';\">Blah</span></p>");
     }
 
     {
@@ -974,6 +975,30 @@ void tst_QTextDocument::toHtml_data()
     {
         CREATE_DOC_AND_CURSOR();
 
+        QTextCharFormat fmt;
+        fmt.setAnchor(true);
+        fmt.setAnchorHref("http://www.kde.org/?a=1&b=2");
+        cursor.insertText("Blah", fmt);
+
+        QTest::newRow("href anchor with &") << QTextDocumentFragment(&doc)
+                                  << QString("<p DEFAULTBLOCKSTYLE><a href=\"http://www.kde.org/?a=1&amp;b=2\">Blah</a></p>");
+    }
+
+    {
+        CREATE_DOC_AND_CURSOR();
+
+        QTextCharFormat fmt;
+        fmt.setAnchor(true);
+        fmt.setAnchorHref("http://www.kde.org/?a='&b=\"");
+        cursor.insertText("Blah", fmt);
+
+        QTest::newRow("href anchor with ' and \"") << QTextDocumentFragment(&doc)
+                                  << QString("<p DEFAULTBLOCKSTYLE><a href=\"http://www.kde.org/?a='&amp;b=&quot;\">Blah</a></p>");
+    }
+
+    {
+        CREATE_DOC_AND_CURSOR();
+
         cursor.insertTable(2, 2);
 
         QTest::newRow("simpletable") << QTextDocumentFragment(&doc)
@@ -1541,6 +1566,9 @@ void tst_QTextDocument::toHtml()
     QString output = doc->toHtml();
 
     QCOMPARE(output, expectedOutput);
+    
+    QDomDocument document;
+    QVERIFY2(document.setContent(output), "Output was not valid XML");
 }
 
 void tst_QTextDocument::toHtml2()
-- 
cgit v0.12


From 1f3218e086778a0e324542a00937cd44e8e10c79 Mon Sep 17 00:00:00 2001
From: Olivier Goffart <ogoffart@trolltech.com>
Date: Tue, 27 Oct 2009 20:37:27 +0100
Subject: Qt::escape(): also escape the quote (&quot;)

This amend previous commit by removing the duplicate function.

The quote need to be escaped in attributes.

Reviewed-by: Thomas Zander
---
 dist/changes-4.6.0                             |  3 +++
 src/gui/text/qtextdocument.cpp                 | 27 +++++---------------------
 tests/auto/qtextdocument/tst_qtextdocument.cpp | 26 +++++++++++++++++++++++--
 3 files changed, 32 insertions(+), 24 deletions(-)

diff --git a/dist/changes-4.6.0 b/dist/changes-4.6.0
index 7f723da..ba2b051 100644
--- a/dist/changes-4.6.0
+++ b/dist/changes-4.6.0
@@ -35,6 +35,9 @@ information about a particular change.
     * Added QVariant::toFloat() and QVariant::toReal()
     * Added QVariant(float) constructor
 
+ - Qt::escape
+    * now escape the double quote (&quot;)
+
 ****************************************************************************
 *                      Platform Specific Changes                           *
 ****************************************************************************
diff --git a/src/gui/text/qtextdocument.cpp b/src/gui/text/qtextdocument.cpp
index 17981e3..6978b6c 100644
--- a/src/gui/text/qtextdocument.cpp
+++ b/src/gui/text/qtextdocument.cpp
@@ -140,7 +140,7 @@ bool Qt::mightBeRichText(const QString& text)
 
 /*!
     Converts the plain text string \a plain to a HTML string with
-    HTML metacharacters \c{<}, \c{>}, and \c{&} replaced by HTML
+    HTML metacharacters \c{<}, \c{>}, \c{&}, and \c{"} replaced by HTML
     entities.
 
     Example:
@@ -162,23 +162,6 @@ QString Qt::escape(const QString& plain)
             rich += QLatin1String("&gt;");
         else if (plain.at(i) == QLatin1Char('&'))
             rich += QLatin1String("&amp;");
-        else
-            rich += plain.at(i);
-    }
-    return rich;
-}
-
-static QString escapeXml(const QString &plain)
-{
-    QString rich;
-    rich.reserve(int(plain.length() * 1.1));
-    for (int i = 0; i < plain.length(); ++i) {
-        if (plain.at(i) == QLatin1Char('<'))
-            rich += QLatin1String("&lt;");
-        else if (plain.at(i) == QLatin1Char('>'))
-            rich += QLatin1String("&gt;");
-        else if (plain.at(i) == QLatin1Char('&'))
-            rich += QLatin1String("&amp;");
         else if (plain.at(i) == QLatin1Char('"'))
             rich += QLatin1String("&quot;");
         else
@@ -2057,7 +2040,7 @@ void QTextHtmlExporter::emitAttribute(const char *attribute, const QString &valu
     html += QLatin1Char(' ');
     html += QLatin1String(attribute);
     html += QLatin1String("=\"");
-    html += escapeXml(value);
+    html += Qt::escape(value);
     html += QLatin1Char('"');
 }
 
@@ -2326,7 +2309,7 @@ void QTextHtmlExporter::emitFontFamily(const QString &family)
         quote = QLatin1String("&quot;");
 
     html += quote;
-    html += escapeXml(family);
+    html += Qt::escape(family);
     html += quote;
     html += QLatin1Char(';');
 }
@@ -2360,13 +2343,13 @@ void QTextHtmlExporter::emitFragment(const QTextFragment &fragment)
         const QString name = format.anchorName();
         if (!name.isEmpty()) {
             html += QLatin1String("<a name=\"");
-            html += escapeXml(name);
+            html += Qt::escape(name);
             html += QLatin1String("\"></a>");
         }
         const QString href = format.anchorHref();
         if (!href.isEmpty()) {
             html += QLatin1String("<a href=\"");
-            html += escapeXml(href);
+            html += Qt::escape(href);
             html += QLatin1String("\">");
             closeAnchor = true;
         }
diff --git a/tests/auto/qtextdocument/tst_qtextdocument.cpp b/tests/auto/qtextdocument/tst_qtextdocument.cpp
index 452b683..5237438 100644
--- a/tests/auto/qtextdocument/tst_qtextdocument.cpp
+++ b/tests/auto/qtextdocument/tst_qtextdocument.cpp
@@ -176,6 +176,8 @@ private slots:
     void testUndoBlocks();
 
     void receiveCursorPositionChangedAfterContentsChange();
+    void escape_data();
+    void escape();
 
 private:
     void backgroundImage_checkExpectedHtml(const QTextDocument &doc);
@@ -577,7 +579,7 @@ void tst_QTextDocument::task240325()
 }
 
 void tst_QTextDocument::stylesheetFont_data()
-{    
+{
     QTest::addColumn<QString>("stylesheet");
     QTest::addColumn<QFont>("font");
 
@@ -1566,7 +1568,7 @@ void tst_QTextDocument::toHtml()
     QString output = doc->toHtml();
 
     QCOMPARE(output, expectedOutput);
-    
+
     QDomDocument document;
     QVERIFY2(document.setContent(output), "Output was not valid XML");
 }
@@ -2680,5 +2682,25 @@ void tst_QTextDocument::receiveCursorPositionChangedAfterContentsChange()
     QCOMPARE(rec.first, QString("contentsChanged"));
 }
 
+void tst_QTextDocument::escape_data()
+{
+    QTest::addColumn<QString>("original");
+    QTest::addColumn<QString>("expected");
+
+    QTest::newRow("1") << "Hello World\n" << "Hello World\n";
+    QTest::newRow("2") << "#include <QtCore>" << "#include &lt;QtCore&gt;";
+    QTest::newRow("3") << "<p class=\"cool\"><a href=\"http://example.com/?foo=bar&amp;bar=foo\">plop --&gt; </a></p>"
+                       << "&lt;p class=&quot;cool&quot;&gt;&lt;a href=&quot;http://example.com/?foo=bar&amp;amp;bar=foo&quot;&gt;plop --&amp;gt; &lt;/a&gt;&lt;/p&gt;";
+    QTest::newRow("4") << QString::fromUtf8("<\320\222\321\201>") << QString::fromUtf8("&lt;\320\222\321\201&gt;");
+}
+
+void tst_QTextDocument::escape()
+{
+    QFETCH(QString, original);
+    QFETCH(QString, expected);
+
+    QCOMPARE(Qt::escape(original), expected);
+}
+
 QTEST_MAIN(tst_QTextDocument)
 #include "tst_qtextdocument.moc"
-- 
cgit v0.12


From a925ba1ab6316a155f2ac61f898c52f07a1340b4 Mon Sep 17 00:00:00 2001
From: Gabriel de Dietrich <gabriel.dietrich-de@nokia.com>
Date: Wed, 28 Oct 2009 09:58:18 +0100
Subject: QSplitter would not show previously collapsed widgets.

After deleting or hiding the last non collapsed item in a QSplitter, none would
be visible. We now check wether there is any non-hidden, collapsed widget, and
set it to non-collapsed. Auto-test included.

Task-number: QTBUG-4101
Reviewed-by: Olivier
---
 src/gui/widgets/qsplitter.cpp          | 17 +++++++++++++++--
 tests/auto/qsplitter/tst_qsplitter.cpp | 34 ++++++++++++++++++++++++++++++++++
 2 files changed, 49 insertions(+), 2 deletions(-)

diff --git a/src/gui/widgets/qsplitter.cpp b/src/gui/widgets/qsplitter.cpp
index e3121ae..520a802 100644
--- a/src/gui/widgets/qsplitter.cpp
+++ b/src/gui/widgets/qsplitter.cpp
@@ -360,13 +360,26 @@ void QSplitterPrivate::recalc(bool update)
       before a hidden widget must be hidden.
     */
     bool first = true;
+    bool allInvisible = n != 0;
     for (int i = 0; i < n ; ++i) {
         QSplitterLayoutStruct *s = list.at(i);
-        s->handle->setHidden(first || s->widget->isHidden());
-        if (!s->widget->isHidden())
+        bool widgetHidden = s->widget->isHidden();
+        if (allInvisible && !widgetHidden && !s->collapsed)
+            allInvisible = false;
+        s->handle->setHidden(first || widgetHidden);
+        if (!widgetHidden)
             first = false;
     }
 
+    if (allInvisible)
+        for (int i = 0; i < n ; ++i) {
+            QSplitterLayoutStruct *s = list.at(i);
+            if (!s->widget->isHidden()) {
+                s->collapsed = false;
+                break;
+            }
+        }
+
     int fi = 2 * q->frameWidth();
     int maxl = fi;
     int minl = fi;
diff --git a/tests/auto/qsplitter/tst_qsplitter.cpp b/tests/auto/qsplitter/tst_qsplitter.cpp
index cf16421..b832f3a 100644
--- a/tests/auto/qsplitter/tst_qsplitter.cpp
+++ b/tests/auto/qsplitter/tst_qsplitter.cpp
@@ -102,6 +102,8 @@ private slots:
     void task187373_addAbstractScrollAreas();
     void task187373_addAbstractScrollAreas_data();
     void task169702_sizes();
+    void taskQTBUG_4101_ensureOneNonCollapsedWidget_data();
+    void taskQTBUG_4101_ensureOneNonCollapsedWidget();
 
 private:
     void removeThirdWidget();
@@ -1281,6 +1283,8 @@ class MyFriendlySplitter : public QSplitter
 public:
     MyFriendlySplitter(QWidget *parent = 0) : QSplitter(parent) {}
     void setRubberBand(int pos) { QSplitter::setRubberBand(pos); }
+
+    friend class tst_QSplitter;
 };
 
 void tst_QSplitter::rubberBandNotInSplitter()
@@ -1403,5 +1407,35 @@ void tst_QSplitter::task169702_sizes()
     QCOMPARE(testW->size().height(), testW->minimumSizeHint().height());
 }
 
+void tst_QSplitter::taskQTBUG_4101_ensureOneNonCollapsedWidget_data()
+{
+    QTest::addColumn<bool>("testingHide");
+
+    QTest::newRow("last non collapsed hidden") << true;
+    QTest::newRow("last non collapsed deleted") << false;
+}
+
+void tst_QSplitter::taskQTBUG_4101_ensureOneNonCollapsedWidget()
+{
+    QFETCH(bool, testingHide);
+
+    MyFriendlySplitter s;
+    QLabel *l;
+    for (int i = 0; i < 5; ++i) {
+        l = new QLabel(QString("Label ") + QChar('A' + i));
+        l->setAlignment(Qt::AlignCenter);
+        s.addWidget(l);
+        s.moveSplitter(0, i);  // Collapse all the labels except the last one.
+    }
+
+    s.show();
+    if (testingHide)
+        l->hide();
+    else
+        delete l;
+    QTest::qWait(100);
+    QVERIFY(s.sizes().at(0) > 0);
+}
+
 QTEST_MAIN(tst_QSplitter)
 #include "tst_qsplitter.moc"
-- 
cgit v0.12


From 44f8fac4e2fc4a4258b921ac595c2826ca96e99c Mon Sep 17 00:00:00 2001
From: Thierry Bastian <thierry.bastian@nokia.com>
Date: Wed, 28 Oct 2009 11:31:33 +0100
Subject: Double-clicking a dock widget titlebar could make it disappear

If it wasn't already docked on a mainwindow, its state would become
unexpected.

Task-number: QTBUG-945
Reviewed-by: gabi
---
 src/gui/widgets/qdockwidget.cpp            | 10 ++++++----
 tests/auto/qdockwidget/tst_qdockwidget.cpp | 19 +++++++++++++++++++
 2 files changed, 25 insertions(+), 4 deletions(-)

diff --git a/src/gui/widgets/qdockwidget.cpp b/src/gui/widgets/qdockwidget.cpp
index 6710275..a8e2a37 100644
--- a/src/gui/widgets/qdockwidget.cpp
+++ b/src/gui/widgets/qdockwidget.cpp
@@ -685,8 +685,6 @@ void QDockWidgetPrivate::_q_toggleTopLevel()
 
 void QDockWidgetPrivate::initDrag(const QPoint &pos, bool nca)
 {
-    Q_Q(QDockWidget);
-
     if (state != 0)
         return;
 
@@ -694,8 +692,6 @@ void QDockWidgetPrivate::initDrag(const QPoint &pos, bool nca)
     Q_ASSERT(win != 0);
     QMainWindowLayout *layout = qobject_cast<QMainWindowLayout*>(win->layout());
     Q_ASSERT(layout != 0);
-    if (layout->layoutState.indexOf(q).isEmpty()) //The dock widget has not been added into the main window
-        return;
     if (layout->pluggingWidget != 0) // the main window is animating a docking operation
         return;
 
@@ -1012,6 +1008,12 @@ void QDockWidgetPrivate::setWindowState(bool floating, bool unplug, const QRect
 {
     Q_Q(QDockWidget);
 
+    if (!floating && parent) {
+        QMainWindowLayout *mwlayout = qobject_cast<QMainWindowLayout *>(q->parentWidget()->layout());
+        if (!mwlayout || mwlayout->dockWidgetArea(q) == Qt::NoDockWidgetArea)
+            return; // this dockwidget can't be redocked
+    }
+
     bool wasFloating = q->isFloating();
     bool hidden = q->isHidden();
 
diff --git a/tests/auto/qdockwidget/tst_qdockwidget.cpp b/tests/auto/qdockwidget/tst_qdockwidget.cpp
index dc67f36..e62ba8c 100644
--- a/tests/auto/qdockwidget/tst_qdockwidget.cpp
+++ b/tests/auto/qdockwidget/tst_qdockwidget.cpp
@@ -86,6 +86,7 @@ private slots:
     void visibilityChanged();
     void dockLocationChanged();
     void setTitleBarWidget();
+    void titleBarDoubleClick();
     // task specific tests:
     void task165177_deleteFocusWidget();
     void task169808_setFloating();
@@ -694,6 +695,24 @@ void tst_QDockWidget::setTitleBarWidget()
     QCOMPARE(w2.isVisible(), false);
 }
 
+void tst_QDockWidget::titleBarDoubleClick()
+{
+    QMainWindow win;
+    QDockWidget dock(&win);
+    win.show();
+    dock.setFloating(true);
+
+    QEvent e(QEvent::NonClientAreaMouseButtonDblClick);
+    QApplication::sendEvent(&dock, &e);
+    QVERIFY(dock.isFloating());
+    QCOMPARE(win.dockWidgetArea(&dock), Qt::NoDockWidgetArea);
+
+    win.addDockWidget(Qt::TopDockWidgetArea, &dock);
+    dock.setFloating(true);
+    QApplication::sendEvent(&dock, &e);
+    QVERIFY(!dock.isFloating());
+    QCOMPARE(win.dockWidgetArea(&dock), Qt::TopDockWidgetArea);
+}
 
 void tst_QDockWidget::task165177_deleteFocusWidget()
 {
-- 
cgit v0.12


From cc34b794439b59e3e226e2a8dc896fec5e27689d Mon Sep 17 00:00:00 2001
From: Andreas Aardal Hanssen <andreas.aardal.hanssen@nokia.com>
Date: Wed, 28 Oct 2009 11:25:31 +0100
Subject: Fix initial focus bug in ItemIsFocusScope.

The task provides an example that doesn't gain input focus when started.
The fix contains two parts: one is to allow items with focus scope
ancestors to become focus items even if the scope is inactive. The other
is to fix up the focusItem pointers on reparent. Before, the focus
scopes' focusItem pointers always pointed to itself, or the next scope.
Now these items are treated no differently than other items in that
respect.

The change has a performance impact when reparenting a large subtree
that has a sub focus item onto another item (one more dig).

Task-number: QT-2331
Reviewed-by: Alexis Menard
---
 src/gui/graphicsview/qgraphicsitem.cpp         | 39 +++++++++---
 tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp | 87 +++++++++++++++++++++++---
 2 files changed, 112 insertions(+), 14 deletions(-)

diff --git a/src/gui/graphicsview/qgraphicsitem.cpp b/src/gui/graphicsview/qgraphicsitem.cpp
index 0107fba..ef43d5c 100644
--- a/src/gui/graphicsview/qgraphicsitem.cpp
+++ b/src/gui/graphicsview/qgraphicsitem.cpp
@@ -1039,13 +1039,31 @@ void QGraphicsItemPrivate::setParentItemHelper(QGraphicsItem *newParent)
     }
 
     // Update focus scope item ptr in new scope.
-    if (newParent) {
+    QGraphicsItem *newFocusScopeItem = subFocusItem ? subFocusItem : parentFocusScopeItem;
+    if (newFocusScopeItem && newParent) {
+        if (subFocusItem) {
+            // Find the subFocusItem's topmost focus scope.
+            QGraphicsItem *ancestorScope = 0;
+            QGraphicsItem *p = subFocusItem->d_ptr->parent;
+            while (p) {
+                if (p->flags() & QGraphicsItem::ItemIsFocusScope)
+                    ancestorScope = p;
+                if (p->isPanel())
+                    break;
+                p = p->parentItem();
+            }
+            if (ancestorScope)
+                newFocusScopeItem = ancestorScope;
+        }
+
         QGraphicsItem *p = newParent;
         while (p) {
             if (p->flags() & QGraphicsItem::ItemIsFocusScope) {
-                p->d_ptr->focusScopeItem = subFocusItem ? subFocusItem : parentFocusScopeItem;
-                // ### The below line might not make sense...
-                if (subFocusItem)
+                p->d_ptr->focusScopeItem = newFocusScopeItem;
+                // Ensure the new item is no longer the subFocusItem. The
+                // only way to set focus on a child of a focus scope is
+                // by setting focus on the scope itself.
+                if (subFocusItem && !p->focusItem())
                     subFocusItem->d_ptr->clearSubFocus();
                 break;
             }
@@ -2983,8 +3001,11 @@ void QGraphicsItemPrivate::setFocusHelper(Qt::FocusReason focusReason, bool clim
     while (p) {
         if (p->flags() & QGraphicsItem::ItemIsFocusScope) {
             p->d_ptr->focusScopeItem = q_ptr;
-            if (!q_ptr->isActive() || !p->focusItem())
+            if (!p->focusItem()) {
+                // If you call setFocus on a child of a focus scope that
+                // doesn't currently have a focus item, then stop.
                 return;
+            }
             break;
         }
         p = p->d_ptr->parent;
@@ -10751,8 +10772,12 @@ QDebug operator<<(QDebug debug, QGraphicsItem *item)
         return debug;
     }
 
-    debug << "QGraphicsItem(this =" << ((void*)item)
-          << ", parent =" << ((void*)item->parentItem())
+    if (QGraphicsObject *o = item->toGraphicsObject())
+        debug << o->metaObject()->className();
+    else
+        debug << "QGraphicsItem";
+    debug << "(this =" << (void*)item
+          << ", parent =" << (void*)item->parentItem()
           << ", pos =" << item->pos()
           << ", z =" << item->zValue() << ", flags = "
           << item->flags() << ")";
diff --git a/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp b/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp
index dabf64c..2c948cc 100644
--- a/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp
+++ b/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp
@@ -391,6 +391,7 @@ private slots:
     void moveWhileDeleting();
     void ensureDirtySceneTransform();
     void focusScope();
+    void focusScope2();
     void stackBefore();
     void sceneModality();
     void panelModality();
@@ -8465,7 +8466,7 @@ void tst_QGraphicsItem::focusScope()
     QVERIFY(!scope2->focusScopeItem());
     scope3->setParentItem(scope2);
     QCOMPARE(scope2->focusScopeItem(), (QGraphicsItem *)scope3);
-    QCOMPARE(scope2->focusItem(), (QGraphicsItem *)scope2);
+    QCOMPARE(scope2->focusItem(), (QGraphicsItem *)scope3);
 
     QGraphicsRectItem *scope1 = new QGraphicsRectItem;
     scope1->setData(0, "scope1");
@@ -8474,9 +8475,9 @@ void tst_QGraphicsItem::focusScope()
     QVERIFY(!scope1->focusScopeItem());
     scope2->setParentItem(scope1);
 
-    QCOMPARE(scope1->focusItem(), (QGraphicsItem *)scope1);
-    QCOMPARE(scope2->focusItem(), (QGraphicsItem *)0);
-    QCOMPARE(scope3->focusItem(), (QGraphicsItem *)0);
+    QCOMPARE(scope1->focusItem(), (QGraphicsItem *)scope3);
+    QCOMPARE(scope2->focusItem(), (QGraphicsItem *)scope3);
+    QCOMPARE(scope3->focusItem(), (QGraphicsItem *)scope3);
     QCOMPARE(scope1->focusScopeItem(), (QGraphicsItem *)scope2);
     QCOMPARE(scope2->focusScopeItem(), (QGraphicsItem *)scope3);
     QCOMPARE(scope3->focusScopeItem(), (QGraphicsItem *)0);
@@ -8527,11 +8528,13 @@ void tst_QGraphicsItem::focusScope()
     rect5->setFocus();
     rect5->setParentItem(rect4);
     QCOMPARE(scope3->focusScopeItem(), (QGraphicsItem *)rect5);
-    QVERIFY(!rect5->hasFocus());
+    QVERIFY(rect5->hasFocus());
 
     rect4->setParentItem(0);
+    QVERIFY(rect5->hasFocus());
     QCOMPARE(scope3->focusScopeItem(), (QGraphicsItem *)0);
-    QVERIFY(scope3->hasFocus());
+    QCOMPARE(scope3->focusItem(), (QGraphicsItem *)0);
+    QVERIFY(!scope3->hasFocus());
 
     QGraphicsRectItem *rectA = new QGraphicsRectItem;
     QGraphicsRectItem *scopeA = new QGraphicsRectItem(rectA);
@@ -8542,7 +8545,7 @@ void tst_QGraphicsItem::focusScope()
     scopeB->setFocus();
 
     scene.addItem(rectA);
-    QVERIFY(!rect5->hasFocus());
+    QVERIFY(rect5->hasFocus());
     QVERIFY(!scopeB->hasFocus());
 
     scopeA->setFocus();
@@ -8550,6 +8553,76 @@ void tst_QGraphicsItem::focusScope()
     QCOMPARE(scopeB->focusItem(), (QGraphicsItem *)scopeB);
 }
 
+void tst_QGraphicsItem::focusScope2()
+{
+    QGraphicsRectItem *child1 = new QGraphicsRectItem;
+    child1->setFlags(QGraphicsItem::ItemIsFocusable);
+    child1->setFocus();
+    QCOMPARE(child1->focusItem(), (QGraphicsItem *)child1);
+
+    QGraphicsRectItem *child2 = new QGraphicsRectItem;
+    child2->setFlags(QGraphicsItem::ItemIsFocusable);
+
+    QGraphicsRectItem *rootFocusScope = new QGraphicsRectItem;
+    rootFocusScope->setFlags(QGraphicsItem::ItemIsFocusable | QGraphicsItem::ItemIsFocusScope);
+    rootFocusScope->setFocus();
+    QCOMPARE(rootFocusScope->focusItem(), (QGraphicsItem *)rootFocusScope);
+
+    child1->setParentItem(rootFocusScope);
+    child2->setParentItem(rootFocusScope);
+
+    QCOMPARE(rootFocusScope->focusScopeItem(), (QGraphicsItem *)child1);
+    QCOMPARE(rootFocusScope->focusItem(), (QGraphicsItem *)child1);
+
+    QGraphicsRectItem *siblingChild1 = new QGraphicsRectItem;
+    siblingChild1->setFlags(QGraphicsItem::ItemIsFocusable);
+    siblingChild1->setFocus();
+
+    QGraphicsRectItem *siblingChild2 = new QGraphicsRectItem;
+    siblingChild2->setFlags(QGraphicsItem::ItemIsFocusable);
+
+    QGraphicsRectItem *siblingFocusScope = new QGraphicsRectItem;
+    siblingFocusScope->setFlags(QGraphicsItem::ItemIsFocusable | QGraphicsItem::ItemIsFocusScope);
+
+    siblingChild1->setParentItem(siblingFocusScope);
+    siblingChild2->setParentItem(siblingFocusScope);
+
+    QCOMPARE(siblingFocusScope->focusScopeItem(), (QGraphicsItem *)siblingChild1);
+    QCOMPARE(siblingFocusScope->focusItem(), (QGraphicsItem *)0);
+
+    QGraphicsItem *root = new QGraphicsRectItem;
+    rootFocusScope->setParentItem(root);
+    siblingFocusScope->setParentItem(root);
+
+    QCOMPARE(root->focusItem(), (QGraphicsItem *)child1);
+
+    QGraphicsScene scene;
+    scene.addItem(root);
+
+    QEvent activate(QEvent::WindowActivate);
+    qApp->sendEvent(&scene, &activate);
+    scene.setFocus();
+
+    QCOMPARE(scene.focusItem(), (QGraphicsItem *)child1);
+
+    // You cannot set focus on a descendant of a focus scope directly;
+    // this will only change the scope's focus scope item pointer. If
+    // you want to give true input focus, you must set it directly on
+    // the scope itself
+    siblingChild2->setFocus();
+    QVERIFY(!siblingChild2->hasFocus());
+    QVERIFY(!siblingChild2->focusItem());
+    QCOMPARE(siblingFocusScope->focusScopeItem(), (QGraphicsItem *)siblingChild2);
+    QCOMPARE(siblingFocusScope->focusItem(), (QGraphicsItem *)0);
+
+    // Set focus on the scope; focus is forwarded to the focus scope item.
+    siblingFocusScope->setFocus();
+    QVERIFY(siblingChild2->hasFocus());
+    QVERIFY(siblingChild2->focusItem());
+    QCOMPARE(siblingFocusScope->focusScopeItem(), (QGraphicsItem *)siblingChild2);
+    QCOMPARE(siblingFocusScope->focusItem(), (QGraphicsItem *)siblingChild2);
+}
+
 void tst_QGraphicsItem::stackBefore()
 {
     QGraphicsRectItem parent;
-- 
cgit v0.12


From 51a644360cdf9ef4d936700f02da6cc380ae1f9d Mon Sep 17 00:00:00 2001
From: Thierry Bastian <thierry.bastian@nokia.com>
Date: Wed, 28 Oct 2009 11:43:40 +0100
Subject: Make the QPropertyAnimation pass on windows by waiting slightly
 longer

Timers on windows are not accurate enough to "only" wait for the
animation duration + 50.
---
 tests/auto/qpropertyanimation/tst_qpropertyanimation.cpp | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/tests/auto/qpropertyanimation/tst_qpropertyanimation.cpp b/tests/auto/qpropertyanimation/tst_qpropertyanimation.cpp
index 7dd17e5..92bed7d 100644
--- a/tests/auto/qpropertyanimation/tst_qpropertyanimation.cpp
+++ b/tests/auto/qpropertyanimation/tst_qpropertyanimation.cpp
@@ -495,7 +495,7 @@ void tst_QPropertyAnimation::startWhenAnotherIsRunning()
         anim->setEndValue(100);
         QSignalSpy runningSpy(anim, SIGNAL(stateChanged(QAbstractAnimation::State, QAbstractAnimation::State)));
         anim->start(QVariantAnimation::DeleteWhenStopped);
-        QTest::qWait(anim->duration() + 50);
+        QTest::qWait(anim->duration() + 100);
         QCOMPARE(runningSpy.count(), 2); //started and then stopped
         QVERIFY(!anim);
     }
@@ -659,7 +659,7 @@ void tst_QPropertyAnimation::playForwardBackward()
     anim.setStartValue(0);
     anim.setEndValue(100);
     anim.start();
-    QTest::qWait(anim.duration() + 50);
+    QTest::qWait(anim.duration() + 100);
     QCOMPARE(anim.state(), QAbstractAnimation::Stopped);
     QCOMPARE(anim.currentTime(), anim.duration());
 
@@ -667,7 +667,7 @@ void tst_QPropertyAnimation::playForwardBackward()
     anim.setDirection(QVariantAnimation::Backward);
     anim.start();
     QCOMPARE(anim.state(), QAbstractAnimation::Running);
-    QTest::qWait(anim.duration() + 50);
+    QTest::qWait(anim.duration() + 100);
     QCOMPARE(anim.state(), QAbstractAnimation::Stopped);
     QCOMPARE(anim.currentTime(), 0);
 
@@ -676,7 +676,7 @@ void tst_QPropertyAnimation::playForwardBackward()
     anim.start();
     QCOMPARE(anim.state(), QAbstractAnimation::Running);
     QCOMPARE(anim.currentTime(), anim.duration());
-    QTest::qWait(anim.duration() + 50);
+    QTest::qWait(anim.duration() + 100);
     QCOMPARE(anim.state(), QAbstractAnimation::Stopped);
     QCOMPARE(anim.currentTime(), 0);
 }
-- 
cgit v0.12


From 8cf53009aa8012c1d911eb3ccac5c5345da712e7 Mon Sep 17 00:00:00 2001
From: Thierry Bastian <thierry.bastian@nokia.com>
Date: Wed, 28 Oct 2009 11:46:35 +0100
Subject: Changing the time we wait for the end of the animation

We now wait for the animation duration + 100 (instead of 50).
It makes tests more reliable on windows (and probably embedded)
---
 tests/auto/qpropertyanimation/tst_qpropertyanimation.cpp | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/tests/auto/qpropertyanimation/tst_qpropertyanimation.cpp b/tests/auto/qpropertyanimation/tst_qpropertyanimation.cpp
index 92bed7d..56c1ced 100644
--- a/tests/auto/qpropertyanimation/tst_qpropertyanimation.cpp
+++ b/tests/auto/qpropertyanimation/tst_qpropertyanimation.cpp
@@ -1093,7 +1093,7 @@ void tst_QPropertyAnimation::valueChanged()
     QSignalSpy spy(&anim, SIGNAL(valueChanged(QVariant)));
     anim.start();
 
-    QTest::qWait(anim.duration() + 50);
+    QTest::qWait(anim.duration() + 100);
 
     QCOMPARE(anim.state(), QAbstractAnimation::Stopped);
     QCOMPARE(anim.currentTime(), anim.duration());
@@ -1144,7 +1144,7 @@ void tst_QPropertyAnimation::twoAnimations()
     o1.anim.start();
     o2.anim.start();
 
-    QTest::qWait(o1.anim.duration() + 50);
+    QTest::qWait(o1.anim.duration() + 100);
     QCOMPARE(o1.anim.state(), QAbstractAnimation::Stopped);
     QCOMPARE(o2.anim.state(), QAbstractAnimation::Stopped);
 
@@ -1194,7 +1194,7 @@ void tst_QPropertyAnimation::deletedInUpdateCurrentTime()
     MyComposedAnimation composedAnimation(&o, "value", "realValue");
     composedAnimation.start();
     QCOMPARE(composedAnimation.state(), QAbstractAnimation::Running);
-    QTest::qWait(composedAnimation.duration() + 50);
+    QTest::qWait(composedAnimation.duration() + 100);
 
     QCOMPARE(composedAnimation.state(), QAbstractAnimation::Stopped);
     QCOMPARE(o.value(), 1000);
-- 
cgit v0.12


From 0b637c89e785cf4151fbda91eda905032d4baf1e Mon Sep 17 00:00:00 2001
From: Thierry Bastian <thierry.bastian@nokia.com>
Date: Wed, 28 Oct 2009 13:17:17 +0100
Subject: Allow to put the central widget in a QMainWindow after it was shown

Task-number: QTBUG-1171
---
 src/gui/widgets/qdockarealayout.cpp | 14 ++++++++------
 src/gui/widgets/qdockarealayout_p.h |  1 +
 2 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/src/gui/widgets/qdockarealayout.cpp b/src/gui/widgets/qdockarealayout.cpp
index 5a0a9d4..df131ee 100644
--- a/src/gui/widgets/qdockarealayout.cpp
+++ b/src/gui/widgets/qdockarealayout.cpp
@@ -2259,7 +2259,7 @@ QRect QDockAreaLayoutInfo::tabContentRect() const
 ** QDockAreaLayout
 */
 
-QDockAreaLayout::QDockAreaLayout(QMainWindow *win)
+QDockAreaLayout::QDockAreaLayout(QMainWindow *win) : have_central(false)
 {
     mainWindow = win;
     sep = win->style()->pixelMetric(QStyle::PM_DockWidgetSeparatorExtent, 0, win);
@@ -2582,7 +2582,9 @@ void QDockAreaLayout::getGrid(QVector<QLayoutStruct> *_ver_struct_list,
 {
     QSize center_hint(0, 0);
     QSize center_min(0, 0);
-    bool have_central = centralWidgetItem != 0 && !centralWidgetItem->isEmpty();
+    const bool old_have_central = have_central;
+    have_central = centralWidgetItem != 0 && !centralWidgetItem->isEmpty();
+    const bool fallbackToSizeHints = !old_have_central && have_central;
     if (have_central) {
         center_hint = centralWidgetRect.size();
         if (!center_hint.isValid())
@@ -2601,28 +2603,28 @@ void QDockAreaLayout::getGrid(QVector<QLayoutStruct> *_ver_struct_list,
         center_rect.setBottom(rect.bottom() - docks[QInternal::BottomDock].rect.height() - sep);
 
     QSize left_hint = docks[QInternal::LeftDock].size();
-    if (left_hint.isNull())
+    if (left_hint.isNull() || fallbackToSizeHints)
         left_hint = docks[QInternal::LeftDock].sizeHint();
     QSize left_min = docks[QInternal::LeftDock].minimumSize();
     QSize left_max = docks[QInternal::LeftDock].maximumSize();
     left_hint = left_hint.boundedTo(left_max).expandedTo(left_min);
 
     QSize right_hint = docks[QInternal::RightDock].size();
-    if (right_hint.isNull())
+    if (right_hint.isNull() || fallbackToSizeHints)
         right_hint = docks[QInternal::RightDock].sizeHint();
     QSize right_min = docks[QInternal::RightDock].minimumSize();
     QSize right_max = docks[QInternal::RightDock].maximumSize();
     right_hint = right_hint.boundedTo(right_max).expandedTo(right_min);
 
     QSize top_hint = docks[QInternal::TopDock].size();
-    if (top_hint.isNull())
+    if (top_hint.isNull() || fallbackToSizeHints)
         top_hint = docks[QInternal::TopDock].sizeHint();
     QSize top_min = docks[QInternal::TopDock].minimumSize();
     QSize top_max = docks[QInternal::TopDock].maximumSize();
     top_hint = top_hint.boundedTo(top_max).expandedTo(top_min);
 
     QSize bottom_hint = docks[QInternal::BottomDock].size();
-    if (bottom_hint.isNull())
+    if (bottom_hint.isNull() || fallbackToSizeHints)
         bottom_hint = docks[QInternal::BottomDock].sizeHint();
     QSize bottom_min = docks[QInternal::BottomDock].minimumSize();
     QSize bottom_max = docks[QInternal::BottomDock].maximumSize();
diff --git a/src/gui/widgets/qdockarealayout_p.h b/src/gui/widgets/qdockarealayout_p.h
index 99a9dbb..1ed14ce 100644
--- a/src/gui/widgets/qdockarealayout_p.h
+++ b/src/gui/widgets/qdockarealayout_p.h
@@ -233,6 +233,7 @@ public:
     QDockAreaLayout(QMainWindow *win);
     QDockAreaLayoutInfo docks[4];
     int sep; // separator extent
+    bool have_central;
     mutable QVector<QWidget*> separatorWidgets;
 
     bool isValid() const;
-- 
cgit v0.12


From 9862d354c0e2135df848dd02417f958b1d7e16f5 Mon Sep 17 00:00:00 2001
From: Olivier Goffart <ogoffart@trolltech.com>
Date: Wed, 28 Oct 2009 13:33:16 +0100
Subject: Compile on 64bit

Reviewed-by: Jan-Arve
---
 src/gui/graphicsview/qsimplex_p.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/gui/graphicsview/qsimplex_p.h b/src/gui/graphicsview/qsimplex_p.h
index 66ea739..084ad7f 100644
--- a/src/gui/graphicsview/qsimplex_p.h
+++ b/src/gui/graphicsview/qsimplex_p.h
@@ -123,11 +123,11 @@ struct QSimplexConstraint
 #ifdef QT_DEBUG
     QString toString() {
         QString result;
-        result += QString::fromAscii("-- QSimplexConstraint %1 --").arg(int(this), 0, 16);
+        result += QString::fromAscii("-- QSimplexConstraint %1 --").arg(quintptr(this), 0, 16);
 
         QHash<QSimplexVariable *, qreal>::const_iterator iter;
         for (iter = variables.constBegin(); iter != variables.constEnd(); ++iter) {
-            result += QString::fromAscii("  %1 x %2").arg(iter.value()).arg(int(iter.key()), 0, 16);
+            result += QString::fromAscii("  %1 x %2").arg(iter.value()).arg(quintptr(iter.key()), 0, 16);
         }
 
         switch (ratio) {
-- 
cgit v0.12


From f62e0f8323304b2afbf2e3b918d611ea1d0f6856 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bj=C3=B8rn=20Erik=20Nilsen?= <bjorn.nilsen@nokia.com>
Date: Wed, 28 Oct 2009 13:30:28 +0100
Subject: Stabilize tst_QGraphicsView::optimizationFlags_dontSavePainterState2

Make sure the view is painted, otherwise the transforms are identity and
comparisons don't make sense.
---
 tests/auto/qgraphicsview/tst_qgraphicsview.cpp | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/tests/auto/qgraphicsview/tst_qgraphicsview.cpp b/tests/auto/qgraphicsview/tst_qgraphicsview.cpp
index 092f81d..89628d8 100644
--- a/tests/auto/qgraphicsview/tst_qgraphicsview.cpp
+++ b/tests/auto/qgraphicsview/tst_qgraphicsview.cpp
@@ -2486,7 +2486,7 @@ void tst_QGraphicsView::optimizationFlags_dontSavePainterState2()
     scene.addRect(0, 0, 20, 20)->setTransform(QTransform::fromScale(2, 2));
     scene.addRect(50, 50, 20, 20)->setTransform(QTransform::fromTranslate(200, 200));
 
-    QGraphicsView view(&scene);
+    CustomView view(&scene);
     if (!savePainter)
         view.setOptimizationFlag(QGraphicsView::DontSavePainterState);
     view.rotate(45);
@@ -2495,7 +2495,11 @@ void tst_QGraphicsView::optimizationFlags_dontSavePainterState2()
 #ifdef Q_WS_X11
     qt_x11_wait_for_window_manager(&view);
 #endif
-    QTest::qWait(150);
+
+    // Make sure the view is repainted; otherwise the tests below will fail.
+    view.viewport()->repaint();
+    QTest::qWait(200);
+    QVERIFY(view.painted);
 
     // Make sure the painter's world transform is preserved after drawItems.
     const QTransform expectedTransform = view.viewportTransform();
-- 
cgit v0.12


From 992f5cef19ce9e313dd06279c47d7535c6dbc857 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bj=C3=B8rn=20Erik=20Nilsen?= <bjorn.nilsen@nokia.com>
Date: Wed, 28 Oct 2009 12:39:33 +0100
Subject: Wrong caching of opaque children in QWidget.

The opaque children cache was clipped to all the ancestors up to the
top-level, which means whenever a widget changes geometry all the
children must be invalidated. However, the bug was that we didn't
invalidate the children, and that is of course slow so we don't want
to do it either. A better solution is to only clip the children cache to the
widget itself (widget->rect() instead of widget->clipRect()), and we can
perfectly do this because the region we subtract the opaque children from is
already inside the clipRect().

Auto-test included.

Task-number: QTBUG-4245 (related to)
---
 src/gui/kernel/qwidget.cpp         | 22 ++++++++------------
 src/gui/kernel/qwidget_p.h         |  1 -
 tests/auto/qwidget/tst_qwidget.cpp | 42 ++++++++++++++++++++++++++++++++++++++
 3 files changed, 51 insertions(+), 14 deletions(-)

diff --git a/src/gui/kernel/qwidget.cpp b/src/gui/kernel/qwidget.cpp
index 5fa9a92..1951ab2 100644
--- a/src/gui/kernel/qwidget.cpp
+++ b/src/gui/kernel/qwidget.cpp
@@ -1825,18 +1825,6 @@ void QWidgetPrivate::setDirtyOpaqueRegion()
         pd->setDirtyOpaqueRegion();
 }
 
-QRegion QWidgetPrivate::getOpaqueRegion() const
-{
-    Q_Q(const QWidget);
-
-    QRegion r = isOpaque ? q->rect() : getOpaqueChildren();
-    if (extra && extra->hasMask)
-        r &= extra->mask;
-    if (r.isEmpty())
-        return r;
-    return r & clipRect();
-}
-
 const QRegion &QWidgetPrivate::getOpaqueChildren() const
 {
     if (!dirtyOpaqueChildren)
@@ -1851,9 +1839,17 @@ const QRegion &QWidgetPrivate::getOpaqueChildren() const
             continue;
 
         const QPoint offset = child->geometry().topLeft();
-        that->opaqueChildren += child->d_func()->getOpaqueRegion().translated(offset);
+        QWidgetPrivate *childd = child->d_func();
+        QRegion r = childd->isOpaque ? child->rect() : childd->getOpaqueChildren();
+        if (childd->extra && childd->extra->hasMask)
+            r &= childd->extra->mask;
+        if (r.isEmpty())
+            continue;
+        r.translate(offset);
+        that->opaqueChildren += r;
     }
 
+    that->opaqueChildren &= q_func()->rect();
     that->dirtyOpaqueChildren = false;
 
     return that->opaqueChildren;
diff --git a/src/gui/kernel/qwidget_p.h b/src/gui/kernel/qwidget_p.h
index 159a3f2..5cea641 100644
--- a/src/gui/kernel/qwidget_p.h
+++ b/src/gui/kernel/qwidget_p.h
@@ -386,7 +386,6 @@ public:
     bool paintOnScreen() const;
     void invalidateGraphicsEffectsRecursively();
 
-    QRegion getOpaqueRegion() const;
     const QRegion &getOpaqueChildren() const;
     void setDirtyOpaqueRegion();
 
diff --git a/tests/auto/qwidget/tst_qwidget.cpp b/tests/auto/qwidget/tst_qwidget.cpp
index 050d1c5..9c421d1 100644
--- a/tests/auto/qwidget/tst_qwidget.cpp
+++ b/tests/auto/qwidget/tst_qwidget.cpp
@@ -332,6 +332,7 @@ private slots:
     void doubleRepaint();
 #ifndef Q_WS_MAC
     void resizeInPaintEvent();
+    void opaqueChildren();
 #endif
 
     void setMaskInResizeEvent();
@@ -8272,6 +8273,47 @@ void tst_QWidget::resizeInPaintEvent()
     // Make sure the resize triggers another update.
     QTRY_COMPARE(widget.numPaintEvents, 1);
 }
+
+void tst_QWidget::opaqueChildren()
+{
+    QWidget widget;
+    widget.resize(200, 200);
+
+    QWidget child(&widget);
+    child.setGeometry(-700, -700, 200, 200);
+
+    QWidget grandChild(&child);
+    grandChild.resize(200, 200);
+
+    QWidget greatGrandChild(&grandChild);
+    greatGrandChild.setGeometry(50, 50, 200, 200);
+    greatGrandChild.setPalette(Qt::red);
+    greatGrandChild.setAutoFillBackground(true); // Opaque child widget.
+
+    widget.show();
+#ifdef Q_WS_X11
+    qt_x11_wait_for_window_manager(&widget);
+#endif
+    QTest::qWait(100);
+
+    // Child, grandChild and greatGrandChild are outside the ancestor clip.
+    QRegion expectedOpaqueRegion(50, 50, 150, 150);
+    QCOMPARE(qt_widget_private(&grandChild)->getOpaqueChildren(), expectedOpaqueRegion);
+
+    // Now they are all inside the ancestor clip.
+    child.setGeometry(50, 50, 150, 150);
+    QCOMPARE(qt_widget_private(&grandChild)->getOpaqueChildren(), expectedOpaqueRegion);
+
+    // Set mask on greatGrandChild.
+    const QRegion mask(10, 10, 50, 50);
+    greatGrandChild.setMask(mask);
+    expectedOpaqueRegion &= mask.translated(50, 50);
+    QCOMPARE(qt_widget_private(&grandChild)->getOpaqueChildren(), expectedOpaqueRegion);
+
+    // Make greatGrandChild "transparent".
+    greatGrandChild.setAutoFillBackground(false);
+    QCOMPARE(qt_widget_private(&grandChild)->getOpaqueChildren(), QRegion());
+}
 #endif
 
 
-- 
cgit v0.12


From e2584b9e910da18e7e472b5681eb7d0d1630647a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Pascal=20L=C3=A9tourneau?= <pascal.letourneau@gmail.com>
Date: Mon, 14 Sep 2009 16:54:13 -0400
Subject: Use qLowerBound in qBinaryFind

The current implementation of qBinaryFind use 64bit arithmetics even
on a 32bit system, which make it slow
The docs mention qBinaryFind will find any occurence of the search
value not necessarily the first one, but this is not case with
current implementation
So nothing prevents the use of qLowerBound

Reviewed-by: Olivier Goffart
Merge-request: 1513
---
 src/corelib/tools/qalgorithms.h | 42 ++++++++++-------------------------------
 1 file changed, 10 insertions(+), 32 deletions(-)

diff --git a/src/corelib/tools/qalgorithms.h b/src/corelib/tools/qalgorithms.h
index a68ce27..f70821a 100644
--- a/src/corelib/tools/qalgorithms.h
+++ b/src/corelib/tools/qalgorithms.h
@@ -295,23 +295,12 @@ template <typename RandomAccessIterator, typename T>
 Q_OUTOFLINE_TEMPLATE RandomAccessIterator qBinaryFind(RandomAccessIterator begin, RandomAccessIterator end, const T &value)
 {
     // Implementation is duplicated from QAlgorithmsPrivate.
-    qint64 l = 0;
-    qint64 r = end - begin - 1;
-    if (r < 0)
-        return end;
-    qint64 i = (l + r + 1) / 2;
-
-    while (r != l) {
-        if (value < begin[i])
-            r = i - 1;
-        else
-            l = i;
-        i = (l + r + 1) / 2;
-    }
-    if (begin[i] < value || value < begin[i])
+    RandomAccessIterator it = qLowerBound(begin, end, value);
+
+    if (it == end || value < *it)
         return end;
-    else
-        return begin + i;
+
+    return it;
 }
 
 template <typename RandomAccessIterator, typename T, typename LessThan>
@@ -520,23 +509,12 @@ Q_OUTOFLINE_TEMPLATE RandomAccessIterator qUpperBoundHelper(RandomAccessIterator
 template <typename RandomAccessIterator, typename T, typename LessThan>
 Q_OUTOFLINE_TEMPLATE RandomAccessIterator qBinaryFindHelper(RandomAccessIterator begin, RandomAccessIterator end, const T &value, LessThan lessThan)
 {
-    qint64 l = 0;
-    qint64 r = end - begin - 1;
-    if (r < 0)
-        return end;
-    qint64 i = (l + r + 1) / 2;
-
-    while (r != l) {
-        if (lessThan(value, begin[i]))
-            r = i - 1;
-        else
-            l = i;
-        i = (l + r + 1) / 2;
-    }
-    if (lessThan(begin[i], value) || lessThan(value, begin[i]))
+    RandomAccessIterator it = qLowerBoundHelper(begin, end, value, lessThan);
+
+    if (it == end || lessThan(value, *it))
         return end;
-    else
-        return begin + i;
+
+    return it;
 }
 
 } //namespace QAlgorithmsPrivate
-- 
cgit v0.12


From b41086b8f68f280f1f683d0f107b26d1c6221883 Mon Sep 17 00:00:00 2001
From: Olivier Goffart <ogoffart@trolltech.com>
Date: Wed, 28 Oct 2009 14:20:29 +0100
Subject: Extand test of qBinaryFind

---
 tests/auto/qalgorithms/tst_qalgorithms.cpp | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/tests/auto/qalgorithms/tst_qalgorithms.cpp b/tests/auto/qalgorithms/tst_qalgorithms.cpp
index 1f1de82..176a451 100644
--- a/tests/auto/qalgorithms/tst_qalgorithms.cpp
+++ b/tests/auto/qalgorithms/tst_qalgorithms.cpp
@@ -602,9 +602,15 @@ void tst_QAlgorithms::test_qUpperBound()
 void tst_QAlgorithms::test_qBinaryFind_data()
 {
     QTest::addColumn<QList<int> >("data");
-    QTest::addColumn<int>("resultValue");
+    QTest::addColumn<int>("resultValue"); // -42 means not found
 
     QTest::newRow("sorted-duplicate") << (QList<int>() << 1 << 2 << 2 << 3) << 2;
+    QTest::newRow("sorted-end") << (QList<int>() << -5 << -2 << 0 << 8) << 8;
+    QTest::newRow("sorted-beginning") << (QList<int>() << -5 << -2 << 0 << 8) << -5;
+    QTest::newRow("sorted-duplicate-beginning") << (QList<int>() << -5 << -5 << -2 << 0 << 8) << -5;
+    QTest::newRow("empty") << (QList<int>()) << -42;
+    QTest::newRow("not found 1 ") << (QList<int>() << 1 << 5 << 8 << 65) << -42;
+    QTest::newRow("not found 2 ") << (QList<int>() << -456 << -5 << 8 << 65) << -42;
 }
 
 void tst_QAlgorithms::test_qBinaryFind()
@@ -612,6 +618,15 @@ void tst_QAlgorithms::test_qBinaryFind()
     QFETCH(QList<int>, data);
     QFETCH(int, resultValue);
 
+    //-42 means not found
+    if (resultValue == -42) {
+        QVERIFY(qBinaryFind(data.constBegin(), data.constEnd(), resultValue) == data.end());
+        QVERIFY(qBinaryFind(data, resultValue) == data.end());
+        QVERIFY(qBinaryFind(data.begin(), data.end(), resultValue) == data.end());
+        QVERIFY(qBinaryFind(data.begin(), data.end(), resultValue, qLess<int>()) == data.end());
+        return;
+    }
+
     QCOMPARE(*qBinaryFind(data.constBegin(), data.constEnd(), resultValue), resultValue);
     QCOMPARE(*qBinaryFind(data.begin(), data.end(), resultValue), resultValue);
     QCOMPARE(*qBinaryFind(data, resultValue), resultValue);
-- 
cgit v0.12


From 8007617f784fcad76661efbb2ce9ee7393946e02 Mon Sep 17 00:00:00 2001
From: Miikka Heikkinen <miikka.heikkinen@digia.com>
Date: Wed, 28 Oct 2009 15:32:33 +0200
Subject: Increased block size for file IO in Symbian.

Each read requires costly IPC call to Symbian file server, so reading
and writing large files has lot of unnecessary overhead when using 4k
block size. Increased the block size to 16k, which is what QIODevice
will request at maximum. This speeds up reading large files up to 10%.

Also included are some unnecessary whitespace removals.

Task-number: QT-2347
Reviewed-by: axis
---
 src/corelib/io/qfsfileengine.cpp | 28 ++++++++++++++++------------
 1 file changed, 16 insertions(+), 12 deletions(-)

diff --git a/src/corelib/io/qfsfileengine.cpp b/src/corelib/io/qfsfileengine.cpp
index fb096a7..b69a5e5 100644
--- a/src/corelib/io/qfsfileengine.cpp
+++ b/src/corelib/io/qfsfileengine.cpp
@@ -76,6 +76,16 @@ QT_BEGIN_NAMESPACE
 #  endif
 #endif
 
+#ifdef Q_OS_SYMBIAN
+    // Using default 4k block in symbian is highly inefficient due to
+    // the fact that each file operation requires slow IPC calls, so
+    // use somewhat larger block size.
+#  define FDFH_BLOCK_SIZE 16384
+#else
+    // Read/write in blocks of 4k to avoid platform limitations (Windows
+    // commonly bails out if you read or write too large blocks at once).
+#  define FDFH_BLOCK_SIZE 4096
+#endif
 
 /*! \class QFSFileEngine
     \brief The QFSFileEngine class implements Qt's default file engine.
@@ -160,11 +170,11 @@ QString QFSFileEnginePrivate::canonicalized(const QString &path)
         if (
 #ifdef Q_OS_SYMBIAN
             // Symbian doesn't support directory symlinks, so do not check for link unless we
-            // are handling the last path element. This not only slightly improves performance, 
+            // are handling the last path element. This not only slightly improves performance,
             // but also saves us from lot of unnecessary platform security check failures
             // when dealing with files under *:/private directories.
             separatorPos == -1 &&
-#endif            
+#endif
             !nonSymlinks.contains(prefix)) {
             fi.setFile(prefix);
             if (fi.isSymLink()) {
@@ -628,14 +638,12 @@ qint64 QFSFileEnginePrivate::readFdFh(char *data, qint64 len)
         qint64 read = 0;
         int retry = 0;
 
-        // Read in blocks of 4k to avoid platform limitations (Windows
-        // commonly bails out if you read or write too large blocks at once).
         qint64 bytesToRead;
         do {
             if (retry == 1)
                 retry = 2;
 
-            bytesToRead = qMin<qint64>(4096, len - read);
+            bytesToRead = qMin<qint64>(FDFH_BLOCK_SIZE, len - read);
             do {
                 readBytes = fread(data + read, 1, size_t(bytesToRead), fh);
             } while (readBytes == 0 && !feof(fh) && errno == EINTR);
@@ -666,10 +674,8 @@ qint64 QFSFileEnginePrivate::readFdFh(char *data, qint64 len)
         qint64 read = 0;
         errno = 0;
 
-        // Read in blocks of 4k to avoid platform limitations (Windows
-        // commonly bails out if you read or write too large blocks at once).
         do {
-            qint64 bytesToRead = qMin<qint64>(4096, len - read);
+            qint64 bytesToRead = qMin<qint64>(FDFH_BLOCK_SIZE, len - read);
             do {
                 result = QT_READ(fd, data + read, int(bytesToRead));
             } while (result == -1 && errno == EINTR);
@@ -770,9 +776,7 @@ qint64 QFSFileEnginePrivate::writeFdFh(const char *data, qint64 len)
     qint64 written = 0;
 
     do {
-        // Write blocks of 4k to avoid platform limitations (Windows commonly
-        // bails out if you read or write too large blocks at once).
-        qint64 bytesToWrite = qMin<qint64>(4096, len - written);
+        qint64 bytesToWrite = qMin<qint64>(FDFH_BLOCK_SIZE, len - written);
         if (fh) {
             do {
                 // Buffered stdlib mode.
@@ -903,7 +907,7 @@ bool QFSFileEngine::supportsExtension(Extension extension) const
 /*! \fn QString QFSFileEngine::currentPath(const QString &fileName)
   For Unix, returns the current working directory for the file
   engine.
-  
+
   For Windows, returns the canonicalized form of the current path used
   by the file engine for the drive specified by \a fileName.  On
   Windows, each drive has its own current directory, so a different
-- 
cgit v0.12


From e77732c9b0c8b8313138306d723f5227cfbc124d Mon Sep 17 00:00:00 2001
From: Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
Date: Wed, 28 Oct 2009 11:17:18 -0300
Subject: QGAL: set the orientation bit for complex anchors

Sets the orientation bit for complex anchors. This is being done in the
constructor, and I did a minor refactor to make the constructor of
SequentialAnchor take the list of vertices and anchors that it is
simplifying. Before that we set one of those directly in the structure
and the other via a setter function.

The tests were passing because right now, complex anchors do not use the
orientation bit, while some Normal anchors use in the refreshSizeHints()
function (to get either the width() or height() of an item).

Signed-off-by: Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
---
 src/gui/graphicsview/qgraphicsanchorlayout_p.cpp |  6 +++---
 src/gui/graphicsview/qgraphicsanchorlayout_p.h   | 15 +++++----------
 2 files changed, 8 insertions(+), 13 deletions(-)

diff --git a/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp b/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp
index b4666c6..ac81ddc 100644
--- a/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp
+++ b/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp
@@ -577,18 +577,18 @@ static AnchorData *createSequence(Graph<AnchorVertex, AnchorData> *graph,
     qDebug("simplifying [%s] to [%s - %s]", qPrintable(strPath), qPrintable(before->toString()), qPrintable(after->toString()));
 #endif
 
-    SequentialAnchorData *sequence = new SequentialAnchorData;
     AnchorVertex *prev = before;
+    QVector<AnchorData *> edges;
 
     for (int i = 0; i <= orderedVertices.count(); ++i) {
         AnchorVertex *next = (i < orderedVertices.count()) ? orderedVertices.at(i) : after;
         AnchorData *ad = graph->takeEdge(prev, next);
         Q_ASSERT(ad);
-        sequence->m_edges.append(ad);
+        edges.append(ad);
         prev = next;
     }
 
-    sequence->setVertices(orderedVertices);
+    SequentialAnchorData *sequence = new SequentialAnchorData(orderedVertices, edges);
     sequence->from = before;
     sequence->to = after;
 
diff --git a/src/gui/graphicsview/qgraphicsanchorlayout_p.h b/src/gui/graphicsview/qgraphicsanchorlayout_p.h
index 8eb65c5..600b06c 100644
--- a/src/gui/graphicsview/qgraphicsanchorlayout_p.h
+++ b/src/gui/graphicsview/qgraphicsanchorlayout_p.h
@@ -223,11 +223,13 @@ inline QString AnchorData::toString() const
 
 struct SequentialAnchorData : public AnchorData
 {
-    SequentialAnchorData() : AnchorData()
+    SequentialAnchorData(const QVector<AnchorVertex *> &vertices, const QVector<AnchorData *> &edges)
+        : AnchorData(), m_children(vertices), m_edges(edges)
     {
         type = AnchorData::Sequential;
+        orientation = m_edges.at(0)->orientation;
 #ifdef QT_DEBUG
-        name = QLatin1String("SequentialAnchorData");
+        name = QString::fromAscii("%1 -- %2").arg(vertices.first()->toString(), vertices.last()->toString());
 #endif
     }
 
@@ -236,14 +238,6 @@ struct SequentialAnchorData : public AnchorData
 
     bool refreshSizeHints_helper(qreal effectiveSpacing, bool refreshChildren = true);
 
-    void setVertices(const QVector<AnchorVertex*> &vertices)
-    {
-        m_children = vertices;
-#ifdef QT_DEBUG
-        name = QString::fromAscii("%1 -- %2").arg(vertices.first()->toString(), vertices.last()->toString());
-#endif
-    }
-
     QVector<AnchorVertex*> m_children;          // list of vertices in the sequence
     QVector<AnchorData*> m_edges;               // keep the list of edges too.
 };
@@ -254,6 +248,7 @@ struct ParallelAnchorData : public AnchorData
         : AnchorData(), firstEdge(first), secondEdge(second)
     {
         type = AnchorData::Parallel;
+        orientation = first->orientation;
 
         // ### Those asserts force that both child anchors have the same direction,
         // but can't we simplify a pair of anchors in opposite directions?
-- 
cgit v0.12


From 6e228d57da9d5dd9b7365d5539f6ed88cafb5d97 Mon Sep 17 00:00:00 2001
From: Thierry Bastian <thierry.bastian@nokia.com>
Date: Wed, 28 Oct 2009 16:00:49 +0100
Subject: Fixed missing repaints on QTreeView when moving the mouse

..from the decoration to the item itself. QAbstractItemView can't
handle that because it doesn't know anything about decoration.

Reviewed-by: gabi
---
 src/gui/itemviews/qtreeview.cpp | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/src/gui/itemviews/qtreeview.cpp b/src/gui/itemviews/qtreeview.cpp
index 16b454d..bad9dfe 100644
--- a/src/gui/itemviews/qtreeview.cpp
+++ b/src/gui/itemviews/qtreeview.cpp
@@ -1226,8 +1226,12 @@ bool QTreeView::viewportEvent(QEvent *event)
             if (oldIndex != newIndex) {
                 QRect oldRect = visualRect(oldIndex);
                 QRect newRect = visualRect(newIndex);
-                viewport()->update(oldRect.left() - d->indent, oldRect.top(), d->indent, oldRect.height());
-                viewport()->update(newRect.left() - d->indent, newRect.top(), d->indent, newRect.height());
+                oldRect.rLeft() -= d->indent;
+                newRect.rLeft() -= d->indent;
+                //we need to paint the whole items (including the decoration) so that when the user
+                //moves the mouse over those elements they are updated
+                viewport()->update(oldRect);
+                viewport()->update(newRect);
             }
         }
         if (selectionBehavior() == QAbstractItemView::SelectRows) {
-- 
cgit v0.12


From d560894ad085ac8c6266fd1af66139db950f473f Mon Sep 17 00:00:00 2001
From: Gabriel de Dietrich <gabriel.dietrich-de@nokia.com>
Date: Wed, 28 Oct 2009 15:10:36 +0100
Subject: Fixed bug in QTableView spans.

In some cases, the spans internal structure was left in an inconsistent
state. Auto-test included. Bonus: spans consistency checking method.

Task-number: QTBUG-5062
Reviewed-by: Olivier
---
 src/gui/itemviews/qtableview.cpp         | 43 +++++++++++++++++++++++++++++++-
 src/gui/itemviews/qtableview_p.h         |  6 ++++-
 tests/auto/qtableview/tst_qtableview.cpp | 38 ++++++++++++++++++++++++++++
 3 files changed, 85 insertions(+), 2 deletions(-)

diff --git a/src/gui/itemviews/qtableview.cpp b/src/gui/itemviews/qtableview.cpp
index c80faa2..02e5fff 100644
--- a/src/gui/itemviews/qtableview.cpp
+++ b/src/gui/itemviews/qtableview.cpp
@@ -117,7 +117,7 @@ void QSpanCollection::updateSpan(QSpanCollection::Span *span, int old_height)
         Index::iterator it_y = index.lowerBound(-span->bottom());
         Q_ASSERT(it_y != index.end()); //it_y must exist since the span is in the list
         while (-it_y.key() <= span->top() + old_height -1) {
-            if(-it_y.key() != span->bottom()) {
+            if (-it_y.key() > span->bottom()) {
                 (*it_y).remove(-span->left());
                 if (it_y->isEmpty()) {
                     it_y = index.erase(it_y) - 1;
@@ -544,6 +544,47 @@ void QSpanCollection::updateRemovedColumns(int start, int end)
     qDeleteAll(toBeDeleted);
 }
 
+#ifdef QT_BUILD_INTERNAL
+/*!
+  \internal
+  Checks whether the span index structure is self-consistent, and consistent with the spans list.
+*/
+bool QSpanCollection::checkConsistency() const
+{
+    for (Index::const_iterator it_y = index.begin(); it_y != index.end(); ++it_y) {
+        int y = -it_y.key();
+        const SubIndex &subIndex = it_y.value();
+        for (SubIndex::const_iterator it = subIndex.begin(); it != subIndex.end(); ++it) {
+            int x = -it.key();
+            Span *span = it.value();
+            if (!spans.contains(span) || span->left() != x
+                || y < span->top() || y > span->bottom())
+                return false;
+        }
+    }
+
+    foreach (const Span *span, spans) {
+        if (span->width() < 1 || span->height() < 1
+            || (span->width() == 1 && span->height() == 1))
+            return false;
+        for (int y = span->top(); y <= span->bottom(); ++y) {
+            Index::const_iterator it_y = index.find(-y);
+            if (it_y == index.end()) {
+                if (y == span->top())
+                    return false;
+                else
+                    continue;
+            }
+            const SubIndex &subIndex = it_y.value();
+            SubIndex::const_iterator it = subIndex.find(-span->left());
+            if (it == subIndex.end() || it.value() != span)
+                return false;
+        }
+    }
+    return true;
+}
+#endif
+
 class QTableCornerButton : public QAbstractButton
 {
     Q_OBJECT
diff --git a/src/gui/itemviews/qtableview_p.h b/src/gui/itemviews/qtableview_p.h
index 9fa14c2..6b19ded 100644
--- a/src/gui/itemviews/qtableview_p.h
+++ b/src/gui/itemviews/qtableview_p.h
@@ -74,7 +74,7 @@ QT_BEGIN_NAMESPACE
 * The key of the first map is the row where the subspan starts, the value of the first map is
 * a list (map) of all subspans that starts at the same row.  It is indexed with its row
 */
-class QSpanCollection
+class Q_AUTOTEST_EXPORT QSpanCollection
 {
 public:
     struct Span
@@ -112,6 +112,10 @@ public:
     void updateRemovedRows(int start, int end);
     void updateRemovedColumns(int start, int end);
 
+#ifdef QT_BUILD_INTERNAL
+    bool checkConsistency() const;
+#endif
+
     typedef QLinkedList<Span *> SpanList;
     SpanList spans; //lists of all spans
 private:
diff --git a/tests/auto/qtableview/tst_qtableview.cpp b/tests/auto/qtableview/tst_qtableview.cpp
index 8f8781d..fe2794f 100644
--- a/tests/auto/qtableview/tst_qtableview.cpp
+++ b/tests/auto/qtableview/tst_qtableview.cpp
@@ -41,6 +41,7 @@
 
 
 #include <QtGui/QtGui>
+#include <private/qtablewidget_p.h>
 #include <QtTest/QtTest>
 #include "../../shared/util.h"
 #include "private/qapplication_p.h"
@@ -58,6 +59,13 @@
         } \
     } while(0)
 
+#ifdef QT_BUILD_INTERNAL
+#define VERIFY_SPANS_CONSISTENCY(TEST_VIEW_) \
+    QVERIFY(static_cast<QTableViewPrivate*>(QObjectPrivate::get(TEST_VIEW_))->spans.checkConsistency())
+#else
+#define VERIFY_SPANS_CONSISTENCY(TEST_VIEW_) (void)false
+#endif
+
 typedef QList<int> IntList;
 Q_DECLARE_METATYPE(IntList)
 
@@ -188,6 +196,7 @@ private slots:
     void task248688_autoScrollNavigation();
     void task259308_scrollVerticalHeaderSwappedSections();
     void task191545_dragSelectRows();
+    void taskQTBUG_5062_spansInconsistency();
 
     void mouseWheel_data();
     void mouseWheel();
@@ -2899,6 +2908,8 @@ void tst_QTableView::span()
     view.clearSpans();
     QCOMPARE(view.rowSpan(row, column), 1);
     QCOMPARE(view.columnSpan(row, column), 1);
+
+    VERIFY_SPANS_CONSISTENCY(&view);
 }
 
 typedef QVector<QRect> SpanList;
@@ -3034,6 +3045,8 @@ void tst_QTableView::spans()
 
     QCOMPARE(view.columnSpan(pos.x(), pos.y()), expectedColumnSpan);
     QCOMPARE(view.rowSpan(pos.x(), pos.y()), expectedRowSpan);
+
+    VERIFY_SPANS_CONSISTENCY(&view);
 }
 
 void tst_QTableView::spansAfterRowInsertion()
@@ -3068,6 +3081,8 @@ void tst_QTableView::spansAfterRowInsertion()
     view.model()->insertRows(12, 2);
     QCOMPARE(view.rowSpan(7, 3), 5);
     QCOMPARE(view.columnSpan(7, 3), 3);
+
+    VERIFY_SPANS_CONSISTENCY(&view);
 }
 
 void tst_QTableView::spansAfterColumnInsertion()
@@ -3102,6 +3117,8 @@ void tst_QTableView::spansAfterColumnInsertion()
     view.model()->insertColumns(12, 2);
     QCOMPARE(view.rowSpan(3, 7), 3);
     QCOMPARE(view.columnSpan(3, 7), 5);
+
+    VERIFY_SPANS_CONSISTENCY(&view);
 }
 
 void tst_QTableView::spansAfterRowRemoval()
@@ -3139,6 +3156,8 @@ void tst_QTableView::spansAfterRowRemoval()
         QCOMPARE(view.columnSpan(span.top(), span.left()), span.width());
         QCOMPARE(view.rowSpan(span.top(), span.left()), span.height());
     }
+
+    VERIFY_SPANS_CONSISTENCY(&view);
 }
 
 void tst_QTableView::spansAfterColumnRemoval()
@@ -3177,6 +3196,8 @@ void tst_QTableView::spansAfterColumnRemoval()
         QCOMPARE(view.columnSpan(span.left(), span.top()), span.height());
         QCOMPARE(view.rowSpan(span.left(), span.top()), span.width());
     }
+
+    VERIFY_SPANS_CONSISTENCY(&view);
 }
 
 class Model : public QAbstractTableModel {
@@ -3845,5 +3866,22 @@ void tst_QTableView::task234926_setHeaderSorting()
     QCOMPARE(model.stringList() , sortedDataD);
 }
 
+void tst_QTableView::taskQTBUG_5062_spansInconsistency()
+{
+    const int nRows = 5;
+    const int nColumns = 5;
+
+    QtTestTableModel model(nRows, nColumns);
+    QtTestTableView view;
+    view.setModel(&model);
+
+    for (int i = 0; i < nRows; ++i)
+       view.setSpan(i, 0, 1, nColumns);
+    view.setSpan(2, 0, 1, 1);
+    view.setSpan(3, 0, 1, 1);
+
+    VERIFY_SPANS_CONSISTENCY(&view);
+}
+
 QTEST_MAIN(tst_QTableView)
 #include "tst_qtableview.moc"
-- 
cgit v0.12


From 51f1d68addd23516d7e6e252e476feac0a95d0c0 Mon Sep 17 00:00:00 2001
From: Olivier Goffart <ogoffart@trolltech.com>
Date: Wed, 28 Oct 2009 15:55:47 +0100
Subject: Fix warning in qvariant.h header + make sure QVariant in QVariant
 works as expected

Also add more test

Reviewed-by: Thierry
---
 src/corelib/kernel/qvariant.h        |  39 ++----
 tests/auto/qvariant/tst_qvariant.cpp | 245 +++++++++++++++++++++++++++++++++++
 2 files changed, 257 insertions(+), 27 deletions(-)

diff --git a/src/corelib/kernel/qvariant.h b/src/corelib/kernel/qvariant.h
index 4cce529..a1ab4e9 100644
--- a/src/corelib/kernel/qvariant.h
+++ b/src/corelib/kernel/qvariant.h
@@ -456,9 +456,9 @@ template <typename T>
 inline void qVariantSetValue(QVariant &v, const T &t)
 {
     //if possible we reuse the current QVariant private
-    const int type = qMetaTypeId<T>(reinterpret_cast<T *>(0));
+    const uint type = qMetaTypeId<T>(reinterpret_cast<T *>(0));
     QVariant::Private &d = v.data_ptr();
-    if (v.isDetached() && (type <= int(QVariant::Char) || type == d.type)) {
+    if (v.isDetached() && (type <= uint(QVariant::Char) || type == d.type)) {
         d.type = type;
         d.is_null = false;
         T *old = reinterpret_cast<T*>(d.is_shared ? d.data.shared->ptr : &d.data.ptr);
@@ -470,6 +470,13 @@ inline void qVariantSetValue(QVariant &v, const T &t)
     }
 }
 
+template <>
+inline void qVariantSetValue<QVariant>(QVariant &v, const QVariant &t)
+{
+    v = t;
+}
+
+
 inline QVariant::QVariant() {}
 inline bool QVariant::isValid() const { return d.type != Invalid; }
 
@@ -559,9 +566,7 @@ inline bool operator!=(const QVariant &v1, const QVariantComparisonHelper &v2)
 #endif
 
 #ifndef QT_MOC
-#if !defined qdoc && defined Q_CC_MSVC && _MSC_VER < 1300
-
-template<typename T> T qvariant_cast(const QVariant &v, T * = 0)
+template<typename T> inline T qvariant_cast(const QVariant &v)
 {
     const int vid = qMetaTypeId<T>(static_cast<T *>(0));
     if (vid == v.userType())
@@ -574,28 +579,9 @@ template<typename T> T qvariant_cast(const QVariant &v, T * = 0)
     return T();
 }
 
-template<typename T>
-inline T qVariantValue(const QVariant &variant, T *t = 0)
-{ return qvariant_cast<T>(variant, t); }
-
-template<typename T>
-inline bool qVariantCanConvert(const QVariant &variant, T *t = 0)
+template<> inline QVariant qvariant_cast<QVariant>(const QVariant &v)
 {
-    return variant.canConvert(static_cast<QVariant::Type>(qMetaTypeId<T>(t)));
-}
-#else
-
-template<typename T> T qvariant_cast(const QVariant &v)
-{
-    const int vid = qMetaTypeId<T>(static_cast<T *>(0));
-    if (vid == v.userType())
-        return *reinterpret_cast<const T *>(v.constData());
-    if (vid < int(QMetaType::User)) {
-        T t;
-        if (qvariant_cast_helper(v, QVariant::Type(vid), &t))
-            return t;
-    }
-    return T();
+    return v;
 }
 
 template<typename T>
@@ -609,7 +595,6 @@ inline bool qVariantCanConvert(const QVariant &variant)
                 qMetaTypeId<T>(static_cast<T *>(0))));
 }
 #endif
-#endif
 Q_DECLARE_SHARED(QVariant)
 Q_DECLARE_TYPEINFO(QVariant, Q_MOVABLE_TYPE);
 
diff --git a/tests/auto/qvariant/tst_qvariant.cpp b/tests/auto/qvariant/tst_qvariant.cpp
index de4d7b4..61e9a4f 100644
--- a/tests/auto/qvariant/tst_qvariant.cpp
+++ b/tests/auto/qvariant/tst_qvariant.cpp
@@ -270,6 +270,8 @@ private slots:
     void task256984_setValue();
 
     void numericalConvert();
+    void moreCustomTypes();
+    void variantInVariant();
 };
 
 Q_DECLARE_METATYPE(QDate)
@@ -3135,7 +3137,250 @@ void tst_QVariant::numericalConvert()
 }
 
 
+template<class T> void playWithVariant(const T &orig, bool isNull, const QString &toString, double toDouble, bool toBool)
+{
+    QVariant v = QVariant::fromValue(orig);
+    QVERIFY(v.isValid());
+    QCOMPARE(v.isNull(), isNull);
+    QCOMPARE(v.toString(), toString);
+    QCOMPARE(v.toDouble(), toDouble);
+    QCOMPARE(v.toBool(), toBool);
+    QCOMPARE(qvariant_cast<T>(v), orig);
+
+    {
+        QVariant v2 = v;
+        QCOMPARE(v2, v);
+        QVERIFY(v2.isValid());
+        QCOMPARE(v2.isNull(), isNull);
+        QCOMPARE(v2.toString(), toString);
+        QCOMPARE(v2.toDouble(), toDouble);
+        QCOMPARE(v2.toBool(), toBool);
+        QCOMPARE(qvariant_cast<T>(v2), orig);
+
+        QVariant v3;
+        v = QVariant();
+        QCOMPARE(v3, v);
+        v = v2;
+        QCOMPARE(v, v2);
+        QCOMPARE(qvariant_cast<T>(v2), qvariant_cast<T>(v));
+        QCOMPARE(v2.toString(), toString);
+        v3 = qVariantFromValue(orig);
+
+        QVERIFY(v3.isValid());
+        QCOMPARE(v3.isNull(), isNull);
+        QCOMPARE(v3.toString(), toString);
+        QCOMPARE(v3.toDouble(), toDouble);
+        QCOMPARE(v3.toBool(), toBool);
+        QCOMPARE(qvariant_cast<T>(v3), qvariant_cast<T>(v));
+    }
+
+    QVERIFY(v.isValid());
+    QCOMPARE(v.isNull(), isNull);
+    QCOMPARE(v.toString(), toString);
+    QCOMPARE(v.toDouble(), toDouble);
+    QCOMPARE(v.toBool(), toBool);
+    QCOMPARE(qvariant_cast<T>(v), orig);
+
+    if (qMetaTypeId<T>() != qMetaTypeId<QVariant>()) {
+        QCOMPARE(v.userType(), qMetaTypeId<T>());
+        QCOMPARE(QVariant::typeToName(QVariant::Type(v.userType())), QMetaType::typeName(qMetaTypeId<T>()));
+    }
+}
+
+
+struct MyPrimitive
+{
+    char x, y;
+    bool operator==(const MyPrimitive &o) const
+    {
+        return x == o.x && y == o.y;
+    }
+};
+Q_DECLARE_TYPEINFO(MyPrimitive, Q_PRIMITIVE_TYPE);
+
+struct MyData
+{
+    void *ptr;
+    MyData() : ptr(this) {}
+    ~MyData() { Q_ASSERT(ptr == this); }
+    MyData(const MyData& o) : ptr(this) { Q_ASSERT(o.ptr == &o); }
+    MyData &operator=(const MyData &o)
+    {
+        Q_ASSERT(ptr == this);
+        Q_ASSERT(o.ptr == &o);
+        return *this;
+    }
+    bool operator==(const MyData &o) const
+    {
+        Q_ASSERT(ptr == this);
+        Q_ASSERT(o.ptr == &o);
+        return true;
+    }
+};
+
+struct MyMovable
+{
+    static int count;
+    int v;
+    MyMovable() { v = count++; }
+    ~MyMovable() { count--; }
+    MyMovable(const MyMovable &o) : v(o.v) { count++; }
+
+    bool operator==(const MyMovable &o) const
+    {
+        return v == o.v;
+    }
+};
+
+int MyMovable::count  = 0;
+
+
+Q_DECLARE_TYPEINFO(MyMovable, Q_MOVABLE_TYPE);
+
+Q_DECLARE_METATYPE(QList<QSize>)
+Q_DECLARE_METATYPE(MyPrimitive)
+Q_DECLARE_METATYPE(MyData)
+Q_DECLARE_METATYPE(MyMovable)
+Q_DECLARE_METATYPE(QList<MyPrimitive>)
+Q_DECLARE_METATYPE(QList<MyData>)
+Q_DECLARE_METATYPE(QList<MyMovable>)
+Q_DECLARE_METATYPE(MyPrimitive *)
+Q_DECLARE_METATYPE(MyData *)
+Q_DECLARE_METATYPE(MyMovable *)
+
 
+void tst_QVariant::moreCustomTypes()
+{
+    {
+        QList<QSize> listSize;
+        playWithVariant(listSize, false, QString(), 0, false);
+        listSize << QSize(4,5) << QSize(89,23) << QSize(5,6);
+        playWithVariant(listSize, false, QString(), 0, false);
+    }
+
+    {
+        QString str;
+        playWithVariant(str, true, QString(), 0, false);
+        str = QString::fromLatin1("123456789.123");
+        playWithVariant(str, false, str, 123456789.123, true);
+    }
+
+    {
+        QSize size;
+        playWithVariant(size, false, QString(), 0, false);
+        playWithVariant(QSize(45,78), false, QString(), 0, false);
+    }
+
+    {
+        MyData d;
+        playWithVariant(d, false, QString(), 0, false);
+        playWithVariant(&d, false, QString(), 0, false);
+        QList<MyData> l;
+        playWithVariant(l, false, QString(), 0, false);
+        l << MyData() << MyData();
+        playWithVariant(l, false, QString(), 0, false);
+    }
+
+    {
+        MyPrimitive d = { 4, 5 };
+        playWithVariant(d, false, QString(), 0, false);
+        playWithVariant(&d, false, QString(), 0, false);
+        QList<MyPrimitive> l;
+        playWithVariant(l, false, QString(), 0, false);
+        l << d;
+        playWithVariant(l, false, QString(), 0, false);
+    }
+
+    {
+        MyMovable d;
+        playWithVariant(d, false, QString(), 0, false);
+        playWithVariant(&d, false, QString(), 0, false);
+        QList<MyMovable> l;
+        playWithVariant(l, false, QString(), 0, false);
+        l << MyMovable() << d;
+        playWithVariant(l, false, QString(), 0, false);
+    }
+    QCOMPARE(MyMovable::count, 0);
+
+    {
+        playWithVariant(12.12, false, "12.12", 12.12, true);
+        playWithVariant(12.12f, false, "12.12", 12.12f, true);
+        playWithVariant('a', false, "a", 'a', true);
+        playWithVariant((unsigned char)('a'), false, "a", 'a', true);
+        playWithVariant( quint8(12), false, "\xc", 12, true);
+        playWithVariant(  qint8(13), false, "\xd", 13, true);
+        playWithVariant(quint16(14), false, "14", 14, true);
+        playWithVariant( qint16(15), false, "15", 15, true);
+        playWithVariant(quint32(16), false, "16", 16, true);
+        playWithVariant( qint32(17), false, "17", 17, true);
+        playWithVariant(quint64(18), false, "18", 18, true);
+        playWithVariant( qint64(19), false, "19", 19, true);
+        playWithVariant(  qint8(-12), false, "\xf4", -12, true);
+        playWithVariant( qint16(-13), false, "-13", -13, true);
+        playWithVariant( qint32(-14), false, "-14", -14, true);
+        playWithVariant( qint64(-15), false, "-15", -15, true);
+        playWithVariant(quint64(0), false, "0", 0, false);
+        playWithVariant( true, false, "true", 1, true);
+        playWithVariant( false, false, "false", 0, false);
+
+        playWithVariant(QString("hello\n"), false, "hello\n", 0, true);
+    }
+
+    {
+        int i = 5;
+        playWithVariant((void *)(&i), false, QString(), 0, false);
+        playWithVariant((void *)(0), false, QString(), 0, false);
+    }
+
+    {
+        QVariant v1 = QVariant::fromValue(5);
+        QVariant v2 = QVariant::fromValue(5.0);
+        QVariant v3 = QVariant::fromValue(quint16(5));
+        QVariant v4 = 5;
+        QVariant v5 = QVariant::fromValue(MyPrimitive());
+        QVariant v6 = QVariant::fromValue(MyMovable());
+        QVariant v7 = QVariant::fromValue(MyData());
+        playWithVariant(v1, false, "5", 5, true);
+        playWithVariant(v2, false, "5", 5, true);
+        playWithVariant(v3, false, "5", 5, true);
+        playWithVariant(v4, false, "5", 5, true);
+
+        playWithVariant(v5, false, QString(), 0, false);
+    }
+}
+
+
+void tst_QVariant::variantInVariant()
+{
+    QVariant var1 = 5;
+    QCOMPARE(var1.type(), QVariant::Int);
+    QVariant var2 = var1;
+    QCOMPARE(var2, var1);
+    QCOMPARE(var2.type(), QVariant::Int);
+    QVariant var3 = QVariant::fromValue(var1);
+    QCOMPARE(var3, var1);
+    QCOMPARE(var3.type(), QVariant::Int);
+    QVariant var4 = qvariant_cast<QVariant>(var1);
+    QCOMPARE(var4, var1);
+    QCOMPARE(var4.type(), QVariant::Int);
+    QVariant var5;
+    var5 = var1;
+    QCOMPARE(var5, var1);
+    QCOMPARE(var5.type(), QVariant::Int);
+    QVariant var6;
+    var6.setValue(var1);
+    QCOMPARE(var6, var1);
+    QCOMPARE(var6.type(), QVariant::Int);
+
+    QCOMPARE(QVariant::fromValue(var1), QVariant::fromValue(var2));
+    QCOMPARE(qvariant_cast<QVariant>(var3), QVariant::fromValue(var4));
+    QCOMPARE(qvariant_cast<QVariant>(var5), qvariant_cast<QVariant>(var6));
+
+    QString str("hello");
+    QVariant var8 = qvariant_cast<QVariant>(QVariant::fromValue(QVariant::fromValue(str)));
+    QCOMPARE((int)var8.type(), (int)QVariant::String);
+    QCOMPARE(qvariant_cast<QString>(QVariant(qvariant_cast<QVariant>(var8))), str);
+}
 
 QTEST_MAIN(tst_QVariant)
 #include "tst_qvariant.moc"
-- 
cgit v0.12


From f360555f3c7ded3c729ce972fbd65f035876b1b4 Mon Sep 17 00:00:00 2001
From: axis <qt-info@nokia.com>
Date: Wed, 28 Oct 2009 16:09:45 +0100
Subject: Fixed crash/drawing artifacts on rotation change on Symbian.

On every beginDataAccess on the pixmap data, we checked the value of
the pointer to the bits and only updated the image if the pointer had
changed. However, we didn't take into account that the pointer could
be the same, even though the dimensions were different, since
malloc() could return the same memory area. This would lead to
painting into an image that had the wrong dimensions, which again led
to either crashes or image shearing. Fixed by checking the dimensions
before deciding to update the image.

Task:     QTBUG-4815
RevBy:    Jason Barron
---
 src/gui/image/qpixmap_s60.cpp | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/src/gui/image/qpixmap_s60.cpp b/src/gui/image/qpixmap_s60.cpp
index c56e9b7..7086341 100644
--- a/src/gui/image/qpixmap_s60.cpp
+++ b/src/gui/image/qpixmap_s60.cpp
@@ -684,9 +684,10 @@ void QS60PixmapData::beginDataAccess()
 
     uchar* newBytes = (uchar*)cfbsBitmap->DataAddress();
 
-    if (newBytes == bytes)
-        return;
+    TSize size = cfbsBitmap->SizeInPixels();
 
+    if (newBytes == bytes && image.width() == size.iWidth && image.height() == size.iHeight)
+        return;
 
     bytes = newBytes;
     TDisplayMode mode = cfbsBitmap->DisplayMode();
@@ -695,8 +696,6 @@ void QS60PixmapData::beginDataAccess()
     if (format == QImage::Format_ARGB32)
         format = QImage::Format_ARGB32_Premultiplied; // pixel data is actually in premultiplied format
 
-    TSize size = cfbsBitmap->SizeInPixels();
-
     QVector<QRgb> savedColorTable;
     if (!image.isNull())
         savedColorTable = image.colorTable();
-- 
cgit v0.12


From f32abd2b9febdeadeb5536d0318f77be4180f142 Mon Sep 17 00:00:00 2001
From: Aaron Kennedy <aaron.kennedy@nokia.com>
Date: Thu, 29 Oct 2009 17:01:36 +1000
Subject: Compile with -no-qt3support

Reviewed-by: andreas
---
 src/gui/itemviews/qtreeview.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/gui/itemviews/qtreeview.cpp b/src/gui/itemviews/qtreeview.cpp
index bad9dfe..be64c46 100644
--- a/src/gui/itemviews/qtreeview.cpp
+++ b/src/gui/itemviews/qtreeview.cpp
@@ -1226,8 +1226,8 @@ bool QTreeView::viewportEvent(QEvent *event)
             if (oldIndex != newIndex) {
                 QRect oldRect = visualRect(oldIndex);
                 QRect newRect = visualRect(newIndex);
-                oldRect.rLeft() -= d->indent;
-                newRect.rLeft() -= d->indent;
+                oldRect.setLeft(oldRect.left() - d->indent);
+                newRect.setLeft(newRect.left() - d->indent);
                 //we need to paint the whole items (including the decoration) so that when the user
                 //moves the mouse over those elements they are updated
                 viewport()->update(oldRect);
-- 
cgit v0.12


From 25502811723a026a38c0a861a6a304d24b8e6a95 Mon Sep 17 00:00:00 2001
From: Olivier Goffart <ogoffart@trolltech.com>
Date: Thu, 29 Oct 2009 09:37:26 +0100
Subject: Stabilize tests

---
 tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp             | 2 +-
 tests/auto/qgraphicssceneindex/tst_qgraphicssceneindex.cpp | 4 +++-
 tests/auto/qtreeview/tst_qtreeview.cpp                     | 1 +
 3 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp b/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp
index 2c948cc..28f249f 100644
--- a/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp
+++ b/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp
@@ -7463,7 +7463,7 @@ void tst_QGraphicsItem::moveLineItem()
     // Make sure the calculated region is correct.
     item->update();
     QTest::qWait(10);
-    QCOMPARE(view.paintedRegion, expectedRegion);
+    QTRY_COMPARE(view.paintedRegion, expectedRegion);
     view.reset();
 
     // Old position: (50, 50)
diff --git a/tests/auto/qgraphicssceneindex/tst_qgraphicssceneindex.cpp b/tests/auto/qgraphicssceneindex/tst_qgraphicssceneindex.cpp
index 9dfd486..7d98748 100644
--- a/tests/auto/qgraphicssceneindex/tst_qgraphicssceneindex.cpp
+++ b/tests/auto/qgraphicssceneindex/tst_qgraphicssceneindex.cpp
@@ -45,6 +45,8 @@
 #include <private/qgraphicsscenebsptreeindex_p.h>
 #include <private/qgraphicssceneindex_p.h>
 #include <private/qgraphicsscenelinearindex_p.h>
+#include "../../shared/util.h"
+
 
 //TESTED_CLASS=
 //TESTED_FILES=
@@ -356,7 +358,7 @@ void tst_QGraphicsSceneIndex::clear()
     MyItem *item = new MyItem;
     scene.addItem(item);
     qApp->processEvents();
-    QCOMPARE(item->numPaints, 1);
+    QTRY_COMPARE(item->numPaints, 1);
 }
 
 QTEST_MAIN(tst_QGraphicsSceneIndex)
diff --git a/tests/auto/qtreeview/tst_qtreeview.cpp b/tests/auto/qtreeview/tst_qtreeview.cpp
index 1429771..75c02e9 100644
--- a/tests/auto/qtreeview/tst_qtreeview.cpp
+++ b/tests/auto/qtreeview/tst_qtreeview.cpp
@@ -3552,6 +3552,7 @@ void tst_QTreeView::doubleClickedWithSpans()
     view.setModel(&model);
     view.setFirstColumnSpanned(0, QModelIndex(), true);
     view.show();
+    QTest::qWaitForWindowShown(&view);
 
     QPoint p(10, 10);
     QCOMPARE(view.indexAt(p), model.index(0, 0));
-- 
cgit v0.12


From 00908877d47c72e178cb0cee643229e3f3e1c64e Mon Sep 17 00:00:00 2001
From: Thierry Bastian <thierry.bastian@nokia.com>
Date: Thu, 29 Oct 2009 10:39:16 +0100
Subject: Fix autotest for QMainWindow

---
 src/gui/widgets/qdockarealayout.cpp | 11 +++++++----
 src/gui/widgets/qdockarealayout_p.h |  2 +-
 2 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/src/gui/widgets/qdockarealayout.cpp b/src/gui/widgets/qdockarealayout.cpp
index df131ee..6895e09 100644
--- a/src/gui/widgets/qdockarealayout.cpp
+++ b/src/gui/widgets/qdockarealayout.cpp
@@ -2259,7 +2259,7 @@ QRect QDockAreaLayoutInfo::tabContentRect() const
 ** QDockAreaLayout
 */
 
-QDockAreaLayout::QDockAreaLayout(QMainWindow *win) : have_central(false)
+QDockAreaLayout::QDockAreaLayout(QMainWindow *win) : fallbackToSizeHints(true)
 {
     mainWindow = win;
     sep = win->style()->pixelMetric(QStyle::PM_DockWidgetSeparatorExtent, 0, win);
@@ -2346,6 +2346,9 @@ bool QDockAreaLayout::restoreState(QDataStream &stream, const QList<QDockWidget*
             for (int i = 0; i < 4; ++i)
                 corners[i] = static_cast<Qt::DockWidgetArea>(cornerData[i]);
         }
+
+        if (!testing)
+            fallbackToSizeHints = false;
     }
 
     return ok;
@@ -2582,9 +2585,7 @@ void QDockAreaLayout::getGrid(QVector<QLayoutStruct> *_ver_struct_list,
 {
     QSize center_hint(0, 0);
     QSize center_min(0, 0);
-    const bool old_have_central = have_central;
-    have_central = centralWidgetItem != 0 && !centralWidgetItem->isEmpty();
-    const bool fallbackToSizeHints = !old_have_central && have_central;
+    const bool have_central = centralWidgetItem != 0 && !centralWidgetItem->isEmpty();
     if (have_central) {
         center_hint = centralWidgetRect.size();
         if (!center_hint.isValid())
@@ -2630,6 +2631,8 @@ void QDockAreaLayout::getGrid(QVector<QLayoutStruct> *_ver_struct_list,
     QSize bottom_max = docks[QInternal::BottomDock].maximumSize();
     bottom_hint = bottom_hint.boundedTo(bottom_max).expandedTo(bottom_min);
 
+    fallbackToSizeHints = !have_central;
+
     if (_ver_struct_list != 0) {
         QVector<QLayoutStruct> &ver_struct_list = *_ver_struct_list;
         ver_struct_list.resize(3);
diff --git a/src/gui/widgets/qdockarealayout_p.h b/src/gui/widgets/qdockarealayout_p.h
index 1ed14ce..065890d 100644
--- a/src/gui/widgets/qdockarealayout_p.h
+++ b/src/gui/widgets/qdockarealayout_p.h
@@ -233,7 +233,7 @@ public:
     QDockAreaLayout(QMainWindow *win);
     QDockAreaLayoutInfo docks[4];
     int sep; // separator extent
-    bool have_central;
+    bool fallbackToSizeHints; //determines if we should use the sizehint for the dock areas (true until the layout is restored or the central widget is set)
     mutable QVector<QWidget*> separatorWidgets;
 
     bool isValid() const;
-- 
cgit v0.12


From ce0c22d4da46664636e651285f6e3ba38e77aea7 Mon Sep 17 00:00:00 2001
From: Olivier Goffart <ogoffart@trolltech.com>
Date: Thu, 29 Oct 2009 10:40:14 +0100
Subject: Fix qvariant_cast<QVariant> when a QVariant is really inside a
 QVariant

This fix the QPropertyAnimation test.

Reviewed-by: Gabriel
Reviewed-by: Thierry
---
 src/corelib/kernel/qvariant.h        | 3 +++
 tests/auto/qvariant/tst_qvariant.cpp | 4 ++++
 2 files changed, 7 insertions(+)

diff --git a/src/corelib/kernel/qvariant.h b/src/corelib/kernel/qvariant.h
index a1ab4e9..3c10788 100644
--- a/src/corelib/kernel/qvariant.h
+++ b/src/corelib/kernel/qvariant.h
@@ -581,6 +581,9 @@ template<typename T> inline T qvariant_cast(const QVariant &v)
 
 template<> inline QVariant qvariant_cast<QVariant>(const QVariant &v)
 {
+    static const int vid = qRegisterMetaType<QVariant>("QVariant");
+    if (vid == v.userType())
+        return *reinterpret_cast<const QVariant *>(v.constData());
     return v;
 }
 
diff --git a/tests/auto/qvariant/tst_qvariant.cpp b/tests/auto/qvariant/tst_qvariant.cpp
index 61e9a4f..e2a606f 100644
--- a/tests/auto/qvariant/tst_qvariant.cpp
+++ b/tests/auto/qvariant/tst_qvariant.cpp
@@ -3380,6 +3380,10 @@ void tst_QVariant::variantInVariant()
     QVariant var8 = qvariant_cast<QVariant>(QVariant::fromValue(QVariant::fromValue(str)));
     QCOMPARE((int)var8.type(), (int)QVariant::String);
     QCOMPARE(qvariant_cast<QString>(QVariant(qvariant_cast<QVariant>(var8))), str);
+
+    QVariant var9(qMetaTypeId<QVariant>(), &var1);
+    QCOMPARE(var9.userType(), qMetaTypeId<QVariant>());
+    QCOMPARE(qvariant_cast<QVariant>(var9), var1);
 }
 
 QTEST_MAIN(tst_QVariant)
-- 
cgit v0.12


From f736d889bca3ce5d33b1e5499ad8714952c67906 Mon Sep 17 00:00:00 2001
From: Shane Kearns <shane.kearns@sosco.com>
Date: Thu, 29 Oct 2009 11:20:31 +0100
Subject: Fix QDateTime on S60 3.1

S60 3.1 plugin returned empty strings for the unsupported APIs
Since these APIs are needed for the most common use case of converting
a QDateTime to a QString using the local format, I have implemented an
emulation of the missing APIs using older APIs that are supported.

Updated the autotest so it does some sanity checking on the result of
local date/time conversion - it would pass instead of fail if the string
was garbage before.

Reviewed-by: Aleksandar Sasha Babic
---
 src/plugins/s60/src/qlocale_3_1.cpp    | 96 ++++++++++++++++++++++++++++++++--
 tests/auto/qdatetime/tst_qdatetime.cpp |  7 +++
 2 files changed, 98 insertions(+), 5 deletions(-)

diff --git a/src/plugins/s60/src/qlocale_3_1.cpp b/src/plugins/s60/src/qlocale_3_1.cpp
index 0afd10a..beeee7f 100644
--- a/src/plugins/s60/src/qlocale_3_1.cpp
+++ b/src/plugins/s60/src/qlocale_3_1.cpp
@@ -40,23 +40,109 @@
 ****************************************************************************/
 
 #include <e32std.h>
+#include <e32const.h>
+#include <e32debug.h>
 
-EXPORT_C void defaultFormatL(TTime&, TDes& des, const TDesC&, const TLocale&)
+_LIT(KYear, "%Y");
+_LIT(KMonth, "%M");
+_LIT(KDay, "%D");
+_LIT(KLocaleIndependent, "%F");
+static TBuf<10> dateFormat;
+static TBuf<10> timeFormat;
+
+static void initialiseDateFormat()
+{
+    if(dateFormat.Length())
+        return;
+
+    TLocale locale;
+
+    //Separator 1 is used between 1st and 2nd components of the date
+    //Separator 2 is used between 2nd and 3rd components of the date
+    //Usually they are the same, but they are allowed to be different
+    TChar s1 = locale.DateSeparator(1);
+    TChar s2 = locale.DateSeparator(2);
+    dateFormat=KLocaleIndependent;
+    switch(locale.DateFormat()) {
+    case EDateAmerican:
+        dateFormat.Append(KMonth);
+        dateFormat.Append(s1);
+        dateFormat.Append(KDay);
+        dateFormat.Append(s2);
+        dateFormat.Append(KYear);
+        break;
+    case EDateEuropean:
+        dateFormat.Append(KDay);
+        dateFormat.Append(s1);
+        dateFormat.Append(KMonth);
+        dateFormat.Append(s2);
+        dateFormat.Append(KYear);
+        break;
+    case EDateJapanese:
+    default: //it's closest to ISO format
+        dateFormat.Append(KYear);
+        dateFormat.Append(s1);
+        dateFormat.Append(KMonth);
+        dateFormat.Append(s2);
+        dateFormat.Append(KDay);
+        break;
+    }
+#ifdef _DEBUG
+    RDebug::Print(_L("Date Format \"%S\""), &dateFormat);
+#endif
+}
+
+static void initialiseTimeFormat()
+{
+    if(timeFormat.Length())
+        return;
+
+    TLocale locale;
+    //Separator 1 is used between 1st and 2nd components of the time
+    //Separator 2 is used between 2nd and 3rd components of the time
+    //Usually they are the same, but they are allowed to be different
+    TChar s1 = locale.TimeSeparator(1);
+    TChar s2 = locale.TimeSeparator(2);
+    switch(locale.TimeFormat()) {
+    case ETime12:
+        timeFormat.Append(_L("%I"));
+        break;
+    case ETime24:
+    default:
+        timeFormat.Append(_L("%H"));
+        break;
+    }
+    timeFormat.Append(s1);
+    timeFormat.Append(_L("%T"));
+    timeFormat.Append(s2);
+    timeFormat.Append(_L("%S"));
+
+#ifdef _DEBUG
+    RDebug::Print(_L("Time Format \"%S\""), &timeFormat);
+#endif
+}
+
+EXPORT_C void defaultFormatL(TTime& time, TDes& des, const TDesC& fmt, const TLocale&)
 {
-    des.Zero();
+    //S60 3.1 does not support format for a specific locale, so use default locale
+    time.FormatL(des, fmt);
 }
 
+//S60 3.1 doesn't support extended locale date&time formats, so use default locale
 EXPORT_C TPtrC defaultGetTimeFormatSpec(TExtendedLocale&)
 {
-    return TPtrC(KNullDesC);
+    initialiseTimeFormat();
+    return TPtrC(timeFormat);
 }
 
 EXPORT_C TPtrC defaultGetLongDateFormatSpec(TExtendedLocale&)
 {
-    return TPtrC(KNullDesC);
+    initialiseDateFormat();
+    return TPtrC(dateFormat);
 }
 
 EXPORT_C TPtrC defaultGetShortDateFormatSpec(TExtendedLocale&)
 {
-    return TPtrC(KNullDesC);
+    initialiseDateFormat();
+    return TPtrC(dateFormat);
 }
diff --git a/tests/auto/qdatetime/tst_qdatetime.cpp b/tests/auto/qdatetime/tst_qdatetime.cpp
index 8fb0c91..c53780e 100644
--- a/tests/auto/qdatetime/tst_qdatetime.cpp
+++ b/tests/auto/qdatetime/tst_qdatetime.cpp
@@ -447,7 +447,14 @@ void tst_QDateTime::toString_enumformat()
     QCOMPARE(str2, QString("1995-05-20T12:34:56"));
 
     QString str3 = dt1.toString(Qt::LocalDate);
+    qDebug() << str3;
     QVERIFY(!str3.isEmpty());
+    //check for date/time components in any order
+    QVERIFY(str3.contains("1995"));
+    //day and month may be in numeric or word form
+    QVERIFY(str3.contains("12"));
+    QVERIFY(str3.contains("34"));
+    QVERIFY(str3.contains("56"));
 }
 
 void tst_QDateTime::addDays()
-- 
cgit v0.12


From 0f1aeb863474d2894a896fb28ea8eae8d736a363 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bj=C3=B8rn=20Erik=20Nilsen?= <bjorn.nilsen@nokia.com>
Date: Thu, 29 Oct 2009 11:47:44 +0100
Subject: Fix tst_QWidget::compatibilityChildInsertedEvents test

This broke after commit: a8e2a457bb7d2fc377c1c65b6a4172974919e055
(Add a new event type, WinIdChange). The first thing that happens in
show() is that the top-level is created, and hence we send WinIdChange.
We therefore have to add this event to list of expected events.

Reviewed-by: TrustMe
---
 tests/auto/qwidget/tst_qwidget.cpp | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/tests/auto/qwidget/tst_qwidget.cpp b/tests/auto/qwidget/tst_qwidget.cpp
index 9c421d1..c27de1d 100644
--- a/tests/auto/qwidget/tst_qwidget.cpp
+++ b/tests/auto/qwidget/tst_qwidget.cpp
@@ -6320,6 +6320,7 @@ void tst_QWidget::compatibilityChildInsertedEvents()
         widget.show();
         expected =
             EventRecorder::EventList()
+            << qMakePair(&widget, QEvent::WinIdChange)
             << qMakePair(&widget, QEvent::Polish)
             << qMakePair(&widget, QEvent::Move)
             << qMakePair(&widget, QEvent::Resize)
@@ -6405,6 +6406,7 @@ void tst_QWidget::compatibilityChildInsertedEvents()
         widget.show();
         expected =
             EventRecorder::EventList()
+            << qMakePair(&widget, QEvent::WinIdChange)
             << qMakePair(&widget, QEvent::Polish)
 #ifdef QT_HAS_QT3SUPPORT
             << qMakePair(&widget, QEvent::ChildInserted)
@@ -6502,6 +6504,7 @@ void tst_QWidget::compatibilityChildInsertedEvents()
         widget.show();
         expected =
             EventRecorder::EventList()
+            << qMakePair(&widget, QEvent::WinIdChange)
             << qMakePair(&widget, QEvent::Polish)
 #ifdef QT_HAS_QT3SUPPORT
             << qMakePair(&widget, QEvent::ChildInserted)
-- 
cgit v0.12


From d38ebd566f3a73f280903929d4ac49d255be3aed Mon Sep 17 00:00:00 2001
From: Miikka Heikkinen <miikka.heikkinen@digia.com>
Date: Thu, 29 Oct 2009 13:22:49 +0200
Subject: Removed mentions about certain flags being temporary for Symbian

In configure app, some QT_NO_* flags were indicated to be temporary
and should be removed once Qt for Symbian is out,
but it looks like at least some of them will be there for longer haul,
so removed mentions of temporary nature of these flags.

Task-number: QTBUG-4744
Reviewed-by: Janne Anttila
---
 tools/configure/configureapp.cpp | 20 +++++++-------------
 1 file changed, 7 insertions(+), 13 deletions(-)

diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp
index adf7a1a..25a02f3 100644
--- a/tools/configure/configureapp.cpp
+++ b/tools/configure/configureapp.cpp
@@ -2780,17 +2780,6 @@ QString Configure::addDefine(QString def)
 }
 
 #if !defined(EVAL)
-// ### This should be removed once Qt for S60 is out.
-static void applyTemporarySymbianFlags(QStringList &qconfigList)
-{
-    qconfigList += "QT_NO_CONCURRENT";
-    qconfigList += "QT_NO_QFUTURE";
-    // This is removed because it uses UNIX signals which are not implemented yet
-    qconfigList += "QT_NO_CRASHHANDLER";
-    qconfigList += "QT_NO_PRINTER";
-    qconfigList += "QT_NO_SYSTEMTRAYICON";
-}
-
 void Configure::generateConfigfiles()
 {
     QDir(buildPath).mkpath("src/corelib/global");
@@ -2913,9 +2902,14 @@ void Configure::generateConfigfiles()
         if (dictionary["GRAPHICS_SYSTEM"] == "openvg") qconfigList += "QT_GRAPHICSSYSTEM_OPENVG";
         if (dictionary["GRAPHICS_SYSTEM"] == "opengl") qconfigList += "QT_GRAPHICSSYSTEM_OPENGL";
         if (dictionary["GRAPHICS_SYSTEM"] == "raster") qconfigList += "QT_GRAPHICSSYSTEM_RASTER";
-        // ### This block should be removed once Qt for S60 is out.
+
         if (dictionary.contains("XQMAKESPEC") && dictionary["XQMAKESPEC"].startsWith("symbian")) {
-            applyTemporarySymbianFlags(qconfigList);
+            // These features are not ported to Symbian (yet)
+            qconfigList += "QT_NO_CONCURRENT";
+            qconfigList += "QT_NO_QFUTURE";
+            qconfigList += "QT_NO_CRASHHANDLER";
+            qconfigList += "QT_NO_PRINTER";
+            qconfigList += "QT_NO_SYSTEMTRAYICON";
         }
 
         qconfigList.sort();
-- 
cgit v0.12


From 316bf04887aed61804e16d64857754b78cf2f713 Mon Sep 17 00:00:00 2001
From: Thierry Bastian <thierry.bastian@nokia.com>
Date: Thu, 29 Oct 2009 12:03:34 +0100
Subject: ItemViews: make the geometries update when header data changes

autotest included

Task-number: QT-711
Reviewed-by: ogoffart
---
 src/gui/itemviews/qabstractitemview.cpp  |  4 ++++
 src/gui/itemviews/qabstractitemview.h    |  1 +
 src/gui/itemviews/qabstractitemview_p.h  |  1 +
 tests/auto/qtableview/tst_qtableview.cpp | 21 +++++++++++++++++++++
 4 files changed, 27 insertions(+)

diff --git a/src/gui/itemviews/qabstractitemview.cpp b/src/gui/itemviews/qabstractitemview.cpp
index d91cedd..9247411 100644
--- a/src/gui/itemviews/qabstractitemview.cpp
+++ b/src/gui/itemviews/qabstractitemview.cpp
@@ -605,6 +605,8 @@ void QAbstractItemView::setModel(QAbstractItemModel *model)
                    this, SLOT(_q_modelDestroyed()));
         disconnect(d->model, SIGNAL(dataChanged(QModelIndex,QModelIndex)),
                    this, SLOT(dataChanged(QModelIndex,QModelIndex)));
+        disconnect(d->model, SIGNAL(headerDataChanged(Qt::Orientation,int,int)),
+                   this, SLOT(_q_headerDataChanged()));
         disconnect(d->model, SIGNAL(rowsInserted(QModelIndex,int,int)),
                    this, SLOT(rowsInserted(QModelIndex,int,int)));
         disconnect(d->model, SIGNAL(rowsAboutToBeRemoved(QModelIndex,int,int)),
@@ -637,6 +639,8 @@ void QAbstractItemView::setModel(QAbstractItemModel *model)
                 this, SLOT(_q_modelDestroyed()));
         connect(d->model, SIGNAL(dataChanged(QModelIndex,QModelIndex)),
                 this, SLOT(dataChanged(QModelIndex,QModelIndex)));
+        connect(d->model, SIGNAL(headerDataChanged(Qt::Orientation,int,int)),
+                this, SLOT(_q_headerDataChanged()));
         connect(d->model, SIGNAL(rowsInserted(QModelIndex,int,int)),
                 this, SLOT(rowsInserted(QModelIndex,int,int)));
         connect(d->model, SIGNAL(rowsAboutToBeRemoved(QModelIndex,int,int)),
diff --git a/src/gui/itemviews/qabstractitemview.h b/src/gui/itemviews/qabstractitemview.h
index f438148..7a0509b 100644
--- a/src/gui/itemviews/qabstractitemview.h
+++ b/src/gui/itemviews/qabstractitemview.h
@@ -358,6 +358,7 @@ private:
     Q_PRIVATE_SLOT(d_func(), void _q_rowsRemoved(const QModelIndex&, int, int))
     Q_PRIVATE_SLOT(d_func(), void _q_modelDestroyed())
     Q_PRIVATE_SLOT(d_func(), void _q_layoutChanged())
+    Q_PRIVATE_SLOT(d_func(), void _q_headerDataChanged())
 
     friend class QTreeViewPrivate; // needed to compile with MSVC
     friend class QAccessibleItemRow;
diff --git a/src/gui/itemviews/qabstractitemview_p.h b/src/gui/itemviews/qabstractitemview_p.h
index 66b7662..c691f61 100644
--- a/src/gui/itemviews/qabstractitemview_p.h
+++ b/src/gui/itemviews/qabstractitemview_p.h
@@ -117,6 +117,7 @@ public:
     virtual void _q_columnsInserted(const QModelIndex &parent, int start, int end);
     virtual void _q_modelDestroyed();
     virtual void _q_layoutChanged();
+    void _q_headerDataChanged() { doDelayedItemsLayout(); }
 
     void fetchMore();
 
diff --git a/tests/auto/qtableview/tst_qtableview.cpp b/tests/auto/qtableview/tst_qtableview.cpp
index fe2794f..227ca6f 100644
--- a/tests/auto/qtableview/tst_qtableview.cpp
+++ b/tests/auto/qtableview/tst_qtableview.cpp
@@ -203,6 +203,8 @@ private slots:
 
     void addColumnWhileEditing();
     void task234926_setHeaderSorting();
+
+    void changeHeaderData();
 };
 
 // Testing get/set functions
@@ -3883,5 +3885,24 @@ void tst_QTableView::taskQTBUG_5062_spansInconsistency()
     VERIFY_SPANS_CONSISTENCY(&view);
 }
 
+void tst_QTableView::changeHeaderData()
+{
+    QTableView view;
+    QStandardItemModel model(5,5);
+    view.setModel(&model);
+    view.show();
+    QTest::qWaitForWindowShown(&view);
+
+    QString text = "long long long text";
+    const int textWidth = view.fontMetrics().width(text);
+    QVERIFY(view.verticalHeader()->width() < textWidth);
+
+    model.setHeaderData(2, Qt::Vertical, text);
+    QTest::qWait(100); //leave time for layout
+
+    QVERIFY(view.verticalHeader()->width() > textWidth);
+}
+
+
 QTEST_MAIN(tst_QTableView)
 #include "tst_qtableview.moc"
-- 
cgit v0.12


From 76095a14bc84305c69b3eaf8f3953dc683ebe370 Mon Sep 17 00:00:00 2001
From: Janne Anttila <janne.anttila@digia.com>
Date: Thu, 29 Oct 2009 15:45:17 +0200
Subject: Fix for softkey visibility when dialog launched from fullscreen
 widget.

Softkeys should be always the topmost window in order to be visible.
For example when QMessageBox is launched from fullscreen window,
we need to make sure that softkey is located on top of window tree.

Task-number: QTBUG-4953
Reviewed-by: Jason Barron
---
 src/gui/kernel/qsoftkeymanager.cpp | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/gui/kernel/qsoftkeymanager.cpp b/src/gui/kernel/qsoftkeymanager.cpp
index a5e8eff..a5a2201 100644
--- a/src/gui/kernel/qsoftkeymanager.cpp
+++ b/src/gui/kernel/qsoftkeymanager.cpp
@@ -207,6 +207,7 @@ bool QSoftKeyManager::event(QEvent *e)
 void QSoftKeyManagerPrivate::updateSoftKeys_sys(const QList<QAction*> &softkeys)
 {
     CEikButtonGroupContainer* nativeContainer = S60->buttonGroupContainer();
+    nativeContainer->DrawableWindow()->SetOrdinalPosition(0);
     nativeContainer->DrawableWindow()->SetPointerCapturePriority(1); //keep softkeys available in modal dialog
     QT_TRAP_THROWING(nativeContainer->SetCommandSetL(R_AVKON_SOFTKEYS_EMPTY_WITH_IDS));
 
-- 
cgit v0.12


From 198b974587ba9751a2bdc73464c05c164d49f10c Mon Sep 17 00:00:00 2001
From: Miikka Heikkinen <miikka.heikkinen@digia.com>
Date: Thu, 29 Oct 2009 16:28:45 +0200
Subject: Fixed: Variable res goes out of scope but is accessed later via
 pointer

In qdatetime UTC conversion functions, variable res was declared in
incorrect scope and went out of scope too soon in Symbian.

Reviewed-by: Janne Koskinen
---
 src/corelib/tools/qdatetime.cpp | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/corelib/tools/qdatetime.cpp b/src/corelib/tools/qdatetime.cpp
index 54465bb..db6435e 100644
--- a/src/corelib/tools/qdatetime.cpp
+++ b/src/corelib/tools/qdatetime.cpp
@@ -1855,7 +1855,7 @@ QTime QTime::currentTime()
     t = localtime(&ltime);
 #endif
     Q_CHECK_PTR(t);
-    
+
     ct.mds = MSECS_PER_HOUR * t->tm_hour + MSECS_PER_MIN * t->tm_min + 1000 * t->tm_sec
              + tv.tv_usec / 1000;
 #else
@@ -3725,11 +3725,11 @@ static QDateTimePrivate::Spec utcToLocal(QDate &date, QTime &time)
     TTimeIntervalSeconds tTimeIntervalSecsSince1Jan1970UTC(secsSince1Jan1970UTC);
     TTime epochTTime;
     TInt err = epochTTime.Set(KUnixEpoch);
+    tm res;
     if(err == KErrNone) {
         TTime utcTTime = epochTTime + tTimeIntervalSecsSince1Jan1970UTC;
         utcTTime = utcTTime + utcOffset;
         TDateTime utcDateTime = utcTTime.DateTime();
-        tm res;
         res.tm_sec = utcDateTime.Second();
         res.tm_min = utcDateTime.Minute();
         res.tm_hour = utcDateTime.Hour();
@@ -3816,11 +3816,11 @@ static void localToUtc(QDate &date, QTime &time, int isdst)
     TTimeIntervalSeconds tTimeIntervalSecsSince1Jan1970UTC(secsSince1Jan1970UTC);
     TTime epochTTime;
     TInt err = epochTTime.Set(KUnixEpoch);
+    tm res;
     if(err == KErrNone) {
         TTime utcTTime = epochTTime + tTimeIntervalSecsSince1Jan1970UTC;
         utcTTime = utcTTime + utcOffset;
         TDateTime utcDateTime = utcTTime.DateTime();
-        tm res;
         res.tm_sec = utcDateTime.Second();
         res.tm_min = utcDateTime.Minute();
         res.tm_hour = utcDateTime.Hour();
-- 
cgit v0.12


From 02d815b4bd497a5c7f07330576a5e3c3da3f46ab Mon Sep 17 00:00:00 2001
From: Thierry Bastian <thierry.bastian@nokia.com>
Date: Thu, 29 Oct 2009 15:44:08 +0100
Subject: QListView: make sure we relayout items when data changes in the model

Task-number: QTBUG-633
Reviewed-by: ogoffart
---
 src/gui/itemviews/qlistview.cpp        |  6 ++++++
 src/gui/itemviews/qlistview_p.h        |  3 ++-
 tests/auto/qlistview/tst_qlistview.cpp | 21 +++++++++++++++++++++
 3 files changed, 29 insertions(+), 1 deletion(-)

diff --git a/src/gui/itemviews/qlistview.cpp b/src/gui/itemviews/qlistview.cpp
index 109d760..d680af8 100644
--- a/src/gui/itemviews/qlistview.cpp
+++ b/src/gui/itemviews/qlistview.cpp
@@ -2403,6 +2403,12 @@ QVector<QModelIndex> QListModeViewBase::intersectingSet(const QRect &area) const
     return ret;
 }
 
+void QListModeViewBase::dataChanged(const QModelIndex &, const QModelIndex &)
+{
+    dd->doDelayedItemsLayout();
+}
+
+
 QRect QListModeViewBase::mapToViewport(const QRect &rect) const
 {
     if (isWrapping())
diff --git a/src/gui/itemviews/qlistview_p.h b/src/gui/itemviews/qlistview_p.h
index 3f8f9db..31459b0 100644
--- a/src/gui/itemviews/qlistview_p.h
+++ b/src/gui/itemviews/qlistview_p.h
@@ -130,6 +130,7 @@ public:
     virtual void clear() = 0;
     virtual void setRowCount(int) = 0;
     virtual QVector<QModelIndex> intersectingSet(const QRect &area) const = 0;
+    virtual void dataChanged(const QModelIndex &, const QModelIndex &) = 0;
 
     virtual int horizontalScrollToValue(int index, QListView::ScrollHint hint,
         bool leftOf, bool rightOf, const QRect &area, const QRect &rect) const;
@@ -141,7 +142,6 @@ public:
     virtual int verticalOffset() const { return verticalScrollBar()->value(); }
     virtual void updateHorizontalScrollBar(const QSize &step);
     virtual void updateVerticalScrollBar(const QSize &step);
-    virtual void dataChanged(const QModelIndex &, const QModelIndex &) { }
     virtual void appendHiddenRow(int row);
     virtual void removeHiddenRow(int row);
     virtual void setPositionForIndex(const QPoint &, const QModelIndex &) { }
@@ -217,6 +217,7 @@ public:
     void clear();
     void setRowCount(int rowCount) { flowPositions.resize(rowCount); }
     QVector<QModelIndex> intersectingSet(const QRect &area) const;
+    void dataChanged(const QModelIndex &, const QModelIndex &);
 
     int horizontalScrollToValue(int index, QListView::ScrollHint hint,
         bool leftOf, bool rightOf,const QRect &area, const QRect &rect) const;
diff --git a/tests/auto/qlistview/tst_qlistview.cpp b/tests/auto/qlistview/tst_qlistview.cpp
index 65ab12d..727e6d3 100644
--- a/tests/auto/qlistview/tst_qlistview.cpp
+++ b/tests/auto/qlistview/tst_qlistview.cpp
@@ -119,6 +119,7 @@ private slots:
     void task262152_setModelColumnNavigate();
     void taskQTBUG_2233_scrollHiddenItems_data();
     void taskQTBUG_2233_scrollHiddenItems();
+    void taskQTBUG_633_changeModelData();
 };
 
 // Testing get/set functions
@@ -1832,5 +1833,25 @@ void tst_QListView::taskQTBUG_2233_scrollHiddenItems()
     }
 }
 
+void tst_QListView::taskQTBUG_633_changeModelData()
+{
+    QListView view;
+    view.setFlow(QListView::LeftToRight);
+    QStandardItemModel model(5,1);
+    for (int i = 0; i < model.rowCount(); ++i) {
+        model.setData( model.index(i, 0), QString::number(i));
+    }
+
+    view.setModel(&model);
+    view.show();
+    QTest::qWaitForWindowShown(&view);
+    model.setData( model.index(1, 0), QLatin1String("long long text"));
+    QTest::qWait(100); //leave time for relayouting the items
+    QRect rectLongText = view.visualRect(model.index(1,0));
+    QRect rect2 = view.visualRect(model.index(2,0));
+    QVERIFY( ! rectLongText.intersects(rect2) );
+}
+
+
 QTEST_MAIN(tst_QListView)
 #include "tst_qlistview.moc"
-- 
cgit v0.12


From da9880eaed0d09338717db1a73db01e6b0ab080d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Sami=20Meril=C3=A4?= <sami.merila@nokia.com>
Date: Thu, 29 Oct 2009 17:41:52 +0200
Subject: QS60Style does not mix well with the stylesheets

QS60Style basically ignores user set / stylesheet set palettes.
Now, tested with:
   * QLineEdit
   * QPushButton
   * QSpinBox
   * QComboBox
   * QAbstractScrollArea
   * QCheckBox
   * QRadioButton
   * QGroupBox
   * QFrame
   * QTreeView
   * QTableView
   * QHeaderView
   * QProgressBar
   * QScrollBar
   * QSplitter
   * QSlider
   * QTabWidget
   * QToolButton
   * QToolBar
and fixed QS60Style so that it obeys externally set palettes.

Task-number: QTBUG-4820
Reviewed-by: Janne Koskinen
---
 src/gui/styles/qs60style.cpp           | 199 +++++++++++++++++++--------------
 src/gui/styles/qs60style_p.h           |   6 +-
 src/gui/styles/qs60style_s60.cpp       |  61 ++++------
 src/gui/styles/qs60style_simulated.cpp |   4 +-
 4 files changed, 146 insertions(+), 124 deletions(-)

diff --git a/src/gui/styles/qs60style.cpp b/src/gui/styles/qs60style.cpp
index 580f949..b87f3a8 100644
--- a/src/gui/styles/qs60style.cpp
+++ b/src/gui/styles/qs60style.cpp
@@ -66,7 +66,6 @@
 #include "qtextedit.h"
 #include "qtoolbar.h"
 #include "qtoolbutton.h"
-#include "qtreeview.h"
 #include "qfocusframe.h"
 
 #include "private/qtoolbarextension_p.h"
@@ -527,7 +526,7 @@ void QS60StylePrivate::drawPart(QS60StyleEnums::SkinParts skinPart,
         true;
 #endif
 
-    const QPixmap skinPartPixMap((doCache ? cachedPart : part)(skinPart, rect.size(), flags));
+    const QPixmap skinPartPixMap((doCache ? cachedPart : part)(skinPart, rect.size(), painter, flags));
     if (!skinPartPixMap.isNull())
         painter->drawPixmap(rect.topLeft(), skinPartPixMap);
 }
@@ -594,14 +593,14 @@ void QS60StylePrivate::drawRow(QS60StyleEnums::SkinParts start,
 }
 
 QPixmap QS60StylePrivate::cachedPart(QS60StyleEnums::SkinParts part,
-    const QSize &size, SkinElementFlags flags)
+    const QSize &size, QPainter *painter, SkinElementFlags flags)
 {
     QPixmap result;
     const QString cacheKey =
         QString::fromLatin1("S60Style: SkinParts=%1 QSize=%2|%3 SkinPartFlags=%4")
             .arg((int)part).arg(size.width()).arg(size.height()).arg((int)flags);
     if (!QPixmapCache::find(cacheKey, result)) {
-        result = QS60StylePrivate::part(part, size, flags);
+        result = QS60StylePrivate::part(part, size, painter, flags);
         QPixmapCache::insert(cacheKey, result);
     }
     return result;
@@ -1316,13 +1315,13 @@ void QS60Style::drawControl(ControlElement element, const QStyleOption *option,
             painter->setClipRect(voptAdj.rect);
             const bool isSelected = (vopt->state & QStyle::State_Selected);
 
-            bool isVisible = false;
+            bool isScrollBarVisible = false;
             int scrollBarWidth = 0;
             QList<QScrollBar *> scrollBars = qFindChildren<QScrollBar *>(widget);
             for (int i = 0; i < scrollBars.size(); ++i) {
                 QScrollBar *scrollBar = scrollBars.at(i);
                 if (scrollBar && scrollBar->orientation() == Qt::Vertical) {
-                    isVisible = scrollBar->isVisible();
+                    isScrollBarVisible = scrollBar->isVisible();
                     scrollBarWidth = scrollBar->size().width();
                     break;
                 }
@@ -1330,7 +1329,7 @@ void QS60Style::drawControl(ControlElement element, const QStyleOption *option,
 
             int rightValue = widget ? widget->contentsRect().right() : 0;
 
-            if (isVisible)
+            if (isScrollBarVisible)
                 rightValue -= scrollBarWidth;
 
             if (voptAdj.rect.right() > rightValue)
@@ -1338,40 +1337,40 @@ void QS60Style::drawControl(ControlElement element, const QStyleOption *option,
 
             const QRect iconRect = subElementRect(SE_ItemViewItemDecoration, &voptAdj, widget);
             QRect textRect = subElementRect(SE_ItemViewItemText, &voptAdj, widget);
+            const QAbstractItemView *itemView = qobject_cast<const QAbstractItemView *>(widget);
 
             // draw themed background for table unless background brush has been defined.
             if (vopt->backgroundBrush == Qt::NoBrush) {
-                const QStyleOptionViewItemV4 *tableOption = qstyleoption_cast<const QStyleOptionViewItemV4 *>(option);
-                const QTableView *table = qobject_cast<const QTableView *>(widget);
-                if (table && tableOption) {
-                    const QModelIndex index = tableOption->index;
+                if (itemView) {
+                    const QModelIndex index = vopt->index;
                     //todo: Draw cell background only once - for the first cell.
                     QStyleOptionViewItemV4 voptAdj2 = voptAdj;
-                    const QModelIndex indexFirst = table->model()->index(0,0);
-                    const QModelIndex indexLast = table->model()->index(
-                        table->model()->rowCount()-1,table->model()->columnCount()-1);
-                    if (table->viewport())
-                        voptAdj2.rect = QRect( table->visualRect(indexFirst).topLeft(),
-                            table->visualRect(indexLast).bottomRight()).intersect(table->viewport()->rect());
-                    drawPrimitive(PE_PanelItemViewItem, &voptAdj2, painter, widget);
+                    const QModelIndex indexFirst = itemView->model()->index(0,0);
+                    const QModelIndex indexLast = itemView->model()->index(
+                            itemView->model()->rowCount()-1,itemView->model()->columnCount()-1);
+                    if (itemView->viewport())
+                        voptAdj2.rect = QRect( itemView->visualRect(indexFirst).topLeft(),
+                                itemView->visualRect(indexLast).bottomRight()).intersect(itemView->viewport()->rect());
+                    drawPrimitive(PE_PanelItemViewItem, &voptAdj, painter, widget);
                 }
-            } else { QCommonStyle::drawPrimitive(PE_PanelItemViewItem, option, painter, widget);}
+            } else { QCommonStyle::drawPrimitive(PE_PanelItemViewItem, &voptAdj, painter, widget);}
 
             // draw the focus rect
             if (isSelected) {
                 QRect highlightRect = option->rect.adjusted(1,1,-1,-1);
-                const QAbstractItemView *view = qobject_cast<const QAbstractItemView *>(widget);
-                if (view && view->selectionBehavior() != QAbstractItemView::SelectItems) {
+                QAbstractItemView::SelectionBehavior selectionBehavior =
+                    itemView ? itemView->selectionBehavior() : QAbstractItemView::SelectItems;
+                if (selectionBehavior != QAbstractItemView::SelectItems) {
                     // set highlight rect so that it is continuous from cell to cell, yet sligthly
                     // smaller than cell rect
                     int xBeginning = 0, yBeginning = 0, xEnd = 0, yEnd = 0;
-                    if (view->selectionBehavior() == QAbstractItemView::SelectRows) {
+                    if (selectionBehavior == QAbstractItemView::SelectRows) {
                         yBeginning = 1; yEnd = -1;
                         if (vopt->viewItemPosition == QStyleOptionViewItemV4::Beginning)
                             xBeginning = 1;
                         else if (vopt->viewItemPosition == QStyleOptionViewItemV4::End)
                             xEnd = -1;
-                    } else if (view->selectionBehavior() == QAbstractItemView::SelectColumns) {
+                    } else if (selectionBehavior == QAbstractItemView::SelectColumns) {
                         xBeginning = 1; xEnd = -1;
                         if (vopt->viewItemPosition == QStyleOptionViewItemV4::Beginning)
                             yBeginning = 1;
@@ -1380,7 +1379,9 @@ void QS60Style::drawControl(ControlElement element, const QStyleOption *option,
                     }
                     highlightRect = option->rect.adjusted(xBeginning, yBeginning, xEnd, yEnd);
                 }
-                QS60StylePrivate::drawSkinElement(QS60StylePrivate::SE_ListHighlight, painter, highlightRect, flags);
+                if (vopt->showDecorationSelected &&
+                    (vopt->palette.highlight().color() == d->themePalette()->highlight().color()))
+                    QS60StylePrivate::drawSkinElement(QS60StylePrivate::SE_ListHighlight, painter, highlightRect, flags);
             }
 
              // draw the icon
@@ -1389,48 +1390,44 @@ void QS60Style::drawControl(ControlElement element, const QStyleOption *option,
              voptAdj.icon.paint(painter, iconRect, voptAdj.decorationAlignment, mode, state);
 
              // Draw selection check mark. Show check mark only in multi selection modes.
-             if (const QListView *listView = (qobject_cast<const QListView *>(widget))) {
+             if (itemView) {
                  const bool singleSelection =
-                     listView &&
-                     (listView->selectionMode() == QAbstractItemView::SingleSelection ||
-                     listView->selectionMode() == QAbstractItemView::NoSelection);
+                     (itemView->selectionMode() == QAbstractItemView::SingleSelection ||
+                      itemView->selectionMode() == QAbstractItemView::NoSelection);
                  const QRect selectionRect = subElementRect(SE_ItemViewItemCheckIndicator, &voptAdj, widget);
+
+                 QStyleOptionViewItemV4 checkMarkOption(voptAdj);
+                 // Draw selection mark.
                  if (voptAdj.state & QStyle::State_Selected && !singleSelection) {
-                     QStyleOptionViewItemV4 option(voptAdj);
-                     option.rect = selectionRect;
-                     // Draw selection mark.
-                     drawPrimitive(QStyle::PE_IndicatorViewItemCheck, &option, painter, widget);
+                     checkMarkOption.rect = selectionRect;
+                     drawPrimitive(QStyle::PE_IndicatorViewItemCheck, &checkMarkOption, painter, widget);
                      if ( textRect.right() > selectionRect.left() )
                          textRect.setRight(selectionRect.left());
                  } else if (singleSelection &&
-                     voptAdj.features & QStyleOptionViewItemV2::HasCheckIndicator) {
-                     // draw the check mark
-                     if (selectionRect.isValid()) {
-                         QStyleOptionViewItemV4 option(*vopt);
-                         option.rect = selectionRect;
-                         option.state = option.state & ~QStyle::State_HasFocus;
-
-                         switch (vopt->checkState) {
-                         case Qt::Unchecked:
-                             option.state |= QStyle::State_Off;
-                             break;
-                         case Qt::PartiallyChecked:
-                             option.state |= QStyle::State_NoChange;
-                             break;
-                         case Qt::Checked:
-                             option.state |= QStyle::State_On;
-                             break;
-                         }
-                         drawPrimitive(QStyle::PE_IndicatorViewItemCheck, &option, painter, widget);
+                     voptAdj.features & QStyleOptionViewItemV2::HasCheckIndicator &&
+                     selectionRect.isValid()) {
+                     checkMarkOption.rect = selectionRect;
+                     checkMarkOption.state = checkMarkOption.state & ~QStyle::State_HasFocus;
+
+                     switch (vopt->checkState) {
+                     case Qt::Unchecked:
+                         checkMarkOption.state |= QStyle::State_Off;
+                         break;
+                     case Qt::PartiallyChecked:
+                         checkMarkOption.state |= QStyle::State_NoChange;
+                         break;
+                     case Qt::Checked:
+                         checkMarkOption.state |= QStyle::State_On;
+                         break;
                      }
+                     drawPrimitive(QStyle::PE_IndicatorViewItemCheck, &checkMarkOption, painter, widget);
                  }
              }
 
              // draw the text
             if (!voptAdj.text.isEmpty()) {
-                const QStyleOptionViewItemV4 *tableOption = qstyleoption_cast<const QStyleOptionViewItemV4 *>(option);
                 if (isSelected) {
-                    if (qobject_cast<const QTableView *>(widget) && tableOption)
+                    if (qobject_cast<const QTableView *>(widget))
                         voptAdj.palette.setColor(
                             QPalette::Text, QS60StylePrivate::s60Color(QS60StyleEnums::CL_QsnTextColors, 11, 0));
                     else
@@ -1723,8 +1720,11 @@ void QS60Style::drawControl(ControlElement element, const QStyleOption *option,
                 // direction is set to north (and south when in RightToLeft)
                 const QS60StylePrivate::SkinElementFlag arrowDirection = (arrowOptions.direction == Qt::LeftToRight) ?
                     QS60StylePrivate::SF_PointNorth : QS60StylePrivate::SF_PointSouth;
+                painter->save();
+                painter->setPen(option->palette.windowText().color());
                 QS60StylePrivate::drawSkinPart(QS60StyleEnums::SP_QgnIndiSubMenu, painter, arrowOptions.rect,
                     (flags | QS60StylePrivate::SF_ColorSkinned | arrowDirection));
+                painter->restore();
             }
 
             //draw text
@@ -1831,8 +1831,12 @@ void QS60Style::drawControl(ControlElement element, const QStyleOption *option,
         break;
 #endif //QT_NO_TOOLBAR
     case CE_ShapedFrame:
-        if (qobject_cast<const QTextEdit *>(widget)) {
-            QS60StylePrivate::drawSkinElement(QS60StylePrivate::SE_Editor, painter, option->rect, flags);
+        if (const QTextEdit *textEdit = qobject_cast<const QTextEdit *>(widget)) {
+            const QStyleOptionFrame *frame = qstyleoption_cast<const QStyleOptionFrame *>(option);
+            if (frame->palette.base().color()==Qt::transparent)
+                QS60StylePrivate::drawSkinElement(QS60StylePrivate::SE_Editor, painter, option->rect, flags);
+            else
+                QCommonStyle::drawControl(element, option, painter, widget);
         } else if (qobject_cast<const QTableView *>(widget)) {
             QS60StylePrivate::drawSkinElement(QS60StylePrivate::SE_TableItem, painter, option->rect, flags);
         } else if (const QHeaderView *header = qobject_cast<const QHeaderView *>(widget)) {
@@ -1897,7 +1901,7 @@ void QS60Style::drawControl(ControlElement element, const QStyleOption *option,
             painter->setBrush(d->themePalette()->light());
             painter->setRenderHint(QPainter::Antialiasing);
             const qreal roundRectRadius = 4 * goldenRatio;
-            painter->drawRoundedRect(option->rect, roundRectRadius, roundRectRadius);            
+            painter->drawRoundedRect(option->rect, roundRectRadius, roundRectRadius);
             painter->restore();
         }
         break;
@@ -1911,6 +1915,7 @@ void QS60Style::drawControl(ControlElement element, const QStyleOption *option,
 */
 void QS60Style::drawPrimitive(PrimitiveElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget) const
 {
+    Q_D(const QS60Style);
     const QS60StylePrivate::SkinElementFlags flags = (option->state & State_Enabled) ?  QS60StylePrivate::SF_StateEnabled : QS60StylePrivate::SF_StateDisabled;
     switch (element) {
 #ifndef QT_NO_LINEEDIT
@@ -1920,19 +1925,27 @@ void QS60Style::drawPrimitive(PrimitiveElement element, const QStyleOption *opti
             if (widget && qobject_cast<const QComboBox *>(widget->parentWidget()))
                 break;
 #endif
-            QS60StylePrivate::drawSkinElement(QS60StylePrivate::SE_FrameLineEdit,
-                painter, option->rect, flags);
+            QBrush editBrush = option->palette.brush(QPalette::Base);
+            if (editBrush.color() == Qt::transparent)
+                QS60StylePrivate::drawSkinElement(QS60StylePrivate::SE_FrameLineEdit,
+                        painter, option->rect, flags);
+            else
+                QCommonStyle::drawPrimitive(element, option, painter, widget);
         }
     break;
 #endif // QT_NO_LINEEDIT
     case PE_IndicatorCheckBox:
         {
-            const QRect indicatorRect = option->rect;
             // Draw checkbox indicator as color skinned graphics.
             const QS60StyleEnums::SkinParts skinPart = (option->state & QStyle::State_On) ?
                 QS60StyleEnums::SP_QgnIndiCheckboxOn : QS60StyleEnums::SP_QgnIndiCheckboxOff;
-            QS60StylePrivate::drawSkinPart(skinPart, painter, indicatorRect,
-                (flags | QS60StylePrivate::SF_ColorSkinned));
+            painter->save();
+            QColor themeColor = d->s60Color(QS60StyleEnums::CL_QsnIconColors, 13, option);
+            QColor buttonTextColor = option->palette.buttonText().color();
+            if (themeColor != buttonTextColor)
+                painter->setPen(buttonTextColor);
+            QS60StylePrivate::drawSkinPart(skinPart, painter, option->rect, flags | QS60StylePrivate::SF_ColorSkinned );
+            painter->restore();
         }
         break;
     case PE_IndicatorViewItemCheck:
@@ -1972,21 +1985,33 @@ void QS60Style::drawPrimitive(PrimitiveElement element, const QStyleOption *opti
             const int newY = (buttonRect.bottomRight().y() - option->rect.bottomRight().y()) >> 1 ;
             buttonRect.adjust(0,-newY,0,-newY);
 
+            painter->save();
+            QColor themeColor = d->s60Color(QS60StyleEnums::CL_QsnIconColors, 13, option);
+            QColor buttonTextColor = option->palette.buttonText().color();
+            if (themeColor != buttonTextColor)
+                painter->setPen(buttonTextColor);
+
             // Draw radiobutton indicator as color skinned graphics.
             QS60StyleEnums::SkinParts skinPart = (option->state & QStyle::State_On) ?
                 QS60StyleEnums::SP_QgnIndiRadiobuttOn : QS60StyleEnums::SP_QgnIndiRadiobuttOff;
             QS60StylePrivate::drawSkinPart(skinPart, painter, buttonRect,
                 (flags | QS60StylePrivate::SF_ColorSkinned));
+            painter->restore();
         }
         break;
     case PE_PanelButtonCommand:
     case PE_PanelButtonTool:
     case PE_PanelButtonBevel:
     case PE_FrameButtonBevel: {
-        const bool isPressed = option->state & QStyle::State_Sunken;
-        const QS60StylePrivate::SkinElements skinElement =
-            isPressed ? QS60StylePrivate::SE_ButtonPressed : QS60StylePrivate::SE_ButtonNormal;
-        QS60StylePrivate::drawSkinElement(skinElement, painter, option->rect, flags);
+        QBrush editBrush = option->palette.brush(QPalette::Base);
+        if (editBrush.color() == Qt::transparent) {
+            const bool isPressed = option->state & QStyle::State_Sunken;
+            const QS60StylePrivate::SkinElements skinElement =
+                isPressed ? QS60StylePrivate::SE_ButtonPressed : QS60StylePrivate::SE_ButtonNormal;
+            QS60StylePrivate::drawSkinElement(skinElement, painter, option->rect, flags);
+        } else {
+            QCommonStyle::drawPrimitive(element, option, painter, widget);
+            }
         }
         break;
 #ifndef QT_NO_TOOLBUTTON
@@ -2013,21 +2038,29 @@ void QS60Style::drawPrimitive(PrimitiveElement element, const QStyleOption *opti
     case PE_IndicatorSpinUp:
         if (const QStyleOptionSpinBox *spinBox = qstyleoption_cast<const QStyleOptionSpinBox *>(option)) {
             QStyleOptionSpinBox optionSpinBox = *spinBox;
-            const QS60StyleEnums::SkinParts part = (element == PE_IndicatorSpinUp) ?
-                QS60StyleEnums::SP_QgnGrafScrollArrowUp :
-                QS60StyleEnums::SP_QgnGrafScrollArrowDown;
-            const int adjustment = qMin(optionSpinBox.rect.width(), optionSpinBox.rect.height())/6;
-            optionSpinBox.rect.translate(0, (element == PE_IndicatorSpinDown) ? adjustment : -adjustment );
-            QS60StylePrivate::drawSkinPart(part, painter, optionSpinBox.rect,flags);
+            if (optionSpinBox.palette.base().color()==Qt::transparent) {
+                const QS60StyleEnums::SkinParts part = (element == PE_IndicatorSpinUp) ?
+                    QS60StyleEnums::SP_QgnGrafScrollArrowUp :
+                    QS60StyleEnums::SP_QgnGrafScrollArrowDown;
+                const int adjustment = qMin(optionSpinBox.rect.width(), optionSpinBox.rect.height())/6;
+                optionSpinBox.rect.translate(0, (element == PE_IndicatorSpinDown) ? adjustment : -adjustment );
+                QS60StylePrivate::drawSkinPart(part, painter, optionSpinBox.rect,flags);
+            } else {
+                QCommonStyle::drawPrimitive(element, &optionSpinBox, painter, widget);
+            }
         }
 #ifndef QT_NO_COMBOBOX
         else if (const QStyleOptionFrame *cmb = qstyleoption_cast<const QStyleOptionFrame *>(option)) {
-            // We want to draw down arrow here for comboboxes as well.
-            const QS60StyleEnums::SkinParts part = QS60StyleEnums::SP_QgnGrafScrollArrowDown;
-            QStyleOptionFrame comboBox = *cmb;
-            const int adjustment = qMin(comboBox.rect.width(), comboBox.rect.height())/6;
-            comboBox.rect.translate(0, (element == PE_IndicatorSpinDown) ? adjustment : -adjustment );
-            QS60StylePrivate::drawSkinPart(part, painter, comboBox.rect,flags);
+            if (cmb->palette.base().color()==Qt::transparent) {
+                // We want to draw down arrow here for comboboxes as well.
+                const QS60StyleEnums::SkinParts part = QS60StyleEnums::SP_QgnGrafScrollArrowDown;
+                QStyleOptionFrame comboBox = *cmb;
+                const int adjustment = qMin(comboBox.rect.width(), comboBox.rect.height())/6;
+                comboBox.rect.translate(0, (element == PE_IndicatorSpinDown) ? adjustment : -adjustment );
+                QS60StylePrivate::drawSkinPart(part, painter, comboBox.rect,flags);
+            } else {
+                QCommonStyle::drawPrimitive(element, cmb, painter, widget);
+            }
         }
 #endif //QT_NO_COMBOBOX
         break;
@@ -2057,8 +2090,12 @@ void QS60Style::drawPrimitive(PrimitiveElement element, const QStyleOption *opti
             || qobject_cast<const QMenu *> (widget)
 #endif //QT_NO_MENU
             ) {
-            QS60StylePrivate::SkinElements skinElement = QS60StylePrivate::SE_OptionsMenu;
-            QS60StylePrivate::drawSkinElement(skinElement, painter, option->rect, flags);
+                if (option->palette.base().color()==Qt::transparent) {
+                    QS60StylePrivate::SkinElements skinElement = QS60StylePrivate::SE_OptionsMenu;
+                    QS60StylePrivate::drawSkinElement(skinElement, painter, option->rect, flags);
+                } else {
+                    QCommonStyle::drawPrimitive(element, option, painter, widget);
+                }
         }
         break;
     case PE_FrameWindow:
@@ -2145,7 +2182,7 @@ void QS60Style::drawPrimitive(PrimitiveElement element, const QStyleOption *opti
                 drawSkinPart = true;
             }
 
-            if ( drawSkinPart )
+            if (drawSkinPart)
                 QS60StylePrivate::drawSkinPart(skinPart, painter, option->rect, flags);
 
             if (option->state & State_Children) {
@@ -2890,7 +2927,7 @@ QIcon QS60Style::standardIconImplementation(StandardPixmap standardIcon,
             return QCommonStyle::standardIconImplementation(standardIcon, option, widget);
     }
     const QS60StylePrivate::SkinElementFlags flags = adjustedFlags;
-    const QPixmap cachedPixMap(QS60StylePrivate::cachedPart(part, iconSize.size(), flags));
+    const QPixmap cachedPixMap(QS60StylePrivate::cachedPart(part, iconSize.size(), 0, flags));
     return cachedPixMap.isNull() ?
         QCommonStyle::standardIconImplementation(standardIcon, option, widget) : QIcon(cachedPixMap);
 }
diff --git a/src/gui/styles/qs60style_p.h b/src/gui/styles/qs60style_p.h
index 8e53eee..54af757 100644
--- a/src/gui/styles/qs60style_p.h
+++ b/src/gui/styles/qs60style_p.h
@@ -372,7 +372,7 @@ public:
 
         SF_StateEnabled =     0x0010, // Enabled = the default
         SF_StateDisabled =    0x0020,
-        SF_ColorSkinned =     0x0040,
+        SF_ColorSkinned =     0x0040, // pixmap is colored with foreground pen color
     };
 
     enum CacheClearReason {
@@ -472,7 +472,7 @@ private:
         const QRect &rect, SkinElementFlags flags = KDefaultSkinElementFlags);
 
     static QPixmap cachedPart(QS60StyleEnums::SkinParts part, const QSize &size,
-        SkinElementFlags flags = KDefaultSkinElementFlags);
+        QPainter *painter, SkinElementFlags flags = KDefaultSkinElementFlags);
     static QPixmap cachedFrame(SkinFrameElements frame, const QSize &size,
         SkinElementFlags flags = KDefaultSkinElementFlags);
 
@@ -489,7 +489,7 @@ private:
     static QSize partSize(QS60StyleEnums::SkinParts part,
         SkinElementFlags flags = KDefaultSkinElementFlags);
     static QPixmap part(QS60StyleEnums::SkinParts part, const QSize &size,
-        SkinElementFlags flags = KDefaultSkinElementFlags);
+        QPainter *painter, SkinElementFlags flags = KDefaultSkinElementFlags);
 
     static QFont s60Font_specific(QS60StyleEnums::FontCategories fontCategory, int pointSize);
 
diff --git a/src/gui/styles/qs60style_s60.cpp b/src/gui/styles/qs60style_s60.cpp
index 9765066..678844c 100644
--- a/src/gui/styles/qs60style_s60.cpp
+++ b/src/gui/styles/qs60style_s60.cpp
@@ -99,7 +99,7 @@ public:
         const QSize &size, QS60StylePrivate::SkinElementFlags flags);
     static QPixmap skinnedGraphics(QS60StylePrivate::SkinFrameElements frameElement, const QSize &size, QS60StylePrivate::SkinElementFlags flags);
     static QPixmap colorSkinnedGraphics(const QS60StyleEnums::SkinParts &stylepart,
-        const QSize &size, QS60StylePrivate::SkinElementFlags flags);
+        const QSize &size, QPainter *painter, QS60StylePrivate::SkinElementFlags flags);
     static QColor colorValue(const TAknsItemID &colorGroup, int colorIndex);
     static QPixmap fromFbsBitmap(CFbsBitmap *icon, CFbsBitmap *mask, QS60StylePrivate::SkinElementFlags flags, QImage::Format format);
     static bool disabledPartGraphic(QS60StyleEnums::SkinParts &part);
@@ -112,14 +112,12 @@ private:
         const QSize &size, QS60StylePrivate::SkinElementFlags flags);
     static QPixmap createSkinnedGraphicsLX(QS60StylePrivate::SkinFrameElements frameElement, const QSize &size, QS60StylePrivate::SkinElementFlags flags);
     static QPixmap colorSkinnedGraphicsLX(const QS60StyleEnums::SkinParts &stylepart,
-        const QSize &size, QS60StylePrivate::SkinElementFlags flags);
+        const QSize &size, QPainter *painter, QS60StylePrivate::SkinElementFlags flags);
     static void frameIdAndCenterId(QS60StylePrivate::SkinFrameElements frameElement, TAknsItemID &frameId, TAknsItemID &centerId);
     static TRect innerRectFromElement(QS60StylePrivate::SkinFrameElements frameElement, const TRect &outerRect);
     static void checkAndUnCompressBitmapL(CFbsBitmap*& aOriginalBitmap);
     static void checkAndUnCompressBitmap(CFbsBitmap*& aOriginalBitmap);
     static void unCompressBitmapL(const TRect& aTrgRect, CFbsBitmap* aTrgBitmap, CFbsBitmap* aSrcBitmap);
-    static void colorGroupAndIndex(QS60StyleEnums::SkinParts skinID,
-        TAknsItemID &colorGroup, int &colorIndex);
     static void fallbackInfo(const QS60StyleEnums::SkinParts &stylepart, TDes& fallbackFileName, TInt& fallbackIndex);
     static bool checkSupport(const int supportedRelease);
     static TAknsItemID checkAndUpdateReleaseSpecificGraphics(int part);
@@ -361,11 +359,11 @@ QPixmap QS60StyleModeSpecifics::skinnedGraphics(
 }
 
 QPixmap QS60StyleModeSpecifics::colorSkinnedGraphics(
-    const QS60StyleEnums::SkinParts &stylepart,
-    const QSize &size, QS60StylePrivate::SkinElementFlags flags)
+    const QS60StyleEnums::SkinParts &stylepart, const QSize &size, QPainter *painter, 
+    QS60StylePrivate::SkinElementFlags flags)
 {
     QPixmap colorGraphics;
-    TRAPD(error, QT_TRYCATCH_LEAVING(colorGraphics = colorSkinnedGraphicsLX(stylepart, size, flags)));
+    TRAPD(error, QT_TRYCATCH_LEAVING(colorGraphics = colorSkinnedGraphicsLX(stylepart, size, painter, flags)));
     return error ? QPixmap() : colorGraphics;
 }
 
@@ -525,7 +523,7 @@ void QS60StyleModeSpecifics::fallbackInfo(const QS60StyleEnums::SkinParts &style
 
 QPixmap QS60StyleModeSpecifics::colorSkinnedGraphicsLX(
     const QS60StyleEnums::SkinParts &stylepart,
-    const QSize &size, QS60StylePrivate::SkinElementFlags flags)
+    const QSize &size, QPainter *painter, QS60StylePrivate::SkinElementFlags flags)
 {
     // this function can throw both exceptions and leaves. There are no cleanup dependencies between Qt and Symbian parts.
     const int stylepartIndex = (int)stylepart;
@@ -537,8 +535,13 @@ QPixmap QS60StyleModeSpecifics::colorSkinnedGraphicsLX(
     fallbackInfo(stylepart, fileNamePtr, fallbackGraphicID);
 
     TAknsItemID colorGroup = KAknsIIDQsnIconColors;
-    int colorIndex = 0;
-    colorGroupAndIndex(stylepart, colorGroup, colorIndex);
+    TRgb defaultColor = KRgbBlack;
+    int colorIndex = -1; //set a bogus value to color index to ensure that painter color is used
+                         //to color the icon
+    if (painter) {
+        QRgb widgetColor = painter->pen().color().rgb();
+        defaultColor = TRgb(qRed(widgetColor), qGreen(widgetColor), qBlue(widgetColor));
+    }
 
     const bool rotatedBy90or270 =
         (flags & (QS60StylePrivate::SF_PointEast | QS60StylePrivate::SF_PointWest));
@@ -550,7 +553,7 @@ QPixmap QS60StyleModeSpecifics::colorSkinnedGraphicsLX(
         fallbackGraphicID == KErrNotFound?KErrNotFound:fallbackGraphicID+1; //masks are auto-generated as next in mif files
     MAknsSkinInstance* skinInstance = AknsUtils::SkinInstance();
     AknsUtils::CreateColorIconLC(
-        skinInstance, skinId, colorGroup, colorIndex, icon, iconMask, fileNamePtr, fallbackGraphicID , fallbackGraphicsMaskID, KRgbBlack);
+        skinInstance, skinId, colorGroup, colorIndex, icon, iconMask, fileNamePtr, fallbackGraphicID , fallbackGraphicsMaskID, defaultColor);
     User::LeaveIfError(AknIconUtils::SetSize(icon, targetSize, EAspectRatioNotPreserved));
     User::LeaveIfError(AknIconUtils::SetSize(iconMask, targetSize, EAspectRatioNotPreserved));
     QPixmap result = fromFbsBitmap(icon, iconMask, flags, qt_TDisplayMode2Format(icon->DisplayMode()));
@@ -652,8 +655,8 @@ QPoint qt_s60_fill_background_offset(const QWidget *targetWidget)
 }
 
 QPixmap QS60StyleModeSpecifics::createSkinnedGraphicsLX(
-    QS60StyleEnums::SkinParts part,
-    const QSize &size, QS60StylePrivate::SkinElementFlags flags)
+    QS60StyleEnums::SkinParts part, const QSize &size, 
+    QS60StylePrivate::SkinElementFlags flags)
 {
     // this function can throw both exceptions and leaves. There are no cleanup dependencies between Qt and Symbian parts.
     if (!size.isValid())
@@ -700,13 +703,13 @@ QPixmap QS60StyleModeSpecifics::createSkinnedGraphicsLX(
             CleanupStack::PushL(background);
             User::LeaveIfError(background->Create(targetSize, EColor16MA));
 
-            CFbsBitmapDevice* dev = CFbsBitmapDevice::NewL(background);
+            CFbsBitmapDevice *dev = CFbsBitmapDevice::NewL(background);
             CleanupStack::PushL(dev);
-            CFbsBitGc* gc = NULL;
+            CFbsBitGc *gc = NULL;
             User::LeaveIfError(dev->CreateContext(gc));
             CleanupStack::PushL(gc);
 
-            CAknsBasicBackgroundControlContext* bgContext = CAknsBasicBackgroundControlContext::NewL(
+            CAknsBasicBackgroundControlContext *bgContext = CAknsBasicBackgroundControlContext::NewL(
                 skinId,
                 targetSize,
                 EFalse);
@@ -1145,12 +1148,12 @@ QPixmap QS60StyleModeSpecifics::generateMissingThemeGraphic(QS60StyleEnums::Skin
 }
 
 QPixmap QS60StylePrivate::part(QS60StyleEnums::SkinParts part,
-    const QSize &size, SkinElementFlags flags)
+    const QSize &size, QPainter *painter, SkinElementFlags flags)
 {
     QSymbianFbsHeapLock lock(QSymbianFbsHeapLock::Unlock);
 
     QPixmap result = (flags & SF_ColorSkinned)?
-          QS60StyleModeSpecifics::colorSkinnedGraphics(part, size, flags)
+          QS60StyleModeSpecifics::colorSkinnedGraphics(part, size, painter, flags)
         : QS60StyleModeSpecifics::skinnedGraphics(part, size, flags);
 
     lock.relock();
@@ -1189,7 +1192,7 @@ QPixmap QS60StylePrivate::backgroundTexture()
 {
     if (!m_background) {
         QPixmap background = part(QS60StyleEnums::SP_QsnBgScreen,
-                QSize(S60->screenWidthInPixels, S60->screenHeightInPixels), SkinElementFlags());
+                QSize(S60->screenWidthInPixels, S60->screenHeightInPixels), 0, SkinElementFlags());
         m_background = new QPixmap(background);
     }
     return *m_background;
@@ -1343,26 +1346,6 @@ QSize QS60StylePrivate::screenSize()
     return QSize(screenSize.iWidth, screenSize.iHeight);
 }
 
-void QS60StyleModeSpecifics::colorGroupAndIndex(
-    QS60StyleEnums::SkinParts skinID, TAknsItemID &colorGroup, int &colorIndex)
-{
-    switch(skinID) {
-        case QS60StyleEnums::SP_QgnIndiSubMenu:
-            colorGroup = KAknsIIDQsnIconColors;
-            colorIndex = EAknsCIQsnIconColorsCG1;
-            break;
-        case QS60StyleEnums::SP_QgnIndiRadiobuttOff:
-        case QS60StyleEnums::SP_QgnIndiRadiobuttOn:
-        case QS60StyleEnums::SP_QgnIndiCheckboxOff:
-        case QS60StyleEnums::SP_QgnIndiCheckboxOn:
-            colorGroup = KAknsIIDQsnIconColors;
-            colorIndex = EAknsCIQsnIconColorsCG14;
-            break;
-        default:
-            break;
-    }
-}
-
 QS60Style::QS60Style()
     : QCommonStyle(*new QS60StylePrivate)
 {
diff --git a/src/gui/styles/qs60style_simulated.cpp b/src/gui/styles/qs60style_simulated.cpp
index 8a2616d..14f0424 100644
--- a/src/gui/styles/qs60style_simulated.cpp
+++ b/src/gui/styles/qs60style_simulated.cpp
@@ -189,8 +189,10 @@ QColor QS60StylePrivate::s60Color(QS60StyleEnums::ColorLists list,
 }
 
 QPixmap QS60StylePrivate::part(QS60StyleEnums::SkinParts part, const QSize &size,
-                               QS60StylePrivate::SkinElementFlags flags)
+                               QPainter *painter, QS60StylePrivate::SkinElementFlags flags)
 {
+    Q_UNUSED(painter);
+
     const QString partKey = QS60Style::partKeys().at(part);
     const QPicture partPicture = QS60StyleModeSpecifics::m_partPictures.value(partKey);
     QSize partSize(partPicture.boundingRect().size());
-- 
cgit v0.12


From 7a6296197cdab656053fbf1fc2584707e78cbe54 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=B8rgen=20Lind?= <jorgen.lind@nokia.com>
Date: Thu, 8 Oct 2009 12:57:20 +0200
Subject: Make QT_NO_PHONON_PLATFORMPLUGIN work

Reviewed-by:tom
---
 src/3rdparty/phonon/phonon/factory.cpp | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/src/3rdparty/phonon/phonon/factory.cpp b/src/3rdparty/phonon/phonon/factory.cpp
index 5c3752a..e5adb490 100644
--- a/src/3rdparty/phonon/phonon/factory.cpp
+++ b/src/3rdparty/phonon/phonon/factory.cpp
@@ -189,11 +189,12 @@ bool FactoryPrivate::createBackend()
 }
 
 FactoryPrivate::FactoryPrivate()
+    :
 #ifndef QT_NO_PHONON_PLATFORMPLUGIN
-    : m_platformPlugin(0),
-    m_noPlatformPlugin(false)
+    m_platformPlugin(0),
+    m_noPlatformPlugin(false),
 #endif //QT_NO_PHONON_PLATFORMPLUGIN
-    , m_backendObject(0)
+    m_backendObject(0)
 {
     // Add the post routine to make sure that all other global statics (especially the ones from Qt)
     // are still available. If the FactoryPrivate dtor is called too late many bad things can happen
-- 
cgit v0.12


From 5c4ed2858f31d6b3adcf5200c3a64fbf188a3f4d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=B8rgen=20Lind?= <jorgen.lind@nokia.com>
Date: Fri, 9 Oct 2009 11:20:32 +0200
Subject: Fix QFeature QT_NO_PHONON_VOLUMEFADEREFFECT

Reviewed-by: Jens Bache-Wiig
---
 src/3rdparty/phonon/gstreamer/backend.cpp           | 4 ++++
 src/3rdparty/phonon/gstreamer/volumefadereffect.cpp | 4 ++--
 src/3rdparty/phonon/gstreamer/volumefadereffect.h   | 4 ++--
 3 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/src/3rdparty/phonon/gstreamer/backend.cpp b/src/3rdparty/phonon/gstreamer/backend.cpp
index cd49454..ceaf94a 100644
--- a/src/3rdparty/phonon/gstreamer/backend.cpp
+++ b/src/3rdparty/phonon/gstreamer/backend.cpp
@@ -134,7 +134,11 @@ QObject *Backend::createObject(BackendInterface::Class c, QObject *parent, const
         }
 
     case VolumeFaderEffectClass:
+#ifndef QT_NO_PHONON_VOLUMEFADEREFFECT
         return new VolumeFaderEffect(this, parent);
+#else
+        return 0;
+#endif //QT_NO_PHONON_VOLUMEFADEREFFECT
 
     case VisualizationClass:  //Fall through
     default:
diff --git a/src/3rdparty/phonon/gstreamer/volumefadereffect.cpp b/src/3rdparty/phonon/gstreamer/volumefadereffect.cpp
index d7ee11b..bf0d646 100644
--- a/src/3rdparty/phonon/gstreamer/volumefadereffect.cpp
+++ b/src/3rdparty/phonon/gstreamer/volumefadereffect.cpp
@@ -21,11 +21,11 @@
 
 QT_BEGIN_NAMESPACE
 
+#ifndef QT_NO_PHONON_VOLUMEFADEREFFECT
 namespace Phonon
 {
 namespace Gstreamer
 {
-
 VolumeFaderEffect::VolumeFaderEffect(Backend *backend, QObject *parent) 
     : Effect(backend, parent, AudioSource | AudioSink)
     , m_fadeCurve(Phonon::VolumeFaderEffect::Fade3Decibel)
@@ -156,7 +156,7 @@ bool VolumeFaderEffect::event(QEvent *event)
 }
 
 }} //namespace Phonon::Gstreamer
-
+#endif //QT_NO_PHONON_VOLUMEFADEREFFECT
 QT_END_NAMESPACE
 
 #include "moc_volumefadereffect.cpp"
diff --git a/src/3rdparty/phonon/gstreamer/volumefadereffect.h b/src/3rdparty/phonon/gstreamer/volumefadereffect.h
index d74014c..748d2d6 100644
--- a/src/3rdparty/phonon/gstreamer/volumefadereffect.h
+++ b/src/3rdparty/phonon/gstreamer/volumefadereffect.h
@@ -30,7 +30,7 @@
 #include <gst/gst.h>
 
 QT_BEGIN_NAMESPACE
-
+#ifndef QT_NO_PHONON_VOLUMEFADEREFFECT
 namespace Phonon
 {
 namespace Gstreamer
@@ -64,7 +64,7 @@ namespace Gstreamer
             QTime m_fadeStartTime;
     };
 }} //namespace Phonon::Gstreamer
-
+#endif //QT_NO_PHONON_VOLUMEFADEREFFECT
 QT_END_NAMESPACE
 
 #endif // Phonon_GSTREAMER_VOLUMEFADEREFFECT_H
-- 
cgit v0.12


From a7a70ad81a9a1f3cba5fca66c232e7d8560a2850 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=B8rgen=20Lind?= <jorgen.lind@nokia.com>
Date: Fri, 9 Oct 2009 11:21:51 +0200
Subject: Fix QT_NO_IMAGEFORMAT_PNG

Reviewed-by: tom
---
 src/gui/styles/qcommonstyle.cpp | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/src/gui/styles/qcommonstyle.cpp b/src/gui/styles/qcommonstyle.cpp
index 70d130a..b08dc4b 100644
--- a/src/gui/styles/qcommonstyle.cpp
+++ b/src/gui/styles/qcommonstyle.cpp
@@ -5169,13 +5169,12 @@ int QCommonStyle::styleHint(StyleHint sh, const QStyleOption *opt, const QWidget
 QPixmap QCommonStyle::standardPixmap(StandardPixmap sp, const QStyleOption *option,
                                      const QWidget *widget) const
 {
+    const bool rtl = (option && option->direction == Qt::RightToLeft) || (!option && QApplication::isRightToLeft());
 #ifdef QT_NO_IMAGEFORMAT_PNG
-    Q_UNUSED(option);
     Q_UNUSED(widget);
     Q_UNUSED(sp);
 #else
     QPixmap pixmap;
-    const bool rtl = (option && option->direction == Qt::RightToLeft) || (!option && QApplication::isRightToLeft());
 
     if (QApplication::desktopSettingsAware() && !QIcon::themeName().isEmpty()) {
         switch (sp) {
-- 
cgit v0.12


From 86e3be13d870e8dce1e06f7cd0adeb8996fade7d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=B8rgen=20Lind?= <jorgen.lind@nokia.com>
Date: Fri, 9 Oct 2009 11:22:24 +0200
Subject: Fix dependencies to QT_NO_PRINTPREVIEWWIDGET

Reviewed-by: Trust Me
---
 src/corelib/global/qfeatures.h   | 2 +-
 src/corelib/global/qfeatures.txt | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/corelib/global/qfeatures.h b/src/corelib/global/qfeatures.h
index 36c2cf9..ab81290 100644
--- a/src/corelib/global/qfeatures.h
+++ b/src/corelib/global/qfeatures.h
@@ -767,7 +767,7 @@
 #endif
 
 // QPrintPreviewWidget
-#if !defined(QT_NO_PRINTPREVIEWWIDGET) && (defined(QT_NO_GRAPHICSVIEW) || defined(QT_NO_PRINTER))
+#if !defined(QT_NO_PRINTPREVIEWWIDGET) && (defined(QT_NO_GRAPHICSVIEW) || defined(QT_NO_PRINTER) || defined(QT_NO_TOOLBAR) || defined(QT_NO_MAINWINDOW))
 #define QT_NO_PRINTPREVIEWWIDGET
 #endif
 
diff --git a/src/corelib/global/qfeatures.txt b/src/corelib/global/qfeatures.txt
index ec47883..a0928fc 100644
--- a/src/corelib/global/qfeatures.txt
+++ b/src/corelib/global/qfeatures.txt
@@ -567,7 +567,7 @@ Feature: PRINTPREVIEWWIDGET
 Description: Provides a widget for previewing page layouts for printer output.
 a date.
 Section: Widgets
-Requires: GRAPHICSVIEW PRINTER
+Requires: GRAPHICSVIEW PRINTER TOOLBAR MAINWINDOW
 Name: QPrintPreviewWidget
 SeeAlso: ???
 
-- 
cgit v0.12


From 854df9c08635fd175f6658e66320d8fa2360389a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=B8rgen=20Lind?= <jorgen.lind@nokia.com>
Date: Fri, 9 Oct 2009 15:51:57 +0200
Subject: The PRINTER feature now depends on TEMPORARYFILE

Reviewed-by: Trust Me
---
 src/corelib/global/qfeatures.h   | 2 +-
 src/corelib/global/qfeatures.txt | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/corelib/global/qfeatures.h b/src/corelib/global/qfeatures.h
index ab81290..b18196e 100644
--- a/src/corelib/global/qfeatures.h
+++ b/src/corelib/global/qfeatures.h
@@ -522,7 +522,7 @@
 #endif
 
 // QPrinter
-#if !defined(QT_NO_PRINTER) && (defined(QT_NO_TEXTSTREAM) || defined(QT_NO_PICTURE))
+#if !defined(QT_NO_PRINTER) && (defined(QT_NO_TEXTSTREAM) || defined(QT_NO_PICTURE) || defined(QT_NO_TEMPORARYFILE))
 #define QT_NO_PRINTER
 #endif
 
diff --git a/src/corelib/global/qfeatures.txt b/src/corelib/global/qfeatures.txt
index a0928fc..c18df62 100644
--- a/src/corelib/global/qfeatures.txt
+++ b/src/corelib/global/qfeatures.txt
@@ -910,7 +910,7 @@ SeeAlso: ???
 Feature: PRINTER
 Description: Supports printing
 Section: Painting
-Requires: TEXTSTREAM PICTURE
+Requires: TEXTSTREAM PICTURE TEMPORARYFILE
 Name: QPrinter
 SeeAlso: ???
 
-- 
cgit v0.12


From 8c29407a7bf5af9dbcaff1ea7f24951297aa9e5c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=B8rgen=20Lind?= <jorgen.lind@nokia.com>
Date: Fri, 16 Oct 2009 10:42:56 +0200
Subject: Fix QT_NO_PHONON_ABSTRACTMEDIASTREAM in phonon

Seemed to be missing from gstreamer backend

Reviewed-by: Jens Bache-Wiig
---
 src/3rdparty/phonon/gstreamer/mediaobject.cpp  |  5 +++++
 src/3rdparty/phonon/gstreamer/phononsrc.cpp    | 28 ++++++++++++++++++++++++++
 src/3rdparty/phonon/gstreamer/phononsrc.h      |  2 ++
 src/3rdparty/phonon/gstreamer/streamreader.cpp |  3 ++-
 src/3rdparty/phonon/gstreamer/streamreader.h   |  4 ++++
 5 files changed, 41 insertions(+), 1 deletion(-)

diff --git a/src/3rdparty/phonon/gstreamer/mediaobject.cpp b/src/3rdparty/phonon/gstreamer/mediaobject.cpp
index 5dcbd42..0b800af 100644
--- a/src/3rdparty/phonon/gstreamer/mediaobject.cpp
+++ b/src/3rdparty/phonon/gstreamer/mediaobject.cpp
@@ -392,6 +392,7 @@ bool MediaObject::createPipefromURL(const QUrl &url)
  */
 bool MediaObject::createPipefromStream(const MediaSource &source)
 {
+#ifndef QT_NO_PHONON_ABSTRACTMEDIASTREAM
     // Remove any existing data source
     if (m_datasource) {
         gst_bin_remove(GST_BIN(m_pipeline), m_datasource);
@@ -413,6 +414,10 @@ bool MediaObject::createPipefromStream(const MediaSource &source)
         return false;
     }
     return true;
+#else //QT_NO_PHONON_ABSTRACTMEDIASTREAM
+    Q_UNUSED(source);
+    return false;
+#endif
 }
 
 void MediaObject::createPipeline()
diff --git a/src/3rdparty/phonon/gstreamer/phononsrc.cpp b/src/3rdparty/phonon/gstreamer/phononsrc.cpp
index f893fb5..97d7220 100644
--- a/src/3rdparty/phonon/gstreamer/phononsrc.cpp
+++ b/src/3rdparty/phonon/gstreamer/phononsrc.cpp
@@ -109,18 +109,25 @@ static void phonon_src_class_init (PhononSrcClass * klass)
 static void phonon_src_init (PhononSrc * src, PhononSrcClass * g_class)
 {
     Q_UNUSED(g_class);
+#ifndef QT_NO_PHONON_ABSTRACTMEDIASTREAM
     src->device = 0;
+#else
+    Q_UNUSED(src);
+#endif
 }
 
 static void phonon_src_finalize (GObject * object)
 {
+#ifndef QT_NO_PHONON_ABSTRACTMEDIASTREAM
     PhononSrc *src;
     src = GST_PHONON_SRC (object);
     delete src->device;
     src->device = 0;
+#endif //QT_NO_PHONON_ABSTRACTMEDIASTREAM
     G_OBJECT_CLASS (parent_class)->finalize (object);
 }
 
+#ifndef QT_NO_PHONON_ABSTRACTMEDIASTREAM
 static gboolean phonon_src_set_device(PhononSrc * src, StreamReader* device)
 {
     GstState state;
@@ -145,6 +152,7 @@ wrong_state:
         return FALSE;
     }
 }
+#endif //QT_NO_PHONON_ABSTRACTMEDIASTREAM
 
 static void phonon_src_set_property (GObject * object, guint prop_id, const GValue * value, GParamSpec * pspec)
 {
@@ -153,6 +161,7 @@ static void phonon_src_set_property (GObject * object, guint prop_id, const GVal
     src = GST_PHONON_SRC (object);
 
     switch (prop_id) {
+#ifndef QT_NO_PHONON_ABSTRACTMEDIASTREAM
     case ARG_PHONONSRC:
     {
         StreamReader *dev = (StreamReader*)(g_value_get_pointer(value));
@@ -160,6 +169,9 @@ static void phonon_src_set_property (GObject * object, guint prop_id, const GVal
             phonon_src_set_device(src, dev);
         break;
     }
+#else
+    Q_UNUSED(value);
+#endif //QT_NO_PHONON_ABSTRACTMEDIASTREAM
    default:
        G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
        break;
@@ -174,9 +186,13 @@ static void phonon_src_get_property (GObject * object, guint prop_id, GValue * v
     src = GST_PHONON_SRC (object);
 
     switch (prop_id) {
+#ifndef QT_NO_PHONON_ABSTRACTMEDIASTREAM
     case ARG_PHONONSRC:
         g_value_set_pointer(value, src->device);
         break;
+#else //QT_NO_PHONON_ABSTRACTMEDIASTREAM
+    Q_UNUSED(value);
+#endif //QT_NO_PHONON_ABSTRACTMEDIASTREAM
     default:
         G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
         break;
@@ -185,6 +201,7 @@ static void phonon_src_get_property (GObject * object, guint prop_id, GValue * v
 
 static GstFlowReturn phonon_src_create_read (PhononSrc * src, guint64 offset, guint length, GstBuffer ** buffer)
 {
+#ifndef QT_NO_PHONON_ABSTRACTMEDIASTREAM
     Q_ASSERT(src->device);
     if (!src->device)
         return GST_FLOW_ERROR;
@@ -204,6 +221,13 @@ static GstFlowReturn phonon_src_create_read (PhononSrc * src, guint64 offset, gu
 
     gst_mini_object_unref(GST_MINI_OBJECT(buf));
     return GST_FLOW_ERROR;
+#else //QT_NO_PHONON_ABSTRACTMEDIASTREAM
+    Q_UNUSED(src);
+    Q_UNUSED(offset);
+    Q_UNUSED(length);
+    Q_UNUSED(buffer);
+    return GST_FLOW_ERROR;
+#endif //QT_NO_PHONON_ABSTRACTMEDIASTREAM
 }
 
 static GstFlowReturn phonon_src_create (GstBaseSrc * basesrc, guint64 offset, guint length, GstBuffer ** buffer)
@@ -218,19 +242,23 @@ static GstFlowReturn phonon_src_create (GstBaseSrc * basesrc, guint64 offset, gu
 static gboolean phonon_src_is_seekable (GstBaseSrc * basesrc)
 {
     PhononSrc *src = GST_PHONON_SRC (basesrc);
+#ifndef QT_NO_PHONON_ABSTRACTMEDIASTREAM
     if (src->device)
         return src->device->streamSeekable();
+#endif //QT_NO_PHONON_ABSTRACTMEDIASTREAM
     return false;
 }
 
 static gboolean phonon_src_get_size (GstBaseSrc * basesrc, guint64 * size)
 {
+#ifndef QT_NO_PHONON_ABSTRACTMEDIASTREAM
     PhononSrc *src;
     src = GST_PHONON_SRC (basesrc);
     if (src->device && src->device->streamSeekable()) {
         *size = src->device->streamSize();
         return TRUE;
     }
+#endif //QT_NO_PHONON_ABSTRACTMEDIASTREAM
     *size = 0;
     return FALSE;
 }
diff --git a/src/3rdparty/phonon/gstreamer/phononsrc.h b/src/3rdparty/phonon/gstreamer/phononsrc.h
index a2cd8b3..a50f8a2 100644
--- a/src/3rdparty/phonon/gstreamer/phononsrc.h
+++ b/src/3rdparty/phonon/gstreamer/phononsrc.h
@@ -49,7 +49,9 @@ typedef struct _PhononSrcClass PhononSrcClass;
 // PhononSrc:
 struct _PhononSrc {
     GstBaseSrc element;
+#ifndef QT_NO_PHONON_ABSTRACTMEDIASTREAM
     StreamReader *device;
+#endif //QT_NO_PHONON_ABSTRACTMEDIASTREAM
 };
 
 struct _PhononSrcClass {
diff --git a/src/3rdparty/phonon/gstreamer/streamreader.cpp b/src/3rdparty/phonon/gstreamer/streamreader.cpp
index 04fa6cc..f8219e6 100644
--- a/src/3rdparty/phonon/gstreamer/streamreader.cpp
+++ b/src/3rdparty/phonon/gstreamer/streamreader.cpp
@@ -20,7 +20,7 @@ along with this library.  If not, see <http://www.gnu.org/licenses/>.
 #include <phonon/streaminterface.h>
 
 QT_BEGIN_NAMESPACE
-
+#ifndef QT_NO_PHONON_ABSTRACTMEDIASTREAM
 namespace Phonon
 {
 namespace Gstreamer
@@ -49,5 +49,6 @@ bool StreamReader::read(quint64 pos, int length, char * buffer)
 
 }
 }
+#endif //QT_NO_PHONON_ABSTRACTMEDIASTREAM
 
 QT_END_NAMESPACE
diff --git a/src/3rdparty/phonon/gstreamer/streamreader.h b/src/3rdparty/phonon/gstreamer/streamreader.h
index c2e61c8..387370c 100644
--- a/src/3rdparty/phonon/gstreamer/streamreader.h
+++ b/src/3rdparty/phonon/gstreamer/streamreader.h
@@ -23,6 +23,8 @@ along with this library.  If not, see <http://www.gnu.org/licenses/>.
 
 QT_BEGIN_NAMESPACE
 
+#ifndef QT_NO_PHONON_ABSTRACTMEDIASTREAM
+
 namespace Phonon
 {
     class MediaSource;
@@ -91,6 +93,8 @@ private:
     }
 }
 
+#endif //QT_NO_PHONON_ABSTRACTMEDIASTREAM
+
 QT_END_NAMESPACE
 
 #endif
-- 
cgit v0.12


From 1a8a4b2ce746f357a58b04a02321824f8040b3e9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=B8rgen=20Lind?= <jorgen.lind@nokia.com>
Date: Fri, 16 Oct 2009 10:44:52 +0200
Subject: Updated qfeatures.h

Reviewed-by: Trust Me
---
 src/corelib/global/qfeatures.h    | 27 ++++++++++++++-------------
 util/scripts/make_qfeatures_dot_h |  1 +
 2 files changed, 15 insertions(+), 13 deletions(-)

diff --git a/src/corelib/global/qfeatures.h b/src/corelib/global/qfeatures.h
index b18196e..d87cf64 100644
--- a/src/corelib/global/qfeatures.h
+++ b/src/corelib/global/qfeatures.h
@@ -43,6 +43,7 @@
  * All features and their dependencies.
  *
  * This list is generated from $QTDIR/src/corelib/global/qfeatures.txt
+ * by $QTSRCDIR/util/scripts/make_qfeatures_dot_h
  */
 
 // QAction
@@ -521,11 +522,6 @@
 #define QT_NO_LIBRARY
 #endif
 
-// QPrinter
-#if !defined(QT_NO_PRINTER) && (defined(QT_NO_TEXTSTREAM) || defined(QT_NO_PICTURE) || defined(QT_NO_TEMPORARYFILE))
-#define QT_NO_PRINTER
-#endif
-
 // QScrollArea
 #if !defined(QT_NO_SCROLLAREA) && (defined(QT_NO_SCROLLBAR))
 #define QT_NO_SCROLLAREA
@@ -561,6 +557,11 @@
 #define QT_NO_MDIAREA
 #endif
 
+// QPrinter
+#if !defined(QT_NO_PRINTER) && (defined(QT_NO_TEXTSTREAM) || defined(QT_NO_PICTURE) || defined(QT_NO_TEMPORARYFILE))
+#define QT_NO_PRINTER
+#endif
+
 // QSpinBox
 #if !defined(QT_NO_SPINBOX) && (defined(QT_NO_SPINWIDGET) || defined(QT_NO_LINEEDIT) || defined(QT_NO_VALIDATOR))
 #define QT_NO_SPINBOX
@@ -731,11 +732,6 @@
 #define QT_NO_COMPLETER
 #endif
 
-// Common UNIX Printing System
-#if !defined(QT_NO_CUPS) && (defined(QT_NO_PRINTER) || defined(QT_NO_LIBRARY))
-#define QT_NO_CUPS
-#endif
-
 // QDataWidgetMapper
 #if !defined(QT_NO_DATAWIDGETMAPPER) && (defined(QT_NO_ITEMVIEWS) || defined(QT_NO_PROPERTIES))
 #define QT_NO_DATAWIDGETMAPPER
@@ -766,9 +762,9 @@
 #define QT_NO_TREEWIDGET
 #endif
 
-// QPrintPreviewWidget
-#if !defined(QT_NO_PRINTPREVIEWWIDGET) && (defined(QT_NO_GRAPHICSVIEW) || defined(QT_NO_PRINTER) || defined(QT_NO_TOOLBAR) || defined(QT_NO_MAINWINDOW))
-#define QT_NO_PRINTPREVIEWWIDGET
+// Common UNIX Printing System
+#if !defined(QT_NO_CUPS) && (defined(QT_NO_PRINTER) || defined(QT_NO_LIBRARY))
+#define QT_NO_CUPS
 #endif
 
 // QToolBar
@@ -831,6 +827,11 @@
 #define QT_NO_FONTDIALOG
 #endif
 
+// QPrintPreviewWidget
+#if !defined(QT_NO_PRINTPREVIEWWIDGET) && (defined(QT_NO_GRAPHICSVIEW) || defined(QT_NO_PRINTER) || defined(QT_NO_TOOLBAR) || defined(QT_NO_MAINWINDOW))
+#define QT_NO_PRINTPREVIEWWIDGET
+#endif
+
 // QWorkSpace
 #if !defined(QT_NO_WORKSPACE) && (defined(QT_NO_SCROLLBAR) || defined(QT_NO_RESIZEHANDLER) || defined(QT_NO_MENU) || defined(QT_NO_TOOLBUTTON) || defined(QT_NO_MAINWINDOW) || defined(QT_NO_TOOLBAR) || defined(QT_NO_MENUBAR))
 #define QT_NO_WORKSPACE
diff --git a/util/scripts/make_qfeatures_dot_h b/util/scripts/make_qfeatures_dot_h
index bdd68a3..23d88a3 100755
--- a/util/scripts/make_qfeatures_dot_h
+++ b/util/scripts/make_qfeatures_dot_h
@@ -175,6 +175,7 @@ print OUT
  * All features and their dependencies.
  *
  * This list is generated from $QTDIR/src/corelib/global/qfeatures.txt
+ * by $QTSRCDIR/util/scripts/make_qfeatures_dot_h
  */
 
 ';
-- 
cgit v0.12


From 5c4130a509248e897d52e4980cc8d58f0940d76c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=B8rgen=20Lind?= <jorgen.lind@nokia.com>
Date: Fri, 16 Oct 2009 11:42:00 +0200
Subject: Added QT_NO_PHONON_EFFECT to gstreamer backend

Reviewed-by: Jens Bache-Wiig
---
 src/3rdparty/phonon/gstreamer/audioeffect.cpp | 3 ++-
 src/3rdparty/phonon/gstreamer/audioeffect.h   | 4 ++--
 src/3rdparty/phonon/gstreamer/backend.cpp     | 3 ++-
 src/3rdparty/phonon/gstreamer/effect.cpp      | 4 ++--
 src/3rdparty/phonon/gstreamer/effect.h        | 4 ++--
 5 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/src/3rdparty/phonon/gstreamer/audioeffect.cpp b/src/3rdparty/phonon/gstreamer/audioeffect.cpp
index db72c8b..d3d7a35 100644
--- a/src/3rdparty/phonon/gstreamer/audioeffect.cpp
+++ b/src/3rdparty/phonon/gstreamer/audioeffect.cpp
@@ -23,7 +23,7 @@
 #include "gsthelper.h"
 
 #include <gst/gst.h>
-
+#ifndef QT_NO_PHONON_EFFECT
 QT_BEGIN_NAMESPACE
 
 namespace Phonon
@@ -75,4 +75,5 @@ GstElement* AudioEffect::createEffectBin()
 } //namespace Phonon::Gstreamer
 
 QT_END_NAMESPACE
+#endif //QT_NO_PHONON_EFFECT
 #include "moc_audioeffect.cpp"
diff --git a/src/3rdparty/phonon/gstreamer/audioeffect.h b/src/3rdparty/phonon/gstreamer/audioeffect.h
index 3a985e5..f49f8d2 100644
--- a/src/3rdparty/phonon/gstreamer/audioeffect.h
+++ b/src/3rdparty/phonon/gstreamer/audioeffect.h
@@ -29,8 +29,8 @@
 
 #include <gst/gst.h>
 
+#ifndef QT_NO_PHONON_EFFECT
 QT_BEGIN_NAMESPACE
-
 namespace Phonon
 {
 namespace Gstreamer
@@ -49,7 +49,7 @@ namespace Gstreamer
             QString m_effectName;
     };
 }} //namespace Phonon::Gstreamer
-
 QT_END_NAMESPACE
+#endif //QT_NO_PHONON_EFFECT
 
 #endif // Phonon_GSTREAMER_AUDIOEFFECT_H
diff --git a/src/3rdparty/phonon/gstreamer/backend.cpp b/src/3rdparty/phonon/gstreamer/backend.cpp
index ceaf94a..b285fd9 100644
--- a/src/3rdparty/phonon/gstreamer/backend.cpp
+++ b/src/3rdparty/phonon/gstreamer/backend.cpp
@@ -117,9 +117,10 @@ QObject *Backend::createObject(BackendInterface::Class c, QObject *parent, const
             m_audioOutputs.append(ao);
             return ao;
         }
+#ifndef QT_NO_PHONON_EFFECT
     case EffectClass:
         return new AudioEffect(this, args[0].toInt(), parent);
-
+#endif //QT_NO_PHONON_EFFECT
     case AudioDataOutputClass:
         logMessage("createObject() : AudioDataOutput not implemented");
         break;
diff --git a/src/3rdparty/phonon/gstreamer/effect.cpp b/src/3rdparty/phonon/gstreamer/effect.cpp
index f653535..4937246 100644
--- a/src/3rdparty/phonon/gstreamer/effect.cpp
+++ b/src/3rdparty/phonon/gstreamer/effect.cpp
@@ -25,8 +25,8 @@
 
 #include <gst/gst.h>
 
+#ifndef QT_NO_PHONON_EFFECT
 QT_BEGIN_NAMESPACE
-
 namespace Phonon
 {
 namespace Gstreamer
@@ -241,6 +241,6 @@ void Effect::setParameterValue(const EffectParameter &p, const QVariant &v)
 
 }
 } //namespace Phonon::Gstreamer
-
 QT_END_NAMESPACE
+#endif //QT_NO_PHONON_EFFECT
 #include "moc_effect.cpp"
diff --git a/src/3rdparty/phonon/gstreamer/effect.h b/src/3rdparty/phonon/gstreamer/effect.h
index dbbb457..51cbe9c 100644
--- a/src/3rdparty/phonon/gstreamer/effect.h
+++ b/src/3rdparty/phonon/gstreamer/effect.h
@@ -28,8 +28,8 @@
 
 #include <gst/gst.h>
 
+#ifndef QT_NO_PHONON_EFFECT
 QT_BEGIN_NAMESPACE
-
 namespace Phonon
 {
 namespace Gstreamer
@@ -58,7 +58,7 @@ namespace Gstreamer
             QList<Phonon::EffectParameter> m_parameterList;
     };
 }} //namespace Phonon::Gstreamer
-
 QT_END_NAMESPACE
+#endif //QT_NO_PHONON_EFFECT
 
 #endif // Phonon_GSTREAMER_EFFECT_H
-- 
cgit v0.12


From 7c1122b79df61668525b63670c03c5da7e44ac9c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=B8rgen=20Lind?= <jorgen.lind@nokia.com>
Date: Mon, 19 Oct 2009 09:41:57 +0200
Subject: Fix QT_NO_XMLSTREAMREADER

Reviewed-by: tom
---
 src/corelib/xml/qxmlstream.g   | 4 +++-
 src/corelib/xml/qxmlstream_p.h | 3 ++-
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/corelib/xml/qxmlstream.g b/src/corelib/xml/qxmlstream.g
index 3bf0e7d..6c0c0cf 100644
--- a/src/corelib/xml/qxmlstream.g
+++ b/src/corelib/xml/qxmlstream.g
@@ -243,7 +243,7 @@ public:
 
 
 class QXmlStreamEntityResolver;
-
+#ifndef QT_NO_XMLSTREAMREADER
 class QXmlStreamReaderPrivate : public QXmlStreamReader_Table, public QXmlStreamPrivateTagStack{
     QXmlStreamReader *q_ptr;
     Q_DECLARE_PUBLIC(QXmlStreamReader)
@@ -1840,4 +1840,6 @@ nmtoken ::= COLON;
     }
     return false;
 }
+#endif //QT_NO_XMLSTREAMREADER.xml
+
 ./
diff --git a/src/corelib/xml/qxmlstream_p.h b/src/corelib/xml/qxmlstream_p.h
index ed65409..eee3a13 100644
--- a/src/corelib/xml/qxmlstream_p.h
+++ b/src/corelib/xml/qxmlstream_p.h
@@ -736,9 +736,9 @@ public:
     }
 };
 
-
 class QXmlStreamEntityResolver;
 
+#ifndef QT_NO_XMLSTREAMREADER
 class QXmlStreamReaderPrivate : public QXmlStreamReader_Table, public QXmlStreamPrivateTagStack{
     QXmlStreamReader *q_ptr;
     Q_DECLARE_PUBLIC(QXmlStreamReader)
@@ -1959,5 +1959,6 @@ bool QXmlStreamReaderPrivate::parse()
     return false;
 }
 
+#endif //QT_NO_XMLSTREAMREADER
 #endif // QXMLSTREAM_P_H
 
-- 
cgit v0.12


From 7246b5a5942049b485bfdefbe133d7bb12165301 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=B8rgen=20Lind?= <jorgen.lind@nokia.com>
Date: Mon, 19 Oct 2009 09:43:36 +0200
Subject: Fix QT_NO_ACTION dependencies

Reviewed-by: tom
---
 src/corelib/global/qfeatures.h     | 25 +++++++++++++++----------
 src/corelib/global/qfeatures.txt   | 11 +++++++++--
 src/gui/kernel/qsoftkeymanager.cpp |  3 ++-
 src/gui/kernel/qsoftkeymanager_p.h |  2 ++
 4 files changed, 28 insertions(+), 13 deletions(-)

diff --git a/src/corelib/global/qfeatures.h b/src/corelib/global/qfeatures.h
index d87cf64..1266be1 100644
--- a/src/corelib/global/qfeatures.h
+++ b/src/corelib/global/qfeatures.h
@@ -307,11 +307,6 @@
 // 
 //#define QT_NO_XMLSTREAM
 
-// Accessibility
-#if !defined(QT_NO_ACCESSIBILITY) && (defined(QT_NO_PROPERTIES))
-#define QT_NO_ACCESSIBILITY
-#endif
-
 // Animation
 #if !defined(QT_NO_ANIMATION) && (defined(QT_NO_PROPERTIES))
 #define QT_NO_ANIMATION
@@ -387,11 +382,6 @@
 #define QT_NO_PHONON_VOLUMEFADEREFFECT
 #endif
 
-// Phonon::VolumeSlider
-#if !defined(QT_NO_PHONON_VOLUMESLIDER) && (defined(QT_NO_SLIDER))
-#define QT_NO_PHONON_VOLUMESLIDER
-#endif
-
 // QProcess
 #if !defined(QT_NO_PROCESS) && (defined(QT_NO_THREAD))
 #define QT_NO_PROCESS
@@ -442,6 +432,11 @@
 #define QT_NO_SOCKS5
 #endif
 
+// QSoftKeyManager
+#if !defined(QT_NO_SOFTKEYMANAGER) && (defined(QT_NO_ACTION))
+#define QT_NO_SOFTKEYMANAGER
+#endif
+
 // QSplitter
 #if !defined(QT_NO_SPLITTER) && (defined(QT_NO_RUBBERBAND))
 #define QT_NO_SPLITTER
@@ -497,6 +492,11 @@
 #define QT_NO_XMLSTREAMWRITER
 #endif
 
+// Accessibility
+#if !defined(QT_NO_ACCESSIBILITY) && (defined(QT_NO_PROPERTIES) || defined(QT_NO_ACTION))
+#define QT_NO_ACCESSIBILITY
+#endif
+
 // Context menu
 #if !defined(QT_NO_CONTEXTMENU) && (defined(QT_NO_MENU))
 #define QT_NO_CONTEXTMENU
@@ -522,6 +522,11 @@
 #define QT_NO_LIBRARY
 #endif
 
+// Phonon::VolumeSlider
+#if !defined(QT_NO_PHONON_VOLUMESLIDER) && (defined(QT_NO_SLIDER) || defined(QT_NO_ACTION))
+#define QT_NO_PHONON_VOLUMESLIDER
+#endif
+
 // QScrollArea
 #if !defined(QT_NO_SCROLLAREA) && (defined(QT_NO_SCROLLBAR))
 #define QT_NO_SCROLLAREA
diff --git a/src/corelib/global/qfeatures.txt b/src/corelib/global/qfeatures.txt
index c18df62..9d4eb5e 100644
--- a/src/corelib/global/qfeatures.txt
+++ b/src/corelib/global/qfeatures.txt
@@ -70,6 +70,13 @@ Requires:
 Name: QAction
 SeeAlso: ???
 
+Feature: SOFTKEYMANAGER
+Description: Supports softkeys.
+Section: Gui
+Requires: ACTION
+Name: QSoftKeyManager
+SeeAlso: ???
+
 Feature: CURSOR
 Description: Supports mouse cursors.
 Section: Kernel
@@ -1146,7 +1153,7 @@ SeeAlso: ???
 Feature: ACCESSIBILITY
 Description: Provides accessibility support.
 Section: Utilities
-Requires: PROPERTIES
+Requires: PROPERTIES ACTION
 Name: Accessibility
 SeeAlso: ???
 
@@ -1403,7 +1410,7 @@ SeeAlso: ???
 Feature: PHONON_VOLUMESLIDER
 Description: Support for the Volume Slider class
 Section: Phonon
-Requires: SLIDER
+Requires: SLIDER ACTION
 Name: Phonon::VolumeSlider
 SeeAlso: ???
 
diff --git a/src/gui/kernel/qsoftkeymanager.cpp b/src/gui/kernel/qsoftkeymanager.cpp
index 75c321e..5249dab 100644
--- a/src/gui/kernel/qsoftkeymanager.cpp
+++ b/src/gui/kernel/qsoftkeymanager.cpp
@@ -48,6 +48,7 @@
 #include "private/qsoftkeymanager_p.h"
 #include "private/qobject_p.h"
 
+#ifndef QT_NO_SOFTKEYMANAGER
 QT_BEGIN_NAMESPACE
 
 #ifdef Q_WS_S60
@@ -277,4 +278,4 @@ void QSoftKeyManagerPrivate::updateSoftKeys_sys(const QList<QAction*> &)
 #endif
 
 QT_END_NAMESPACE
-
+#endif //QT_NO_SOFTKEYMANAGER
diff --git a/src/gui/kernel/qsoftkeymanager_p.h b/src/gui/kernel/qsoftkeymanager_p.h
index b455445..62d872f 100644
--- a/src/gui/kernel/qsoftkeymanager_p.h
+++ b/src/gui/kernel/qsoftkeymanager_p.h
@@ -58,6 +58,7 @@
 
 QT_BEGIN_HEADER
 
+#ifndef QT_NO_SOFTKEYMANAGER
 QT_BEGIN_NAMESPACE
 
 class QSoftKeyManagerPrivate;
@@ -100,6 +101,7 @@ private Q_SLOTS:
 };
 
 QT_END_NAMESPACE
+#endif //QT_NO_SOFTKEYMANAGER
 
 QT_END_HEADER
 
-- 
cgit v0.12


From e55810dc838e95c60a275f1ea3be3bb6bb93fb83 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=B8rgen=20Lind?= <jorgen.lind@nokia.com>
Date: Mon, 19 Oct 2009 10:59:39 +0200
Subject: Fix QT_NO_PROPERTIES

However, there are some stuff added to qscript that I'm really not sure
about.

Reviewed-by: tom
---
 src/3rdparty/phonon/gstreamer/backend.cpp |  3 ++-
 src/3rdparty/phonon/phonon/factory.cpp    |  3 ++-
 src/script/bridge/qscriptqobject.cpp      | 16 ++++++++++++++++
 3 files changed, 20 insertions(+), 2 deletions(-)

diff --git a/src/3rdparty/phonon/gstreamer/backend.cpp b/src/3rdparty/phonon/gstreamer/backend.cpp
index b285fd9..647bb6f 100644
--- a/src/3rdparty/phonon/gstreamer/backend.cpp
+++ b/src/3rdparty/phonon/gstreamer/backend.cpp
@@ -55,12 +55,13 @@ Backend::Backend(QObject *parent, const QVariantList &)
         g_error_free(err);
 
     qRegisterMetaType<Message>("Message");
-
+#ifndef QT_NO_PROPERTIES
     setProperty("identifier",     QLatin1String("phonon_gstreamer"));
     setProperty("backendName",    QLatin1String("Gstreamer"));
     setProperty("backendComment", QLatin1String("Gstreamer plugin for Phonon"));
     setProperty("backendVersion", QLatin1String("0.2"));
     setProperty("backendWebsite", QLatin1String("http://qt.nokia.com/"));
+#endif //QT_NO_PROPERTIES
 
     //check if we should enable debug output
     QString debugLevelString = qgetenv("PHONON_GST_DEBUG");
diff --git a/src/3rdparty/phonon/phonon/factory.cpp b/src/3rdparty/phonon/phonon/factory.cpp
index e5adb490..881aca3 100644
--- a/src/3rdparty/phonon/phonon/factory.cpp
+++ b/src/3rdparty/phonon/phonon/factory.cpp
@@ -443,6 +443,7 @@ QObject *Factory::backend(bool createWhenNull)
     return globalFactory->m_backendObject;
 }
 
+#ifndef QT_NO_PROPERTIES
 #define GET_STRING_PROPERTY(name) \
 QString Factory::name() \
 { \
@@ -458,7 +459,7 @@ GET_STRING_PROPERTY(backendComment)
 GET_STRING_PROPERTY(backendVersion)
 GET_STRING_PROPERTY(backendIcon)
 GET_STRING_PROPERTY(backendWebsite)
-
+#endif //QT_NO_PROPERTIES
 QObject *Factory::registerQObject(QObject *o)
 {
     if (o) {
diff --git a/src/script/bridge/qscriptqobject.cpp b/src/script/bridge/qscriptqobject.cpp
index 345489f..caf1018 100644
--- a/src/script/bridge/qscriptqobject.cpp
+++ b/src/script/bridge/qscriptqobject.cpp
@@ -1190,6 +1190,7 @@ bool QObjectDelegate::getOwnPropertySlot(QScriptObject *object, JSC::ExecState *
                                          const JSC::Identifier &propertyName,
                                          JSC::PropertySlot &slot)
 {
+#ifndef QT_NO_PROPERTIES
     QByteArray name = QString(propertyName.ustring()).toLatin1();
     QObject *qobject = data->value;
     if (!qobject) {
@@ -1296,12 +1297,16 @@ bool QObjectDelegate::getOwnPropertySlot(QScriptObject *object, JSC::ExecState *
     }
 
     return QScriptObjectDelegate::getOwnPropertySlot(object, exec, propertyName, slot);
+#else //QT_NO_PROPERTIES
+    return false;
+#endif //QT_NO_PROPERTIES
 }
 
 void QObjectDelegate::put(QScriptObject *object, JSC::ExecState* exec,
                           const JSC::Identifier& propertyName,
                           JSC::JSValue value, JSC::PutPropertySlot &slot)
 {
+#ifndef QT_NO_PROPERTIES
     QByteArray name = ((QString)propertyName.ustring()).toLatin1();
     QObject *qobject = data->value;
     if (!qobject) {
@@ -1392,12 +1397,14 @@ void QObjectDelegate::put(QScriptObject *object, JSC::ExecState* exec,
     }
 
     QScriptObjectDelegate::put(object, exec, propertyName, value, slot);
+#endif //QT_NO_PROPERTIES
 }
 
 bool QObjectDelegate::deleteProperty(QScriptObject *object, JSC::ExecState *exec,
                                      const JSC::Identifier& propertyName,
                                      bool checkDontDelete)
 {
+#ifndef QT_NO_PROPERTIES
     QByteArray name = ((QString)propertyName.ustring()).toLatin1();
     QObject *qobject = data->value;
     if (!qobject) {
@@ -1436,6 +1443,9 @@ bool QObjectDelegate::deleteProperty(QScriptObject *object, JSC::ExecState *exec
     }
 
     return QScriptObjectDelegate::deleteProperty(object, exec, propertyName, checkDontDelete);
+#else //QT_NO_PROPERTIES
+    return false;
+#endif //QT_NO_PROPERTIES
 }
 
 bool QObjectDelegate::getPropertyAttributes(const QScriptObject *object,
@@ -1443,6 +1453,7 @@ bool QObjectDelegate::getPropertyAttributes(const QScriptObject *object,
                                             const JSC::Identifier &propertyName,
                                             unsigned &attributes) const
 {
+#ifndef QT_NO_PROPERTIES
     // ### try to avoid duplicating logic from getOwnPropertySlot()
     QByteArray name = ((QString)propertyName.ustring()).toLatin1();
     QObject *qobject = data->value;
@@ -1511,12 +1522,16 @@ bool QObjectDelegate::getPropertyAttributes(const QScriptObject *object,
     }
 
     return QScriptObjectDelegate::getPropertyAttributes(object, exec, propertyName, attributes);
+#else //QT_NO_PROPERTIES
+    return false;
+#endif //QT_NO_PROPERTIES
 }
 
 void QObjectDelegate::getOwnPropertyNames(QScriptObject *object, JSC::ExecState *exec,
                                           JSC::PropertyNameArray &propertyNames,
                                           bool includeNonEnumerable)
 {
+#ifndef QT_NO_PROPERTIES
     QObject *qobject = data->value;
     if (!qobject) {
         QString message = QString::fromLatin1("cannot get property names of deleted QObject");
@@ -1560,6 +1575,7 @@ void QObjectDelegate::getOwnPropertyNames(QScriptObject *object, JSC::ExecState
     }
 
     QScriptObjectDelegate::getOwnPropertyNames(object, exec, propertyNames, includeNonEnumerable);
+#endif //QT_NO_PROPERTIES
 }
 
 void QObjectDelegate::markChildren(QScriptObject *object, JSC::MarkStack& markStack)
-- 
cgit v0.12


From 6eb1faad9511dde6ab31b9a4f75fce0bdfbdc12c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=B8rgen=20Lind?= <jorgen.lind@nokia.com>
Date: Mon, 19 Oct 2009 13:55:38 +0200
Subject: Fixed MENU and QWS_PROXYSCREEN

Reviewed-by: tom
---
 src/corelib/global/qfeatures.h              | 20 +++++++++++++++-----
 src/corelib/global/qfeatures.txt            | 16 +++++++++++++++-
 src/plugins/gfxdrivers/transformed/main.cpp |  5 ++++-
 src/plugins/gfxdrivers/vnc/main.cpp         |  5 ++++-
 4 files changed, 38 insertions(+), 8 deletions(-)

diff --git a/src/corelib/global/qfeatures.h b/src/corelib/global/qfeatures.h
index 1266be1..c9dfabb 100644
--- a/src/corelib/global/qfeatures.h
+++ b/src/corelib/global/qfeatures.h
@@ -417,6 +417,16 @@
 #define QT_NO_QWS_MANAGER
 #endif
 
+// QVncTransformed
+#if !defined(QT_NO_QWS_TRANSFORMED) && (defined(QT_NO_QWS_PROXYSCREEN))
+#define QT_NO_QWS_TRANSFORMED
+#endif
+
+// QVncScreen
+#if !defined(QT_NO_QWS_VNC) && (defined(QT_NO_QWS_PROXYSCREEN))
+#define QT_NO_QWS_VNC
+#endif
+
 // QScrollBar
 #if !defined(QT_NO_SCROLLBAR) && (defined(QT_NO_SLIDER))
 #define QT_NO_SCROLLBAR
@@ -492,11 +502,6 @@
 #define QT_NO_XMLSTREAMWRITER
 #endif
 
-// Accessibility
-#if !defined(QT_NO_ACCESSIBILITY) && (defined(QT_NO_PROPERTIES) || defined(QT_NO_ACTION))
-#define QT_NO_ACCESSIBILITY
-#endif
-
 // Context menu
 #if !defined(QT_NO_CONTEXTMENU) && (defined(QT_NO_MENU))
 #define QT_NO_CONTEXTMENU
@@ -617,6 +622,11 @@
 #define QT_NO_UNDOGROUP
 #endif
 
+// Accessibility
+#if !defined(QT_NO_ACCESSIBILITY) && (defined(QT_NO_PROPERTIES) || defined(QT_NO_ACTION) || defined(QT_NO_MENU))
+#define QT_NO_ACCESSIBILITY
+#endif
+
 // The Model/View Framework
 #if !defined(QT_NO_ITEMVIEWS) && (defined(QT_NO_RUBBERBAND) || defined(QT_NO_SCROLLAREA))
 #define QT_NO_ITEMVIEWS
diff --git a/src/corelib/global/qfeatures.txt b/src/corelib/global/qfeatures.txt
index 9d4eb5e..fb9181b 100644
--- a/src/corelib/global/qfeatures.txt
+++ b/src/corelib/global/qfeatures.txt
@@ -1153,7 +1153,7 @@ SeeAlso: ???
 Feature: ACCESSIBILITY
 Description: Provides accessibility support.
 Section: Utilities
-Requires: PROPERTIES ACTION
+Requires: PROPERTIES ACTION MENU
 Name: Accessibility
 SeeAlso: ???
 
@@ -1324,6 +1324,20 @@ Requires:
 Name: QProxyScreen
 SeeAlso: ???
 
+Feature: QWS_VNC
+Description: Provides VNC screen driver
+Section: Qt for Embedded Linux
+Requires: QWS_PROXYSCREEN
+Name: QVncScreen
+SeeAlso: ???
+
+Feature: QWS_TRANSFORMED
+Description: Provides Transformed screen driver
+Section: Qt for Embedded Linux
+Requires: QWS_PROXYSCREEN
+Name: QVncTransformed
+SeeAlso: ???
+
 Feature: QWS_DYNAMICSCREENTRANSFORMATION
 Description: Enables dynamic setting of screen transformation/rotation.
 Section: Qt for Embedded Linux
diff --git a/src/plugins/gfxdrivers/transformed/main.cpp b/src/plugins/gfxdrivers/transformed/main.cpp
index 982882e..859fd49 100644
--- a/src/plugins/gfxdrivers/transformed/main.cpp
+++ b/src/plugins/gfxdrivers/transformed/main.cpp
@@ -68,9 +68,12 @@ QStringList GfxTransformedDriver::keys() const
 
 QScreen* GfxTransformedDriver::create(const QString& driver, int displayId)
 {
+#ifndef QT_NO_QWS_TRANSFORMED
     if (driver.toLower() == "transformed")
         return new QTransformedScreen(displayId);
-
+#else //QT_NO_QWS_TRANSFORMED
+    printf("QT buildt with QT_NO_QWS_TRANSFORMED. No screen driver returned\n");
+#endif //QT_NO_QWS_TRANSFORMED
     return 0;
 }
 
diff --git a/src/plugins/gfxdrivers/vnc/main.cpp b/src/plugins/gfxdrivers/vnc/main.cpp
index aa20d11..7d91ff5 100644
--- a/src/plugins/gfxdrivers/vnc/main.cpp
+++ b/src/plugins/gfxdrivers/vnc/main.cpp
@@ -68,9 +68,12 @@ QStringList GfxVncDriver::keys() const
 
 QScreen* GfxVncDriver::create(const QString& driver, int displayId)
 {
+#ifndef QT_NO_QWS_VNC
     if (driver.toLower() == "vnc")
         return new QVNCScreen(displayId);
-
+#else //QT_NO_QWS_VNC
+    printf("QT buildt with QT_NO_QWS_VNC. No screen driver returned\n");
+#endif //QT_NO_QWS_VNC
     return 0;
 }
 
-- 
cgit v0.12


From cbef10e1781cdef5ec6dcf0bdeea6506258ee431 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=B8rgen=20Lind?= <jorgen.lind@nokia.com>
Date: Mon, 19 Oct 2009 16:25:44 +0200
Subject: Fix Validator

Reviewed-by: tom
---
 src/gui/widgets/qlinecontrol_p.h | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/src/gui/widgets/qlinecontrol_p.h b/src/gui/widgets/qlinecontrol_p.h
index 68898b6..f8e1a5d 100644
--- a/src/gui/widgets/qlinecontrol_p.h
+++ b/src/gui/widgets/qlinecontrol_p.h
@@ -174,8 +174,10 @@ public:
     void setMaxLength(int maxLength);
     int maxLength() const;
 
+#ifndef QT_NO_VALIDATOR
     const QValidator *validator() const;
     void setValidator(const QValidator *);
+#endif
 
 #ifndef QT_NO_COMPLETER
     QCompleter *completer() const;
@@ -282,7 +284,9 @@ private:
 
     bool finishChange(int validateFromState = -1, bool update = false, bool edited = true);
 
+#ifndef QT_NO_VALIDATOR
     QPointer<QValidator> m_validator;
+#endif
     QPointer<QCompleter> m_completer;
 #ifndef QT_NO_COMPLETER
     bool advanceToEnabledItem(int dir);
@@ -623,6 +627,7 @@ inline int QLineControl::maxLength() const
     return m_maxLength;
 }
 
+#ifndef QT_NO_VALIDATOR
 inline const QValidator *QLineControl::validator() const
 {
     return m_validator;
@@ -632,6 +637,7 @@ inline void QLineControl::setValidator(const QValidator *v)
 {
     m_validator = const_cast<QValidator*>(v);
 }
+#endif
 
 #ifndef QT_NO_COMPLETER
 inline QCompleter *QLineControl::completer() const
-- 
cgit v0.12


From f56f27e2cfd5880dfa8435f7648b080e02c8ee99 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=B8rgen=20Lind?= <jorgen.lind@nokia.com>
Date: Tue, 20 Oct 2009 09:18:44 +0200
Subject: Fix QT_NO_GROUPBOX

Reviewed-by: tom
---
 src/gui/widgets/qplaintextedit.cpp | 2 +-
 src/gui/widgets/qtextedit.cpp      | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/gui/widgets/qplaintextedit.cpp b/src/gui/widgets/qplaintextedit.cpp
index fc61889..bb93546 100644
--- a/src/gui/widgets/qplaintextedit.cpp
+++ b/src/gui/widgets/qplaintextedit.cpp
@@ -1599,7 +1599,6 @@ void QPlainTextEdit::keyPressEvent(QKeyEvent *e)
             return;
         }
     }
-#endif // QT_NO_SHORTCUT
 
     if (!(tif & Qt::TextEditable)) {
         switch (e->key()) {
@@ -1627,6 +1626,7 @@ void QPlainTextEdit::keyPressEvent(QKeyEvent *e)
         }
         return;
     }
+#endif // QT_NO_SHORTCUT
 
     d->sendControlEvent(e);
 #ifdef QT_KEYPAD_NAVIGATION
diff --git a/src/gui/widgets/qtextedit.cpp b/src/gui/widgets/qtextedit.cpp
index f477fee..d995e0f 100644
--- a/src/gui/widgets/qtextedit.cpp
+++ b/src/gui/widgets/qtextedit.cpp
@@ -1246,7 +1246,6 @@ void QTextEdit::keyPressEvent(QKeyEvent *e)
             return;
         }
     }
-#endif // QT_NO_SHORTCUT
 
     if (!(tif & Qt::TextEditable)) {
         switch (e->key()) {
@@ -1274,6 +1273,7 @@ void QTextEdit::keyPressEvent(QKeyEvent *e)
         }
         return;
     }
+#endif // QT_NO_SHORTCUT
 
     {
         QTextCursor cursor = d->control->textCursor();
-- 
cgit v0.12


From 488a89e2671fb93981db6c71f3557500b9f52588 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=B8rgen=20Lind?= <jorgen.lind@nokia.com>
Date: Tue, 20 Oct 2009 09:19:40 +0200
Subject: Fix QT_NO_GROUPBOX

Reviewed-by: tom
---
 src/gui/styles/qcleanlooksstyle.cpp | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/gui/styles/qcleanlooksstyle.cpp b/src/gui/styles/qcleanlooksstyle.cpp
index fc12cfe..973e682 100644
--- a/src/gui/styles/qcleanlooksstyle.cpp
+++ b/src/gui/styles/qcleanlooksstyle.cpp
@@ -3825,6 +3825,7 @@ QSize QCleanlooksStyle::sizeFromContents(ContentsType type, const QStyleOption *
             }
         }
         break;
+#ifndef QT_NO_GROUPBOX
     case CT_GroupBox:
         // Since we use a bold font we have to recalculate base width
         if (const QGroupBox *gb = qobject_cast<const QGroupBox*>(widget)) {
@@ -3840,6 +3841,7 @@ QSize QCleanlooksStyle::sizeFromContents(ContentsType type, const QStyleOption *
         }
         newSize += QSize(0, 1);
         break;
+#endif //QT_NO_GROUPBOX
     case CT_RadioButton:
     case CT_CheckBox:
         newSize += QSize(0, 1);
-- 
cgit v0.12


From d24fd9b951352fe184ff9bccb0f53e18368e8735 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=B8rgen=20Lind?= <jorgen.lind@nokia.com>
Date: Wed, 21 Oct 2009 15:23:30 +0200
Subject: Fix LIBRARY and SETTINGS in phonon

Reviewed-by: Jens Bache-Wiig

Squash me with Fix LIBRARY and SETTINGS in phonon 7d2282
---
 src/3rdparty/phonon/gstreamer/artssink.cpp      |  3 ++-
 src/3rdparty/phonon/gstreamer/devicemanager.cpp |  7 +++++--
 src/3rdparty/phonon/gstreamer/mediaobject.cpp   |  6 +++++-
 src/3rdparty/phonon/phonon/factory.cpp          |  6 ++++++
 src/3rdparty/phonon/phonon/globalconfig.cpp     | 14 ++++++++++++--
 src/3rdparty/phonon/phonon/globalconfig_p.h     |  4 ++++
 src/3rdparty/phonon/phonon/qsettingsgroup_p.h   |  3 +++
 7 files changed, 37 insertions(+), 6 deletions(-)

diff --git a/src/3rdparty/phonon/gstreamer/artssink.cpp b/src/3rdparty/phonon/gstreamer/artssink.cpp
index ff56da9..441607d 100644
--- a/src/3rdparty/phonon/gstreamer/artssink.cpp
+++ b/src/3rdparty/phonon/gstreamer/artssink.cpp
@@ -233,7 +233,7 @@ static void arts_sink_init (ArtsSink * src, ArtsSinkClass * g_class)
     Q_UNUSED(g_class);
     GST_DEBUG_OBJECT (src, "initializing artssink");
     src->stream = 0;
-
+#ifndef QT_NO_LIBRARY
     p_arts_init =  (Ptr_arts_init)QLibrary::resolve(QLatin1String("artsc"), 0, "arts_init");
     p_arts_play_stream =  (Ptr_arts_play_stream)QLibrary::resolve(QLatin1String("artsc"), 0, "arts_play_stream");
     p_arts_close_stream =  (Ptr_arts_close_stream)QLibrary::resolve(QLatin1String("artsc"), 0, "arts_close_stream");
@@ -250,6 +250,7 @@ static void arts_sink_init (ArtsSink * src, ArtsSinkClass * g_class)
         }
     }
     sinkCount ++;
+#endif //QT_NO_LIBRARY
 }
 
 static void arts_sink_dispose (GObject * object)
diff --git a/src/3rdparty/phonon/gstreamer/devicemanager.cpp b/src/3rdparty/phonon/gstreamer/devicemanager.cpp
index 2240396..86463c1 100644
--- a/src/3rdparty/phonon/gstreamer/devicemanager.cpp
+++ b/src/3rdparty/phonon/gstreamer/devicemanager.cpp
@@ -72,18 +72,21 @@ DeviceManager::DeviceManager(Backend *backend)
         : QObject(backend)
         , m_backend(backend)
 {
+    m_audioSink = qgetenv("PHONON_GST_AUDIOSINK");
+    m_videoSinkWidget = qgetenv("PHONON_GST_VIDEOMODE");
+
+#ifndef QT_NO_SETTINGS
     QSettings settings(QLatin1String("Trolltech"));
     settings.beginGroup(QLatin1String("Qt"));
 
-    m_audioSink = qgetenv("PHONON_GST_AUDIOSINK");
     if (m_audioSink.isEmpty()) {
         m_audioSink = settings.value(QLatin1String("audiosink"), "Auto").toByteArray().toLower();
     }
 
-    m_videoSinkWidget = qgetenv("PHONON_GST_VIDEOMODE");
     if (m_videoSinkWidget.isEmpty()) {
         m_videoSinkWidget = settings.value(QLatin1String("videomode"), "Auto").toByteArray().toLower();
     }
+#endif //QT_NO_SETTINGS
 
     if (m_backend->isValid())
         updateDeviceList();
diff --git a/src/3rdparty/phonon/gstreamer/mediaobject.cpp b/src/3rdparty/phonon/gstreamer/mediaobject.cpp
index 0b800af..1c32c3c 100644
--- a/src/3rdparty/phonon/gstreamer/mediaobject.cpp
+++ b/src/3rdparty/phonon/gstreamer/mediaobject.cpp
@@ -226,6 +226,7 @@ void MediaObject::cb_unknown_type (GstElement *decodebin, GstPad *pad, GstCaps *
     QString value = "unknown codec";
 
     // These functions require GStreamer > 0.10.12
+#ifndef QT_NO_LIBRARY
     static Ptr_gst_pb_utils_init p_gst_pb_utils_init = 0;
     static Ptr_gst_pb_utils_get_codec_description p_gst_pb_utils_get_codec_description = 0;
     if (!p_gst_pb_utils_init) {
@@ -239,10 +240,13 @@ void MediaObject::cb_unknown_type (GstElement *decodebin, GstPad *pad, GstCaps *
         codecName = p_gst_pb_utils_get_codec_description (caps);
         value = QString::fromUtf8(codecName);
         g_free (codecName);
-    } else {
+    } else
+#endif //QT_NO_LIBRARY
+    {
         // For GStreamer versions < 0.10.12
         GstStructure *str = gst_caps_get_structure (caps, 0);
         value = QString::fromUtf8(gst_structure_get_name (str));
+
     }
     media->addMissingCodecName(value);
 }
diff --git a/src/3rdparty/phonon/phonon/factory.cpp b/src/3rdparty/phonon/phonon/factory.cpp
index 881aca3..d5010e7 100644
--- a/src/3rdparty/phonon/phonon/factory.cpp
+++ b/src/3rdparty/phonon/phonon/factory.cpp
@@ -111,6 +111,7 @@ void Factory::setBackend(QObject *b)
 
 bool FactoryPrivate::createBackend()
 {
+#ifndef QT_NO_LIBRARY
     Q_ASSERT(m_backendObject == 0);
 #ifndef QT_NO_PHONON_PLATFORMPLUGIN
     PlatformPlugin *f = globalFactory->platformPlugin();
@@ -186,6 +187,11 @@ bool FactoryPrivate::createBackend()
             SLOT(objectDescriptionChanged(ObjectDescriptionType)));
 
     return true;
+#else //QT_NO_LIBRARY
+    pWarning() << Q_FUNC_INFO << "Trying to use Phonon with QT_NO_LIBRARY defined. "
+                                 "That is currently not supported";
+    return false;
+#endif
 }
 
 FactoryPrivate::FactoryPrivate()
diff --git a/src/3rdparty/phonon/phonon/globalconfig.cpp b/src/3rdparty/phonon/phonon/globalconfig.cpp
index d13e491..3718c6a 100644
--- a/src/3rdparty/phonon/phonon/globalconfig.cpp
+++ b/src/3rdparty/phonon/phonon/globalconfig.cpp
@@ -38,7 +38,10 @@ QT_BEGIN_NAMESPACE
 namespace Phonon
 {
 
-GlobalConfig::GlobalConfig() : m_config(QLatin1String("kde.org"), QLatin1String("libphonon"))
+GlobalConfig::GlobalConfig()
+#ifndef QT_NO_SETTINGS
+    : m_config(QLatin1String("kde.org"), QLatin1String("libphonon"))
+#endif //QT_NO_SETTINGS
 {
 }
 
@@ -82,6 +85,7 @@ static void filter(ObjectDescriptionType type, BackendInterface *backendIface, Q
     }
 }
 
+#ifndef QT_NO_PHONON_SETTINGSGROUP
 static QList<int> listSortedByConfig(const QSettingsGroup &backendConfig, Phonon::Category category, QList<int> &defaultList)
 {
     if (defaultList.size() <= 1) {
@@ -126,7 +130,9 @@ static QList<int> listSortedByConfig(const QSettingsGroup &backendConfig, Phonon
 
     return deviceList;
 }
+#endif //QT_NO_PHONON_SETTINGSGROUP
 
+#ifndef QT_NO_PHONON_SETTINGSGROUP
 QList<int> GlobalConfig::audioOutputDeviceListFor(Phonon::Category category, int override) const
 {
     //The devices need to be stored independently for every backend
@@ -172,7 +178,7 @@ QList<int> GlobalConfig::audioOutputDeviceListFor(Phonon::Category category, int
 
     return listSortedByConfig(backendConfig, category, defaultList);
 }
-
+#endif //QT_NO_SETTINGSGROUPS
 int GlobalConfig::audioOutputDeviceFor(Phonon::Category category, int override) const
 {
     QList<int> ret = audioOutputDeviceListFor(category, override);
@@ -184,6 +190,7 @@ int GlobalConfig::audioOutputDeviceFor(Phonon::Category category, int override)
 #ifndef QT_NO_PHONON_AUDIOCAPTURE
 QList<int> GlobalConfig::audioCaptureDeviceListFor(Phonon::Category category, int override) const
 {
+#ifndef QT_NO_PHONON_SETTINGSGROUP
     //The devices need to be stored independently for every backend
     const QSettingsGroup backendConfig(&m_config, QLatin1String("AudioCaptureDevice")); // + Factory::identifier());
     const QSettingsGroup generalGroup(&m_config, QLatin1String("General"));
@@ -226,6 +233,9 @@ QList<int> GlobalConfig::audioCaptureDeviceListFor(Phonon::Category category, in
     }
 
     return listSortedByConfig(backendConfig, category, defaultList);
+#else //QT_NO_SETTINGSGROUP
+    return QList<int>();
+#endif //QT_NO_SETTINGSGROUP
 }
 
 int GlobalConfig::audioCaptureDeviceFor(Phonon::Category category, int override) const
diff --git a/src/3rdparty/phonon/phonon/globalconfig_p.h b/src/3rdparty/phonon/phonon/globalconfig_p.h
index 023858f..034bce3 100644
--- a/src/3rdparty/phonon/phonon/globalconfig_p.h
+++ b/src/3rdparty/phonon/phonon/globalconfig_p.h
@@ -46,7 +46,9 @@ namespace Phonon
             AdvancedDevicesFromSettings = 2,
             HideUnavailableDevices = 4
         };
+#ifndef QT_NO_PHONON_SETTINGSGROUP
         QList<int> audioOutputDeviceListFor(Phonon::Category category, int override = AdvancedDevicesFromSettings) const;
+#endif //QT_NO_PHONON_SETTINGSGROUP
         int audioOutputDeviceFor(Phonon::Category category, int override = AdvancedDevicesFromSettings) const;
 
 #ifndef QT_NO_PHONON_AUDIOCAPTURE
@@ -55,7 +57,9 @@ namespace Phonon
 #endif //QT_NO_PHONON_AUDIOCAPTURE
 
     protected:
+#ifndef QT_NO_SETTINGS
         QSettings m_config;
+#endif //QT_NO_SETTINGS
     };
 } // namespace Phonon
 
diff --git a/src/3rdparty/phonon/phonon/qsettingsgroup_p.h b/src/3rdparty/phonon/phonon/qsettingsgroup_p.h
index 95f6c9b..501fe37 100644
--- a/src/3rdparty/phonon/phonon/qsettingsgroup_p.h
+++ b/src/3rdparty/phonon/phonon/qsettingsgroup_p.h
@@ -27,6 +27,8 @@
 #include <QtCore/QString>
 #include <QtCore/QVariant>
 
+#ifndef QT_NO_PHONON_SETTINGSGROUP
+
 QT_BEGIN_HEADER
 QT_BEGIN_NAMESPACE
 
@@ -87,5 +89,6 @@ class QSettingsGroup
 
 QT_END_NAMESPACE
 QT_END_HEADER
+#endif //QT_NO_PHONON_SETTINGSGROUP
 
 #endif // PHONON_QSETTINGSGROUP_P_H
-- 
cgit v0.12


From f73e3063649220f80b2d0ada3a7f087c32c0bfc8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=B8rgen=20Lind?= <jorgen.lind@nokia.com>
Date: Wed, 21 Oct 2009 15:25:28 +0200
Subject: Fix dependencies in qfeatures

Reviewed-by: Trust Me
---
 src/corelib/global/qfeatures.h   | 110 ++++++++++++++++++++++-----------------
 src/corelib/global/qfeatures.txt |  41 ++++++++++-----
 2 files changed, 89 insertions(+), 62 deletions(-)

diff --git a/src/corelib/global/qfeatures.h b/src/corelib/global/qfeatures.h
index c9dfabb..adc2743 100644
--- a/src/corelib/global/qfeatures.h
+++ b/src/corelib/global/qfeatures.h
@@ -148,9 +148,6 @@
 // Phonon::ObjectDescriptionModel
 //#define QT_NO_PHONON_OBJECTDESCRIPTIONMODEL
 
-// Phonon::PlatformPlugin
-//#define QT_NO_PHONON_PLATFORMPLUGIN
-
 // Phonon::VideoWidget
 //#define QT_NO_PHONON_VIDEO
 
@@ -175,9 +172,6 @@
 // Decoration
 //#define QT_NO_QWS_DECORATION_DEFAULT
 
-// QWSInputMethod
-//#define QT_NO_QWS_INPUTMETHODS
-
 // Keyboard
 //#define QT_NO_QWS_KEYBOARD
 
@@ -527,9 +521,9 @@
 #define QT_NO_LIBRARY
 #endif
 
-// Phonon::VolumeSlider
-#if !defined(QT_NO_PHONON_VOLUMESLIDER) && (defined(QT_NO_SLIDER) || defined(QT_NO_ACTION))
-#define QT_NO_PHONON_VOLUMESLIDER
+// Phonon::AbstractMediaStream
+#if !defined(QT_NO_PHONON_SETTINGSGROUP) && (defined(QT_NO_SETTINGS))
+#define QT_NO_PHONON_SETTINGSGROUP
 #endif
 
 // QScrollArea
@@ -537,6 +531,11 @@
 #define QT_NO_SCROLLAREA
 #endif
 
+// QWindowsVistaStyle
+#if !defined(QT_NO_STYLE_WINDOWSVISTA) && (defined(QT_NO_STYLE_WINDOWSXP))
+#define QT_NO_STYLE_WINDOWSVISTA
+#endif
+
 // OdfWriter
 #if !defined(QT_NO_TEXTODFWRITER) && (defined(QT_NO_XMLSTREAMWRITER))
 #define QT_NO_TEXTODFWRITER
@@ -552,6 +551,11 @@
 #define QT_NO_TRANSLATION_UTF8
 #endif
 
+// QUndoGroup
+#if !defined(QT_NO_UNDOGROUP) && (defined(QT_NO_UNDOSTACK))
+#define QT_NO_UNDOGROUP
+#endif
+
 // Drag and drop
 #if !defined(QT_NO_DRAGANDDROP) && (defined(QT_NO_QWS_PROPERTIES) || defined(QT_NO_IMAGEFORMAT_XPM))
 #define QT_NO_DRAGANDDROP
@@ -562,11 +566,21 @@
 #define QT_NO_GRAPHICSVIEW
 #endif
 
+// QInputContext
+#if !defined(QT_NO_IM) && (defined(QT_NO_LIBRARY))
+#define QT_NO_IM
+#endif
+
 // QMdiArea
 #if !defined(QT_NO_MDIAREA) && (defined(QT_NO_SCROLLAREA))
 #define QT_NO_MDIAREA
 #endif
 
+// Phonon::PlatformPlugin
+#if !defined(QT_NO_PHONON_PLATFORMPLUGIN) && (defined(QT_NO_LIBRARY))
+#define QT_NO_PHONON_PLATFORMPLUGIN
+#endif
+
 // QPrinter
 #if !defined(QT_NO_PRINTER) && (defined(QT_NO_TEXTSTREAM) || defined(QT_NO_PICTURE) || defined(QT_NO_TEMPORARYFILE))
 #define QT_NO_PRINTER
@@ -602,11 +616,6 @@
 #define QT_NO_STYLE_WINDOWSMOBILE
 #endif
 
-// QWindowsVistaStyle
-#if !defined(QT_NO_STYLE_WINDOWSVISTA) && (defined(QT_NO_STYLE_WINDOWS) || defined(QT_NO_STYLE_WINDOWSXP))
-#define QT_NO_STYLE_WINDOWSVISTA
-#endif
-
 // QtSvg module
 #if !defined(QT_NO_SVG) && (defined(QT_NO_XMLSTREAMREADER) || defined(QT_NO_CSSPARSER))
 #define QT_NO_SVG
@@ -617,14 +626,14 @@
 #define QT_NO_TABBAR
 #endif
 
-// QUndoGroup
-#if !defined(QT_NO_UNDOGROUP) && (defined(QT_NO_UNDOCOMMAND) || defined(QT_NO_UNDOSTACK))
-#define QT_NO_UNDOGROUP
+// QWhatsThis
+#if !defined(QT_NO_WHATSTHIS) && (defined(QT_NO_TOOLBUTTON))
+#define QT_NO_WHATSTHIS
 #endif
 
-// Accessibility
-#if !defined(QT_NO_ACCESSIBILITY) && (defined(QT_NO_PROPERTIES) || defined(QT_NO_ACTION) || defined(QT_NO_MENU))
-#define QT_NO_ACCESSIBILITY
+// QColorDialog
+#if !defined(QT_NO_COLORDIALOG) && (defined(QT_NO_SPINBOX))
+#define QT_NO_COLORDIALOG
 #endif
 
 // The Model/View Framework
@@ -632,6 +641,16 @@
 #define QT_NO_ITEMVIEWS
 #endif
 
+// Phonon::VolumeSlider
+#if !defined(QT_NO_PHONON_VOLUMESLIDER) && (defined(QT_NO_SLIDER) || defined(QT_NO_TOOLBUTTON))
+#define QT_NO_PHONON_VOLUMESLIDER
+#endif
+
+// QWSInputMethod
+#if !defined(QT_NO_QWS_INPUTMETHODS) && (defined(QT_NO_IM))
+#define QT_NO_QWS_INPUTMETHODS
+#endif
+
 // Sound Server
 #if !defined(QT_NO_QWS_SOUNDSERVER) && (defined(QT_NO_SOUND) || defined(QT_NO_HOSTINFO) || defined(QT_NO_QWS_MULTIPROCESS))
 #define QT_NO_QWS_SOUNDSERVER
@@ -662,11 +681,6 @@
 #define QT_NO_TEXTEDIT
 #endif
 
-// QWhatsThis
-#if !defined(QT_NO_WHATSTHIS) && (defined(QT_NO_TOOLBUTTON) || defined(QT_NO_ACTION))
-#define QT_NO_WHATSTHIS
-#endif
-
 // QDirModel
 #if !defined(QT_NO_DIRMODEL) && (defined(QT_NO_ITEMVIEWS))
 #define QT_NO_DIRMODEL
@@ -732,11 +746,6 @@
 #define QT_NO_TREEVIEW
 #endif
 
-// QColorDialog
-#if !defined(QT_NO_COLORDIALOG) && (defined(QT_NO_LINEEDIT) || defined(QT_NO_VALIDATOR) || defined(QT_NO_SPINBOX))
-#define QT_NO_COLORDIALOG
-#endif
-
 // QColumnView
 #if !defined(QT_NO_COLUMNVIEW) && (defined(QT_NO_LISTVIEW))
 #define QT_NO_COLUMNVIEW
@@ -772,11 +781,21 @@
 #define QT_NO_TABLEWIDGET
 #endif
 
+// QToolBox
+#if !defined(QT_NO_TOOLBOX) && (defined(QT_NO_TOOLBUTTON) || defined(QT_NO_SCROLLAREA))
+#define QT_NO_TOOLBOX
+#endif
+
 // QTreeWidget
 #if !defined(QT_NO_TREEWIDGET) && (defined(QT_NO_TREEVIEW))
 #define QT_NO_TREEWIDGET
 #endif
 
+// Accessibility
+#if !defined(QT_NO_ACCESSIBILITY) && (defined(QT_NO_PROPERTIES) || defined(QT_NO_MENUBAR))
+#define QT_NO_ACCESSIBILITY
+#endif
+
 // Common UNIX Printing System
 #if !defined(QT_NO_CUPS) && (defined(QT_NO_PRINTER) || defined(QT_NO_LIBRARY))
 #define QT_NO_CUPS
@@ -787,11 +806,6 @@
 #define QT_NO_TOOLBAR
 #endif
 
-// QToolBox
-#if !defined(QT_NO_TOOLBOX) && (defined(QT_NO_ICON) || defined(QT_NO_TOOLBUTTON) || defined(QT_NO_SCROLLAREA))
-#define QT_NO_TOOLBOX
-#endif
-
 // QDockwidget
 #if !defined(QT_NO_DOCKWIDGET) && (defined(QT_NO_RUBBERBAND) || defined(QT_NO_MAINWINDOW))
 #define QT_NO_DOCKWIDGET
@@ -808,10 +822,20 @@
 #endif
 
 // QComboBox
-#if !defined(QT_NO_COMBOBOX) && (defined(QT_NO_LINEEDIT) || defined(QT_NO_STANDARDITEMMODEL) || defined(QT_NO_LISTVIEW))
+#if !defined(QT_NO_COMBOBOX) && (defined(QT_NO_LINEEDIT) || defined(QT_NO_STANDARDITEMMODEL) || defined(QT_NO_LISTVIEW) || defined(QT_NO_ICON))
 #define QT_NO_COMBOBOX
 #endif
 
+// QPrintPreviewWidget
+#if !defined(QT_NO_PRINTPREVIEWWIDGET) && (defined(QT_NO_GRAPHICSVIEW) || defined(QT_NO_PRINTER) || defined(QT_NO_MAINWINDOW))
+#define QT_NO_PRINTPREVIEWWIDGET
+#endif
+
+// QWorkSpace
+#if !defined(QT_NO_WORKSPACE) && (defined(QT_NO_SCROLLBAR) || defined(QT_NO_MAINWINDOW) || defined(QT_NO_MENUBAR))
+#define QT_NO_WORKSPACE
+#endif
+
 // QCalendarWidget
 #if !defined(QT_NO_CALENDARWIDGET) && (defined(QT_NO_TABLEVIEW) || defined(QT_NO_MENU) || defined(QT_NO_TEXTDATE) || defined(QT_NO_SPINBOX) || defined(QT_NO_TOOLBUTTON))
 #define QT_NO_CALENDARWIDGET
@@ -842,18 +866,8 @@
 #define QT_NO_FONTDIALOG
 #endif
 
-// QPrintPreviewWidget
-#if !defined(QT_NO_PRINTPREVIEWWIDGET) && (defined(QT_NO_GRAPHICSVIEW) || defined(QT_NO_PRINTER) || defined(QT_NO_TOOLBAR) || defined(QT_NO_MAINWINDOW))
-#define QT_NO_PRINTPREVIEWWIDGET
-#endif
-
-// QWorkSpace
-#if !defined(QT_NO_WORKSPACE) && (defined(QT_NO_SCROLLBAR) || defined(QT_NO_RESIZEHANDLER) || defined(QT_NO_MENU) || defined(QT_NO_TOOLBUTTON) || defined(QT_NO_MAINWINDOW) || defined(QT_NO_TOOLBAR) || defined(QT_NO_MENUBAR))
-#define QT_NO_WORKSPACE
-#endif
-
 // QPrintDialog
-#if !defined(QT_NO_PRINTDIALOG) && (defined(QT_NO_PRINTER) || defined(QT_NO_COMBOBOX) || defined(QT_NO_BUTTONGROUP) || defined(QT_NO_SPINBOX) || defined(QT_NO_TREEVIEW) || defined(QT_NO_STACKEDWIDGET) || defined(QT_NO_TABWIDGET))
+#if !defined(QT_NO_PRINTDIALOG) && (defined(QT_NO_PRINTER) || defined(QT_NO_COMBOBOX) || defined(QT_NO_BUTTONGROUP) || defined(QT_NO_SPINBOX) || defined(QT_NO_TREEVIEW) || defined(QT_NO_TABWIDGET))
 #define QT_NO_PRINTDIALOG
 #endif
 
@@ -863,7 +877,7 @@
 #endif
 
 // QPrintPreviewDialog
-#if !defined(QT_NO_PRINTPREVIEWDIALOG) && (defined(QT_NO_PRINTPREVIEWWIDGET) || defined(QT_NO_PRINTDIALOG) || defined(QT_NO_MAINWINDOW))
+#if !defined(QT_NO_PRINTPREVIEWDIALOG) && (defined(QT_NO_PRINTPREVIEWWIDGET) || defined(QT_NO_PRINTDIALOG))
 #define QT_NO_PRINTPREVIEWDIALOG
 #endif
 
diff --git a/src/corelib/global/qfeatures.txt b/src/corelib/global/qfeatures.txt
index fb9181b..4b012d9 100644
--- a/src/corelib/global/qfeatures.txt
+++ b/src/corelib/global/qfeatures.txt
@@ -154,6 +154,12 @@ Requires: XMLSTREAM
 Name: QXmlStreamWriter
 SeeAlso: ???
 
+Feature: IM
+Description: Inputmethods with QInputContext
+Section: Kernel
+Requires: LIBRARY
+Name: QInputContext
+SeeAlso: ???
 # Data structures
 
 Feature: STL
@@ -346,7 +352,7 @@ SeeAlso: ???
 Feature: COMBOBOX
 Description: Supports comboboxes presenting a list of options to the user.
 Section: Widgets
-Requires: LINEEDIT STANDARDITEMMODEL LISTVIEW
+Requires: LINEEDIT STANDARDITEMMODEL LISTVIEW ICON
 Name: QComboBox
 SeeAlso: ???
 
@@ -374,7 +380,7 @@ SeeAlso: ???
 Feature: TOOLBOX
 Description:  Supports columns of tabbed widget items.
 Section: Widgets
-Requires: ICON TOOLBUTTON SCROLLAREA
+Requires: TOOLBUTTON SCROLLAREA
 Name: QToolBox
 SeeAlso: ???
 
@@ -410,7 +416,7 @@ SeeAlso: ???
 Feature: WORKSPACE
 Description: Supports workspace windows, e.g. used in an MDI application.
 Section: Widgets
-Requires: SCROLLBAR RESIZEHANDLER MENU TOOLBUTTON MAINWINDOW TOOLBAR MENUBAR
+Requires: SCROLLBAR MAINWINDOW MENUBAR
 Name: QWorkSpace
 SeeAlso: ???
 
@@ -544,7 +550,7 @@ SeeAlso: ???
 Feature: WHATSTHIS
 Description: Supports displaying "What's this" help.
 Section: Widgets
-Requires: TOOLBUTTON ACTION
+Requires: TOOLBUTTON 
 Name: QWhatsThis
 SeeAlso: ???
 
@@ -574,7 +580,7 @@ Feature: PRINTPREVIEWWIDGET
 Description: Provides a widget for previewing page layouts for printer output.
 a date.
 Section: Widgets
-Requires: GRAPHICSVIEW PRINTER TOOLBAR MAINWINDOW
+Requires: GRAPHICSVIEW PRINTER MAINWINDOW
 Name: QPrintPreviewWidget
 SeeAlso: ???
 
@@ -591,7 +597,7 @@ SeeAlso: ???
 Feature: COLORDIALOG
 Description: Supports a dialog widget for specifying colors.
 Section: Dialogs
-Requires: LINEEDIT VALIDATOR SPINBOX
+Requires: SPINBOX
 Name: QColorDialog
 SeeAlso: ???
 
@@ -612,14 +618,14 @@ SeeAlso: ???
 Feature: PRINTDIALOG
 Description: Supports a dialog widget for specifying printer configuration.
 Section: Dialogs
-Requires: PRINTER COMBOBOX BUTTONGROUP SPINBOX TREEVIEW STACKEDWIDGET TABWIDGET
+Requires: PRINTER COMBOBOX BUTTONGROUP SPINBOX TREEVIEW TABWIDGET
 Name: QPrintDialog
 SeeAlso: ???
 
 Feature: PRINTPREVIEWDIALOG
 Description: Provides a dialog for previewing and configuring page layouts for printer output.
 Section: Dialogs
-Requires: PRINTPREVIEWWIDGET PRINTDIALOG MAINWINDOW
+Requires: PRINTPREVIEWWIDGET PRINTDIALOG 
 Name: QPrintPreviewDialog
 SeeAlso: ???
 
@@ -779,7 +785,7 @@ SeeAlso: ???
 Feature: STYLE_WINDOWSVISTA
 Description: Supports a Microsoft WindowsVista-like look and feel.
 Section: Styles
-Requires: STYLE_WINDOWS STYLE_WINDOWSXP
+Requires: STYLE_WINDOWSXP
 Name: QWindowsVistaStyle
 SeeAlso: ???
 
@@ -1021,7 +1027,7 @@ SeeAlso: ???
 Feature: QWS_INPUTMETHODS
 Description: Supports international input methods.
 Section: Internationalization
-Requires:
+Requires: IM
 Name: QWSInputMethod
 SeeAlso: ???
 
@@ -1139,7 +1145,7 @@ SeeAlso: ???
 Feature: UNDOGROUP
 Description:
 Section: Utilities
-Requires: UNDOCOMMAND UNDOSTACK
+Requires: UNDOSTACK
 Name: QUndoGroup
 SeeAlso: ???
 
@@ -1153,7 +1159,7 @@ SeeAlso: ???
 Feature: ACCESSIBILITY
 Description: Provides accessibility support.
 Section: Utilities
-Requires: PROPERTIES ACTION MENU
+Requires: PROPERTIES MENUBAR
 Name: Accessibility
 SeeAlso: ???
 
@@ -1359,7 +1365,7 @@ SeeAlso: ???
 Feature: PHONON_PLATFORMPLUGIN
 Description: Support for platform plugin
 Section: Phonon
-Requires:
+Requires: LIBRARY
 Name: Phonon::PlatformPlugin
 SeeAlso: ???
 
@@ -1424,7 +1430,7 @@ SeeAlso: ???
 Feature: PHONON_VOLUMESLIDER
 Description: Support for the Volume Slider class
 Section: Phonon
-Requires: SLIDER ACTION
+Requires: SLIDER TOOLBUTTON
 Name: Phonon::VolumeSlider
 SeeAlso: ???
 
@@ -1441,3 +1447,10 @@ Section: Phonon
 Requires:
 Name: Phonon::AbstractMediaStream
 SeeAlso: ???
+
+Feature: PHONON_SETTINGSGROUP
+Description: Phonon settingsgroup
+Section: Phonon
+Requires: SETTINGS
+Name: Phonon::AbstractMediaStream
+SeeAlso: ???
-- 
cgit v0.12


From fccbc9b94d843f4c55834ee75127cd6219b4839a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=B8rgen=20Lind?= <jorgen.lind@nokia.com>
Date: Wed, 21 Oct 2009 15:26:06 +0200
Subject: Fix LIBRARY and ICON

However, compiling with QT_NO_ICON will still not work :(

Reviewed-by: tom
---
 src/gui/graphicsview/qgraphicsitem.cpp                |  2 ++
 src/gui/graphicsview/qgraphicsscene.cpp               |  2 ++
 src/gui/image/qicon.cpp                               |  2 ++
 src/gui/image/qicon_p.h                               |  3 ++-
 src/gui/image/qiconloader.cpp                         |  9 +++++++--
 src/gui/image/qiconloader_p.h                         |  3 +++
 src/gui/kernel/qapplication.cpp                       |  5 ++++-
 src/gui/kernel/qwidget.cpp                            | 12 ++++++++++++
 src/gui/kernel/qwidget_qws.cpp                        |  3 ++-
 src/gui/painting/qprinterinfo_unix.cpp                |  2 ++
 src/gui/text/qtextcontrol.cpp                         |  2 ++
 src/gui/widgets/qcombobox.h                           |  1 -
 src/gui/widgets/qlinecontrol.cpp                      |  3 ++-
 src/network/access/qnetworkaccessdebugpipebackend.cpp |  4 ++--
 src/plugins/gfxdrivers/qvfb/main.cpp                  |  2 ++
 src/plugins/gfxdrivers/transformed/main.cpp           |  3 ++-
 src/plugins/gfxdrivers/vnc/main.cpp                   |  3 +++
 17 files changed, 51 insertions(+), 10 deletions(-)

diff --git a/src/gui/graphicsview/qgraphicsitem.cpp b/src/gui/graphicsview/qgraphicsitem.cpp
index 2685b86..f7cea17 100644
--- a/src/gui/graphicsview/qgraphicsitem.cpp
+++ b/src/gui/graphicsview/qgraphicsitem.cpp
@@ -9670,12 +9670,14 @@ bool QGraphicsTextItem::sceneEvent(QEvent *event)
         // Reset the focus widget's input context, regardless
         // of how this item gained or lost focus.
         if (QWidget *fw = qApp->focusWidget()) {
+#ifndef QT_NO_IM
             if (QInputContext *qic = fw->inputContext()) {
                 if (event->type() == QEvent::FocusIn || event->type() == QEvent::FocusOut)
                     qic->reset();
                 else
                     qic->update();
             }
+#endif //QT_NO_IM
         }
         break;
     default:
diff --git a/src/gui/graphicsview/qgraphicsscene.cpp b/src/gui/graphicsview/qgraphicsscene.cpp
index c459d21..1e4fe6f 100644
--- a/src/gui/graphicsview/qgraphicsscene.cpp
+++ b/src/gui/graphicsview/qgraphicsscene.cpp
@@ -691,6 +691,7 @@ void QGraphicsScenePrivate::setFocusItemHelper(QGraphicsItem *item,
         focusItem = 0;
         sendEvent(lastFocusItem, &event);
 
+#ifndef QT_NO_IM
         if (lastFocusItem
             && (lastFocusItem->flags() & QGraphicsItem::ItemAcceptsInputMethod)) {
             // Reset any visible preedit text
@@ -706,6 +707,7 @@ void QGraphicsScenePrivate::setFocusItemHelper(QGraphicsItem *item,
                     views.at(i)->inputContext()->reset();
             }
         }
+#endif //QT_NO_IM
     }
 
     if (item) {
diff --git a/src/gui/image/qicon.cpp b/src/gui/image/qicon.cpp
index e0779a0..cff9cd2 100644
--- a/src/gui/image/qicon.cpp
+++ b/src/gui/image/qicon.cpp
@@ -66,6 +66,7 @@
 #include "private/qkde_p.h"
 #endif
 
+#ifndef QT_NO_ICON
 QT_BEGIN_NAMESPACE
 
 /*!
@@ -1217,3 +1218,4 @@ QSize QIcon::pixmapSize(Size which)
 */
 
 QT_END_NAMESPACE
+#endif //QT_NO_ICON
diff --git a/src/gui/image/qicon_p.h b/src/gui/image/qicon_p.h
index fc96a65..43a59a6 100644
--- a/src/gui/image/qicon_p.h
+++ b/src/gui/image/qicon_p.h
@@ -60,6 +60,7 @@
 #include <QtGui/qicon.h>
 #include <QtGui/qiconengine.h>
 
+#ifndef QT_NO_ICON
 QT_BEGIN_NAMESPACE
 
 class QIconPrivate
@@ -134,5 +135,5 @@ private:
 };
 
 QT_END_NAMESPACE
-
+#endif //QT_NO_ICON
 #endif // QICON_P_H
diff --git a/src/gui/image/qiconloader.cpp b/src/gui/image/qiconloader.cpp
index 46c5431..234f271 100644
--- a/src/gui/image/qiconloader.cpp
+++ b/src/gui/image/qiconloader.cpp
@@ -38,7 +38,7 @@
 ** $QT_END_LICENSE$
 **
 ****************************************************************************/
-
+#ifndef QT_NO_ICON
 #include <private/qiconloader_p.h>
 
 #include <private/qapplication_p.h>
@@ -92,11 +92,13 @@ QIconLoader::QIconLoader() :
     if (m_systemTheme.isEmpty())
         m_systemTheme = fallbackTheme();
 
+#ifndef QT_NO_LIBRARY
     QFactoryLoader iconFactoryLoader(QIconEngineFactoryInterfaceV2_iid,
                                      QLatin1String("/iconengines"),
                                      Qt::CaseInsensitive);
     if (iconFactoryLoader.keys().contains(QLatin1String("svg")))
         m_supportsSvg = true;
+#endif //QT_NO_LIBRARY
 }
 
 QIconLoader *QIconLoader::instance()
@@ -160,7 +162,7 @@ QIconTheme::QIconTheme(const QString &themeName)
             break;
         }
     }
-
+#ifndef QT_NO_SETTINGS
     if (themeIndex.exists()) {
         const QSettings indexReader(themeIndex.fileName(), QSettings::IniFormat);
         QStringListIterator keyIterator(indexReader.allKeys());
@@ -213,6 +215,7 @@ QIconTheme::QIconTheme(const QString &themeName)
         if (!m_parents.contains(QLatin1String("hicolor")))
             m_parents.append(QLatin1String("hicolor"));
     }
+#endif //QT_NO_SETTINGS
 }
 
 QThemeIconEntries QIconLoader::findIconHelper(const QString &themeName,
@@ -546,3 +549,5 @@ void QIconLoaderEngine::virtual_hook(int id, void *data)
 }
 
 QT_END_NAMESPACE
+
+#endif //QT_NO_ICON
diff --git a/src/gui/image/qiconloader_p.h b/src/gui/image/qiconloader_p.h
index b152d46..2a330d3 100644
--- a/src/gui/image/qiconloader_p.h
+++ b/src/gui/image/qiconloader_p.h
@@ -42,6 +42,7 @@
 #ifndef QDESKTOPICON_P_H
 #define QDESKTOPICON_P_H
 
+#ifndef QT_NO_ICON
 //
 //  W A R N I N G
 //  -------------
@@ -185,3 +186,5 @@ private:
 QT_END_NAMESPACE
 
 #endif // QDESKTOPICON_P_H
+
+#endif //QT_NO_ICON
diff --git a/src/gui/kernel/qapplication.cpp b/src/gui/kernel/qapplication.cpp
index 85b055e..30d3c7f 100644
--- a/src/gui/kernel/qapplication.cpp
+++ b/src/gui/kernel/qapplication.cpp
@@ -2081,7 +2081,7 @@ void QApplicationPrivate::setFocusWidget(QWidget *focus, Qt::FocusReason reason)
         }
         QWidget *prev = focus_widget;
         focus_widget = focus;
-
+#ifndef QT_NO_IM
         if (prev && ((reason != Qt::PopupFocusReason && reason != Qt::MenuBarFocusReason
             && prev->testAttribute(Qt::WA_InputMethodEnabled))
             // Do reset the input context, in case the new focus widget won't accept keyboard input
@@ -2094,6 +2094,7 @@ void QApplicationPrivate::setFocusWidget(QWidget *focus, Qt::FocusReason reason)
                 qic->setFocusWidget(0);
             }
         }
+#endif //QT_NO_IM
 
         if(focus_widget)
             focus_widget->d_func()->setFocus_sys();
@@ -2125,12 +2126,14 @@ void QApplicationPrivate::setFocusWidget(QWidget *focus, Qt::FocusReason reason)
                     QApplication::sendEvent(that->style(), &out);
             }
             if(focus && QApplicationPrivate::focus_widget == focus) {
+#ifndef QT_NO_IM
                 if (focus->testAttribute(Qt::WA_InputMethodEnabled)) {
                     QInputContext *qic = focus->inputContext();
                     if (qic && focus->testAttribute(Qt::WA_WState_Created)
                         && focus->isEnabled())
                         qic->setFocusWidget(focus);
                 }
+#endif //QT_NO_IM
                 QFocusEvent in(QEvent::FocusIn, reason);
                 QPointer<QWidget> that = focus;
                 QApplication::sendEvent(focus, &in);
diff --git a/src/gui/kernel/qwidget.cpp b/src/gui/kernel/qwidget.cpp
index 5fa9a92..916ae8b 100644
--- a/src/gui/kernel/qwidget.cpp
+++ b/src/gui/kernel/qwidget.cpp
@@ -3072,6 +3072,7 @@ void QWidgetPrivate::setEnabled_helper(bool enable)
 #if defined(Q_WS_MAC)
     setEnabled_helper_sys(enable);
 #endif
+#ifndef QT_NO_IM
     if (q->testAttribute(Qt::WA_InputMethodEnabled) && q->hasFocus()) {
         QInputContext *qic = inputContext();
         if (enable) {
@@ -3081,6 +3082,7 @@ void QWidgetPrivate::setEnabled_helper(bool enable)
             qic->setFocusWidget(0);
         }
     }
+#endif //QT_NO_IM
     QEvent e(QEvent::EnabledChange);
     QApplication::sendEvent(q, &e);
 #ifdef QT3_SUPPORT
@@ -8950,11 +8952,16 @@ QVariant QWidget::inputMethodQuery(Qt::InputMethodQuery query) const
 Qt::InputMethodHints QWidget::inputMethodHints() const
 {
     Q_D(const QWidget);
+#ifndef QT_NO_IM
     return d->imHints;
+#else //QT_NO_IM
+    return 0;
+#endif //QT_NO_IM
 }
 
 void QWidget::setInputMethodHints(Qt::InputMethodHints hints)
 {
+#ifndef QT_NO_IM
     Q_D(QWidget);
     d->imHints = hints;
     // Optimisation to update input context only it has already been created.
@@ -8963,6 +8970,7 @@ void QWidget::setInputMethodHints(Qt::InputMethodHints hints)
         if (ic)
             ic->update();
     }
+#endif //QT_NO_IM
 }
 
 
@@ -10294,6 +10302,7 @@ void QWidget::setAttribute(Qt::WidgetAttribute attribute, bool on)
         QApplication::sendEvent(this, &e);
         break; }
     case Qt::WA_NativeWindow: {
+#ifndef QT_NO_IM
         QInputContext *ic = 0;
         if (on && !internalWinId() && testAttribute(Qt::WA_InputMethodEnabled) && hasFocus()) {
             ic = d->inputContext();
@@ -10306,6 +10315,7 @@ void QWidget::setAttribute(Qt::WidgetAttribute attribute, bool on)
             d->createWinId();
         if (ic && isEnabled())
             ic->setFocusWidget(this);
+#endif //QT_NO_IM
         break;
     }
     case Qt::WA_PaintOnScreen:
@@ -10335,6 +10345,7 @@ void QWidget::setAttribute(Qt::WidgetAttribute attribute, bool on)
 #endif
         break;
     case Qt::WA_InputMethodEnabled: {
+#ifndef QT_NO_IM
         QInputContext *ic = d->ic;
         if (!ic && (!on || hasFocus()))
             ic = d->inputContext();
@@ -10346,6 +10357,7 @@ void QWidget::setAttribute(Qt::WidgetAttribute attribute, bool on)
                 ic->setFocusWidget(0);
             }
         }
+#endif //QT_NO_IM
         break;
     }
     case Qt::WA_WindowPropagation:
diff --git a/src/gui/kernel/qwidget_qws.cpp b/src/gui/kernel/qwidget_qws.cpp
index 0f46016..e299c6e 100644
--- a/src/gui/kernel/qwidget_qws.cpp
+++ b/src/gui/kernel/qwidget_qws.cpp
@@ -280,7 +280,7 @@ void QWidget::destroy(bool destroyWindow, bool destroySubWindows)
             QApplicationPrivate::leaveModal(this);
         else if ((windowType() == Qt::Popup))
             qApp->d_func()->closePopup(this);
-
+#ifndef QT_NO_IM
         if (d->ic) {
             delete d->ic;
             d->ic =0;
@@ -291,6 +291,7 @@ void QWidget::destroy(bool destroyWindow, bool destroySubWindows)
             if (qic)
                 qic->widgetDestroyed(this);
         }
+#endif //QT_NO_IM
 
         if ((windowType() == Qt::Desktop)) {
         } else {
diff --git a/src/gui/painting/qprinterinfo_unix.cpp b/src/gui/painting/qprinterinfo_unix.cpp
index 7e2946a..6684ff7 100644
--- a/src/gui/painting/qprinterinfo_unix.cpp
+++ b/src/gui/painting/qprinterinfo_unix.cpp
@@ -421,6 +421,7 @@ int qt_pd_foreach(int /*status */, char * /*key */, int /*keyLen */,
 
 int qt_retrieveNisPrinters(QList<QPrinterDescription> *printers)
 {
+#ifndef QT_NO_LIBRARY
     typedef int (*WildCast)(int, char *, int, char *, int, char *);
     char printersConfByname[] = "printers.conf.byname";
     char *domain;
@@ -444,6 +445,7 @@ int qt_retrieveNisPrinters(QList<QPrinterDescription> *printers)
         if (!err)
             return Success;
     }
+#endif //QT_NO_LIBRARY
     return Unavail;
 }
 
diff --git a/src/gui/text/qtextcontrol.cpp b/src/gui/text/qtextcontrol.cpp
index ee8b751..3f6545c 100644
--- a/src/gui/text/qtextcontrol.cpp
+++ b/src/gui/text/qtextcontrol.cpp
@@ -1619,9 +1619,11 @@ void QTextControlPrivate::mouseMoveEvent(Qt::MouseButtons buttons, const QPointF
         if (cursor.position() != oldCursorPos)
             emit q->cursorPositionChanged();
         _q_updateCurrentCharFormatAndSelection();
+#ifndef QT_NO_IM
         if (QInputContext *ic = inputContext()) {
             ic->update();
         }
+#endif //QT_NO_IM
     } else {
         //emit q->visibilityRequest(QRectF(mousePos, QSizeF(1, 1)));
         if (cursor.position() != oldCursorPos)
diff --git a/src/gui/widgets/qcombobox.h b/src/gui/widgets/qcombobox.h
index 6a85096..462636c 100644
--- a/src/gui/widgets/qcombobox.h
+++ b/src/gui/widgets/qcombobox.h
@@ -52,7 +52,6 @@ QT_BEGIN_HEADER
 QT_BEGIN_NAMESPACE
 
 QT_MODULE(Gui)
-
 #ifndef QT_NO_COMBOBOX
 
 class QAbstractItemView;
diff --git a/src/gui/widgets/qlinecontrol.cpp b/src/gui/widgets/qlinecontrol.cpp
index 7f9ff82..8f17e98 100644
--- a/src/gui/widgets/qlinecontrol.cpp
+++ b/src/gui/widgets/qlinecontrol.cpp
@@ -447,8 +447,9 @@ void QLineControl::processInputMethodEvent(QInputMethodEvent *event)
             cursorPositionChanged = true;
         }
     }
-
+#ifndef QT_NO_IM
     setPreeditArea(m_cursor, event->preeditString());
+#endif //QT_NO_IM
     m_preeditCursor = event->preeditString().length();
     m_hideCursor = false;
     QList<QTextLayout::FormatRange> formats;
diff --git a/src/network/access/qnetworkaccessdebugpipebackend.cpp b/src/network/access/qnetworkaccessdebugpipebackend.cpp
index b4af5b6..4f7f15c 100644
--- a/src/network/access/qnetworkaccessdebugpipebackend.cpp
+++ b/src/network/access/qnetworkaccessdebugpipebackend.cpp
@@ -229,7 +229,7 @@ void QNetworkAccessDebugPipeBackend::possiblyFinish()
 
 void QNetworkAccessDebugPipeBackend::closeDownstreamChannel()
 {
-    qWarning() << "QNetworkAccessDebugPipeBackend::closeDownstreamChannel()" << operation();
+    qWarning("QNetworkAccessDebugPipeBackend::closeDownstreamChannel()",operation());;
     //if (operation() == QNetworkAccessManager::GetOperation)
     //    socket.disconnectFromHost();
 }
@@ -237,7 +237,7 @@ void QNetworkAccessDebugPipeBackend::closeDownstreamChannel()
 
 void QNetworkAccessDebugPipeBackend::socketError()
 {
-    qWarning() << "QNetworkAccessDebugPipeBackend::socketError()" << socket.error();
+    qWarning("QNetworkAccessDebugPipeBackend::socketError()", socket.error());
     QNetworkReply::NetworkError code;
     switch (socket.error()) {
     case QAbstractSocket::RemoteHostClosedError:
diff --git a/src/plugins/gfxdrivers/qvfb/main.cpp b/src/plugins/gfxdrivers/qvfb/main.cpp
index bcaecab..beca37e 100644
--- a/src/plugins/gfxdrivers/qvfb/main.cpp
+++ b/src/plugins/gfxdrivers/qvfb/main.cpp
@@ -43,6 +43,7 @@
 #include <qscreenvfb_qws.h>
 #include <qstringlist.h>
 
+#ifndef QT_NO_LIBRARY
 QT_BEGIN_NAMESPACE
 
 class ScreenVfbDriver : public QScreenDriverPlugin
@@ -78,3 +79,4 @@ Q_EXPORT_STATIC_PLUGIN(ScreenVfbDriver)
 Q_EXPORT_PLUGIN2(qscreenvfb, ScreenVfbDriver)
 
 QT_END_NAMESPACE
+#endif //QT_NO_LIBRARY
diff --git a/src/plugins/gfxdrivers/transformed/main.cpp b/src/plugins/gfxdrivers/transformed/main.cpp
index 859fd49..a9ff97d 100644
--- a/src/plugins/gfxdrivers/transformed/main.cpp
+++ b/src/plugins/gfxdrivers/transformed/main.cpp
@@ -42,7 +42,7 @@
 #include <qscreendriverplugin_qws.h>
 #include <qscreentransformed_qws.h>
 #include <qstringlist.h>
-
+#ifndef QT_NO_LIBRARY
 QT_BEGIN_NAMESPACE
 
 class GfxTransformedDriver : public QScreenDriverPlugin
@@ -81,3 +81,4 @@ Q_EXPORT_STATIC_PLUGIN(GfxTransformedDriver)
 Q_EXPORT_PLUGIN2(qgfxtransformed, GfxTransformedDriver)
 
 QT_END_NAMESPACE
+#endif //QT_NO_LIBRARY
diff --git a/src/plugins/gfxdrivers/vnc/main.cpp b/src/plugins/gfxdrivers/vnc/main.cpp
index 7d91ff5..58c8c25 100644
--- a/src/plugins/gfxdrivers/vnc/main.cpp
+++ b/src/plugins/gfxdrivers/vnc/main.cpp
@@ -43,6 +43,7 @@
 #include <qscreenvnc_qws.h>
 #include <qstringlist.h>
 
+#ifndef QT_NO_LIBRARY
 QT_BEGIN_NAMESPACE
 
 class GfxVncDriver : public QScreenDriverPlugin
@@ -81,3 +82,5 @@ Q_EXPORT_STATIC_PLUGIN(GfxVncDriver)
 Q_EXPORT_PLUGIN2(qgfxvnc, GfxVncDriver)
 
 QT_END_NAMESPACE
+
+#endif //QT_NO_LIBRARY
-- 
cgit v0.12


From a45a8e33b72a4a86ae269acabc5e95ed8452cda9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=B8rgen=20Lind?= <jorgen.lind@nokia.com>
Date: Thu, 22 Oct 2009 11:32:20 +0200
Subject: Fix QT_NO_PHONON_VIDEO

Reviewed-by: Jens Bache-Wiig
---
 src/3rdparty/phonon/gstreamer/abstractrenderer.cpp | 3 ++-
 src/3rdparty/phonon/gstreamer/abstractrenderer.h   | 3 ++-
 src/3rdparty/phonon/gstreamer/backend.cpp          | 7 +++----
 src/3rdparty/phonon/gstreamer/devicemanager.cpp    | 2 ++
 src/3rdparty/phonon/gstreamer/videowidget.cpp      | 2 ++
 src/3rdparty/phonon/gstreamer/videowidget.h        | 3 ++-
 src/3rdparty/phonon/gstreamer/widgetrenderer.cpp   | 2 ++
 src/3rdparty/phonon/gstreamer/widgetrenderer.h     | 3 ++-
 8 files changed, 17 insertions(+), 8 deletions(-)

diff --git a/src/3rdparty/phonon/gstreamer/abstractrenderer.cpp b/src/3rdparty/phonon/gstreamer/abstractrenderer.cpp
index 924b611..5d88d10 100644
--- a/src/3rdparty/phonon/gstreamer/abstractrenderer.cpp
+++ b/src/3rdparty/phonon/gstreamer/abstractrenderer.cpp
@@ -17,6 +17,7 @@
 
 #include "abstractrenderer.h"
 
+#ifndef QT_NO_PHONON_VIDEO
 QT_BEGIN_NAMESPACE
 
 namespace Phonon
@@ -52,5 +53,5 @@ void AbstractRenderer::movieSizeChanged(const QSize &size)
 } //namespace Phonon::Gstreamer
 
 QT_END_NAMESPACE
-
+#endif //QT_NO_PHONON_VIDEO
 
diff --git a/src/3rdparty/phonon/gstreamer/abstractrenderer.h b/src/3rdparty/phonon/gstreamer/abstractrenderer.h
index 140413d..10a2822 100644
--- a/src/3rdparty/phonon/gstreamer/abstractrenderer.h
+++ b/src/3rdparty/phonon/gstreamer/abstractrenderer.h
@@ -23,6 +23,7 @@
 #include "medianode.h"
 #include <phonon/videowidget.h>
 
+#ifndef QT_NO_PHONON_VIDEO
 QT_BEGIN_NAMESPACE
 
 class QString;
@@ -58,5 +59,5 @@ protected:
 } //namespace Phonon::Gstreamer
 
 QT_END_NAMESPACE
-
+#endif //QT_NO_PHONON_VIDEO
 #endif // Phonon_GSTREAMER_ABSTRACTRENDERER_H
diff --git a/src/3rdparty/phonon/gstreamer/backend.cpp b/src/3rdparty/phonon/gstreamer/backend.cpp
index 647bb6f..e1ffd1f 100644
--- a/src/3rdparty/phonon/gstreamer/backend.cpp
+++ b/src/3rdparty/phonon/gstreamer/backend.cpp
@@ -126,6 +126,7 @@ QObject *Backend::createObject(BackendInterface::Class c, QObject *parent, const
         logMessage("createObject() : AudioDataOutput not implemented");
         break;
 
+#ifndef QT_NO_PHONON_VIDEO
     case VideoDataOutputClass:
         logMessage("createObject() : VideoDataOutput not implemented");
         break;
@@ -134,12 +135,10 @@ QObject *Backend::createObject(BackendInterface::Class c, QObject *parent, const
             QWidget *widget =  qobject_cast<QWidget*>(parent);
             return new VideoWidget(this, widget);
         }
-
-    case VolumeFaderEffectClass:
+#endif //QT_NO_PHONON_VIDEO
 #ifndef QT_NO_PHONON_VOLUMEFADEREFFECT
+    case VolumeFaderEffectClass:
         return new VolumeFaderEffect(this, parent);
-#else
-        return 0;
 #endif //QT_NO_PHONON_VOLUMEFADEREFFECT
 
     case VisualizationClass:  //Fall through
diff --git a/src/3rdparty/phonon/gstreamer/devicemanager.cpp b/src/3rdparty/phonon/gstreamer/devicemanager.cpp
index 86463c1..60e860f 100644
--- a/src/3rdparty/phonon/gstreamer/devicemanager.cpp
+++ b/src/3rdparty/phonon/gstreamer/devicemanager.cpp
@@ -246,6 +246,7 @@ GstElement *DeviceManager::createAudioSink(Category category)
     return sink;
 }
 
+#ifndef QT_NO_PHONON_VIDEO
 AbstractRenderer *DeviceManager::createVideoRenderer(VideoWidget *parent)
 {
 #if !defined(QT_NO_OPENGL) && !defined(QT_OPENGL_ES)
@@ -268,6 +269,7 @@ AbstractRenderer *DeviceManager::createVideoRenderer(VideoWidget *parent)
 #endif
     return new WidgetRenderer(parent);
 }
+#endif //QT_NO_PHONON_VIDEO
 
 /*
  * Returns a positive device id or -1 if device
diff --git a/src/3rdparty/phonon/gstreamer/videowidget.cpp b/src/3rdparty/phonon/gstreamer/videowidget.cpp
index efc750a..e1f0ec9 100644
--- a/src/3rdparty/phonon/gstreamer/videowidget.cpp
+++ b/src/3rdparty/phonon/gstreamer/videowidget.cpp
@@ -33,6 +33,7 @@
 #include "widgetrenderer.h"
 #include "x11renderer.h"
 
+#ifndef QT_NO_PHONON_VIDEO
 QT_BEGIN_NAMESPACE
 
 namespace Phonon
@@ -383,5 +384,6 @@ void VideoWidget::mediaNodeEvent(const MediaNodeEvent *event)
 } //namespace Phonon::Gstreamer
 
 QT_END_NAMESPACE
+#endif //QT_NO_PHONON_VIDEO
 
 #include "moc_videowidget.cpp"
diff --git a/src/3rdparty/phonon/gstreamer/videowidget.h b/src/3rdparty/phonon/gstreamer/videowidget.h
index a0ebe5f..dc0754d 100644
--- a/src/3rdparty/phonon/gstreamer/videowidget.h
+++ b/src/3rdparty/phonon/gstreamer/videowidget.h
@@ -28,6 +28,7 @@
 
 #include <gst/gst.h>
 
+#ifndef QT_NO_PHONON_VIDEO
 QT_BEGIN_NAMESPACE
 
 class QString;
@@ -102,5 +103,5 @@ private:
 } //namespace Phonon::Gstreamer
 
 QT_END_NAMESPACE
-
+#endif //QT_NO_PHONON_VIDEO
 #endif // Phonon_GSTREAMER_VIDEOWIDGET_H
diff --git a/src/3rdparty/phonon/gstreamer/widgetrenderer.cpp b/src/3rdparty/phonon/gstreamer/widgetrenderer.cpp
index d4a411f..423af9d 100644
--- a/src/3rdparty/phonon/gstreamer/widgetrenderer.cpp
+++ b/src/3rdparty/phonon/gstreamer/widgetrenderer.cpp
@@ -32,6 +32,7 @@
 # define GL_TEXTURE2    0x84C2
 #endif
 
+#ifndef QT_NO_PHONON_VIDEO
 QT_BEGIN_NAMESPACE
 
 static void frameRendered()
@@ -148,3 +149,4 @@ bool WidgetRenderer::eventFilter(QEvent * event)
 } //namespace Phonon::Gstreamer
 
 QT_END_NAMESPACE
+#endif //QT_NO_PHONON_VIDEO
diff --git a/src/3rdparty/phonon/gstreamer/widgetrenderer.h b/src/3rdparty/phonon/gstreamer/widgetrenderer.h
index ff64fa7..03ee9c0 100644
--- a/src/3rdparty/phonon/gstreamer/widgetrenderer.h
+++ b/src/3rdparty/phonon/gstreamer/widgetrenderer.h
@@ -26,6 +26,7 @@
 #include <QtOpenGL/QGLWidget>
 #endif
 
+#ifndef QT_NO_PHONON_VIDEO
 QT_BEGIN_NAMESPACE
 
 class QString;
@@ -59,5 +60,5 @@ private:
 } //namespace Phonon::Gstreamer
 
 QT_END_NAMESPACE
-
+#endif //QT_NO_PHONON_VIDEO
 #endif // Phonon_GSTREAMER_WIDGETRENDERER_H
-- 
cgit v0.12


From 433d3d130ac1b542f12574566c176f065bab29d9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=B8rgen=20Lind?= <jorgen.lind@nokia.com>
Date: Thu, 22 Oct 2009 13:46:32 +0200
Subject: Remove ICON from QFeature

Reviewed-by: Trust Me
---
 src/corelib/global/qconfig-local.h |   3 +
 src/corelib/global/qfeatures.h     | 109 ++++++++++++++++++-------------------
 src/corelib/global/qfeatures.txt   |  13 +----
 3 files changed, 58 insertions(+), 67 deletions(-)
 create mode 100644 src/corelib/global/qconfig-local.h

diff --git a/src/corelib/global/qconfig-local.h b/src/corelib/global/qconfig-local.h
new file mode 100644
index 0000000..90db873
--- /dev/null
+++ b/src/corelib/global/qconfig-local.h
@@ -0,0 +1,3 @@
+#ifndef QT_NO_SCROLLAREA
+#  define QT_NO_SCROLLAREA
+#endif
diff --git a/src/corelib/global/qfeatures.h b/src/corelib/global/qfeatures.h
index adc2743..e4fd67a 100644
--- a/src/corelib/global/qfeatures.h
+++ b/src/corelib/global/qfeatures.h
@@ -82,9 +82,6 @@
 // QGroupBox
 //#define QT_NO_GROUPBOX
 
-// QIcon
-//#define QT_NO_ICON
-
 // QImageIOPlugin
 //#define QT_NO_IMAGEFORMATPLUGIN
 
@@ -256,6 +253,9 @@
 // QSystemSemaphore
 //#define QT_NO_SYSTEMSEMAPHORE
 
+// QSystemTrayIcon
+//#define QT_NO_SYSTEMTRAYICON
+
 // QTabletEvent
 //#define QT_NO_TABLETEVENT
 
@@ -466,9 +466,9 @@
 #define QT_NO_SXE
 #endif
 
-// QSystemTrayIcon
-#if !defined(QT_NO_SYSTEMTRAYICON) && (defined(QT_NO_ICON))
-#define QT_NO_SYSTEMTRAYICON
+// QToolButton
+#if !defined(QT_NO_TOOLBUTTON) && (defined(QT_NO_ACTION))
+#define QT_NO_TOOLBUTTON
 #endif
 
 // QUndoStack
@@ -536,16 +536,16 @@
 #define QT_NO_STYLE_WINDOWSVISTA
 #endif
 
+// QTabBar
+#if !defined(QT_NO_TABBAR) && (defined(QT_NO_TOOLBUTTON))
+#define QT_NO_TABBAR
+#endif
+
 // OdfWriter
 #if !defined(QT_NO_TEXTODFWRITER) && (defined(QT_NO_XMLSTREAMWRITER))
 #define QT_NO_TEXTODFWRITER
 #endif
 
-// QToolButton
-#if !defined(QT_NO_TOOLBUTTON) && (defined(QT_NO_ICON) || defined(QT_NO_ACTION))
-#define QT_NO_TOOLBUTTON
-#endif
-
 // Translation (UTF-8 representation)
 #if !defined(QT_NO_TRANSLATION_UTF8) && (defined(QT_NO_TRANSLATION) || defined(QT_NO_TEXTCODEC))
 #define QT_NO_TRANSLATION_UTF8
@@ -556,6 +556,11 @@
 #define QT_NO_UNDOGROUP
 #endif
 
+// QWhatsThis
+#if !defined(QT_NO_WHATSTHIS) && (defined(QT_NO_TOOLBUTTON))
+#define QT_NO_WHATSTHIS
+#endif
+
 // Drag and drop
 #if !defined(QT_NO_DRAGANDDROP) && (defined(QT_NO_QWS_PROPERTIES) || defined(QT_NO_IMAGEFORMAT_XPM))
 #define QT_NO_DRAGANDDROP
@@ -581,6 +586,11 @@
 #define QT_NO_PHONON_PLATFORMPLUGIN
 #endif
 
+// Phonon::VolumeSlider
+#if !defined(QT_NO_PHONON_VOLUMESLIDER) && (defined(QT_NO_SLIDER) || defined(QT_NO_TOOLBUTTON))
+#define QT_NO_PHONON_VOLUMESLIDER
+#endif
+
 // QPrinter
 #if !defined(QT_NO_PRINTER) && (defined(QT_NO_TEXTSTREAM) || defined(QT_NO_PICTURE) || defined(QT_NO_TEMPORARYFILE))
 #define QT_NO_PRINTER
@@ -621,14 +631,9 @@
 #define QT_NO_SVG
 #endif
 
-// QTabBar
-#if !defined(QT_NO_TABBAR) && (defined(QT_NO_TOOLBUTTON))
-#define QT_NO_TABBAR
-#endif
-
-// QWhatsThis
-#if !defined(QT_NO_WHATSTHIS) && (defined(QT_NO_TOOLBUTTON))
-#define QT_NO_WHATSTHIS
+// Q3TabDialog
+#if !defined(QT_NO_TABDIALOG) && (defined(QT_NO_TABBAR))
+#define QT_NO_TABDIALOG
 #endif
 
 // QColorDialog
@@ -641,9 +646,9 @@
 #define QT_NO_ITEMVIEWS
 #endif
 
-// Phonon::VolumeSlider
-#if !defined(QT_NO_PHONON_VOLUMESLIDER) && (defined(QT_NO_SLIDER) || defined(QT_NO_TOOLBUTTON))
-#define QT_NO_PHONON_VOLUMESLIDER
+// QMenuBar
+#if !defined(QT_NO_MENUBAR) && (defined(QT_NO_MENU) || defined(QT_NO_TOOLBUTTON))
+#define QT_NO_MENUBAR
 #endif
 
 // QWSInputMethod
@@ -666,9 +671,9 @@
 #define QT_NO_SVGRENDERER
 #endif
 
-// Q3TabDialog
-#if !defined(QT_NO_TABDIALOG) && (defined(QT_NO_TABBAR))
-#define QT_NO_TABDIALOG
+// QTabWidget
+#if !defined(QT_NO_TABWIDGET) && (defined(QT_NO_TABBAR) || defined(QT_NO_STACKEDWIDGET))
+#define QT_NO_TABWIDGET
 #endif
 
 // QTextCodecPlugin
@@ -696,9 +701,9 @@
 #define QT_NO_LISTVIEW
 #endif
 
-// QMenuBar
-#if !defined(QT_NO_MENUBAR) && (defined(QT_NO_MENU) || defined(QT_NO_TOOLBUTTON))
-#define QT_NO_MENUBAR
+// QMainWindow
+#if !defined(QT_NO_MAINWINDOW) && (defined(QT_NO_MENU) || defined(QT_NO_RESIZEHANDLER) || defined(QT_NO_TOOLBUTTON))
+#define QT_NO_MAINWINDOW
 #endif
 
 // QAbstractProxyModel
@@ -731,21 +736,26 @@
 #define QT_NO_TABLEVIEW
 #endif
 
-// QTabWidget
-#if !defined(QT_NO_TABWIDGET) && (defined(QT_NO_TABBAR) || defined(QT_NO_STACKEDWIDGET))
-#define QT_NO_TABWIDGET
-#endif
-
 // QTextBrowser
 #if !defined(QT_NO_TEXTBROWSER) && (defined(QT_NO_TEXTEDIT))
 #define QT_NO_TEXTBROWSER
 #endif
 
+// QToolBox
+#if !defined(QT_NO_TOOLBOX) && (defined(QT_NO_TOOLBUTTON) || defined(QT_NO_SCROLLAREA))
+#define QT_NO_TOOLBOX
+#endif
+
 // QTreeView
 #if !defined(QT_NO_TREEVIEW) && (defined(QT_NO_ITEMVIEWS))
 #define QT_NO_TREEVIEW
 #endif
 
+// Accessibility
+#if !defined(QT_NO_ACCESSIBILITY) && (defined(QT_NO_PROPERTIES) || defined(QT_NO_MENUBAR))
+#define QT_NO_ACCESSIBILITY
+#endif
+
 // QColumnView
 #if !defined(QT_NO_COLUMNVIEW) && (defined(QT_NO_LISTVIEW))
 #define QT_NO_COLUMNVIEW
@@ -766,11 +776,6 @@
 #define QT_NO_LISTWIDGET
 #endif
 
-// QMainWindow
-#if !defined(QT_NO_MAINWINDOW) && (defined(QT_NO_MENU) || defined(QT_NO_RESIZEHANDLER) || defined(QT_NO_TOOLBUTTON))
-#define QT_NO_MAINWINDOW
-#endif
-
 // QSortFilterProxyModel
 #if !defined(QT_NO_SORTFILTERPROXYMODEL) && (defined(QT_NO_PROXYMODEL))
 #define QT_NO_SORTFILTERPROXYMODEL
@@ -781,9 +786,9 @@
 #define QT_NO_TABLEWIDGET
 #endif
 
-// QToolBox
-#if !defined(QT_NO_TOOLBOX) && (defined(QT_NO_TOOLBUTTON) || defined(QT_NO_SCROLLAREA))
-#define QT_NO_TOOLBOX
+// QToolBar
+#if !defined(QT_NO_TOOLBAR) && (defined(QT_NO_MAINWINDOW))
+#define QT_NO_TOOLBAR
 #endif
 
 // QTreeWidget
@@ -791,21 +796,11 @@
 #define QT_NO_TREEWIDGET
 #endif
 
-// Accessibility
-#if !defined(QT_NO_ACCESSIBILITY) && (defined(QT_NO_PROPERTIES) || defined(QT_NO_MENUBAR))
-#define QT_NO_ACCESSIBILITY
-#endif
-
 // Common UNIX Printing System
 #if !defined(QT_NO_CUPS) && (defined(QT_NO_PRINTER) || defined(QT_NO_LIBRARY))
 #define QT_NO_CUPS
 #endif
 
-// QToolBar
-#if !defined(QT_NO_TOOLBAR) && (defined(QT_NO_MAINWINDOW))
-#define QT_NO_TOOLBAR
-#endif
-
 // QDockwidget
 #if !defined(QT_NO_DOCKWIDGET) && (defined(QT_NO_RUBBERBAND) || defined(QT_NO_MAINWINDOW))
 #define QT_NO_DOCKWIDGET
@@ -822,20 +817,20 @@
 #endif
 
 // QComboBox
-#if !defined(QT_NO_COMBOBOX) && (defined(QT_NO_LINEEDIT) || defined(QT_NO_STANDARDITEMMODEL) || defined(QT_NO_LISTVIEW) || defined(QT_NO_ICON))
+#if !defined(QT_NO_COMBOBOX) && (defined(QT_NO_LINEEDIT) || defined(QT_NO_STANDARDITEMMODEL) || defined(QT_NO_LISTVIEW))
 #define QT_NO_COMBOBOX
 #endif
 
-// QPrintPreviewWidget
-#if !defined(QT_NO_PRINTPREVIEWWIDGET) && (defined(QT_NO_GRAPHICSVIEW) || defined(QT_NO_PRINTER) || defined(QT_NO_MAINWINDOW))
-#define QT_NO_PRINTPREVIEWWIDGET
-#endif
-
 // QWorkSpace
 #if !defined(QT_NO_WORKSPACE) && (defined(QT_NO_SCROLLBAR) || defined(QT_NO_MAINWINDOW) || defined(QT_NO_MENUBAR))
 #define QT_NO_WORKSPACE
 #endif
 
+// QPrintPreviewWidget
+#if !defined(QT_NO_PRINTPREVIEWWIDGET) && (defined(QT_NO_GRAPHICSVIEW) || defined(QT_NO_PRINTER) || defined(QT_NO_MAINWINDOW))
+#define QT_NO_PRINTPREVIEWWIDGET
+#endif
+
 // QCalendarWidget
 #if !defined(QT_NO_CALENDARWIDGET) && (defined(QT_NO_TABLEVIEW) || defined(QT_NO_MENU) || defined(QT_NO_TEXTDATE) || defined(QT_NO_SPINBOX) || defined(QT_NO_TOOLBUTTON))
 #define QT_NO_CALENDARWIDGET
diff --git a/src/corelib/global/qfeatures.txt b/src/corelib/global/qfeatures.txt
index 4b012d9..0bee94a 100644
--- a/src/corelib/global/qfeatures.txt
+++ b/src/corelib/global/qfeatures.txt
@@ -352,7 +352,7 @@ SeeAlso: ???
 Feature: COMBOBOX
 Description: Supports comboboxes presenting a list of options to the user.
 Section: Widgets
-Requires: LINEEDIT STANDARDITEMMODEL LISTVIEW ICON
+Requires: LINEEDIT STANDARDITEMMODEL LISTVIEW 
 Name: QComboBox
 SeeAlso: ???
 
@@ -366,7 +366,7 @@ SeeAlso: ???
 Feature: TOOLBUTTON
 Description: Supports quick-access buttons to commands and options.
 Section: Widgets
-Requires: ICON ACTION
+Requires: ACTION
 Name: QToolButton
 SeeAlso: ???
 
@@ -826,13 +826,6 @@ Requires:
 Name: QImageIOPlugin
 SeeAlso: ???
 
-Feature: ICON
-Description: Supports scalable icons in different modes and states.
-Section: Images
-Requires:
-Name: QIcon
-SeeAlso: ???
-
 Feature: MOVIE
 Description: Supports animated images.
 Section: Images
@@ -1124,7 +1117,7 @@ SeeAlso: ???
 Feature: SYSTEMTRAYICON
 Description: Provides an icon for an application in the system tray.
 Section: Utilities
-Requires: ICON
+Requires: 
 Name: QSystemTrayIcon
 SeeAlso: ???
 
-- 
cgit v0.12


From 38908792600e7cd471fece1de71e2ad13cbb0866 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=B8rgen=20Lind?= <jorgen.lind@nokia.com>
Date: Thu, 22 Oct 2009 13:48:23 +0200
Subject: Fix SCROLLAREA by fixing missing QT_NO_GRAPHICSVIEW dependencies

Reviewed-by: tom
---
 src/gui/graphicsview/qgraphicsanchorlayout.cpp   | 3 ++-
 src/gui/graphicsview/qgraphicsanchorlayout_p.cpp | 3 ++-
 src/gui/graphicsview/qgraphicsanchorlayout_p.h   | 3 ++-
 src/gui/graphicsview/qgraphicstransform.cpp      | 3 ++-
 src/gui/graphicsview/qgraphicstransform.h        | 2 ++
 src/gui/graphicsview/qgraphicstransform_p.h      | 3 ++-
 6 files changed, 12 insertions(+), 5 deletions(-)

diff --git a/src/gui/graphicsview/qgraphicsanchorlayout.cpp b/src/gui/graphicsview/qgraphicsanchorlayout.cpp
index e21cd99..2bed776 100644
--- a/src/gui/graphicsview/qgraphicsanchorlayout.cpp
+++ b/src/gui/graphicsview/qgraphicsanchorlayout.cpp
@@ -123,7 +123,7 @@
 
 */
 #include "qgraphicsanchorlayout_p.h"
-
+#ifndef QT_NO_GRAPHICSVIEW
 QT_BEGIN_NAMESPACE
 
 QGraphicsAnchor::QGraphicsAnchor(QGraphicsAnchorLayout *parentLayout)
@@ -535,3 +535,4 @@ QSizeF QGraphicsAnchorLayout::sizeHint(Qt::SizeHint which, const QSizeF &constra
 }
 
 QT_END_NAMESPACE
+#endif //QT_NO_GRAPHICSVIEW
diff --git a/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp b/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp
index 8c8c303..c424be5 100644
--- a/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp
+++ b/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp
@@ -48,7 +48,7 @@
 #endif
 
 #include "qgraphicsanchorlayout_p.h"
-
+#ifndef QT_NO_GRAPHICSVIEW
 QT_BEGIN_NAMESPACE
 
 
@@ -2635,3 +2635,4 @@ void QGraphicsAnchorLayoutPrivate::dumpGraph(const QString &name)
 #endif
 
 QT_END_NAMESPACE
+#endif //QT_NO_GRAPHICSVIEW
diff --git a/src/gui/graphicsview/qgraphicsanchorlayout_p.h b/src/gui/graphicsview/qgraphicsanchorlayout_p.h
index d45c004..9513ddf 100644
--- a/src/gui/graphicsview/qgraphicsanchorlayout_p.h
+++ b/src/gui/graphicsview/qgraphicsanchorlayout_p.h
@@ -60,7 +60,7 @@
 #include "qgraphicsanchorlayout.h"
 #include "qgraph_p.h"
 #include "qsimplex_p.h"
-
+#ifndef QT_NO_GRAPHICSVIEW
 QT_BEGIN_NAMESPACE
 
 /*
@@ -529,5 +529,6 @@ public:
 };
 
 QT_END_NAMESPACE
+#endif //QT_NO_GRAPHICSVIEW
 
 #endif
diff --git a/src/gui/graphicsview/qgraphicstransform.cpp b/src/gui/graphicsview/qgraphicstransform.cpp
index e2a3f08..83bc9e1 100644
--- a/src/gui/graphicsview/qgraphicstransform.cpp
+++ b/src/gui/graphicsview/qgraphicstransform.cpp
@@ -93,8 +93,8 @@
 #include <QDebug>
 #include <QtCore/qmath.h>
 
+#ifndef QT_NO_GRAPHICSVIEW
 QT_BEGIN_NAMESPACE
-
 void QGraphicsTransformPrivate::setItem(QGraphicsItem *i)
 {
     if (item == i)
@@ -565,3 +565,4 @@ void QGraphicsRotation::applyTo(QMatrix4x4 *matrix) const
 #include "moc_qgraphicstransform.cpp"
 
 QT_END_NAMESPACE
+#endif //QT_NO_GRAPHICSVIEW
diff --git a/src/gui/graphicsview/qgraphicstransform.h b/src/gui/graphicsview/qgraphicstransform.h
index 58075aa..58e3077 100644
--- a/src/gui/graphicsview/qgraphicstransform.h
+++ b/src/gui/graphicsview/qgraphicstransform.h
@@ -47,6 +47,7 @@
 #include <QtGui/QTransform>
 #include <QtGui/QMatrix4x4>
 
+#ifndef QT_NO_GRAPHICSVIEW
 QT_BEGIN_HEADER
 
 QT_BEGIN_NAMESPACE
@@ -150,5 +151,6 @@ private:
 QT_END_NAMESPACE
 
 QT_END_HEADER
+#endif //QT_NO_GRAPHICSVIEW
 
 #endif // QFXTRANSFORM_H
diff --git a/src/gui/graphicsview/qgraphicstransform_p.h b/src/gui/graphicsview/qgraphicstransform_p.h
index 9e708b2..ddf99bb 100644
--- a/src/gui/graphicsview/qgraphicstransform_p.h
+++ b/src/gui/graphicsview/qgraphicstransform_p.h
@@ -54,7 +54,7 @@
 //
 
 #include "private/qobject_p.h"
-
+#ifndef QT_NO_GRAPHICSVIEW
 QT_BEGIN_NAMESPACE
 
 class QGraphicsItem;
@@ -73,5 +73,6 @@ public:
 };
 
 QT_END_NAMESPACE
+#endif //QT_NO_GRAPHCISVIEW
 
 #endif // QGRAPHICSTRANSFORM_P_H
-- 
cgit v0.12


From 9d4d1814eb7e130cd3ef75393a7957216dc14d2b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=B8rgen=20Lind?= <jorgen.lind@nokia.com>
Date: Mon, 26 Oct 2009 12:27:20 +0100
Subject: Fix THREAD and TOOLBAR

Reviewed-by: tom

Squash me with Fix THREAD and TOOLBAR a6e785b4ff9ec9cd48
---
 src/corelib/global/qconfig-local.h |  4 +--
 src/corelib/global/qfeatures.h     | 29 ++++++++++--------
 src/corelib/global/qfeatures.txt   | 15 ++++++---
 src/corelib/thread/qmutexpool.cpp  | 20 ++++++------
 src/corelib/thread/qmutexpool_p.h  | 17 +++++++++--
 src/corelib/thread/qthread.cpp     | 24 +++++++++------
 src/corelib/thread/qthread_p.h     | 62 ++++++++++++++++++--------------------
 src/gui/dialogs/qfscompleter_p.h   |  4 +--
 8 files changed, 101 insertions(+), 74 deletions(-)

diff --git a/src/corelib/global/qconfig-local.h b/src/corelib/global/qconfig-local.h
index 90db873..b9a5090 100644
--- a/src/corelib/global/qconfig-local.h
+++ b/src/corelib/global/qconfig-local.h
@@ -1,3 +1,3 @@
-#ifndef QT_NO_SCROLLAREA
-#  define QT_NO_SCROLLAREA
+#ifndef QT_NO_TOOLBAR
+#  define QT_NO_TOOLBAR
 #endif
diff --git a/src/corelib/global/qfeatures.h b/src/corelib/global/qfeatures.h
index e4fd67a..455fead 100644
--- a/src/corelib/global/qfeatures.h
+++ b/src/corelib/global/qfeatures.h
@@ -301,11 +301,6 @@
 // 
 //#define QT_NO_XMLSTREAM
 
-// Animation
-#if !defined(QT_NO_ANIMATION) && (defined(QT_NO_PROPERTIES))
-#define QT_NO_ANIMATION
-#endif
-
 // QButtonGroup
 #if !defined(QT_NO_BUTTONGROUP) && (defined(QT_NO_GROUPBOX))
 #define QT_NO_BUTTONGROUP
@@ -496,6 +491,11 @@
 #define QT_NO_XMLSTREAMWRITER
 #endif
 
+// Animation
+#if !defined(QT_NO_ANIMATION) && (defined(QT_NO_PROPERTIES) || defined(QT_NO_THREAD))
+#define QT_NO_ANIMATION
+#endif
+
 // Context menu
 #if !defined(QT_NO_CONTEXTMENU) && (defined(QT_NO_MENU))
 #define QT_NO_CONTEXTMENU
@@ -686,11 +686,6 @@
 #define QT_NO_TEXTEDIT
 #endif
 
-// QDirModel
-#if !defined(QT_NO_DIRMODEL) && (defined(QT_NO_ITEMVIEWS))
-#define QT_NO_DIRMODEL
-#endif
-
 // QErrorMessage
 #if !defined(QT_NO_ERRORMESSAGE) && (defined(QT_NO_TEXTEDIT))
 #define QT_NO_ERRORMESSAGE
@@ -806,6 +801,11 @@
 #define QT_NO_DOCKWIDGET
 #endif
 
+// QDirModel
+#if !defined(QT_NO_DIRMODEL) && (defined(QT_NO_ITEMVIEWS) || defined(QT_NO_FILESYSTEMMODEL))
+#define QT_NO_DIRMODEL
+#endif
+
 // QUndoView
 #if !defined(QT_NO_UNDOVIEW) && (defined(QT_NO_UNDOSTACK) || defined(QT_NO_LISTVIEW))
 #define QT_NO_UNDOVIEW
@@ -816,6 +816,11 @@
 #define QT_NO_GRAPHICSSVGITEM
 #endif
 
+// QCompleter
+#if !defined(QT_NO_FSCOMPLETER) && (defined(QT_NO_FILESYSTEMMODEL) || defined(QT_NO_COMPLETER))
+#define QT_NO_FSCOMPLETER
+#endif
+
 // QComboBox
 #if !defined(QT_NO_COMBOBOX) && (defined(QT_NO_LINEEDIT) || defined(QT_NO_STANDARDITEMMODEL) || defined(QT_NO_LISTVIEW))
 #define QT_NO_COMBOBOX
@@ -867,12 +872,12 @@
 #endif
 
 // QFileDialog
-#if !defined(QT_NO_FILEDIALOG) && (defined(QT_NO_DIRMODEL) || defined(QT_NO_TREEVIEW) || defined(QT_NO_COMBOBOX) || defined(QT_NO_TOOLBUTTON) || defined(QT_NO_BUTTONGROUP) || defined(QT_NO_TOOLTIP) || defined(QT_NO_SPLITTER) || defined(QT_NO_STACKEDWIDGET) || defined(QT_NO_FILESYSTEMMODEL))
+#if !defined(QT_NO_FILEDIALOG) && (defined(QT_NO_DIRMODEL) || defined(QT_NO_TREEVIEW) || defined(QT_NO_COMBOBOX) || defined(QT_NO_TOOLBUTTON) || defined(QT_NO_BUTTONGROUP) || defined(QT_NO_TOOLTIP) || defined(QT_NO_SPLITTER) || defined(QT_NO_STACKEDWIDGET))
 #define QT_NO_FILEDIALOG
 #endif
 
 // QPrintPreviewDialog
-#if !defined(QT_NO_PRINTPREVIEWDIALOG) && (defined(QT_NO_PRINTPREVIEWWIDGET) || defined(QT_NO_PRINTDIALOG))
+#if !defined(QT_NO_PRINTPREVIEWDIALOG) && (defined(QT_NO_PRINTPREVIEWWIDGET) || defined(QT_NO_PRINTDIALOG) || defined(QT_NO_TOOLBAR))
 #define QT_NO_PRINTPREVIEWDIALOG
 #endif
 
diff --git a/src/corelib/global/qfeatures.txt b/src/corelib/global/qfeatures.txt
index 0bee94a..f2b5c20 100644
--- a/src/corelib/global/qfeatures.txt
+++ b/src/corelib/global/qfeatures.txt
@@ -604,7 +604,7 @@ SeeAlso: ???
 Feature: FILEDIALOG
 Description: Supports a dialog widget for selecting files or directories.
 Section: Dialogs
-Requires: DIRMODEL TREEVIEW COMBOBOX TOOLBUTTON BUTTONGROUP TOOLTIP SPLITTER STACKEDWIDGET FILESYSTEMMODEL
+Requires: DIRMODEL TREEVIEW COMBOBOX TOOLBUTTON BUTTONGROUP TOOLTIP SPLITTER STACKEDWIDGET
 Name: QFileDialog
 SeeAlso: ???
 
@@ -625,7 +625,7 @@ SeeAlso: ???
 Feature: PRINTPREVIEWDIALOG
 Description: Provides a dialog for previewing and configuring page layouts for printer output.
 Section: Dialogs
-Requires: PRINTPREVIEWWIDGET PRINTDIALOG 
+Requires: PRINTPREVIEWWIDGET PRINTDIALOG TOOLBAR
 Name: QPrintPreviewDialog
 SeeAlso: ???
 
@@ -677,7 +677,7 @@ SeeAlso: ???
 Feature: DIRMODEL
 Description: Supports a data model for the local filesystem.
 Section: ItemViews
-Requires: ITEMVIEWS
+Requires: ITEMVIEWS FILESYSTEMMODEL 
 Name: QDirModel
 SeeAlso: ???
 
@@ -1107,6 +1107,13 @@ Requires: PROXYMODEL
 Name: QCompleter
 SeeAlso: ???
 
+Feature: FSCOMPLETER
+Description: Provides completions based on an item model.
+Section: Utilities
+Requires: FILESYSTEMMODEL COMPLETER
+Name: QCompleter
+SeeAlso: ???
+
 Feature: DESKTOPSERVICES
 Description: Provides methods for accessing common desktop services.
 Section: Utilities
@@ -1159,7 +1166,7 @@ SeeAlso: ???
 Feature: ANIMATION
 Description: Provides a framework for animations.
 Section: Utilities
-Requires: PROPERTIES
+Requires: PROPERTIES THREAD
 Name: Animation
 SeeAlso: ???
 
diff --git a/src/corelib/thread/qmutexpool.cpp b/src/corelib/thread/qmutexpool.cpp
index c5c1882..9f37239 100644
--- a/src/corelib/thread/qmutexpool.cpp
+++ b/src/corelib/thread/qmutexpool.cpp
@@ -42,7 +42,6 @@
 #include "qatomic.h"
 #include "qmutexpool_p.h"
 
-#ifndef QT_NO_THREAD
 
 QT_BEGIN_NAMESPACE
 
@@ -50,6 +49,7 @@ QT_BEGIN_NAMESPACE
 // use QMutexpool::instance() in new clode.
 Q_CORE_EXPORT QMutexPool *qt_global_mutexpool = 0;
 Q_GLOBAL_STATIC_WITH_ARGS(QMutexPool, globalMutexPool, (QMutex::Recursive))
+#ifndef QT_NO_THREAD
 
 /*!
     \class QMutexPool
@@ -114,15 +114,6 @@ QMutexPool::~QMutexPool()
         mutexes[index] = 0;
     }
 }
-
-/*!
-    Returns the global QMutexPool instance.
-*/
-QMutexPool *QMutexPool::instance()
-{
-    return globalMutexPool();
-}
-
 /*!
     Returns a QMutex from the pool. QMutexPool uses the value \a address
     to determine which mutex is returned from the pool.
@@ -152,7 +143,14 @@ QMutex *QMutexPool::globalInstanceGet(const void *address)
         return 0;
     return globalInstance->get(address);
 }
+#endif // QT_NO_THREAD
+/*!
+    Returns the global QMutexPool instance.
+*/
+QMutexPool *QMutexPool::instance()
+{
+    return globalMutexPool();
+}
 
 QT_END_NAMESPACE
 
-#endif // QT_NO_THREAD
diff --git a/src/corelib/thread/qmutexpool_p.h b/src/corelib/thread/qmutexpool_p.h
index 3e1bad0..c26711b 100644
--- a/src/corelib/thread/qmutexpool_p.h
+++ b/src/corelib/thread/qmutexpool_p.h
@@ -57,9 +57,9 @@
 #include "QtCore/qmutex.h"
 #include "QtCore/qvarlengtharray.h"
 
-#ifndef QT_NO_THREAD
 
 QT_BEGIN_NAMESPACE
+#ifndef QT_NO_THREAD
 
 class Q_CORE_EXPORT QMutexPool
 {
@@ -75,11 +75,24 @@ private:
     QVarLengthArray<QAtomicPointer<QMutex>, 131> mutexes;
     QMutex::RecursionMode recursionMode;
 };
+#else //QT_NO_THREAD
+Q_GLOBAL_STATIC(QMutex, globalMutex)
+class Q_CORE_EXPORT QMutexPool
+{
+public:
+    explicit QMutexPool(QMutex::RecursionMode recursionMode = QMutex::NonRecursive, int size = 131){}
+    ~QMutexPool(){}
+
+    QMutex *get(const void *address){return globalMutex();}
+    static QMutexPool *instance();
+    static QMutex *globalInstanceGet(const void *address){return globalMutex();}
+};
+
+#endif // QT_NO_THREAD
 
 extern Q_CORE_EXPORT QMutexPool *qt_global_mutexpool;
 
 QT_END_NAMESPACE
 
-#endif // QT_NO_THREAD
 
 #endif // QMUTEXPOOL_P_H
diff --git a/src/corelib/thread/qthread.cpp b/src/corelib/thread/qthread.cpp
index ac191fe..cf57d33 100644
--- a/src/corelib/thread/qthread.cpp
+++ b/src/corelib/thread/qthread.cpp
@@ -727,6 +727,16 @@ QThread *QThread::currentThread()
     return QThreadData::current()->thread;
 }
 
+/*! \internal
+ */
+QThread::QThread(QThreadPrivate &dd, QObject *parent)
+    : QObject(dd, parent)
+{
+    Q_D(QThread);
+    // fprintf(stderr, "QThreadData %p taken from private data for thread %p\n", d->data, this);
+    d->data->thread = this;
+}
+
 QThreadData* QThreadData::current()
 {
     static QThreadData *data = 0; // reinterpret_cast<QThreadData *>(pthread_getspecific(current_thread_data_key));
@@ -738,17 +748,13 @@ QThreadData* QThreadData::current()
     }
     return data;
 }
-
-/*! \internal
- */
-QThread::QThread(QThreadPrivate &dd, QObject *parent)
-    : QObject(dd, parent)
+#endif // QT_NO_THREAD
+QThreadData* QThreadData::get2(QThread *thread)
 {
-    Q_D(QThread);
-    // fprintf(stderr, "QThreadData %p taken from private data for thread %p\n", d->data, this);
-    d->data->thread = this;
+    Q_ASSERT_X(thread != 0, "QThread", "internal error");
+    return thread->d_func()->data;
 }
 
-#endif // QT_NO_THREAD
+
 
 QT_END_NAMESPACE
diff --git a/src/corelib/thread/qthread_p.h b/src/corelib/thread/qthread_p.h
index af68434..8c3acdb 100644
--- a/src/corelib/thread/qthread_p.h
+++ b/src/corelib/thread/qthread_p.h
@@ -111,6 +111,36 @@ public:
     { }
 };
 
+class QThreadData
+{
+    QAtomicInt _ref;
+
+public:
+    QThreadData(int initialRefCount = 1);
+    ~QThreadData();
+
+    static QThreadData *current();
+    static QThreadData *get2(QThread *thread);
+
+    void ref();
+    void deref();
+
+    QThread *thread;
+    bool quitNow;
+    int loopLevel;
+    QAbstractEventDispatcher *eventDispatcher;
+    QStack<QEventLoop *> eventLoops;
+    QPostEventList postEventList;
+    bool canWait;
+    QMap<int, void *> tls;
+
+    QMutex mutex;
+
+# ifdef Q_OS_SYMBIAN
+    RThread symbian_thread_handle;
+# endif
+};
+
 #ifndef QT_NO_THREAD
 class QThreadPrivate : public QObjectPrivate
 {
@@ -179,38 +209,6 @@ public:
 
 #endif // QT_NO_THREAD
 
-class QThreadData
-{
-    QAtomicInt _ref;
-
-public:
-    QThreadData(int initialRefCount = 1);
-    ~QThreadData();
-
-    static QThreadData *current();
-    static QThreadData *get2(QThread *thread)
-    { Q_ASSERT_X(thread != 0, "QThread", "internal error"); return thread->d_func()->data; }
-
-
-    void ref();
-    void deref();
-
-    QThread *thread;
-    bool quitNow;
-    int loopLevel;
-    QAbstractEventDispatcher *eventDispatcher;
-    QStack<QEventLoop *> eventLoops;
-    QPostEventList postEventList;
-    bool canWait;
-    QMap<int, void *> tls;
-
-    QMutex mutex;
-
-# ifdef Q_OS_SYMBIAN
-    RThread symbian_thread_handle;
-# endif
-};
-
 // thread wrapper for the main() thread
 class QAdoptedThread : public QThread
 {
diff --git a/src/gui/dialogs/qfscompleter_p.h b/src/gui/dialogs/qfscompleter_p.h
index cb1b427..1edab2d 100644
--- a/src/gui/dialogs/qfscompleter_p.h
+++ b/src/gui/dialogs/qfscompleter_p.h
@@ -56,7 +56,7 @@
 #include "qcompleter.h"
 #include <QtGui/qfilesystemmodel.h>
 QT_BEGIN_NAMESPACE
-#ifndef QT_NO_COMPLETER
+#ifndef QT_NO_FSCOMPLETER
 
 /*!
     QCompleter that can deal with QFileSystemModel
@@ -76,7 +76,7 @@ public:
     QAbstractProxyModel *proxyModel;
     QFileSystemModel *sourceModel;
 };
-#endif // QT_NO_COMPLETER
+#endif // QT_NO_FSCOMPLETER
 QT_END_NAMESPACE
 #endif // QFSCOMPLETOR_P_H
 
-- 
cgit v0.12


From a733f087467c5f8361a7765a38e45037549c019f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=B8rgen=20Lind?= <jorgen.lind@nokia.com>
Date: Tue, 27 Oct 2009 08:34:39 +0100
Subject: Fix FSCOMPLETER

Reviewed-by: tom
---
 src/gui/dialogs/qfiledialog.cpp       | 12 ++++++------
 src/gui/dialogs/qfiledialog_p.h       |  4 ++--
 src/gui/dialogs/qprintdialog_unix.cpp |  2 +-
 3 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/src/gui/dialogs/qfiledialog.cpp b/src/gui/dialogs/qfiledialog.cpp
index eab842f..c6b4a77 100644
--- a/src/gui/dialogs/qfiledialog.cpp
+++ b/src/gui/dialogs/qfiledialog.cpp
@@ -777,7 +777,7 @@ void QFileDialog::setDirectory(const QString &directory)
     QModelIndex root = d->model->setRootPath(newDirectory);
     d->qFileDialogUi->newFolderButton->setEnabled(d->model->flags(root) & Qt::ItemIsDropEnabled);
     if (root != d->rootIndex()) {
-#ifndef QT_NO_COMPLETER
+#ifndef QT_NO_FSCOMPLETER
     if (directory.endsWith(QLatin1Char('/')))
         d->completer->setCompletionPrefix(newDirectory);
     else
@@ -2177,12 +2177,12 @@ void QFileDialogPrivate::createWidgets()
 #ifndef QT_NO_SHORTCUT
     qFileDialogUi->fileNameLabel->setBuddy(qFileDialogUi->fileNameEdit);
 #endif
-#ifndef QT_NO_COMPLETER
+#ifndef QT_NO_FSCOMPLETER
     completer = new QFSCompleter(model, q);
     qFileDialogUi->fileNameEdit->setCompleter(completer);
     QObject::connect(qFileDialogUi->fileNameEdit, SIGNAL(textChanged(QString)),
             q, SLOT(_q_autoCompleteFileName(QString)));
-#endif // QT_NO_COMPLETER
+#endif // QT_NO_FSCOMPLETER
     QObject::connect(qFileDialogUi->fileNameEdit, SIGNAL(textChanged(QString)),
                      q, SLOT(_q_updateOkButton()));
 
@@ -2302,7 +2302,7 @@ void QFileDialog::setProxyModel(QAbstractProxyModel *proxyModel)
         proxyModel->setSourceModel(d->model);
         d->qFileDialogUi->listView->setModel(d->proxyModel);
         d->qFileDialogUi->treeView->setModel(d->proxyModel);
-#ifndef QT_NO_COMPLETER
+#ifndef QT_NO_FSCOMPLETER
         d->completer->setModel(d->proxyModel);
         d->completer->proxyModel = d->proxyModel;
 #endif
@@ -2312,7 +2312,7 @@ void QFileDialog::setProxyModel(QAbstractProxyModel *proxyModel)
         d->proxyModel = 0;
         d->qFileDialogUi->listView->setModel(d->model);
         d->qFileDialogUi->treeView->setModel(d->model);
-#ifndef QT_NO_COMPLETER
+#ifndef QT_NO_FSCOMPLETER
         d->completer->setModel(d->model);
         d->completer->sourceModel = d->model;
         d->completer->proxyModel = 0;
@@ -3218,7 +3218,7 @@ void QFileDialogLineEdit::keyPressEvent(QKeyEvent *e)
     }
 }
 
-#ifndef QT_NO_COMPLETER
+#ifndef QT_NO_FSCOMPLETER
 
 QString QFSCompleter::pathFromIndex(const QModelIndex &index) const
 {
diff --git a/src/gui/dialogs/qfiledialog_p.h b/src/gui/dialogs/qfiledialog_p.h
index 32cd397..0e447a3 100644
--- a/src/gui/dialogs/qfiledialog_p.h
+++ b/src/gui/dialogs/qfiledialog_p.h
@@ -234,9 +234,9 @@ public:
     QStringList watching;
     QFileSystemModel *model;
 
-#ifndef QT_NO_COMPLETER
+#ifndef QT_NO_FSCOMPLETER
     QFSCompleter *completer;
-#endif //QT_NO_COMPLETER
+#endif //QT_NO_FSCOMPLETER
 
     QFileDialog::FileMode fileMode;
     QFileDialog::AcceptMode acceptMode;
diff --git a/src/gui/dialogs/qprintdialog_unix.cpp b/src/gui/dialogs/qprintdialog_unix.cpp
index 7daa273..6fc270d 100644
--- a/src/gui/dialogs/qprintdialog_unix.cpp
+++ b/src/gui/dialogs/qprintdialog_unix.cpp
@@ -696,7 +696,7 @@ QUnixPrintWidgetPrivate::QUnixPrintWidgetPrivate(QUnixPrintWidget *p)
 #ifndef QT_NO_FILESYSTEMMODEL
     QFileSystemModel *fsm = new QFileSystemModel(widget.filename);
     fsm->setRootPath(QDir::homePath());
-#if !defined(QT_NO_COMPLETER) && !defined(QT_NO_FILEDIALOG)
+#if !defined(QT_NO_FSCOMPLETER) && !defined(QT_NO_FILEDIALOG)
     widget.filename->setCompleter(new QFSCompleter(fsm, widget.filename));
 #endif
 #endif
-- 
cgit v0.12


From c0c9940b371215eea294ae83ed6586a6414957ab Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=B8rgen=20Lind?= <jorgen.lind@nokia.com>
Date: Tue, 27 Oct 2009 10:53:17 +0100
Subject: Fix TEXTCODEC

Reviewed-by: tom
---
 src/gui/kernel/qclipboard.cpp | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/src/gui/kernel/qclipboard.cpp b/src/gui/kernel/qclipboard.cpp
index 5ed4dc9..e43f8b5 100644
--- a/src/gui/kernel/qclipboard.cpp
+++ b/src/gui/kernel/qclipboard.cpp
@@ -296,12 +296,16 @@ QString QClipboard::text(QString &subtype, Mode mode) const
 
     const QByteArray rawData = data->data(QLatin1String("text/") + subtype);
 
+#ifndef QT_NO_TEXTCODEC
     QTextCodec* codec = QTextCodec::codecForMib(106); // utf-8 is default
     if (subtype == QLatin1String("html"))
         codec = QTextCodec::codecForHtml(rawData, codec);
     else
         codec = QTextCodec::codecForUtfText(rawData, codec);
     return codec->toUnicode(rawData);
+#else //QT_NO_TEXTCODEC
+    return rawData;
+#endif //QT_NO_TEXTCODEC
 }
 
 /*!
-- 
cgit v0.12


From d0aa2b8422eea07823caef639a0970b8f2a1fde0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=B8rgen=20Lind?= <jorgen.lind@nokia.com>
Date: Tue, 27 Oct 2009 10:55:28 +0100
Subject: Fix PROXYMODEL

Reviewed-by: Trust Me
---
 src/corelib/global/qconfig-local.h | 3 ---
 src/corelib/global/qfeatures.h     | 2 +-
 src/corelib/global/qfeatures.txt   | 2 +-
 3 files changed, 2 insertions(+), 5 deletions(-)
 delete mode 100644 src/corelib/global/qconfig-local.h

diff --git a/src/corelib/global/qconfig-local.h b/src/corelib/global/qconfig-local.h
deleted file mode 100644
index b9a5090..0000000
--- a/src/corelib/global/qconfig-local.h
+++ /dev/null
@@ -1,3 +0,0 @@
-#ifndef QT_NO_TOOLBAR
-#  define QT_NO_TOOLBAR
-#endif
diff --git a/src/corelib/global/qfeatures.h b/src/corelib/global/qfeatures.h
index 455fead..3996180 100644
--- a/src/corelib/global/qfeatures.h
+++ b/src/corelib/global/qfeatures.h
@@ -872,7 +872,7 @@
 #endif
 
 // QFileDialog
-#if !defined(QT_NO_FILEDIALOG) && (defined(QT_NO_DIRMODEL) || defined(QT_NO_TREEVIEW) || defined(QT_NO_COMBOBOX) || defined(QT_NO_TOOLBUTTON) || defined(QT_NO_BUTTONGROUP) || defined(QT_NO_TOOLTIP) || defined(QT_NO_SPLITTER) || defined(QT_NO_STACKEDWIDGET))
+#if !defined(QT_NO_FILEDIALOG) && (defined(QT_NO_DIRMODEL) || defined(QT_NO_TREEVIEW) || defined(QT_NO_COMBOBOX) || defined(QT_NO_TOOLBUTTON) || defined(QT_NO_BUTTONGROUP) || defined(QT_NO_TOOLTIP) || defined(QT_NO_SPLITTER) || defined(QT_NO_STACKEDWIDGET) || defined(QT_NO_PROXYMODEL))
 #define QT_NO_FILEDIALOG
 #endif
 
diff --git a/src/corelib/global/qfeatures.txt b/src/corelib/global/qfeatures.txt
index f2b5c20..543056f 100644
--- a/src/corelib/global/qfeatures.txt
+++ b/src/corelib/global/qfeatures.txt
@@ -604,7 +604,7 @@ SeeAlso: ???
 Feature: FILEDIALOG
 Description: Supports a dialog widget for selecting files or directories.
 Section: Dialogs
-Requires: DIRMODEL TREEVIEW COMBOBOX TOOLBUTTON BUTTONGROUP TOOLTIP SPLITTER STACKEDWIDGET
+Requires: DIRMODEL TREEVIEW COMBOBOX TOOLBUTTON BUTTONGROUP TOOLTIP SPLITTER STACKEDWIDGET PROXYMODEL
 Name: QFileDialog
 SeeAlso: ???
 
-- 
cgit v0.12


From 3117574558b2aeb6e3e3e90ff8e44f4a2e74cf6d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=B8rgen=20Lind?= <jorgen.lind@nokia.com>
Date: Tue, 27 Oct 2009 14:30:25 +0100
Subject: Fix SHAREDMEMORY

Reviewed-by: tom
---
 src/corelib/kernel/qsharedmemory_unix.cpp | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/src/corelib/kernel/qsharedmemory_unix.cpp b/src/corelib/kernel/qsharedmemory_unix.cpp
index 1165fb1..40b9f04 100644
--- a/src/corelib/kernel/qsharedmemory_unix.cpp
+++ b/src/corelib/kernel/qsharedmemory_unix.cpp
@@ -49,8 +49,6 @@
 
 #include <errno.h>
 
-#ifndef QT_NO_SHAREDMEMORY
-
 #include <sys/types.h>
 #include <sys/ipc.h>
 #include <sys/shm.h>
@@ -61,6 +59,7 @@
 
 #include "private/qcore_unix_p.h"
 
+#ifndef QT_NO_SHAREDMEMORY
 QT_BEGIN_NAMESPACE
 
 QSharedMemoryPrivate::QSharedMemoryPrivate()
-- 
cgit v0.12


From eec8980202f05737b0ef0b8db410675e0df5bafe Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=B8rgen=20Lind?= <jorgen.lind@nokia.com>
Date: Tue, 27 Oct 2009 14:30:56 +0100
Subject: FIX TABBAR

Reviewed-by: tom
---
 src/gui/widgets/qdockarealayout.cpp | 14 ++++++++++----
 src/gui/widgets/qdockarealayout_p.h |  8 ++++++--
 2 files changed, 16 insertions(+), 6 deletions(-)

diff --git a/src/gui/widgets/qdockarealayout.cpp b/src/gui/widgets/qdockarealayout.cpp
index 5a0a9d4..ec35c4f 100644
--- a/src/gui/widgets/qdockarealayout.cpp
+++ b/src/gui/widgets/qdockarealayout.cpp
@@ -1556,9 +1556,10 @@ void QDockAreaLayoutInfo::apply(bool animate)
             }
         }
     }
-
+#ifndef QT_NO_TABBAR
     if (sep == 1)
         updateSeparatorWidgets();
+#endif //QT_NO_TABBAR
 }
 
 static void paintSep(QPainter *p, QWidget *w, const QRect &r, Qt::Orientation o, bool mouse_over)
@@ -2008,13 +2009,14 @@ bool QDockAreaLayoutInfo::restoreState(QDataStream &stream, QList<QDockWidget*>
         updateTabBar();
         setCurrentTabId(tabId(item_list.at(index)));
     }
-#endif
     if (!testing && sep == 1)
         updateSeparatorWidgets();
+#endif
 
     return true;
 }
 
+#ifndef QT_NO_TABBAR
 void QDockAreaLayoutInfo::updateSeparatorWidgets() const
 {
     if (tabbed) {
@@ -2065,6 +2067,7 @@ void QDockAreaLayoutInfo::updateSeparatorWidgets() const
     separatorWidgets.resize(j);
     Q_ASSERT(separatorWidgets.size() == j);
 }
+#endif //QT_NO_TABBAR
 
 #ifndef QT_NO_TABBAR
 void QDockAreaLayoutInfo::updateTabBar() const
@@ -3073,9 +3076,10 @@ void QDockAreaLayout::apply(bool animate)
         widgetAnimator.animate(centralWidgetItem->widget(), centralWidgetRect,
                                 animate);
     }
-
+#ifndef QT_NO_TABBAR
     if (sep == 1)
         updateSeparatorWidgets();
+#endif //QT_NO_TABBAR
 }
 
 void QDockAreaLayout::paintSeparators(QPainter *p, QWidget *widget,
@@ -3153,6 +3157,7 @@ int QDockAreaLayout::separatorMove(const QList<int> &separator, const QPoint &or
     return delta;
 }
 
+#ifndef QT_NO_TABBAR
 // Sets the correct positions for the seperator widgets
 // Allocates new sepearator widgets with getSeparatorWidget
 void QDockAreaLayout::updateSeparatorWidgets() const
@@ -3186,6 +3191,7 @@ void QDockAreaLayout::updateSeparatorWidgets() const
 
     separatorWidgets.resize(j);
 }
+#endif //QT_NO_TABBAR
 
 QLayoutItem *QDockAreaLayout::itemAt(int *x, int index) const
 {
@@ -3238,7 +3244,6 @@ QSet<QTabBar*> QDockAreaLayout::usedTabBars() const
     }
     return result;
 }
-#endif
 
 // Returns the set of all used separator widgets
 QSet<QWidget*> QDockAreaLayout::usedSeparatorWidgets() const
@@ -3253,6 +3258,7 @@ QSet<QWidget*> QDockAreaLayout::usedSeparatorWidgets() const
     }
     return result;
 }
+#endif
 
 QRect QDockAreaLayout::gapRect(const QList<int> &path) const
 {
diff --git a/src/gui/widgets/qdockarealayout_p.h b/src/gui/widgets/qdockarealayout_p.h
index 99a9dbb..5692850 100644
--- a/src/gui/widgets/qdockarealayout_p.h
+++ b/src/gui/widgets/qdockarealayout_p.h
@@ -196,9 +196,10 @@ public:
     QRect rect;
     QMainWindow *mainWindow;
     QList<QDockAreaLayoutItem> item_list;
-
+#ifndef QT_NO_TABBAR
     void updateSeparatorWidgets() const;
     QSet<QWidget*> usedSeparatorWidgets() const;
+#endif //QT_NO_TABBAR
 
 #ifndef QT_NO_TABBAR
     quintptr currentTabId() const;
@@ -278,7 +279,9 @@ public:
                             const QPoint &mouse) const;
     QRegion separatorRegion() const;
     int separatorMove(const QList<int> &separator, const QPoint &origin, const QPoint &dest);
+#ifndef QT_NO_TABBAR
     void updateSeparatorWidgets() const;
+#endif //QT_NO_TABBAR
 
     QLayoutItem *itemAt(int *x, int index) const;
     QLayoutItem *takeAt(int *x, int index);
@@ -292,9 +295,10 @@ public:
     QRect gapRect(const QList<int> &path) const;
 
     void keepSize(QDockWidget *w);
-
+#ifndef QT_NO_TABBAR
     QSet<QTabBar*> usedTabBars() const;
     QSet<QWidget*> usedSeparatorWidgets() const;
+#endif //QT_NO_TABBAR
 };
 
 QT_END_NAMESPACE
-- 
cgit v0.12


From 578b113f3dcceec0a88599494ad686fbc8cbfbb5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=B8rgen=20Lind?= <jorgen.lind@nokia.com>
Date: Wed, 28 Oct 2009 08:42:10 +0100
Subject: Fix QT_NO_MAINWINDOW

Reviewed-by: tom
---
 src/gui/widgets/qwidgetanimator.cpp | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/gui/widgets/qwidgetanimator.cpp b/src/gui/widgets/qwidgetanimator.cpp
index f440961..bdd3c75 100644
--- a/src/gui/widgets/qwidgetanimator.cpp
+++ b/src/gui/widgets/qwidgetanimator.cpp
@@ -105,7 +105,9 @@ void QWidgetAnimator::animate(QWidget *widget, const QRect &_final_geometry, boo
 #else
     //we do it in one shot
     widget->setGeometry(final_geometry);
+#ifndef QT_NO_MAINWINDOW
     m_mainWindowLayout->animationFinished(widget);
+#endif //QT_NO_MAINWINDOW
 #endif //QT_NO_ANIMATION
 }
 
-- 
cgit v0.12


From 23b6599324bc62666d4303ca108ed372e8d7c490 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=B8rgen=20Lind?= <jorgen.lind@nokia.com>
Date: Wed, 28 Oct 2009 09:23:45 +0100
Subject: Remove QT_NO_ICON from mimimal

Reviewed-by: Trust Me
---
 src/corelib/global/qconfig-minimal.h | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/src/corelib/global/qconfig-minimal.h b/src/corelib/global/qconfig-minimal.h
index 3d9539e..9cc3057 100644
--- a/src/corelib/global/qconfig-minimal.h
+++ b/src/corelib/global/qconfig-minimal.h
@@ -123,9 +123,6 @@
 #endif
 
 /* Images */
-#ifndef QT_NO_ICON
-#  define QT_NO_ICON
-#endif
 #ifndef QT_NO_IMAGEFORMATPLUGIN
 #  define QT_NO_IMAGEFORMATPLUGIN
 #endif
-- 
cgit v0.12


From 9c681ddc3a70b220de5d38de498ab1804ec12d4a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=B8rgen=20Lind?= <jorgen.lind@nokia.com>
Date: Wed, 28 Oct 2009 15:50:04 +0100
Subject: Fix GRAPHICSVIEW

Reviewed-by: tom
---
 src/gui/kernel/qevent.cpp               |  2 ++
 src/gui/kernel/qevent.h                 |  2 ++
 src/gui/kernel/qgesturemanager.cpp      |  2 ++
 src/gui/kernel/qgesturemanager_p.h      |  2 ++
 src/gui/kernel/qwidget.cpp              | 40 ++++++++++++++++++++++++---------
 src/gui/painting/qbackingstore.cpp      |  4 ++--
 src/gui/painting/qwindowsurface_qws.cpp |  2 ++
 7 files changed, 41 insertions(+), 13 deletions(-)

diff --git a/src/gui/kernel/qevent.cpp b/src/gui/kernel/qevent.cpp
index 065bd09..bf9479f 100644
--- a/src/gui/kernel/qevent.cpp
+++ b/src/gui/kernel/qevent.cpp
@@ -4345,6 +4345,7 @@ QWidget *QGestureEvent::widget() const
     return d_func()->widget;
 }
 
+#ifndef QT_NO_GRAPHICSVIEW
 /*!
     Returns the scene-local coordinates if the \a gesturePoint is inside a graphics view.
 
@@ -4361,6 +4362,7 @@ QPointF QGestureEvent::mapToScene(const QPointF &gesturePoint) const
     }
     return QPointF();
 }
+#endif //QT_NO_GRAPHICSVIEW
 
 /*!
     \internal
diff --git a/src/gui/kernel/qevent.h b/src/gui/kernel/qevent.h
index b7370fd..d6b1dc1 100644
--- a/src/gui/kernel/qevent.h
+++ b/src/gui/kernel/qevent.h
@@ -854,7 +854,9 @@ public:
     void setWidget(QWidget *widget);
     QWidget *widget() const;
 
+#ifndef QT_NO_GRAPHICSVIEW
     QPointF mapToScene(const QPointF &gesturePoint) const;
+#endif
 
 private:
     QGestureEventPrivate *d_func();
diff --git a/src/gui/kernel/qgesturemanager.cpp b/src/gui/kernel/qgesturemanager.cpp
index ed8e744..5ad607b 100644
--- a/src/gui/kernel/qgesturemanager.cpp
+++ b/src/gui/kernel/qgesturemanager.cpp
@@ -331,6 +331,7 @@ bool QGestureManager::filterEvent(QWidget *receiver, QEvent *event)
     return filterEventThroughContexts(contexts, event);
 }
 
+#ifndef QT_NO_GRAPHICSVIEW
 bool QGestureManager::filterEvent(QGraphicsObject *receiver, QEvent *event)
 {
     QSet<Qt::GestureType> types;
@@ -360,6 +361,7 @@ bool QGestureManager::filterEvent(QGraphicsObject *receiver, QEvent *event)
     }
     return filterEventThroughContexts(contexts, event);
 }
+#endif
 
 bool QGestureManager::filterEvent(QGesture *state, QEvent *event)
 {
diff --git a/src/gui/kernel/qgesturemanager_p.h b/src/gui/kernel/qgesturemanager_p.h
index f0e7225..8199e02 100644
--- a/src/gui/kernel/qgesturemanager_p.h
+++ b/src/gui/kernel/qgesturemanager_p.h
@@ -74,7 +74,9 @@ public:
 
     bool filterEvent(QWidget *receiver, QEvent *event);
     bool filterEvent(QGesture *receiver, QEvent *event);
+#ifndef QT_NO_GRAPHICSVIEW
     bool filterEvent(QGraphicsObject *receiver, QEvent *event);
+#endif //QT_NO_GRAPHICSVIEW
 
     // declared in qapplication.cpp
     static QGestureManager* instance();
diff --git a/src/gui/kernel/qwidget.cpp b/src/gui/kernel/qwidget.cpp
index 916ae8b..62cfd12 100644
--- a/src/gui/kernel/qwidget.cpp
+++ b/src/gui/kernel/qwidget.cpp
@@ -1549,7 +1549,9 @@ void QWidgetPrivate::createExtra()
         extra = new QWExtra;
         extra->glContext = 0;
         extra->topextra = 0;
+#ifndef QT_NO_GRAPHICSVIEW
         extra->proxyWidget = 0;
+#endif
 #ifndef QT_NO_CURSOR
         extra->curs = 0;
 #endif
@@ -1699,12 +1701,13 @@ void QWidgetPrivate::propagatePaletteChange()
 {
     Q_Q(QWidget);
     // Propagate a new inherited mask to all children.
-    if (!q->parentWidget() && extra && extra->proxyWidget) {
 #ifndef QT_NO_GRAPHICSVIEW
+    if (!q->parentWidget() && extra && extra->proxyWidget) {
         QGraphicsProxyWidget *p = extra->proxyWidget;
         inheritedPaletteResolveMask = p->d_func()->inheritedPaletteResolveMask | p->palette().resolve();
+    } else
 #endif //QT_NO_GRAPHICSVIEW
-    } else if (q->isWindow() && !q->testAttribute(Qt::WA_WindowPropagation)) {
+        if (q->isWindow() && !q->testAttribute(Qt::WA_WindowPropagation)) {
         inheritedPaletteResolveMask = 0;
     }
     int mask = data.pal.resolve() | inheritedPaletteResolveMask;
@@ -4381,7 +4384,11 @@ QPalette QWidgetPrivate::naturalWidgetPalette(uint inheritedMask) const
     Q_Q(const QWidget);
     QPalette naturalPalette = QApplication::palette(q);
     if (!q->testAttribute(Qt::WA_StyleSheet)
-        && (!q->isWindow() || q->testAttribute(Qt::WA_WindowPropagation) || (extra && extra->proxyWidget))) {
+        && (!q->isWindow() || q->testAttribute(Qt::WA_WindowPropagation)
+#ifndef QT_NO_GRAPHICSVIEW
+            || (extra && extra->proxyWidget)
+#endif //QT_NO_GRAPHICSVIEW
+            )) {
         if (QWidget *p = q->parentWidget()) {
             if (!p->testAttribute(Qt::WA_StyleSheet)) {
                 if (!naturalPalette.isCopyOf(QApplication::palette())) {
@@ -4392,13 +4399,14 @@ QPalette QWidgetPrivate::naturalWidgetPalette(uint inheritedMask) const
                     naturalPalette = p->palette();
                 }
             }
-        } else if (extra && extra->proxyWidget) {
+        }
 #ifndef QT_NO_GRAPHICSVIEW
+        else if (extra && extra->proxyWidget) {
             QPalette inheritedPalette = extra->proxyWidget->palette();
             inheritedPalette.resolve(inheritedMask);
             naturalPalette = inheritedPalette.resolve(naturalPalette);
-#endif //QT_NO_GRAPHICSVIEW
         }
+#endif //QT_NO_GRAPHICSVIEW
     }
     naturalPalette.resolve(0);
     return naturalPalette;
@@ -4516,7 +4524,11 @@ QFont QWidgetPrivate::naturalWidgetFont(uint inheritedMask) const
     Q_Q(const QWidget);
     QFont naturalFont = QApplication::font(q);
     if (!q->testAttribute(Qt::WA_StyleSheet)
-        && (!q->isWindow() || q->testAttribute(Qt::WA_WindowPropagation) || (extra && extra->proxyWidget))) {
+        && (!q->isWindow() || q->testAttribute(Qt::WA_WindowPropagation)
+#ifndef QT_NO_GRAPHICSVIEW
+            || (extra && extra->proxyWidget)
+#endif //QT_NO_GRAPHICSVIEW
+            )) {
         if (QWidget *p = q->parentWidget()) {
             if (!p->testAttribute(Qt::WA_StyleSheet)) {
                 if (!naturalFont.isCopyOf(QApplication::font())) {
@@ -4527,13 +4539,14 @@ QFont QWidgetPrivate::naturalWidgetFont(uint inheritedMask) const
                     naturalFont = p->font();
                 }
             }
-        } else if (extra && extra->proxyWidget) {
+        }
 #ifndef QT_NO_GRAPHICSVIEW
+        else if (extra && extra->proxyWidget) {
             QFont inheritedFont = extra->proxyWidget->font();
             inheritedFont.resolve(inheritedMask);
             naturalFont = inheritedFont.resolve(naturalFont);
-#endif //QT_NO_GRAPHICSVIEW
         }
+#endif //QT_NO_GRAPHICSVIEW
     }
     naturalFont.resolve(0);
     return naturalFont;
@@ -4580,12 +4593,13 @@ void QWidgetPrivate::updateFont(const QFont &font)
     data.fnt.x11SetScreen(xinfo.screen());
 #endif
     // Combine new mask with natural mask and propagate to children.
-    if (!q->parentWidget() && extra && extra->proxyWidget) {
 #ifndef QT_NO_GRAPHICSVIEW
+    if (!q->parentWidget() && extra && extra->proxyWidget) {
         QGraphicsProxyWidget *p = extra->proxyWidget;
         inheritedFontResolveMask = p->d_func()->inheritedFontResolveMask | p->font().resolve();
+    } else 
 #endif //QT_NO_GRAPHICSVIEW
-    } else if (q->isWindow() && !q->testAttribute(Qt::WA_WindowPropagation)) {
+    if (q->isWindow() && !q->testAttribute(Qt::WA_WindowPropagation)) {
         inheritedFontResolveMask = 0;
     }
     uint newMask = data.fnt.resolve() | inheritedFontResolveMask;
@@ -5396,7 +5410,11 @@ void QWidgetPrivate::paintSiblingsRecursive(QPaintDevice *pdev, const QObjectLis
                                , sharedPainter, backingStore);
     }
 
-    if (w->updatesEnabled() && (!w->d_func()->extra || !w->d_func()->extra->proxyWidget)) {
+    if (w->updatesEnabled()
+#ifndef QT_NO_GRAPHICSVIEW
+            && (!w->d_func()->extra || !w->d_func()->extra->proxyWidget)
+#endif //QT_NO_GRAPHICSVIEW
+       ) {
         QRegion wRegion(rgn);
         wRegion &= wd->effectiveRectFor(w->data->crect);
         wRegion.translate(-widgetPos);
diff --git a/src/gui/painting/qbackingstore.cpp b/src/gui/painting/qbackingstore.cpp
index 3cd1402..de97302 100644
--- a/src/gui/painting/qbackingstore.cpp
+++ b/src/gui/painting/qbackingstore.cpp
@@ -891,7 +891,7 @@ void QWidgetPrivate::moveRect(const QRect &rect, int dx, int dy)
     const QRect parentRect(rect & clipR);
 
     bool accelerateMove = accelEnv && isOpaque
-#ifndef QT_NO_GRAPHICSCVIEW
+#ifndef QT_NO_GRAPHICSVIEW
                           // No accelerate move for proxy widgets.
                           && !tlw->d_func()->extra->proxyWidget
 #endif
@@ -1189,7 +1189,7 @@ void QWidgetBackingStore::sync()
                                            : wd->dirty);
         toClean += widgetDirty;
 
-#ifndef QT_NO_GRAPHICSCVIEW
+#ifndef QT_NO_GRAPHICSVIEW
         if (tlw->d_func()->extra->proxyWidget) {
             resetWidget(w);
             continue;
diff --git a/src/gui/painting/qwindowsurface_qws.cpp b/src/gui/painting/qwindowsurface_qws.cpp
index 4f489c4..fa0c80e 100644
--- a/src/gui/painting/qwindowsurface_qws.cpp
+++ b/src/gui/painting/qwindowsurface_qws.cpp
@@ -668,9 +668,11 @@ void QWSWindowSurface::flush(QWidget *widget, const QRegion &region,
     if (!win)
         return;
 
+#ifndef QT_NO_GRAPHICSVIEW
     QWExtra *extra = win->d_func()->extra;
     if (extra && extra->proxyWidget)
         return;
+#endif //QT_NO_GRAPHICSVIEW
 
     Q_UNUSED(offset);
 
-- 
cgit v0.12


From 27c99302d0b44c6e9cd0eda6ba888b6a6f5bea38 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bj=C3=B8rn=20Erik=20Nilsen?= <bjorn.nilsen@nokia.com>
Date: Thu, 29 Oct 2009 18:50:55 +0100
Subject: Get rid of QPainter warnings generated from QGraphicsOpacityEffect.

Problem was that we painted on null pixmap. We also want to use the
pixmap cache (QGraphicsEffectSource::pixmap()) to improve performance.

Reported by Andrew Baldwin's performance team.
---
 src/gui/effects/qgraphicseffect.cpp | 69 +++++++++++--------------------------
 1 file changed, 20 insertions(+), 49 deletions(-)

diff --git a/src/gui/effects/qgraphicseffect.cpp b/src/gui/effects/qgraphicseffect.cpp
index 96d35b0..969b6b5 100644
--- a/src/gui/effects/qgraphicseffect.cpp
+++ b/src/gui/effects/qgraphicseffect.cpp
@@ -1235,64 +1235,35 @@ void QGraphicsOpacityEffect::draw(QPainter *painter, QGraphicsEffectSource *sour
         return;
     }
 
-    painter->save();
-    painter->setOpacity(d->opacity);
 
     QPoint offset;
-    if (source->isPixmap()) {
-        // No point in drawing in device coordinates (pixmap will be scaled anyways).
-        if (!d->hasOpacityMask) {
-            const QPixmap pixmap = source->pixmap(Qt::LogicalCoordinates, &offset);
-            painter->drawPixmap(offset, pixmap);
-        } else {
-            QRect srcBrect = source->boundingRect().toAlignedRect();
-            offset = srcBrect.topLeft();
-            QPixmap pixmap(srcBrect.size());
-            pixmap.fill(Qt::transparent);
+    Qt::CoordinateSystem system = source->isPixmap() ? Qt::LogicalCoordinates : Qt::DeviceCoordinates;
+    QPixmap pixmap = source->pixmap(system, &offset);
+    if (pixmap.isNull())
+        return;
 
-            QPainter pixmapPainter(&pixmap);
-            pixmapPainter.setRenderHints(painter->renderHints());
-            pixmapPainter.translate(-offset);
-            source->draw(&pixmapPainter);
-            pixmapPainter.setCompositionMode(QPainter::CompositionMode_DestinationIn);
-            pixmapPainter.fillRect(srcBrect, d->opacityMask);
-            pixmapPainter.end();
+    painter->save();
+    painter->setOpacity(d->opacity);
 
-            painter->drawPixmap(offset, pixmap);
-        }
-    } else {
-        // Draw pixmap in device coordinates to avoid pixmap scaling;
-        if (!d->hasOpacityMask) {
-            const QPixmap pixmap = source->pixmap(Qt::DeviceCoordinates, &offset);
-            painter->setWorldTransform(QTransform());
-            painter->drawPixmap(offset, pixmap);
-        } else {
+    if (d->hasOpacityMask) {
+        QPainter pixmapPainter(&pixmap);
+        pixmapPainter.setRenderHints(painter->renderHints());
+        pixmapPainter.setCompositionMode(QPainter::CompositionMode_DestinationIn);
+        if (system == Qt::DeviceCoordinates) {
             QTransform worldTransform = painter->worldTransform();
-
-            // Calculate source bounding rect in logical and device coordinates.
-            QRectF srcBrect = source->boundingRect();
-            QRect srcDeviceBrect = worldTransform.mapRect(srcBrect).toAlignedRect();
-            srcDeviceBrect &= source->deviceRect();
-
-            offset = srcDeviceBrect.topLeft();
-            worldTransform *= QTransform::fromTranslate(-srcDeviceBrect.x(), -srcDeviceBrect.y());
-
-            QPixmap pixmap(srcDeviceBrect.size());
-            pixmap.fill(Qt::transparent);
-
-            QPainter pixmapPainter(&pixmap);
-            pixmapPainter.setRenderHints(painter->renderHints());
+            worldTransform *= QTransform::fromTranslate(-offset.x(), -offset.y());
             pixmapPainter.setWorldTransform(worldTransform);
-            source->draw(&pixmapPainter);
-            pixmapPainter.setCompositionMode(QPainter::CompositionMode_DestinationIn);
-            pixmapPainter.fillRect(srcBrect, d->opacityMask);
-            pixmapPainter.end();
-
-            painter->setWorldTransform(QTransform());
-            painter->drawPixmap(offset, pixmap);
+            pixmapPainter.fillRect(source->boundingRect(), d->opacityMask);
+        } else {
+            pixmapPainter.translate(-offset);
+            pixmapPainter.fillRect(pixmap.rect(), d->opacityMask);
         }
     }
 
+    if (system == Qt::DeviceCoordinates)
+        painter->setWorldTransform(QTransform());
+
+    painter->drawPixmap(offset, pixmap);
     painter->restore();
 }
 
-- 
cgit v0.12


From a5c3cd6d540f282f59c7c5891598ed8f2c6e033f Mon Sep 17 00:00:00 2001
From: Gabriel de Dietrich <gabriel.dietrich-de@nokia.com>
Date: Fri, 30 Oct 2009 10:44:37 +0100
Subject: Updated QTextEdit auto-test after changes in commit 04d18b38c.

---
 .../fullWidthSelection/centered-fully-selected.png    | Bin 1232 -> 1232 bytes
 .../fullWidthSelection/centered-partly-selected.png   | Bin 1231 -> 1231 bytes
 .../fullWidthSelection/last-char-on-line.png          | Bin 1220 -> 1226 bytes
 .../fullWidthSelection/last-char-on-parag.png         | Bin 1222 -> 1223 bytes
 .../fullWidthSelection/multiple-full-width-lines.png  | Bin 1236 -> 1236 bytes
 .../auto/qtextedit/fullWidthSelection/nowrap_long.png | Bin 1199 -> 1199 bytes
 .../fullWidthSelection/single-full-width-line.png     | Bin 1235 -> 1225 bytes
 tests/auto/qtextedit/tst_qtextedit.cpp                |   4 ++--
 8 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/tests/auto/qtextedit/fullWidthSelection/centered-fully-selected.png b/tests/auto/qtextedit/fullWidthSelection/centered-fully-selected.png
index 7467478..ced6eb6 100644
Binary files a/tests/auto/qtextedit/fullWidthSelection/centered-fully-selected.png and b/tests/auto/qtextedit/fullWidthSelection/centered-fully-selected.png differ
diff --git a/tests/auto/qtextedit/fullWidthSelection/centered-partly-selected.png b/tests/auto/qtextedit/fullWidthSelection/centered-partly-selected.png
index 7a10e63..481b99c 100644
Binary files a/tests/auto/qtextedit/fullWidthSelection/centered-partly-selected.png and b/tests/auto/qtextedit/fullWidthSelection/centered-partly-selected.png differ
diff --git a/tests/auto/qtextedit/fullWidthSelection/last-char-on-line.png b/tests/auto/qtextedit/fullWidthSelection/last-char-on-line.png
index df5b92e..292d3f9 100644
Binary files a/tests/auto/qtextedit/fullWidthSelection/last-char-on-line.png and b/tests/auto/qtextedit/fullWidthSelection/last-char-on-line.png differ
diff --git a/tests/auto/qtextedit/fullWidthSelection/last-char-on-parag.png b/tests/auto/qtextedit/fullWidthSelection/last-char-on-parag.png
index d58d4cc..69b72ed 100644
Binary files a/tests/auto/qtextedit/fullWidthSelection/last-char-on-parag.png and b/tests/auto/qtextedit/fullWidthSelection/last-char-on-parag.png differ
diff --git a/tests/auto/qtextedit/fullWidthSelection/multiple-full-width-lines.png b/tests/auto/qtextedit/fullWidthSelection/multiple-full-width-lines.png
index c5c3c22..467b91e 100644
Binary files a/tests/auto/qtextedit/fullWidthSelection/multiple-full-width-lines.png and b/tests/auto/qtextedit/fullWidthSelection/multiple-full-width-lines.png differ
diff --git a/tests/auto/qtextedit/fullWidthSelection/nowrap_long.png b/tests/auto/qtextedit/fullWidthSelection/nowrap_long.png
index 7ded254..cce921b 100644
Binary files a/tests/auto/qtextedit/fullWidthSelection/nowrap_long.png and b/tests/auto/qtextedit/fullWidthSelection/nowrap_long.png differ
diff --git a/tests/auto/qtextedit/fullWidthSelection/single-full-width-line.png b/tests/auto/qtextedit/fullWidthSelection/single-full-width-line.png
index d2fd629..937494a 100644
Binary files a/tests/auto/qtextedit/fullWidthSelection/single-full-width-line.png and b/tests/auto/qtextedit/fullWidthSelection/single-full-width-line.png differ
diff --git a/tests/auto/qtextedit/tst_qtextedit.cpp b/tests/auto/qtextedit/tst_qtextedit.cpp
index 59abbd5..fee030c 100644
--- a/tests/auto/qtextedit/tst_qtextedit.cpp
+++ b/tests/auto/qtextedit/tst_qtextedit.cpp
@@ -1967,7 +1967,7 @@ void tst_QTextEdit::fullWidthSelection()
     qt_setQtEnableTestFont(true);
     QFont testFont;
     testFont.setFamily("__Qt__Box__Engine__");
-    testFont.setPixelSize(12);
+    testFont.setPixelSize(11);
     testFont.setWeight(QFont::Normal);
     QTextCharFormat cf;
     cf.setFont(testFont);
@@ -2015,7 +2015,7 @@ void tst_QTextEdit::fullWidthSelection2()
     qt_setQtEnableTestFont(true);
     QFont testFont;
     testFont.setFamily("__Qt__Box__Engine__");
-    testFont.setPixelSize(12);
+    testFont.setPixelSize(11);
     testFont.setWeight(QFont::Normal);
     QTextCharFormat cf;
     cf.setFont(testFont);
-- 
cgit v0.12


From 2cdea6a10da75b7b8870f27c432a5e02f7500340 Mon Sep 17 00:00:00 2001
From: Thierry Bastian <thierry.bastian@nokia.com>
Date: Fri, 30 Oct 2009 11:11:26 +0100
Subject: QActionGroup: reset the checkedAction when it is unchecked

Task-number: QTBUG-1019
Reviewed-by: Gabriel
---
 src/gui/kernel/qactiongroup.cpp              | 14 ++++++++++----
 tests/auto/qactiongroup/tst_qactiongroup.cpp | 21 +++++++++++++++++++++
 2 files changed, 31 insertions(+), 4 deletions(-)

diff --git a/src/gui/kernel/qactiongroup.cpp b/src/gui/kernel/qactiongroup.cpp
index 40d18a2..8db76e4 100644
--- a/src/gui/kernel/qactiongroup.cpp
+++ b/src/gui/kernel/qactiongroup.cpp
@@ -72,10 +72,16 @@ void QActionGroupPrivate::_q_actionChanged()
     Q_Q(QActionGroup);
     QAction *action = qobject_cast<QAction*>(q->sender());
     Q_ASSERT_X(action != 0, "QWidgetGroup::_q_actionChanged", "internal error");
-    if(exclusive && action->isChecked() && action != current) {
-        if(current)
-            current->setChecked(false);
-        current = action;
+    if(exclusive) {
+        if (action->isChecked()) {
+            if (action != current) {
+                if(current)
+                    current->setChecked(false);
+                current = action;
+            }
+        } else if (action == current) {
+            current = 0;
+        }
     }
 }
 
diff --git a/tests/auto/qactiongroup/tst_qactiongroup.cpp b/tests/auto/qactiongroup/tst_qactiongroup.cpp
index 2d215a0..7259479 100644
--- a/tests/auto/qactiongroup/tst_qactiongroup.cpp
+++ b/tests/auto/qactiongroup/tst_qactiongroup.cpp
@@ -70,6 +70,7 @@ private slots:
 
     void separators();
     void testActionInTwoQActionGroup();
+	void unCheckCurrentAction();
 };
 
 tst_QActionGroup::tst_QActionGroup()
@@ -278,5 +279,25 @@ void tst_QActionGroup::testActionInTwoQActionGroup()
     QCOMPARE(group1.actions().isEmpty(), true);
 }
 
+void tst_QActionGroup::unCheckCurrentAction()
+{
+    QActionGroup group(0);
+    QAction action1(&group) ,action2(&group);
+    action1.setCheckable(true);
+    action2.setCheckable(true);
+    QVERIFY(!action1.isChecked());
+    QVERIFY(!action2.isChecked());
+    action1.setChecked(true);
+    QVERIFY(action1.isChecked());
+    QVERIFY(!action2.isChecked());
+    QAction *current = group.checkedAction();
+    QCOMPARE(current, &action1);
+    current->setChecked(false);
+    QVERIFY(!action1.isChecked());
+    QVERIFY(!action2.isChecked());
+    QVERIFY(group.checkedAction() == 0);
+}
+
+
 QTEST_MAIN(tst_QActionGroup)
 #include "tst_qactiongroup.moc"
-- 
cgit v0.12


From c726e83aebf2252b5a94444d5d61e03ef2033437 Mon Sep 17 00:00:00 2001
From: Thierry Bastian <thierry.bastian@nokia.com>
Date: Fri, 30 Oct 2009 11:36:30 +0100
Subject: In ItemViews, right click on the viewport clear the ext selection

Task-number: QTBUG-435
Reviewed-by: Gabriel
---
 src/gui/itemviews/qabstractitemview.cpp |  2 +-
 tests/auto/qlistview/tst_qlistview.cpp  | 23 +++++++++++++++++++++++
 2 files changed, 24 insertions(+), 1 deletion(-)

diff --git a/src/gui/itemviews/qabstractitemview.cpp b/src/gui/itemviews/qabstractitemview.cpp
index 9247411..23bef12 100644
--- a/src/gui/itemviews/qabstractitemview.cpp
+++ b/src/gui/itemviews/qabstractitemview.cpp
@@ -3641,7 +3641,7 @@ QItemSelectionModel::SelectionFlags QAbstractItemViewPrivate::extendedSelectionC
             const bool controlKeyPressed = modifiers & Qt::ControlModifier;
             if (((index == pressedIndex && selectionModel->isSelected(index))
                 || !index.isValid()) && state != QAbstractItemView::DragSelectingState
-                && !shiftKeyPressed && !controlKeyPressed && !rightButtonPressed)
+                && !shiftKeyPressed && !controlKeyPressed && (!rightButtonPressed || !index.isValid()))
                 return QItemSelectionModel::ClearAndSelect|selectionBehaviorFlags();
             return QItemSelectionModel::NoUpdate;
         }
diff --git a/tests/auto/qlistview/tst_qlistview.cpp b/tests/auto/qlistview/tst_qlistview.cpp
index 727e6d3..a5ff153 100644
--- a/tests/auto/qlistview/tst_qlistview.cpp
+++ b/tests/auto/qlistview/tst_qlistview.cpp
@@ -120,6 +120,7 @@ private slots:
     void taskQTBUG_2233_scrollHiddenItems_data();
     void taskQTBUG_2233_scrollHiddenItems();
     void taskQTBUG_633_changeModelData();
+    void taskQTBUG_435_deselectOnViewportClick();
 };
 
 // Testing get/set functions
@@ -1852,6 +1853,28 @@ void tst_QListView::taskQTBUG_633_changeModelData()
     QVERIFY( ! rectLongText.intersects(rect2) );
 }
 
+void tst_QListView::taskQTBUG_435_deselectOnViewportClick()
+{
+    QListView view;
+    QStringListModel model( QStringList() << "1" << "2" << "3" << "4");
+    view.setModel(&model);
+    view.setSelectionMode(QAbstractItemView::ExtendedSelection);
+    view.selectAll();
+    QCOMPARE(view.selectionModel()->selectedIndexes().count(), model.rowCount());
+    
+
+    QPoint p = view.visualRect(model.index(model.rowCount() - 1)).center() + QPoint(0, 20);
+    //first the left button
+    QTest::mouseClick(view.viewport(), Qt::LeftButton, 0, p);
+    QVERIFY(!view.selectionModel()->hasSelection());
+
+    view.selectAll();
+    QCOMPARE(view.selectionModel()->selectedIndexes().count(), model.rowCount());
+
+    //and now the right button
+    QTest::mouseClick(view.viewport(), Qt::RightButton, 0, p);
+    QVERIFY(!view.selectionModel()->hasSelection());
+}
 
 QTEST_MAIN(tst_QListView)
 #include "tst_qlistview.moc"
-- 
cgit v0.12


From 5e95f9c3c224b87840e750d4280806a40ed40c92 Mon Sep 17 00:00:00 2001
From: Robert Griebl <rgriebl@trolltech.com>
Date: Fri, 30 Oct 2009 12:21:25 +0100
Subject: Remove a paintBox call that should have been moved a few lines down,
 but was instead copied in commit ea13922

Reviewed-by: TrustMe
---
 src/gui/styles/qgtkstyle.cpp | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/src/gui/styles/qgtkstyle.cpp b/src/gui/styles/qgtkstyle.cpp
index d315c98..b8d3674 100644
--- a/src/gui/styles/qgtkstyle.cpp
+++ b/src/gui/styles/qgtkstyle.cpp
@@ -1933,9 +1933,6 @@ void QGtkStyle::drawComplexControl(ComplexControl control, const QStyleOptionCom
                 QRect grooveRect = option->rect.adjusted(focusFrameMargin, outerSize + focusFrameMargin,
                                    -focusFrameMargin, -outerSize - focusFrameMargin);
 
-                gtkPainter.paintBox( scaleWidget, "trough", grooveRect, state,
-                                     GTK_SHADOW_IN, style, QString(QLS("p%0")).arg(slider->sliderPosition));
-
                 gboolean trough_side_details = false; // Indicates if the upper or lower scale background differs
                 if (!QGtk::gtk_check_version(2, 10, 0))
                     QGtk::gtk_widget_style_get((GtkWidget*)(scaleWidget), "trough-side-details",   &trough_side_details, NULL);
-- 
cgit v0.12


From b68cd1df21935fc032a93c7d7bc33fcb77c7b8cd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=B8rgen=20Lind?= <jorgen.lind@nokia.com>
Date: Fri, 30 Oct 2009 12:20:09 +0100
Subject: Reverts bf1a6bb6b3b8c98f6ab402512eb2f1996c2435c7

and removes THREAD from qfeature

Reviewed-by: Trust Me
---
 src/corelib/global/qconfig-minimal.h |  3 --
 src/corelib/global/qfeatures.h       | 63 ++++++++++++++++--------------------
 src/corelib/global/qfeatures.txt     | 15 +++------
 src/corelib/thread/qmutexpool.cpp    | 20 ++++++------
 src/corelib/thread/qmutexpool_p.h    | 17 ++--------
 src/corelib/thread/qthread.cpp       | 24 ++++++--------
 src/corelib/thread/qthread_p.h       | 62 ++++++++++++++++++-----------------
 7 files changed, 85 insertions(+), 119 deletions(-)

diff --git a/src/corelib/global/qconfig-minimal.h b/src/corelib/global/qconfig-minimal.h
index 9cc3057..58565d6 100644
--- a/src/corelib/global/qconfig-minimal.h
+++ b/src/corelib/global/qconfig-minimal.h
@@ -255,9 +255,6 @@
 #ifndef QT_NO_TEXTHTMLPARSER
 #  define QT_NO_TEXTHTMLPARSER
 #endif
-#ifndef QT_NO_THREAD
-#  define QT_NO_THREAD
-#endif
 #ifndef QT_NO_CONCURRENT
 #  define QT_NO_CONCURRENT
 #endif
diff --git a/src/corelib/global/qfeatures.h b/src/corelib/global/qfeatures.h
index 3996180..9b3e817 100644
--- a/src/corelib/global/qfeatures.h
+++ b/src/corelib/global/qfeatures.h
@@ -55,6 +55,9 @@
 // Color Names
 //#define QT_NO_COLORNAMES
 
+// QtConcurrent
+//#define QT_NO_CONCURRENT
+
 // QCopChannel
 //#define QT_NO_COP
 
@@ -76,6 +79,9 @@
 // Effects
 //#define QT_NO_EFFECTS
 
+// QFileSystemWatcher
+//#define QT_NO_FILESYSTEMWATCHER
+
 // Freetype Font Engine
 //#define QT_NO_FREETYPE
 
@@ -151,6 +157,9 @@
 // QPicture
 //#define QT_NO_PICTURE
 
+// QProcess
+//#define QT_NO_PROCESS
+
 // QProgressBar
 //#define QT_NO_PROGRESSBAR
 
@@ -274,9 +283,6 @@
 // QTextStream
 //#define QT_NO_TEXTSTREAM
 
-// QThread
-//#define QT_NO_THREAD
-
 // QToolTip
 //#define QT_NO_TOOLTIP
 
@@ -301,6 +307,11 @@
 // 
 //#define QT_NO_XMLSTREAM
 
+// Animation
+#if !defined(QT_NO_ANIMATION) && (defined(QT_NO_PROPERTIES))
+#define QT_NO_ANIMATION
+#endif
+
 // QButtonGroup
 #if !defined(QT_NO_BUTTONGROUP) && (defined(QT_NO_GROUPBOX))
 #define QT_NO_BUTTONGROUP
@@ -316,11 +327,6 @@
 #define QT_NO_CODECS
 #endif
 
-// QtConcurrent
-#if !defined(QT_NO_CONCURRENT) && (defined(QT_NO_THREAD))
-#define QT_NO_CONCURRENT
-#endif
-
 // QDate/QTime/QDateTime
 #if !defined(QT_NO_DATESTRING) && (defined(QT_NO_TEXTDATE))
 #define QT_NO_DATESTRING
@@ -331,9 +337,9 @@
 #define QT_NO_DIAL
 #endif
 
-// QFileSystemWatcher
-#if !defined(QT_NO_FILESYSTEMWATCHER) && (defined(QT_NO_THREAD))
-#define QT_NO_FILESYSTEMWATCHER
+// QFileSystemModel
+#if !defined(QT_NO_FILESYSTEMMODEL) && (defined(QT_NO_FILESYSTEMWATCHER))
+#define QT_NO_FILESYSTEMMODEL
 #endif
 
 // QHostInfo
@@ -371,11 +377,6 @@
 #define QT_NO_PHONON_VOLUMEFADEREFFECT
 #endif
 
-// QProcess
-#if !defined(QT_NO_PROCESS) && (defined(QT_NO_THREAD))
-#define QT_NO_PROCESS
-#endif
-
 // QProgressDialog
 #if !defined(QT_NO_PROGRESSDIALOG) && (defined(QT_NO_PROGRESSBAR))
 #define QT_NO_PROGRESSDIALOG
@@ -491,21 +492,11 @@
 #define QT_NO_XMLSTREAMWRITER
 #endif
 
-// Animation
-#if !defined(QT_NO_ANIMATION) && (defined(QT_NO_PROPERTIES) || defined(QT_NO_THREAD))
-#define QT_NO_ANIMATION
-#endif
-
 // Context menu
 #if !defined(QT_NO_CONTEXTMENU) && (defined(QT_NO_MENU))
 #define QT_NO_CONTEXTMENU
 #endif
 
-// QFileSystemModel
-#if !defined(QT_NO_FILESYSTEMMODEL) && (defined(QT_NO_FILESYSTEMWATCHER))
-#define QT_NO_FILESYSTEMMODEL
-#endif
-
 // File Transfer Protocol
 #if !defined(QT_NO_FTP) && (defined(QT_NO_URLINFO) || defined(QT_NO_TEXTDATE))
 #define QT_NO_FTP
@@ -796,31 +787,31 @@
 #define QT_NO_CUPS
 #endif
 
-// QDockwidget
-#if !defined(QT_NO_DOCKWIDGET) && (defined(QT_NO_RUBBERBAND) || defined(QT_NO_MAINWINDOW))
-#define QT_NO_DOCKWIDGET
-#endif
-
 // QDirModel
 #if !defined(QT_NO_DIRMODEL) && (defined(QT_NO_ITEMVIEWS) || defined(QT_NO_FILESYSTEMMODEL))
 #define QT_NO_DIRMODEL
 #endif
 
+// QDockwidget
+#if !defined(QT_NO_DOCKWIDGET) && (defined(QT_NO_RUBBERBAND) || defined(QT_NO_MAINWINDOW))
+#define QT_NO_DOCKWIDGET
+#endif
+
 // QUndoView
 #if !defined(QT_NO_UNDOVIEW) && (defined(QT_NO_UNDOSTACK) || defined(QT_NO_LISTVIEW))
 #define QT_NO_UNDOVIEW
 #endif
 
-// QGraphicsSvgItem
-#if !defined(QT_NO_GRAPHICSSVGITEM) && (defined(QT_NO_SVGRENDERER) || defined(QT_NO_GRAPHICSVIEW))
-#define QT_NO_GRAPHICSSVGITEM
-#endif
-
 // QCompleter
 #if !defined(QT_NO_FSCOMPLETER) && (defined(QT_NO_FILESYSTEMMODEL) || defined(QT_NO_COMPLETER))
 #define QT_NO_FSCOMPLETER
 #endif
 
+// QGraphicsSvgItem
+#if !defined(QT_NO_GRAPHICSSVGITEM) && (defined(QT_NO_SVGRENDERER) || defined(QT_NO_GRAPHICSVIEW))
+#define QT_NO_GRAPHICSSVGITEM
+#endif
+
 // QComboBox
 #if !defined(QT_NO_COMBOBOX) && (defined(QT_NO_LINEEDIT) || defined(QT_NO_STANDARDITEMMODEL) || defined(QT_NO_LISTVIEW))
 #define QT_NO_COMBOBOX
diff --git a/src/corelib/global/qfeatures.txt b/src/corelib/global/qfeatures.txt
index 543056f..ff34006 100644
--- a/src/corelib/global/qfeatures.txt
+++ b/src/corelib/global/qfeatures.txt
@@ -28,17 +28,10 @@ Requires:
 Name: CssParser
 SeeAlso: ???
 
-Feature: THREAD
-Description: Supports multithreaded programming.
-Section: Kernel
-Requires:
-Name: QThread
-SeeAlso: ???
-
 Feature: CONCURRENT
 Description: Provides a high-level multi-threaded APIs
 Section: Kernel
-Requires: THREAD
+Requires:
 Name: QtConcurrent
 SeeAlso: ???
 
@@ -195,7 +188,7 @@ SeeAlso: ???
 Feature: PROCESS
 Description: Supports external process invocation.
 Section: File I/O
-Requires: THREAD
+Requires:
 Name: QProcess
 SeeAlso: ???
 
@@ -245,7 +238,7 @@ Feature: FILESYSTEMWATCHER
 Description: Provides an interface for monitoring files and directories
 for modications.
 Section: File I/O
-Requires: THREAD
+Requires:
 Name: QFileSystemWatcher
 SeeAlso: ???
 
@@ -1166,7 +1159,7 @@ SeeAlso: ???
 Feature: ANIMATION
 Description: Provides a framework for animations.
 Section: Utilities
-Requires: PROPERTIES THREAD
+Requires: PROPERTIES
 Name: Animation
 SeeAlso: ???
 
diff --git a/src/corelib/thread/qmutexpool.cpp b/src/corelib/thread/qmutexpool.cpp
index 9f37239..c5c1882 100644
--- a/src/corelib/thread/qmutexpool.cpp
+++ b/src/corelib/thread/qmutexpool.cpp
@@ -42,6 +42,7 @@
 #include "qatomic.h"
 #include "qmutexpool_p.h"
 
+#ifndef QT_NO_THREAD
 
 QT_BEGIN_NAMESPACE
 
@@ -49,7 +50,6 @@ QT_BEGIN_NAMESPACE
 // use QMutexpool::instance() in new clode.
 Q_CORE_EXPORT QMutexPool *qt_global_mutexpool = 0;
 Q_GLOBAL_STATIC_WITH_ARGS(QMutexPool, globalMutexPool, (QMutex::Recursive))
-#ifndef QT_NO_THREAD
 
 /*!
     \class QMutexPool
@@ -114,6 +114,15 @@ QMutexPool::~QMutexPool()
         mutexes[index] = 0;
     }
 }
+
+/*!
+    Returns the global QMutexPool instance.
+*/
+QMutexPool *QMutexPool::instance()
+{
+    return globalMutexPool();
+}
+
 /*!
     Returns a QMutex from the pool. QMutexPool uses the value \a address
     to determine which mutex is returned from the pool.
@@ -143,14 +152,7 @@ QMutex *QMutexPool::globalInstanceGet(const void *address)
         return 0;
     return globalInstance->get(address);
 }
-#endif // QT_NO_THREAD
-/*!
-    Returns the global QMutexPool instance.
-*/
-QMutexPool *QMutexPool::instance()
-{
-    return globalMutexPool();
-}
 
 QT_END_NAMESPACE
 
+#endif // QT_NO_THREAD
diff --git a/src/corelib/thread/qmutexpool_p.h b/src/corelib/thread/qmutexpool_p.h
index c26711b..3e1bad0 100644
--- a/src/corelib/thread/qmutexpool_p.h
+++ b/src/corelib/thread/qmutexpool_p.h
@@ -57,9 +57,9 @@
 #include "QtCore/qmutex.h"
 #include "QtCore/qvarlengtharray.h"
 
+#ifndef QT_NO_THREAD
 
 QT_BEGIN_NAMESPACE
-#ifndef QT_NO_THREAD
 
 class Q_CORE_EXPORT QMutexPool
 {
@@ -75,24 +75,11 @@ private:
     QVarLengthArray<QAtomicPointer<QMutex>, 131> mutexes;
     QMutex::RecursionMode recursionMode;
 };
-#else //QT_NO_THREAD
-Q_GLOBAL_STATIC(QMutex, globalMutex)
-class Q_CORE_EXPORT QMutexPool
-{
-public:
-    explicit QMutexPool(QMutex::RecursionMode recursionMode = QMutex::NonRecursive, int size = 131){}
-    ~QMutexPool(){}
-
-    QMutex *get(const void *address){return globalMutex();}
-    static QMutexPool *instance();
-    static QMutex *globalInstanceGet(const void *address){return globalMutex();}
-};
-
-#endif // QT_NO_THREAD
 
 extern Q_CORE_EXPORT QMutexPool *qt_global_mutexpool;
 
 QT_END_NAMESPACE
 
+#endif // QT_NO_THREAD
 
 #endif // QMUTEXPOOL_P_H
diff --git a/src/corelib/thread/qthread.cpp b/src/corelib/thread/qthread.cpp
index cf57d33..ac191fe 100644
--- a/src/corelib/thread/qthread.cpp
+++ b/src/corelib/thread/qthread.cpp
@@ -727,16 +727,6 @@ QThread *QThread::currentThread()
     return QThreadData::current()->thread;
 }
 
-/*! \internal
- */
-QThread::QThread(QThreadPrivate &dd, QObject *parent)
-    : QObject(dd, parent)
-{
-    Q_D(QThread);
-    // fprintf(stderr, "QThreadData %p taken from private data for thread %p\n", d->data, this);
-    d->data->thread = this;
-}
-
 QThreadData* QThreadData::current()
 {
     static QThreadData *data = 0; // reinterpret_cast<QThreadData *>(pthread_getspecific(current_thread_data_key));
@@ -748,13 +738,17 @@ QThreadData* QThreadData::current()
     }
     return data;
 }
-#endif // QT_NO_THREAD
-QThreadData* QThreadData::get2(QThread *thread)
+
+/*! \internal
+ */
+QThread::QThread(QThreadPrivate &dd, QObject *parent)
+    : QObject(dd, parent)
 {
-    Q_ASSERT_X(thread != 0, "QThread", "internal error");
-    return thread->d_func()->data;
+    Q_D(QThread);
+    // fprintf(stderr, "QThreadData %p taken from private data for thread %p\n", d->data, this);
+    d->data->thread = this;
 }
 
-
+#endif // QT_NO_THREAD
 
 QT_END_NAMESPACE
diff --git a/src/corelib/thread/qthread_p.h b/src/corelib/thread/qthread_p.h
index 8c3acdb..af68434 100644
--- a/src/corelib/thread/qthread_p.h
+++ b/src/corelib/thread/qthread_p.h
@@ -111,36 +111,6 @@ public:
     { }
 };
 
-class QThreadData
-{
-    QAtomicInt _ref;
-
-public:
-    QThreadData(int initialRefCount = 1);
-    ~QThreadData();
-
-    static QThreadData *current();
-    static QThreadData *get2(QThread *thread);
-
-    void ref();
-    void deref();
-
-    QThread *thread;
-    bool quitNow;
-    int loopLevel;
-    QAbstractEventDispatcher *eventDispatcher;
-    QStack<QEventLoop *> eventLoops;
-    QPostEventList postEventList;
-    bool canWait;
-    QMap<int, void *> tls;
-
-    QMutex mutex;
-
-# ifdef Q_OS_SYMBIAN
-    RThread symbian_thread_handle;
-# endif
-};
-
 #ifndef QT_NO_THREAD
 class QThreadPrivate : public QObjectPrivate
 {
@@ -209,6 +179,38 @@ public:
 
 #endif // QT_NO_THREAD
 
+class QThreadData
+{
+    QAtomicInt _ref;
+
+public:
+    QThreadData(int initialRefCount = 1);
+    ~QThreadData();
+
+    static QThreadData *current();
+    static QThreadData *get2(QThread *thread)
+    { Q_ASSERT_X(thread != 0, "QThread", "internal error"); return thread->d_func()->data; }
+
+
+    void ref();
+    void deref();
+
+    QThread *thread;
+    bool quitNow;
+    int loopLevel;
+    QAbstractEventDispatcher *eventDispatcher;
+    QStack<QEventLoop *> eventLoops;
+    QPostEventList postEventList;
+    bool canWait;
+    QMap<int, void *> tls;
+
+    QMutex mutex;
+
+# ifdef Q_OS_SYMBIAN
+    RThread symbian_thread_handle;
+# endif
+};
+
 // thread wrapper for the main() thread
 class QAdoptedThread : public QThread
 {
-- 
cgit v0.12


From 30b0902cf05b0c1dc649e9c2e7ae0415e0c1d042 Mon Sep 17 00:00:00 2001
From: "Bradley T. Hughes" <bradley.hughes@nokia.com>
Date: Fri, 30 Oct 2009 12:35:49 +0100
Subject: Remove the unnecessary (and broken)
 tst_QMouseEvent::checkMouseMoveEvent() test

According to people responsible for the test, it is not
necessary. This partially reverts commit
b1f9882fa52745c922eb0109daa011908214dcf7.
---
 tests/auto/qmouseevent/tst_qmouseevent.cpp | 75 ------------------------------
 1 file changed, 75 deletions(-)

diff --git a/tests/auto/qmouseevent/tst_qmouseevent.cpp b/tests/auto/qmouseevent/tst_qmouseevent.cpp
index d700181..b961851 100644
--- a/tests/auto/qmouseevent/tst_qmouseevent.cpp
+++ b/tests/auto/qmouseevent/tst_qmouseevent.cpp
@@ -62,7 +62,6 @@ public:
     }
     bool mousePressEventRecieved;
     bool mouseReleaseEventRecieved;
-    bool mouseMoveEventRecieved;
 #ifdef QT3_SUPPORT
     int mousePressStateBefore;
     int mousePressStateAfter;
@@ -77,13 +76,6 @@ public:
     int mouseReleaseButton;
     int mouseReleaseButtons;
     int mouseReleaseModifiers;
-#ifdef QT3_SUPPORT
-    int mouseMoveStateBefore;
-    int mouseMoveStateAfter;
-#endif
-    int mouseMoveButton;
-    int mouseMoveButtons;
-    int mouseMoveModifiers;
 protected:
     void mousePressEvent(QMouseEvent *e)
     {
@@ -111,19 +103,6 @@ protected:
 	mouseReleaseEventRecieved = TRUE;
 	e->accept();
     }
-    void mouseMoveEvent(QMouseEvent *e)
-    {
-        QWidget::mouseMoveEvent(e);
-#ifdef QT3_SUPPORT
-        mouseMoveStateBefore = e->state();
-        mouseMoveStateAfter = e->stateAfter();
-#endif
-        mouseMoveButton = e->button();
-        mouseMoveButtons = e->buttons();
-        mouseMoveModifiers = e->modifiers();
-        mouseMoveEventRecieved = TRUE;
-        e->accept();
-    }
 };
 
 class tst_QMouseEvent : public QObject
@@ -145,8 +124,6 @@ private slots:
     void checkMousePressEvent();
     void checkMouseReleaseEvent_data();
     void checkMouseReleaseEvent();
-    void checkMouseMoveEvent_data();
-    void checkMouseMoveEvent();
 
     void qt3supportConstructors();
 
@@ -180,14 +157,11 @@ void tst_QMouseEvent::init()
 {
     testMouseWidget->mousePressEventRecieved = FALSE;
     testMouseWidget->mouseReleaseEventRecieved = FALSE;
-    testMouseWidget->mouseMoveEventRecieved = FALSE;
 #ifdef QT3_SUPPORT
     testMouseWidget->mousePressStateBefore = 0;
     testMouseWidget->mousePressStateAfter = 0;
     testMouseWidget->mouseReleaseStateBefore = 0;
     testMouseWidget->mouseReleaseStateAfter = 0;
-    testMouseWidget->mouseMoveStateBefore = 0;
-    testMouseWidget->mouseMoveStateAfter = 0;
 #endif
     testMouseWidget->mousePressButton = 0;
     testMouseWidget->mousePressButtons = 0;
@@ -195,9 +169,6 @@ void tst_QMouseEvent::init()
     testMouseWidget->mouseReleaseButton = 0;
     testMouseWidget->mouseReleaseButtons = 0;
     testMouseWidget->mouseReleaseModifiers = 0;
-    testMouseWidget->mouseMoveButton = 0;
-    testMouseWidget->mouseMoveButtons = 0;
-    testMouseWidget->mouseMoveModifiers = 0;
 }
 
 void tst_QMouseEvent::cleanup()
@@ -294,52 +265,6 @@ void tst_QMouseEvent::checkMouseReleaseEvent()
 #endif
 }
 
-void tst_QMouseEvent::checkMouseMoveEvent_data()
-{
-    QTest::addColumn<int>("buttonMoved");
-    QTest::addColumn<int>("keyPressed");
-
-    QTest::newRow("leftButton-nokey") << int(Qt::LeftButton) << int(Qt::NoButton);
-    QTest::newRow("leftButton-shiftkey") << int(Qt::LeftButton) << int(Qt::ShiftModifier);
-    QTest::newRow("leftButton-controlkey") << int(Qt::LeftButton) << int(Qt::ControlModifier);
-    QTest::newRow("leftButton-altkey") << int(Qt::LeftButton) << int(Qt::AltModifier);
-    QTest::newRow("leftButton-metakey") << int(Qt::LeftButton) << int(Qt::MetaModifier);
-    QTest::newRow("rightButton-nokey") << int(Qt::RightButton) << int(Qt::NoButton);
-    QTest::newRow("rightButton-shiftkey") << int(Qt::RightButton) << int(Qt::ShiftModifier);
-    QTest::newRow("rightButton-controlkey") << int(Qt::RightButton) << int(Qt::ControlModifier);
-    QTest::newRow("rightButton-altkey") << int(Qt::RightButton) << int(Qt::AltModifier);
-    QTest::newRow("rightButton-metakey") << int(Qt::RightButton) << int(Qt::MetaModifier);
-    QTest::newRow("midButton-nokey") << int(Qt::MidButton) << int(Qt::NoButton);
-    QTest::newRow("midButton-shiftkey") << int(Qt::MidButton) << int(Qt::ShiftModifier);
-    QTest::newRow("midButton-controlkey") << int(Qt::MidButton) << int(Qt::ControlModifier);
-    QTest::newRow("midButton-altkey") << int(Qt::MidButton) << int(Qt::AltModifier);
-    QTest::newRow("midButton-metakey") << int(Qt::MidButton) << int(Qt::MetaModifier);
-}
-
-void tst_QMouseEvent::checkMouseMoveEvent()
-{
-    QFETCH(int,buttonMoved);
-    QFETCH(int,keyPressed);
-    int button = (int)Qt::NoButton;
-    int buttons = buttonMoved;
-    int modifiers = keyPressed;
-
-    QTest::mousePress(testMouseWidget, Qt::MouseButton(buttonMoved), Qt::KeyboardModifiers(keyPressed));
-    QTest::mouseMove(testMouseWidget, QPoint(10,10));
-    QVERIFY(testMouseWidget->mouseMoveEventRecieved);
-    QCOMPARE(testMouseWidget->mouseMoveButton, button);
-    QCOMPARE(testMouseWidget->mouseMoveButtons, buttons);
-    QCOMPARE(testMouseWidget->mouseMoveModifiers, modifiers);
-#ifdef QT3_SUPPORT
-    int stateAfter = buttons|modifiers;
-    int stateBefore = stateAfter|button;
-
-    QCOMPARE(testMouseWidget->mouseMoveStateBefore, stateBefore);
-    QCOMPARE(testMouseWidget->mouseMoveStateAfter, stateAfter);
-#endif
-    QTest::mouseRelease(testMouseWidget, Qt::MouseButton(buttonMoved), Qt::KeyboardModifiers(keyPressed));
-}
-
 void tst_QMouseEvent::qt3supportConstructors()
 {
 #if !defined(QT3_SUPPORT)
-- 
cgit v0.12


From 85b7896a47f9bb622b394107769cb7c1121a6995 Mon Sep 17 00:00:00 2001
From: Thierry Bastian <thierry.bastian@nokia.com>
Date: Fri, 30 Oct 2009 12:40:13 +0100
Subject: QItemSelectionModel could emit selectionChanged with no change

Task-number: QTBUG-560
Reviewed-by: ogoffart
---
 src/gui/itemviews/qitemselectionmodel.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/gui/itemviews/qitemselectionmodel.cpp b/src/gui/itemviews/qitemselectionmodel.cpp
index f2ccb6e..c6e02a6 100644
--- a/src/gui/itemviews/qitemselectionmodel.cpp
+++ b/src/gui/itemviews/qitemselectionmodel.cpp
@@ -1587,7 +1587,8 @@ void QItemSelectionModel::emitSelectionChanged(const QItemSelection &newSelectio
         }
     }
 
-    emit selectionChanged(selected, deselected);
+    if (!selected.isEmpty() || !deselected.isEmpty())
+        emit selectionChanged(selected, deselected);
 }
 
 #ifndef QT_NO_DEBUG_STREAM
-- 
cgit v0.12


From d025ebb1a8163cd1f03151927486cf62c5e77957 Mon Sep 17 00:00:00 2001
From: Olivier Goffart <ogoffart@trolltech.com>
Date: Fri, 30 Oct 2009 09:55:20 +0100
Subject: Fixes regression in QComboBox with keypad navigation while mouse is
 over the popup

The problem is that is we move the selection with the keyboard
in a way that causes the view to scroll, the current selection
would jump.

This happends since commit 9cb231d773db6deb that fixed the emission
of the enter signal when the view is scrolled.

We Therefor cannot use the enter signal.  Catch manually the mouse
move events to update the selection instead.

Reviewed-by: Thierry
---
 src/gui/widgets/qcombobox.cpp          | 24 ++++------------
 src/gui/widgets/qcombobox_p.h          |  1 -
 tests/auto/qcombobox/tst_qcombobox.cpp | 52 ++++++++++++++++++++++++++++++++++
 3 files changed, 58 insertions(+), 19 deletions(-)

diff --git a/src/gui/widgets/qcombobox.cpp b/src/gui/widgets/qcombobox.cpp
index 6dbf15a..1879db4 100644
--- a/src/gui/widgets/qcombobox.cpp
+++ b/src/gui/widgets/qcombobox.cpp
@@ -489,18 +489,6 @@ void QComboBoxPrivateContainer::viewDestroyed()
 }
 
 /*
-    Sets currentIndex on entered if the LeftButton is not pressed. This
-    means that if mouseTracking(...) is on, we setCurrentIndex and select
-    even when LeftButton is not pressed.
-*/
-void QComboBoxPrivateContainer::setCurrentIndex(const QModelIndex &index)
-{
-    if (QComboBoxDelegate::isSeparator(index))
-        return;
-    view->setCurrentIndex(index);
-}
-
-/*
     Returns the item view used for the combobox popup.
 */
 QAbstractItemView *QComboBoxPrivateContainer::itemView() const
@@ -525,8 +513,6 @@ void QComboBoxPrivateContainer::setItemView(QAbstractItemView *itemView)
         disconnect(view->verticalScrollBar(), SIGNAL(rangeChanged(int,int)),
                    this, SLOT(updateScrollers()));
 #endif
-        disconnect(view, SIGNAL(entered(QModelIndex)),
-                   this, SLOT(setCurrentIndex(QModelIndex)));
         disconnect(view, SIGNAL(destroyed()),
                    this, SLOT(viewDestroyed()));
 
@@ -563,8 +549,6 @@ void QComboBoxPrivateContainer::setItemView(QAbstractItemView *itemView)
     connect(view->verticalScrollBar(), SIGNAL(rangeChanged(int,int)),
             this, SLOT(updateScrollers()));
 #endif
-    connect(view, SIGNAL(entered(QModelIndex)),
-            this, SLOT(setCurrentIndex(QModelIndex)));
     connect(view, SIGNAL(destroyed()),
             this, SLOT(viewDestroyed()));
 
@@ -655,16 +639,20 @@ bool QComboBoxPrivateContainer::eventFilter(QObject *o, QEvent *e)
             break;
         }
     break;
-    case QEvent::MouseMove: {
+    case QEvent::MouseMove:
         if (isVisible()) {
             QMouseEvent *m = static_cast<QMouseEvent *>(e);
             QWidget *widget = static_cast<QWidget *>(o);
             QPoint vector = widget->mapToGlobal(m->pos()) - initialClickPosition;
             if (vector.manhattanLength() > 9 && blockMouseReleaseTimer.isActive())
                 blockMouseReleaseTimer.stop();
+            QModelIndex indexUnderMouse = view->indexAt(m->pos());
+            if (indexUnderMouse.isValid() && indexUnderMouse != view->currentIndex()
+                    && !QComboBoxDelegate::isSeparator(indexUnderMouse)) {
+                view->setCurrentIndex(indexUnderMouse);
+            }
         }
         break;
-    }
     case QEvent::MouseButtonRelease: {
         QMouseEvent *m = static_cast<QMouseEvent *>(e);
         if (isVisible() && view->rect().contains(m->pos()) && view->currentIndex().isValid()
diff --git a/src/gui/widgets/qcombobox_p.h b/src/gui/widgets/qcombobox_p.h
index 06e51e4..fe42c47 100644
--- a/src/gui/widgets/qcombobox_p.h
+++ b/src/gui/widgets/qcombobox_p.h
@@ -231,7 +231,6 @@ public:
 public Q_SLOTS:
     void scrollItemView(int action);
     void updateScrollers();
-    void setCurrentIndex(const QModelIndex &index);
     void viewDestroyed();
 
 protected:
diff --git a/tests/auto/qcombobox/tst_qcombobox.cpp b/tests/auto/qcombobox/tst_qcombobox.cpp
index 8acae7a..51a7ff8 100644
--- a/tests/auto/qcombobox/tst_qcombobox.cpp
+++ b/tests/auto/qcombobox/tst_qcombobox.cpp
@@ -153,6 +153,7 @@ private slots:
     void task260974_menuItemRectangleForComboBoxPopup();
     void removeItem();
     void resetModel();
+    void keyBoardNavigationWithMouse();
 
 protected slots:
     void onEditTextChanged( const QString &newString );
@@ -2448,6 +2449,57 @@ void tst_QComboBox::resetModel()
 
 }
 
+void tst_QComboBox::keyBoardNavigationWithMouse()
+{
+    QComboBox combo;
+    combo.setEditable(false);
+    for (int i = 0; i < 80; i++)
+        combo.addItem( QString::number(i));
+    combo.show();
+    QApplication::setActiveWindow(&combo);
+    QTest::qWaitForWindowShown(&combo);
+    QTRY_COMPARE(QApplication::activeWindow(), static_cast<QWidget *>(&combo));
+
+    QCOMPARE(combo.currentText(), QLatin1String("0"));
+
+    combo.setFocus();
+    QTRY_VERIFY(combo.hasFocus());
+
+    QTest::keyClick(testWidget->lineEdit(), Qt::Key_Space);
+    QTest::qWait(30);
+    QTRY_VERIFY(combo.view());
+    QTRY_VERIFY(combo.view()->isVisible());
+    QTest::qWait(130);
+
+    QCOMPARE(combo.currentText(), QLatin1String("0"));
+
+    QCursor::setPos(combo.view()->mapToGlobal(combo.view()->rect().center()));
+    QTest::qWait(200);
+
+#define GET_SELECTION(SEL) \
+    QCOMPARE(combo.view()->selectionModel()->selection().count(), 1); \
+    QCOMPARE(combo.view()->selectionModel()->selection().indexes().count(), 1); \
+    SEL = combo.view()->selectionModel()->selection().indexes().first().row()
+
+    int selection;
+    GET_SELECTION(selection);
+
+    //since we moved the mouse is in the middle it should even be around 5;
+    QVERIFY(selection > 3);
+
+    static const int final = 40;
+    for (int i = selection + 1;  i <= final; i++)
+    {
+        QTest::keyClick(combo.view(), Qt::Key_Down);
+        QTest::qWait(20);
+        GET_SELECTION(selection);
+        QCOMPARE(selection, i);
+    }
+
+    QTest::keyClick(combo.view(), Qt::Key_Enter);
+    QTRY_COMPARE(combo.currentText(), QString::number(final));
+}
+
 
 QTEST_MAIN(tst_QComboBox)
 #include "tst_qcombobox.moc"
-- 
cgit v0.12


From 79a7c969983eafeef67cce28724c3981cf3af1ea Mon Sep 17 00:00:00 2001
From: Olivier Goffart <ogoffart@trolltech.com>
Date: Thu, 29 Oct 2009 16:25:56 +0100
Subject: QTreeView:  fix drawing branches of model that adds or remove rows
 dynamically

The lasts commits in the treeview did put the flags weither
item has child or is the last in cache in the viewItem vector.
But the cache was not updated while the model is modified.

Reviewed-by: Thierry
---
 src/gui/itemviews/qtreeview.cpp        |  38 ++++++++++++-
 src/gui/itemviews/qtreeview_p.h        |   3 +-
 tests/auto/qtreeview/tst_qtreeview.cpp | 101 +++++++++++++++++++++++++++++++++
 3 files changed, 138 insertions(+), 4 deletions(-)

diff --git a/src/gui/itemviews/qtreeview.cpp b/src/gui/itemviews/qtreeview.cpp
index be64c46..3856293 100644
--- a/src/gui/itemviews/qtreeview.cpp
+++ b/src/gui/itemviews/qtreeview.cpp
@@ -2434,7 +2434,9 @@ void QTreeView::rowsInserted(const QModelIndex &parent, int start, int end)
         return;
     }
 
-    if (parent != d->root && !d->isIndexExpanded(parent) && d->model->rowCount(parent) > (end - start) + 1) {
+    const int parentRowCount = d->model->rowCount(parent);
+    const int delta = end - start + 1;
+    if (parent != d->root && !d->isIndexExpanded(parent) && parentRowCount > delta) {
         QAbstractItemView::rowsInserted(parent, start, end);
         return;
     }
@@ -2449,11 +2451,29 @@ void QTreeView::rowsInserted(const QModelIndex &parent, int start, int end)
                                                     ? d->viewItems.count()
                                                     : d->viewItems.at(parentItem).total) - 1;
 
-        const int delta = end - start + 1;
+        if (parentRowCount == end + 1 && start > 0) {
+            //need to Update hasMoreSiblings
+            int previousRow = start - 1;
+            QModelIndex previousSibilingModelIndex = d->model->index(previousRow, 0, parent);
+            bool isHidden = d->isRowHidden(previousSibilingModelIndex);
+            while (isHidden && previousRow > 0) {
+                previousRow--;
+                previousSibilingModelIndex = d->model->index(previousRow, 0, parent);
+                isHidden = d->isRowHidden(previousSibilingModelIndex);
+            }
+            if (!isHidden) {
+                const int previousSibilling = d->viewIndex(previousSibilingModelIndex);
+                if(previousSibilling != -1)
+                    d->viewItems[previousSibilling].hasMoreSiblings = true;
+            }
+        }
+
         QVector<QTreeViewItem> insertedItems(delta);
         for (int i = 0; i < delta; ++i) {
             insertedItems[i].index = d->model->index(i + start, 0, parent);
             insertedItems[i].level = childLevel;
+            insertedItems[i].hasChildren = d->hasVisibleChildren(insertedItems[i].index);
+            insertedItems[i].hasMoreSiblings = !((i == delta - 1) && (parentRowCount == end +1));
         }
         if (d->viewItems.isEmpty())
             d->defaultItemHeight = indexRowSizeHint(insertedItems[0].index);
@@ -2495,13 +2515,17 @@ void QTreeView::rowsInserted(const QModelIndex &parent, int start, int end)
                   d->viewItems.begin() + insertPos + 1);
         }
 
+        if (parentItem != -1)
+            d->viewItems[parentItem].hasChildren = true;
         d->updateChildCount(parentItem, delta);
+
         updateGeometries();
         viewport()->update();
     } else if ((parentItem != -1) && d->viewItems.at(parentItem).expanded) {
         d->doDelayedItemsLayout();
     } else if (parentItem != -1 && (d->model->rowCount(parent) == end - start + 1)) {
-        // the parent just went from 0 children to having some update to re-paint the decoration
+        // the parent just went from 0 children to more. update to re-paint the decoration
+        d->viewItems[parentItem].hasChildren = true;
         viewport()->update();
     }
     QAbstractItemView::rowsInserted(parent, start, end);
@@ -3706,6 +3730,7 @@ void QTreeViewPrivate::rowsRemoved(const QModelIndex &parent,
 
         const int delta = end - start + 1;
 
+        int previousSibiling = -1;
         int removedCount = 0;
         for (int item = firstChildItem; item <= lastChildItem; ) {
             Q_ASSERT(viewItems.at(item).level == childLevel);
@@ -3713,6 +3738,7 @@ void QTreeViewPrivate::rowsRemoved(const QModelIndex &parent,
             //Q_ASSERT(modelIndex.parent() == parent);
             const int count = viewItems.at(item).total + 1;
             if (modelIndex.row() < start) {
+                previousSibiling = item;
                 // not affected by the removal
                 item += count;
             } else if (modelIndex.row() <= end) {
@@ -3730,7 +3756,13 @@ void QTreeViewPrivate::rowsRemoved(const QModelIndex &parent,
             }
         }
 
+        if (previousSibiling != -1 && after && model->rowCount(parent) == start)
+            viewItems[previousSibiling].hasMoreSiblings = false;
+
+
         updateChildCount(parentItem, -removedCount);
+        if (parentItem != -1 && viewItems.at(parentItem).total == 0)
+            viewItems[parentItem].hasChildren = false; //every children have been removed;
         if (after) {
             q->updateGeometries();
             viewport->update();
diff --git a/src/gui/itemviews/qtreeview_p.h b/src/gui/itemviews/qtreeview_p.h
index 62676d8..aad5837 100644
--- a/src/gui/itemviews/qtreeview_p.h
+++ b/src/gui/itemviews/qtreeview_p.h
@@ -62,7 +62,8 @@ QT_BEGIN_NAMESPACE
 
 struct QTreeViewItem
 {
-    QTreeViewItem() : expanded(false), spanning(false), total(0), level(0), height(0) {}
+    QTreeViewItem() : expanded(false), spanning(false), hasChildren(false),
+                      hasMoreSiblings(false), total(0), level(0), height(0) {}
     QModelIndex index; // we remove items whenever the indexes are invalidated
     uint expanded : 1;
     uint spanning : 1;
diff --git a/tests/auto/qtreeview/tst_qtreeview.cpp b/tests/auto/qtreeview/tst_qtreeview.cpp
index 75c02e9..90e6c5c 100644
--- a/tests/auto/qtreeview/tst_qtreeview.cpp
+++ b/tests/auto/qtreeview/tst_qtreeview.cpp
@@ -2892,6 +2892,8 @@ void tst_QTreeView::styleOptionViewItem()
 
                 QVERIFY(!opt.text.isEmpty());
                 QCOMPARE(opt.index, index);
+                //qDebug() << index << opt.text;
+
                 if (allCollapsed)
                     QCOMPARE(!(opt.features & QStyleOptionViewItemV2::Alternate), !(index.row() % 2));
                 QCOMPARE(!(opt.features & QStyleOptionViewItemV2::HasCheckIndicator), !opt.text.contains("Checkable"));
@@ -2979,9 +2981,108 @@ void tst_QTreeView::styleOptionViewItem()
     view.expandAll();
     QApplication::processEvents();
     QTRY_VERIFY(delegate.count >= 13);
+    delegate.count = 0;
     view.collapse(par2->index());
     QApplication::processEvents();
     QTRY_VERIFY(delegate.count >= 4);
+
+
+    //test dynamic models
+    {
+        delegate.count = 0;
+        QStandardItemModel model2;
+        QStandardItem *item0 = new QStandardItem("OnlyOne Last");
+        model2.appendRow(QList<QStandardItem*>() << item0);
+        view.setModel(&model2);
+        QApplication::processEvents();
+        QTRY_VERIFY(delegate.count >= 1);
+        QApplication::processEvents();
+
+        QStandardItem *item00 = new QStandardItem("OnlyOne Last");
+        item0->appendRow(QList<QStandardItem*>() << item00);
+        item0->setText("OnlyOne Last HasChildren");
+        QApplication::processEvents();
+        delegate.count = 0;
+        view.expandAll();
+        QApplication::processEvents();
+        QTRY_VERIFY(delegate.count >= 2);
+        QApplication::processEvents();
+
+        QStandardItem *item1 = new QStandardItem("OnlyOne Last");
+        delegate.count = 0;
+        item0->setText("OnlyOne HasChildren");
+        model2.appendRow(QList<QStandardItem*>() << item1);
+        QApplication::processEvents();
+        QTRY_VERIFY(delegate.count >= 3);
+        QApplication::processEvents();
+
+        QStandardItem *item01 = new QStandardItem("OnlyOne Last");
+        delegate.count = 0;
+        item00->setText("OnlyOne");
+        item0->appendRow(QList<QStandardItem*>() << item01);
+        QApplication::processEvents();
+        QTRY_VERIFY(delegate.count >= 4);
+        QApplication::processEvents();
+
+        QStandardItem *item000 = new QStandardItem("OnlyOne Last");
+        delegate.count = 0;
+        item00->setText("OnlyOne HasChildren");
+        item00->appendRow(QList<QStandardItem*>() << item000);
+        QApplication::processEvents();
+        QTRY_VERIFY(delegate.count >= 5);
+        QApplication::processEvents();
+
+        delegate.count = 0;
+        item0->removeRow(0);
+        QApplication::processEvents();
+        QTRY_VERIFY(delegate.count >= 3);
+        QApplication::processEvents();
+
+        item00 = new QStandardItem("OnlyOne");
+        item0->insertRow(0, QList<QStandardItem*>() << item00);
+        QApplication::processEvents();
+        delegate.count = 0;
+        view.expandAll();
+        QApplication::processEvents();
+        QTRY_VERIFY(delegate.count >= 4);
+        QApplication::processEvents();
+
+        delegate.count = 0;
+        item0->removeRow(1);
+        item00->setText("OnlyOne Last");
+        QApplication::processEvents();
+        QTRY_VERIFY(delegate.count >= 3);
+        QApplication::processEvents();
+
+        delegate.count = 0;
+        item0->removeRow(0);
+        item0->setText("OnlyOne");
+        QApplication::processEvents();
+        QTRY_VERIFY(delegate.count >= 2);
+        QApplication::processEvents();
+
+        //with hidden items
+        item0->setText("OnlyOne HasChildren");
+        item00 = new QStandardItem("OnlyOne");
+        item0->appendRow(QList<QStandardItem*>() << item00);
+        item01 = new QStandardItem("Assert");
+        item0->appendRow(QList<QStandardItem*>() << item01);
+        view.setRowHidden(1, item0->index(), true);
+        view.expandAll();
+        QStandardItem *item02 = new QStandardItem("OnlyOne Last");
+        item0->appendRow(QList<QStandardItem*>() << item02);
+        delegate.count = 0;
+        QApplication::processEvents();
+        QTRY_VERIFY(delegate.count >= 4);
+        QApplication::processEvents();
+
+        item0->removeRow(2);
+        item00->setText("OnlyOne Last");
+        delegate.count = 0;
+        QApplication::processEvents();
+        QTRY_VERIFY(delegate.count >= 3);
+        QApplication::processEvents();
+    }
 }
 
 class task174627_TreeView : public QTreeView
-- 
cgit v0.12


From 96799bf4da265835b5e574593bc5106712352ffc Mon Sep 17 00:00:00 2001
From: Jarek Kobus <jkobus@trolltech.com>
Date: Fri, 30 Oct 2009 14:02:22 +0100
Subject: Update Polish translation

---
 translations/designer_pl.ts |   4 +-
 translations/linguist_pl.ts |   2 +-
 translations/qt_help_pl.ts  |  58 +++++++++++++++++--------
 translations/qt_pl.ts       | 102 ++++++++++++++++++++++++--------------------
 4 files changed, 99 insertions(+), 67 deletions(-)

diff --git a/translations/designer_pl.ts b/translations/designer_pl.ts
index 0c196d8..f9c6dd0 100644
--- a/translations/designer_pl.ts
+++ b/translations/designer_pl.ts
@@ -6103,7 +6103,7 @@ Klasa: %2</translation>
     <message>
         <location line="+1"/>
         <source>Change toolTip...</source>
-        <translation>Zmień tekst chmurki...</translation>
+        <translation>Zmień podpowiedź...</translation>
     </message>
     <message>
         <location line="+1"/>
@@ -6909,7 +6909,7 @@ Klasa: %2</translation>
     <message>
         <location line="+263"/>
         <source>Expand all</source>
-        <translation>Rozszerz wszystkie</translation>
+        <translation>Rozwiń wszystkie</translation>
     </message>
     <message>
         <location line="+1"/>
diff --git a/translations/linguist_pl.ts b/translations/linguist_pl.ts
index b59ebc3..cdff54b 100644
--- a/translations/linguist_pl.ts
+++ b/translations/linguist_pl.ts
@@ -312,7 +312,7 @@ Przyjmie on uniwersalną formę liczby pojedynczej.</translation>
 <context>
     <name>LRelease</name>
     <message numerus="yes">
-        <location filename="../tools/linguist/shared/qm.cpp" line="+747"/>
+        <location filename="../tools/linguist/shared/qm.cpp" line="+748"/>
         <source>Dropped %n message(s) which had no ID.</source>
         <translation>
             <numerusform>Opuszczono %n wyrażenie które nie miało identyfikatora.</numerusform>
diff --git a/translations/qt_help_pl.ts b/translations/qt_help_pl.ts
index 0e6bbbf..220f70c 100644
--- a/translations/qt_help_pl.ts
+++ b/translations/qt_help_pl.ts
@@ -32,33 +32,61 @@
 <context>
     <name>QHelpCollectionHandler</name>
     <message>
-        <location filename="../tools/assistant/lib/qhelpcollectionhandler.cpp" line="+79"/>
         <source>The collection file is not set up yet!</source>
-        <translation>Plik z kolekcją nie jest jeszcze ustawiony!</translation>
+        <translation type="obsolete">Plik z kolekcją nie jest jeszcze ustawiony!</translation>
     </message>
     <message>
-        <location line="+22"/>
+        <location filename="../tools/assistant/lib/qhelpcollectionhandler.cpp" line="+79"/>
+        <source>The collection file &apos;%1&apos; is not set up yet!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+23"/>
         <source>Cannot load sqlite database driver!</source>
         <translation>Nie można załadować sterownika bazy danych sqlite!</translation>
     </message>
     <message>
         <location line="+11"/>
-        <location line="+48"/>
+        <location line="+49"/>
         <source>Cannot open collection file: %1</source>
         <translation>Nie można otworzyć pliku z kolekcją: %1</translation>
     </message>
     <message>
-        <location line="-39"/>
+        <location line="-40"/>
         <source>Cannot create tables in file %1!</source>
         <translation>Nie można utworzyć tabel w pliku %1!</translation>
     </message>
     <message>
         <location line="+16"/>
+        <source>The collection file &apos;%1&apos; already exists!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+148"/>
+        <source>Unknown filter &apos;%1&apos;!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+105"/>
+        <source>Invalid documentation file &apos;%1&apos;!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+167"/>
+        <source>Cannot register namespace &apos;%1&apos;!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+24"/>
+        <source>Cannot open database &apos;%1&apos; to optimize!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <source>The specified collection file already exists!</source>
-        <translation>Podany plik z kolekcją już istnieje!</translation>
+        <translation type="obsolete">Podany plik z kolekcją już istnieje!</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="-438"/>
         <source>Cannot create directory: %1</source>
         <translation>Nie można utworzyć katalogu: %1</translation>
     </message>
@@ -68,12 +96,11 @@
         <translation>Nie można skopiować pliku z kolekcją: %1</translation>
     </message>
     <message>
-        <location line="+119"/>
         <source>Unknown filter!</source>
-        <translation>Nieznany filtr!</translation>
+        <translation type="obsolete">Nieznany filtr!</translation>
     </message>
     <message>
-        <location line="+55"/>
+        <location line="+174"/>
         <source>Cannot register filter %1!</source>
         <translation>Nie można zarejestrować pliku %1!</translation>
     </message>
@@ -83,12 +110,11 @@
         <translation>Nie można otworzyć pliku z dokumentacją %1!</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Invalid documentation file!</source>
-        <translation>Niepoprawny plik z dokumentacją!</translation>
+        <translation type="obsolete">Niepoprawny plik z dokumentacją!</translation>
     </message>
     <message>
-        <location line="+34"/>
+        <location line="+40"/>
         <source>The namespace %1 was not registered!</source>
         <translation>Przestrzeń nazw %1 nie została zarejestrowana!</translation>
     </message>
@@ -98,14 +124,12 @@
         <translation>Przestrzeń nazw %1 już istnieje!</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Cannot register namespace!</source>
-        <translation>Nie można zarejestrować przestrzeni nazw!</translation>
+        <translation type="obsolete">Nie można zarejestrować przestrzeni nazw!</translation>
     </message>
     <message>
-        <location line="+24"/>
         <source>Cannot open database to optimize!</source>
-        <translation>Nie można otworzyć bazy danych do zoptymalizowania!</translation>
+        <translation type="obsolete">Nie można otworzyć bazy danych do zoptymalizowania!</translation>
     </message>
 </context>
 <context>
diff --git a/translations/qt_pl.ts b/translations/qt_pl.ts
index 424fd31..f79ecb0 100644
--- a/translations/qt_pl.ts
+++ b/translations/qt_pl.ts
@@ -12,7 +12,7 @@
 <context>
     <name>FakeReply</name>
     <message>
-        <location filename="../src/3rdparty/webkit/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp" line="+2191"/>
+        <location filename="../src/3rdparty/webkit/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp" line="+2193"/>
         <source>Fake error !</source>
         <translation type="unfinished"></translation>
     </message>
@@ -932,7 +932,7 @@ na
         <translation>Operacja na gnieździe nieobsługiwana</translation>
     </message>
     <message>
-        <location line="+567"/>
+        <location line="+580"/>
         <source>Socket is not connected</source>
         <translation>Gniazdo nie jest podłączone</translation>
     </message>
@@ -966,6 +966,14 @@ na
     </message>
 </context>
 <context>
+    <name>QAccessibleButton</name>
+    <message>
+        <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="+250"/>
+        <source>Press</source>
+        <translation type="unfinished">Wciśnij</translation>
+    </message>
+</context>
+<context>
     <name>QApplication</name>
     <message>
         <location filename="../src/gui/accessible/qaccessibleobject.cpp" line="+376"/>
@@ -988,7 +996,7 @@ na
         <translation>Niekompatybilność biblioteki Qt</translation>
     </message>
     <message>
-        <location filename="../src/gui/kernel/qapplication.cpp" line="+2293"/>
+        <location filename="../src/gui/kernel/qapplication.cpp" line="+2290"/>
         <source>QT_LAYOUT_DIRECTION</source>
         <comment>Translate this string to the string &apos;LTR&apos; in left-to-right languages or to &apos;RTL&apos; in right-to-left languages (such as Hebrew and Arabic) to get proper widget layout.</comment>
         <translation>LTR</translation>
@@ -1020,7 +1028,7 @@ na
 <context>
     <name>QCheckBox</name>
     <message>
-        <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="+117"/>
+        <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="-133"/>
         <source>Check</source>
         <translation>Zaznacz</translation>
     </message>
@@ -1276,7 +1284,7 @@ na
 <context>
     <name>QDialogButtonBox</name>
     <message>
-        <location filename="../src/gui/widgets/qdialogbuttonbox.cpp" line="+654"/>
+        <location filename="../src/gui/widgets/qdialogbuttonbox.cpp" line="+653"/>
         <source>Abort</source>
         <translation>Przerwij</translation>
     </message>
@@ -1472,7 +1480,7 @@ na
         <translation>Błąd krytyczny:</translation>
     </message>
     <message>
-        <location line="+200"/>
+        <location line="+201"/>
         <source>&amp;OK</source>
         <translation>&amp;OK</translation>
     </message>
@@ -1482,7 +1490,7 @@ na
         <translation>&amp;Pokaż ten komunikat ponownie</translation>
     </message>
     <message>
-        <location line="-202"/>
+        <location line="-203"/>
         <source>Warning:</source>
         <translation>Ostrzeżenie:</translation>
     </message>
@@ -1851,52 +1859,52 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
     <name>QFontDatabase</name>
     <message>
         <location filename="../src/gui/text/qfontdatabase.cpp" line="+102"/>
-        <location line="+1334"/>
+        <location line="+1335"/>
         <source>Normal</source>
         <translation>Normalny</translation>
     </message>
     <message>
-        <location line="-1331"/>
+        <location line="-1332"/>
         <location line="+12"/>
-        <location line="+1307"/>
+        <location line="+1308"/>
         <source>Bold</source>
         <translation>Pogrubiony</translation>
     </message>
     <message>
-        <location line="-1316"/>
-        <location line="+1318"/>
+        <location line="-1317"/>
+        <location line="+1319"/>
         <source>Demi Bold</source>
         <translation>Na wpół pogrubiony</translation>
     </message>
     <message>
-        <location line="-1315"/>
+        <location line="-1316"/>
         <location line="+18"/>
-        <location line="+1293"/>
+        <location line="+1294"/>
         <source>Black</source>
         <translatorcomment>it&apos;s about font weight</translatorcomment>
         <translation>Bardzo gruby</translation>
     </message>
     <message>
-        <location line="-1303"/>
+        <location line="-1304"/>
         <source>Demi</source>
         <translation>Na wpół</translation>
     </message>
     <message>
         <location line="+6"/>
-        <location line="+1303"/>
+        <location line="+1304"/>
         <source>Light</source>
         <translatorcomment>it&apos;s about font weight</translatorcomment>
         <translation>Cienki</translation>
     </message>
     <message>
-        <location line="-1157"/>
-        <location line="+1160"/>
+        <location line="-1158"/>
+        <location line="+1161"/>
         <source>Italic</source>
         <translation>Kursywa</translation>
     </message>
     <message>
-        <location line="-1157"/>
-        <location line="+1159"/>
+        <location line="-1158"/>
+        <location line="+1160"/>
         <source>Oblique</source>
         <translation>Pochyły</translation>
     </message>
@@ -2340,7 +2348,7 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
         <translation>Host %1 znaleziony</translation>
     </message>
     <message>
-        <location filename="../src/network/access/qhttp.cpp" line="+2634"/>
+        <location filename="../src/network/access/qhttp.cpp" line="+2639"/>
         <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="-4"/>
         <location filename="../src/qt3support/network/q3http.cpp" line="-453"/>
         <source>Host %1 not found</source>
@@ -2360,7 +2368,7 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
         <translation>Komenda HTTP zakończona błędem</translation>
     </message>
     <message>
-        <location line="+198"/>
+        <location line="+219"/>
         <location line="+48"/>
         <location filename="../src/qt3support/network/q3http.cpp" line="+109"/>
         <location line="+47"/>
@@ -2374,7 +2382,7 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
         <translation>Niepoprawny nagłówek odpowiedzi HTTP</translation>
     </message>
     <message>
-        <location line="-319"/>
+        <location line="-340"/>
         <location filename="../src/qt3support/network/q3http.cpp" line="-173"/>
         <source>No server set to connect to</source>
         <translation>Brak serwera do podłączenia</translation>
@@ -2411,7 +2419,7 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
         <translation>Błędna długość zawartości</translation>
     </message>
     <message>
-        <location line="+183"/>
+        <location line="+204"/>
         <source>Unknown authentication method</source>
         <translation>Nieznana metoda autoryzacji</translation>
     </message>
@@ -2456,7 +2464,7 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
         <translation>Nawiązanie sesji SSL nie powiodło się</translation>
     </message>
     <message>
-        <location filename="../src/network/access/qhttp.cpp" line="-307"/>
+        <location filename="../src/network/access/qhttp.cpp" line="-328"/>
         <source>Connection refused (or timed out)</source>
         <translation>Połączenie odrzucone (przekroczony czas połączenia)</translation>
     </message>
@@ -3105,7 +3113,7 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation>
 <context>
     <name>QMenuBar</name>
     <message>
-        <location filename="../src/gui/widgets/qmenu_symbian.cpp" line="+404"/>
+        <location filename="../src/gui/widgets/qmenu_symbian.cpp" line="+410"/>
         <source>Actions</source>
         <translation>Akcje</translation>
     </message>
@@ -4361,7 +4369,7 @@ Proszę wybrać inną nazwę pliku.</translation>
     <message>
         <location/>
         <source>Selection</source>
-        <translation>Wybór</translation>
+        <translation>Wybrane strony</translation>
     </message>
     <message>
         <location/>
@@ -4449,7 +4457,7 @@ Proszę wybrać inną nazwę pliku.</translation>
     <message>
         <location/>
         <source>Location:</source>
-        <translation>Lokalizacja:</translation>
+        <translation>Położenie:</translation>
     </message>
     <message>
         <location/>
@@ -4505,7 +4513,7 @@ Proszę wybrać inną nazwę pliku.</translation>
         <translation>Przekroczony czas operacji procesu</translation>
     </message>
     <message>
-        <location filename="../src/corelib/io/qprocess.cpp" line="+851"/>
+        <location filename="../src/corelib/io/qprocess.cpp" line="+855"/>
         <location line="+52"/>
         <location filename="../src/corelib/io/qprocess_win.cpp" line="-211"/>
         <location line="+50"/>
@@ -4726,7 +4734,7 @@ Proszę wybrać inną nazwę pliku.</translation>
     <message>
         <location line="+2"/>
         <source>Location</source>
-        <translation>Miejsce</translation>
+        <translation>Położenie</translation>
     </message>
     <message>
         <location line="+2"/>
@@ -4967,7 +4975,7 @@ Proszę wybrać inną nazwę pliku.</translation>
     <message>
         <location line="+2"/>
         <source>Location</source>
-        <translation>Miejsce</translation>
+        <translation>Położenie</translation>
     </message>
 </context>
 <context>
@@ -5847,7 +5855,7 @@ Proszę wybrać inną nazwę pliku.</translation>
         <translation>Anuluj</translation>
     </message>
     <message>
-        <location line="+152"/>
+        <location line="+151"/>
         <source>Exit</source>
         <translation>Wyjście</translation>
     </message>
@@ -6071,7 +6079,7 @@ Proszę wybrać inną nazwę pliku.</translation>
 <context>
     <name>QTextControl</name>
     <message>
-        <location filename="../src/gui/text/qtextcontrol.cpp" line="+2014"/>
+        <location filename="../src/gui/text/qtextcontrol.cpp" line="+2018"/>
         <source>&amp;Copy</source>
         <translation>S&amp;kopiuj</translation>
     </message>
@@ -6114,7 +6122,7 @@ Proszę wybrać inną nazwę pliku.</translation>
 <context>
     <name>QToolButton</name>
     <message>
-        <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="+256"/>
+        <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="+312"/>
         <location line="+8"/>
         <source>Open</source>
         <translation>Otwórz</translation>
@@ -6229,7 +6237,7 @@ Proszę wybrać inną nazwę pliku.</translation>
 <context>
     <name>QWebFrame</name>
     <message>
-        <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp" line="+704"/>
+        <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp" line="+711"/>
         <source>Request cancelled</source>
         <translation>Prośba anulowana</translation>
     </message>
@@ -6262,7 +6270,7 @@ Proszę wybrać inną nazwę pliku.</translation>
 <context>
     <name>QWebPage</name>
     <message>
-        <location filename="../src/3rdparty/webkit/WebCore/platform/qt/Localizations.cpp" line="+41"/>
+        <location filename="../src/3rdparty/webkit/WebCore/platform/qt/Localizations.cpp" line="+42"/>
         <source>Submit</source>
         <comment>default label for Submit buttons in forms on web pages</comment>
         <translation>Wyślij</translation>
@@ -6280,7 +6288,7 @@ Proszę wybrać inną nazwę pliku.</translation>
         <translation>Wyczyść</translation>
     </message>
     <message>
-        <location line="+15"/>
+        <location line="+16"/>
         <source>Choose File</source>
         <comment>title for file button used in HTML forms</comment>
         <translation>Wybierz plik</translation>
@@ -6766,12 +6774,12 @@ Proszę wybrać inną nazwę pliku.</translation>
         <translation>Nieznany</translation>
     </message>
     <message>
-        <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp" line="+170"/>
+        <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp" line="+167"/>
         <source>Web Inspector - %2</source>
         <translation>Wizytator sieciowy - %2</translation>
     </message>
     <message>
-        <location filename="../src/3rdparty/webkit/WebCore/platform/network/qt/QNetworkReplyHandler.cpp" line="+416"/>
+        <location filename="../src/3rdparty/webkit/WebCore/platform/network/qt/QNetworkReplyHandler.cpp" line="+406"/>
         <source>Bad HTTP request</source>
         <translation>Niepoprawna komenda HTTP</translation>
     </message>
@@ -6875,7 +6883,7 @@ Proszę wybrać inną nazwę pliku.</translation>
         </translation>
     </message>
     <message>
-        <location filename="../src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp" line="+1727"/>
+        <location filename="../src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp" line="+1708"/>
         <source>JavaScript Alert - %1</source>
         <translation>Ostrzeżenie JavaScript - %1</translation>
     </message>
@@ -7121,7 +7129,7 @@ Proszę wybrać inną nazwę pliku.</translation>
 <context>
     <name>QWidget</name>
     <message>
-        <location filename="../src/gui/kernel/qwidget.cpp" line="+5652"/>
+        <location filename="../src/gui/kernel/qwidget.cpp" line="+5672"/>
         <source>*</source>
         <translation>*</translation>
     </message>
@@ -9596,32 +9604,32 @@ Proszę wybrać inną nazwę pliku.</translation>
     <message>
         <location line="+15"/>
         <source>Duration content does not match the maxInclusive facet.</source>
-        <translation>Wartość czasu trwania koliduje z aspektem &quot;maxInclusive&quot;.</translation>
+        <translation>Wartość długości okresu czasu koliduje z aspektem &quot;maxInclusive&quot;.</translation>
     </message>
     <message>
         <location line="+9"/>
         <source>Duration content does not match the maxExclusive facet.</source>
-        <translation>Wartość czasu trwania koliduje z aspektem &quot;maxExclusive&quot;.</translation>
+        <translation>Wartość długości okresu czasu koliduje z aspektem &quot;maxExclusive&quot;.</translation>
     </message>
     <message>
         <location line="+9"/>
         <source>Duration content does not match the minInclusive facet.</source>
-        <translation>Wartość czasu trwania koliduje z aspektem &quot;minInclusive&quot;.</translation>
+        <translation>Wartość długości okresu czasu koliduje z aspektem &quot;minInclusive&quot;.</translation>
     </message>
     <message>
         <location line="+9"/>
         <source>Duration content does not match the minExclusive facet.</source>
-        <translation>Wartość czasu trwania koliduje z aspektem &quot;minExclusive&quot;.</translation>
+        <translation>Wartość długości okresu czasu koliduje z aspektem &quot;minExclusive&quot;.</translation>
     </message>
     <message>
         <location line="+18"/>
         <source>Duration content is not listed in the enumeration facet.</source>
-        <translation>Wartość czasu trwania nie widnieje na liście aspektu &quot;enumeration&quot;.</translation>
+        <translation>Wartość długości okresu czasu nie widnieje na liście aspektu &quot;enumeration&quot;.</translation>
     </message>
     <message>
         <location line="+18"/>
         <source>Duration content does not match pattern facet.</source>
-        <translation>Wartość czasu trwania koliduje z aspektem &quot;pattern&quot;.</translation>
+        <translation>Wartość długości okresu czasu koliduje z aspektem &quot;pattern&quot;.</translation>
     </message>
     <message>
         <location line="+27"/>
-- 
cgit v0.12


From 8097fa53b5e0e6228bd5737de6de8cd77c04dddf Mon Sep 17 00:00:00 2001
From: Kent Hansen <khansen@trolltech.com>
Date: Fri, 30 Oct 2009 13:23:28 +0100
Subject: Add QScriptString::toArrayIndex() function

Avoid hacking a custom toArrayIndex() in the example; instead provide
an ECMA-compliant conversion that's as fast as possible (having to
convert the QScriptString to a QString and then convert the result to
a number is considerably slower than calling JSC's
Identifier::toArrayIndex() function directly).

Reviewed-by: Olivier Goffart
---
 examples/script/customclass/bytearrayclass.cpp | 17 +++---------
 src/script/api/qscriptstring.cpp               | 29 ++++++++++++++++++++
 src/script/api/qscriptstring.h                 |  2 ++
 tests/auto/qscriptstring/tst_qscriptstring.cpp | 37 ++++++++++++++++++++++++++
 4 files changed, 71 insertions(+), 14 deletions(-)

diff --git a/examples/script/customclass/bytearrayclass.cpp b/examples/script/customclass/bytearrayclass.cpp
index 7291b97..bce69e4 100644
--- a/examples/script/customclass/bytearrayclass.cpp
+++ b/examples/script/customclass/bytearrayclass.cpp
@@ -72,18 +72,6 @@ private:
     int m_last;
 };
 
-static qint32 toArrayIndex(const QString &str)
-{
-    QByteArray bytes = str.toUtf8();
-    char *eptr;
-    quint32 pos = strtoul(bytes.constData(), &eptr, 10);
-    if ((eptr == bytes.constData() + bytes.size())
-        && (QByteArray::number(pos) == bytes)) {
-        return pos;
-    }
-    return -1;
-}
-
 //! [0]
 ByteArrayClass::ByteArrayClass(QScriptEngine *engine)
     : QObject(engine), QScriptClass(engine)
@@ -120,8 +108,9 @@ QScriptClass::QueryFlags ByteArrayClass::queryProperty(const QScriptValue &objec
     if (name == length) {
         return flags;
     } else {
-        qint32 pos = toArrayIndex(name);
-        if (pos == -1)
+        bool isArrayIndex;
+        qint32 pos = name.toArrayIndex(&isArrayIndex);
+        if (!isArrayIndex)
             return 0;
         *id = pos;
         if ((flags & HandlesReadAccess) && (pos >= ba->size()))
diff --git a/src/script/api/qscriptstring.cpp b/src/script/api/qscriptstring.cpp
index 1ede51c..10fccd0 100644
--- a/src/script/api/qscriptstring.cpp
+++ b/src/script/api/qscriptstring.cpp
@@ -68,6 +68,10 @@ QT_BEGIN_NAMESPACE
 
   Call the toString() function to obtain the string that a
   QScriptString represents.
+
+  Call the toArrayIndex() function to convert a QScriptString to an
+  array index. This is useful when using QScriptClass to implement
+  array-like objects.
 */
 
 /*!
@@ -164,6 +168,31 @@ bool QScriptString::operator!=(const QScriptString &other) const
 }
 
 /*!
+  \since 4.6
+
+  Attempts to convert this QScriptString to a QtScript array index,
+  and returns the result.
+
+  If a conversion error occurs, *\a{ok} is set to false; otherwise
+  *\a{ok} is set to true.
+*/
+quint32 QScriptString::toArrayIndex(bool *ok) const
+{
+    Q_D(const QScriptString);
+    if (!d) {
+        if (ok)
+            *ok = false;
+        return -1;
+    }
+    bool tmp;
+    bool *okok = ok ? ok : &tmp;
+    quint32 result = d->identifier.toArrayIndex(okok);
+    if (!*okok)
+        result = -1;
+    return result;
+}
+
+/*!
   Returns the string that this QScriptString represents, or a
   null string if this QScriptString is not valid.
 
diff --git a/src/script/api/qscriptstring.h b/src/script/api/qscriptstring.h
index 40d156c..bf5d1d5 100644
--- a/src/script/api/qscriptstring.h
+++ b/src/script/api/qscriptstring.h
@@ -67,6 +67,8 @@ public:
     bool operator==(const QScriptString &other) const;
     bool operator!=(const QScriptString &other) const;
 
+    quint32 toArrayIndex(bool *ok = 0) const;
+
     QString toString() const;
     operator QString() const;
 
diff --git a/tests/auto/qscriptstring/tst_qscriptstring.cpp b/tests/auto/qscriptstring/tst_qscriptstring.cpp
index e1a4bc1..1229f4a 100644
--- a/tests/auto/qscriptstring/tst_qscriptstring.cpp
+++ b/tests/auto/qscriptstring/tst_qscriptstring.cpp
@@ -59,6 +59,8 @@ public:
 private slots:
     void test();
     void hash();
+    void toArrayIndex_data();
+    void toArrayIndex();
 };
 
 tst_QScriptString::tst_QScriptString()
@@ -155,5 +157,40 @@ void tst_QScriptString::hash()
     QCOMPARE(stringToInt.value(foo), 123);
 }
 
+void tst_QScriptString::toArrayIndex_data()
+{
+    QTest::addColumn<QString>("input");
+    QTest::addColumn<bool>("expectSuccess");
+    QTest::addColumn<quint32>("expectedIndex");
+    QTest::newRow("foo") << QString::fromLatin1("foo") << false << quint32(0xffffffff);
+    QTest::newRow("empty") << QString::fromLatin1("") << false << quint32(0xffffffff);
+    QTest::newRow("0") << QString::fromLatin1("0") << true << quint32(0);
+    QTest::newRow("00") << QString::fromLatin1("00") << false << quint32(0xffffffff);
+    QTest::newRow("1") << QString::fromLatin1("1") << true << quint32(1);
+    QTest::newRow("123") << QString::fromLatin1("123") << true << quint32(123);
+    QTest::newRow("-1") << QString::fromLatin1("-1") << false << quint32(0xffffffff);
+    QTest::newRow("0a") << QString::fromLatin1("0a") << false << quint32(0xffffffff);
+    QTest::newRow("0x1") << QString::fromLatin1("0x1") << false << quint32(0xffffffff);
+    QTest::newRow("01") << QString::fromLatin1("01") << false << quint32(0xffffffff);
+    QTest::newRow("4294967294") << QString::fromLatin1("4294967294") << true << quint32(0xfffffffe);
+    QTest::newRow("4294967295") << QString::fromLatin1("4294967295") << false << quint32(0xffffffff);
+}
+
+void tst_QScriptString::toArrayIndex()
+{
+    QFETCH(QString, input);
+    QFETCH(bool, expectSuccess);
+    QFETCH(quint32, expectedIndex);
+    QScriptEngine engine;
+    for (int x = 0; x < 2; ++x) {
+        bool isArrayIndex;
+        bool *ptr = (x == 0) ? &isArrayIndex : (bool*)0;
+        quint32 result = engine.toStringHandle(input).toArrayIndex(ptr);
+        if (x == 0)
+            QCOMPARE(isArrayIndex, expectSuccess);
+        QCOMPARE(result, expectedIndex);
+    }
+}
+
 QTEST_MAIN(tst_QScriptString)
 #include "tst_qscriptstring.moc"
-- 
cgit v0.12


From e2b6e32fe128f094a47dad2be6b2ee797bfe3ff4 Mon Sep 17 00:00:00 2001
From: Alessandro Portale <alessandro.portale@nokia.com>
Date: Fri, 30 Oct 2009 17:16:49 +0100
Subject: Reduced file sizes.

SVG graphics may contain much unneeded stuff. I used Inkscape's
vacuum function and Ariya's svgmin. Much better now.

Reviewed-By: trustme
---
 .../weatherinfo/icons/weather-few-clouds.svg       |  791 +--
 demos/embedded/weatherinfo/icons/weather-fog.svg   | 1643 +-----
 demos/embedded/weatherinfo/icons/weather-haze.svg  | 1231 +----
 demos/embedded/weatherinfo/icons/weather-icy.svg   |  278 +-
 .../weatherinfo/icons/weather-overcast.svg         | 3131 +-----------
 .../embedded/weatherinfo/icons/weather-showers.svg | 4850 +-----------------
 demos/embedded/weatherinfo/icons/weather-sleet.svg | 5332 +-------------------
 demos/embedded/weatherinfo/icons/weather-snow.svg  | 2076 +-------
 demos/embedded/weatherinfo/icons/weather-storm.svg | 4420 +---------------
 .../icons/weather-sunny-very-few-clouds.svg        |  626 +--
 demos/embedded/weatherinfo/icons/weather-sunny.svg | 1328 +----
 .../weatherinfo/icons/weather-thundershower.svg    | 4725 +----------------
 12 files changed, 1446 insertions(+), 28985 deletions(-)

diff --git a/demos/embedded/weatherinfo/icons/weather-few-clouds.svg b/demos/embedded/weatherinfo/icons/weather-few-clouds.svg
index 57d45e9..a53e3d6 100644
--- a/demos/embedded/weatherinfo/icons/weather-few-clouds.svg
+++ b/demos/embedded/weatherinfo/icons/weather-few-clouds.svg
@@ -1,337 +1,70 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="48px"
-   height="48px"
-   id="svg1306"
-   sodipodi:version="0.32"
-   inkscape:version="0.46"
-   sodipodi:docbase="/home/garrett/Source/tango-icon-theme/scalable/status"
-   sodipodi:docname="weather-few-clouds.svg"
-   inkscape:output_extension="org.inkscape.output.svg.inkscape">
-  <defs
-     id="defs1308">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 24 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="48 : 24 : 1"
-       inkscape:persp3d-origin="24 : 16 : 1"
-       id="perspective108" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6538"
-       id="linearGradient6724"
-       gradientUnits="userSpaceOnUse"
-       x1="284.80219"
-       y1="-441.23294"
-       x2="288.89954"
-       y2="-436.83109" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6549"
-       id="linearGradient6722"
-       gradientUnits="userSpaceOnUse"
-       x1="286.66589"
-       y1="-439.48358"
-       x2="289.76562"
-       y2="-436.70703" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6527"
-       id="linearGradient6720"
-       gradientUnits="userSpaceOnUse"
-       x1="275.94193"
-       y1="-437.10501"
-       x2="279.97546"
-       y2="-431.91833" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6538"
-       id="linearGradient6718"
-       gradientUnits="userSpaceOnUse"
-       x1="285.94086"
-       y1="-439.93900"
-       x2="289.39124"
-       y2="-436.44290" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6513"
-       id="linearGradient6716"
-       gradientUnits="userSpaceOnUse"
-       x1="286.51172"
-       y1="-441.29074"
-       x2="289.85379"
-       y2="-436.14453" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6497"
-       id="linearGradient6714"
-       gradientUnits="userSpaceOnUse"
-       x1="287.51730"
-       y1="-439.75281"
-       x2="289.67633"
-       y2="-436.32199" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6470"
-       id="linearGradient6712"
-       gradientUnits="userSpaceOnUse"
-       x1="271.02170"
-       y1="-441.05182"
-       x2="285.02859"
-       y2="-431.96991" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6538"
-       id="linearGradient6839"
-       gradientUnits="userSpaceOnUse"
-       x1="284.80219"
-       y1="-441.23294"
-       x2="288.89954"
-       y2="-436.83109" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient6549">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop6551" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop6553" />
+<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="48px" height="48px" id="svg1306">
+  <defs id="defs1308">
+    <linearGradient xlink:href="#linearGradient6538" id="linearGradient6724" gradientUnits="userSpaceOnUse" x1="284.80219" y1="-441.23294" x2="288.89954" y2="-436.83109"/>
+    <linearGradient xlink:href="#linearGradient6549" id="linearGradient6722" gradientUnits="userSpaceOnUse" x1="286.66589" y1="-439.48358" x2="289.76562" y2="-436.70703"/>
+    <linearGradient xlink:href="#linearGradient6527" id="linearGradient6720" gradientUnits="userSpaceOnUse" x1="275.94193" y1="-437.10501" x2="279.97546" y2="-431.91833"/>
+    <linearGradient xlink:href="#linearGradient6538" id="linearGradient6718" gradientUnits="userSpaceOnUse" x1="285.94086" y1="-439.93900" x2="289.39124" y2="-436.44290"/>
+    <linearGradient xlink:href="#linearGradient6513" id="linearGradient6716" gradientUnits="userSpaceOnUse" x1="286.51172" y1="-441.29074" x2="289.85379" y2="-436.14453"/>
+    <linearGradient xlink:href="#linearGradient6497" id="linearGradient6714" gradientUnits="userSpaceOnUse" x1="287.51730" y1="-439.75281" x2="289.67633" y2="-436.32199"/>
+    <linearGradient xlink:href="#linearGradient6470" id="linearGradient6712" gradientUnits="userSpaceOnUse" x1="271.02170" y1="-441.05182" x2="285.02859" y2="-431.96991"/>
+    <linearGradient xlink:href="#linearGradient6538" id="linearGradient6839" gradientUnits="userSpaceOnUse" x1="284.80219" y1="-441.23294" x2="288.89954" y2="-436.83109"/>
+    <linearGradient id="linearGradient6549">
+      <stop offset="0" id="stop6551" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop6553" stop-color="#ffffff" stop-opacity="0"/>
     </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6549"
-       id="linearGradient6837"
-       gradientUnits="userSpaceOnUse"
-       x1="286.66589"
-       y1="-439.48358"
-       x2="289.76562"
-       y2="-436.70703" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient6527">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop6530" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop6532" />
+    <linearGradient xlink:href="#linearGradient6549" id="linearGradient6837" gradientUnits="userSpaceOnUse" x1="286.66589" y1="-439.48358" x2="289.76562" y2="-436.70703"/>
+    <linearGradient id="linearGradient6527">
+      <stop offset="0" id="stop6530" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop6532" stop-color="#ffffff" stop-opacity="0"/>
     </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6527"
-       id="linearGradient6835"
-       gradientUnits="userSpaceOnUse"
-       x1="275.94193"
-       y1="-437.10501"
-       x2="279.97546"
-       y2="-431.91833" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient6538">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop6540" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop6542" />
+    <linearGradient xlink:href="#linearGradient6527" id="linearGradient6835" gradientUnits="userSpaceOnUse" x1="275.94193" y1="-437.10501" x2="279.97546" y2="-431.91833"/>
+    <linearGradient id="linearGradient6538">
+      <stop offset="0" id="stop6540" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop6542" stop-color="#ffffff" stop-opacity="0"/>
     </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6538"
-       id="linearGradient6833"
-       gradientUnits="userSpaceOnUse"
-       x1="285.94086"
-       y1="-439.93900"
-       x2="289.39124"
-       y2="-436.44290" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient6513">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop6515" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop6517" />
+    <linearGradient xlink:href="#linearGradient6538" id="linearGradient6833" gradientUnits="userSpaceOnUse" x1="285.94086" y1="-439.93900" x2="289.39124" y2="-436.44290"/>
+    <linearGradient id="linearGradient6513">
+      <stop offset="0" id="stop6515" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop6517" stop-color="#ffffff" stop-opacity="0"/>
     </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6513"
-       id="linearGradient6831"
-       gradientUnits="userSpaceOnUse"
-       x1="286.51172"
-       y1="-441.29074"
-       x2="289.85379"
-       y2="-436.14453" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient6497">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop6499" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop6501" />
+    <linearGradient xlink:href="#linearGradient6513" id="linearGradient6831" gradientUnits="userSpaceOnUse" x1="286.51172" y1="-441.29074" x2="289.85379" y2="-436.14453"/>
+    <linearGradient id="linearGradient6497">
+      <stop offset="0" id="stop6499" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop6501" stop-color="#ffffff" stop-opacity="0"/>
     </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6497"
-       id="linearGradient6829"
-       gradientUnits="userSpaceOnUse"
-       x1="287.51730"
-       y1="-439.75281"
-       x2="289.67633"
-       y2="-436.32199" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient6470">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop6472" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop6474" />
+    <linearGradient xlink:href="#linearGradient6497" id="linearGradient6829" gradientUnits="userSpaceOnUse" x1="287.51730" y1="-439.75281" x2="289.67633" y2="-436.32199"/>
+    <linearGradient id="linearGradient6470">
+      <stop offset="0" id="stop6472" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop6474" stop-color="#ffffff" stop-opacity="0"/>
     </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6470"
-       id="linearGradient6827"
-       gradientUnits="userSpaceOnUse"
-       x1="271.02170"
-       y1="-441.05182"
-       x2="285.02859"
-       y2="-431.96991" />
-    <linearGradient
-       id="linearGradient4083">
-      <stop
-         id="stop4085"
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:0;" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="0.75"
-         id="stop4089" />
-      <stop
-         id="stop4087"
-         offset="1"
-         style="stop-color:#ffffff;stop-opacity:1;" />
+    <linearGradient xlink:href="#linearGradient6470" id="linearGradient6827" gradientUnits="userSpaceOnUse" x1="271.02170" y1="-441.05182" x2="285.02859" y2="-431.96991"/>
+    <linearGradient id="linearGradient4083">
+      <stop id="stop4085" offset="0" stop-color="#ffffff" stop-opacity="0"/>
+      <stop offset="0.75" id="stop4089" stop-color="#ffffff" stop-opacity="0"/>
+      <stop id="stop4087" offset="1" stop-color="#ffffff" stop-opacity="1"/>
     </linearGradient>
-    <linearGradient
-       id="linearGradient4032">
-      <stop
-         id="stop4034"
-         offset="0"
-         style="stop-color:#fff7c2;stop-opacity:0.63829786" />
-      <stop
-         style="stop-color:#fcaf3e;stop-opacity:0.18348624;"
-         offset="0.59394139"
-         id="stop4036" />
-      <stop
-         id="stop4038"
-         offset="0.83850551"
-         style="stop-color:#fcaf3e;stop-opacity:0.50458717;" />
-      <stop
-         id="stop4040"
-         offset="1"
-         style="stop-color:#fcaf3e;stop-opacity:1;" />
+    <linearGradient id="linearGradient4032">
+      <stop id="stop4034" offset="0" stop-color="#fff7c2" stop-opacity="0.63829786"/>
+      <stop offset="0.59394139" id="stop4036" stop-color="#fcaf3e" stop-opacity="0.18348624"/>
+      <stop id="stop4038" offset="0.83850551" stop-color="#fcaf3e" stop-opacity="0.50458717"/>
+      <stop id="stop4040" offset="1" stop-color="#fcaf3e" stop-opacity="1"/>
     </linearGradient>
-    <linearGradient
-       id="linearGradient4026">
-      <stop
-         id="stop4028"
-         offset="0"
-         style="stop-color:#fff9c6;stop-opacity:1" />
-      <stop
-         style="stop-color:#fff28c;stop-opacity:1;"
-         offset="0.54166669"
-         id="stop4042" />
-      <stop
-         id="stop4030"
-         offset="1"
-         style="stop-color:#ffea85;stop-opacity:1;" />
+    <linearGradient id="linearGradient4026">
+      <stop id="stop4028" offset="0" stop-color="#fff9c6" stop-opacity="1"/>
+      <stop offset="0.54166669" id="stop4042" stop-color="#fff28c" stop-opacity="1"/>
+      <stop id="stop4030" offset="1" stop-color="#ffea85" stop-opacity="1"/>
     </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4026"
-       id="linearGradient3168"
-       gradientUnits="userSpaceOnUse"
-       x1="-28.968945"
-       y1="-25.326815"
-       x2="-37.19698"
-       y2="-9.5590506" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4032"
-       id="radialGradient4020"
-       cx="-33.519073"
-       cy="-22.113297"
-       fx="-33.519073"
-       fy="-22.113297"
-       r="9.5"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.487739,1.292402,-1.10267,0.497242,-41.77393,32.41492)" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4083"
-       id="radialGradient4081"
-       cx="23.99999"
-       cy="23.381506"
-       fx="23.99999"
-       fy="23.381506"
-       r="19.141981"
-       gradientTransform="matrix(1.006701,2.235326e-16,-2.23715e-16,1.007522,-0.160816,0.426981)"
-       gradientUnits="userSpaceOnUse" />
+    <linearGradient xlink:href="#linearGradient4026" id="linearGradient3168" gradientUnits="userSpaceOnUse" x1="-28.968945" y1="-25.326815" x2="-37.19698" y2="-9.5590506"/>
+    <radialGradient xlink:href="#linearGradient4032" id="radialGradient4020" cx="-33.519073" cy="-22.113297" fx="-33.519073" fy="-22.113297" r="9.5" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.487739,1.292402,-1.10267,0.497242,-41.77393,32.41492)"/>
+    <radialGradient xlink:href="#linearGradient4083" id="radialGradient4081" cx="23.99999" cy="23.381506" fx="23.99999" fy="23.381506" r="19.141981" gradientTransform="matrix(1.006701,2.235326e-16,-2.23715e-16,1.007522,-0.160816,0.426981)" gradientUnits="userSpaceOnUse"/>
   </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="10.54135"
-     inkscape:cx="8.0181254"
-     inkscape:cy="24.950603"
-     inkscape:current-layer="layer1"
-     showgrid="true"
-     inkscape:grid-bbox="true"
-     inkscape:document-units="px"
-     inkscape:window-width="859"
-     inkscape:window-height="818"
-     inkscape:window-x="0"
-     inkscape:window-y="30"
-     inkscape:showpageshadow="false" />
-  <metadata
-     id="metadata1311">
+  
+  <metadata id="metadata1311">
     <rdf:RDF>
-      <cc:Work
-         rdf:about="">
+      <cc:Work rdf:about="">
         <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
         <dc:title>weather-clear</dc:title>
         <dc:date>January 2006</dc:date>
         <dc:creator>
@@ -352,386 +85,88 @@
             <rdf:li>notification</rdf:li>
           </rdf:Bag>
         </dc:subject>
-        <cc:license
-           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+        <cc:license rdf:resource="http://creativecommons.org/licenses/publicdomain/"/>
         <dc:contributor>
           <cc:Agent>
             <dc:title>Garrett LeSage</dc:title>
           </cc:Agent>
         </dc:contributor>
       </cc:Work>
-      <cc:License
-         rdf:about="http://creativecommons.org/licenses/publicdomain/">
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Reproduction" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Distribution" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      <cc:License rdf:about="http://creativecommons.org/licenses/publicdomain/">
+        <cc:permits rdf:resource="http://creativecommons.org/ns#Reproduction"/>
+        <cc:permits rdf:resource="http://creativecommons.org/ns#Distribution"/>
+        <cc:permits rdf:resource="http://creativecommons.org/ns#DerivativeWorks"/>
       </cc:License>
     </rdf:RDF>
   </metadata>
-  <g
-     id="layer1"
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer">
-    <g
-       id="g6783"
-       transform="translate(-263.99,459.9855)">
-      <path
-         sodipodi:nodetypes="ccsscsssscsscc"
-         id="path6785"
-         d="M 280.50000,-445.50000 C 278.22917,-445.50000 276.39009,-443.94972 275.78125,-441.87500 C 275.08802,-442.23883 274.33674,-442.50000 273.50000,-442.50000 C 270.74000,-442.50000 268.49999,-440.26001 268.50000,-437.50000 C 268.50000,-436.92107 268.66252,-436.39230 268.84375,-435.87500 C 267.47028,-435.10426 266.50000,-433.68600 266.50000,-432.00000 C 266.50000,-429.51600 268.51600,-427.49999 271.00000,-427.50000 C 271.17713,-427.50000 289.82287,-427.50000 290.00000,-427.50000 C 292.48399,-427.50000 294.50000,-429.51600 294.50000,-432.00000 C 294.50000,-433.68600 293.52972,-435.10426 292.15625,-435.87500 C 292.33749,-436.39229 292.50000,-436.92108 292.50000,-437.50000 C 292.50000,-440.26000 290.26000,-442.49999 287.50000,-442.50000 C 286.66326,-442.50000 285.91198,-442.23883 285.21875,-441.87500 C 284.60991,-443.94972 282.77083,-445.50000 280.50000,-445.50000 z "
-         style="fill:#c4c5c2;fill-opacity:1.0000000;stroke:#888a85;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
-      <path
-         sodipodi:nodetypes="ccsscsssscsscc"
-         id="path6787"
-         d="M 280.50000,-445.00000 C 278.31028,-445.00000 276.77640,-443.66423 276.10445,-441.15648 C 275.43599,-441.50010 274.55686,-441.98983 273.75000,-441.98983 C 271.03349,-441.98983 268.99486,-440.05101 268.99487,-437.44429 C 268.99487,-436.89752 269.26208,-436.11085 269.43683,-435.62228 C 268.11240,-434.89433 267.00000,-433.73178 267.00000,-432.24973 C 267.00000,-429.90368 268.54617,-427.99964 271.33928,-427.99964 C 271.51009,-427.99964 289.48992,-427.99964 289.66072,-427.99964 C 292.43173,-427.99964 294.00000,-429.90368 294.00000,-432.24973 C 294.00000,-433.84210 292.88760,-434.91642 291.56317,-435.64437 C 291.73793,-436.13293 292.02724,-436.89753 292.02724,-437.44429 C 292.02724,-440.05100 289.91143,-442.01192 287.25001,-442.01193 C 286.44314,-442.01193 285.60820,-441.52219 284.93974,-441.17857 C 284.29089,-443.60011 282.68973,-445.00000 280.50000,-445.00000 z "
-         style="opacity:1.0000000;fill:url(#linearGradient6827);fill-opacity:1.0000000;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
-      <g
-         id="g6789">
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path6791"
-           sodipodi:cx="288.37500"
-           sodipodi:cy="-437.59375"
-           sodipodi:rx="3.3125000"
-           sodipodi:ry="3.3125000"
-           d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-           transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:url(#linearGradient6829);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path6793"
-           sodipodi:cx="288.37500"
-           sodipodi:cy="-437.59375"
-           sodipodi:rx="3.3125000"
-           sodipodi:ry="3.3125000"
-           d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-           transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" />
+  <g id="layer1">
+    <g transform="translate(-263.99,459.9855)">
+      <path d="M 280.50000,-445.50000 C 278.22917,-445.50000 276.39009,-443.94972 275.78125,-441.87500 C 275.08802,-442.23883 274.33674,-442.50000 273.50000,-442.50000 C 270.74000,-442.50000 268.49999,-440.26001 268.50000,-437.50000 C 268.50000,-436.92107 268.66252,-436.39230 268.84375,-435.87500 C 267.47028,-435.10426 266.50000,-433.68600 266.50000,-432.00000 C 266.50000,-429.51600 268.51600,-427.49999 271.00000,-427.50000 C 271.17713,-427.50000 289.82287,-427.50000 290.00000,-427.50000 C 292.48399,-427.50000 294.50000,-429.51600 294.50000,-432.00000 C 294.50000,-433.68600 293.52972,-435.10426 292.15625,-435.87500 C 292.33749,-436.39229 292.50000,-436.92108 292.50000,-437.50000 C 292.50000,-440.26000 290.26000,-442.49999 287.50000,-442.50000 C 286.66326,-442.50000 285.91198,-442.23883 285.21875,-441.87500 C 284.60991,-443.94972 282.77083,-445.50000 280.50000,-445.50000 z " fill="#c4c5c2" fill-opacity="1.0000000" stroke="#888a85" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+      <path d="M 280.50000,-445.00000 C 278.31028,-445.00000 276.77640,-443.66423 276.10445,-441.15648 C 275.43599,-441.50010 274.55686,-441.98983 273.75000,-441.98983 C 271.03349,-441.98983 268.99486,-440.05101 268.99487,-437.44429 C 268.99487,-436.89752 269.26208,-436.11085 269.43683,-435.62228 C 268.11240,-434.89433 267.00000,-433.73178 267.00000,-432.24973 C 267.00000,-429.90368 268.54617,-427.99964 271.33928,-427.99964 C 271.51009,-427.99964 289.48992,-427.99964 289.66072,-427.99964 C 292.43173,-427.99964 294.00000,-429.90368 294.00000,-432.24973 C 294.00000,-433.84210 292.88760,-434.91642 291.56317,-435.64437 C 291.73793,-436.13293 292.02724,-436.89753 292.02724,-437.44429 C 292.02724,-440.05100 289.91143,-442.01192 287.25001,-442.01193 C 286.44314,-442.01193 285.60820,-441.52219 284.93974,-441.17857 C 284.29089,-443.60011 282.68973,-445.00000 280.50000,-445.00000 z " opacity="1.0000000" fill="url(#linearGradient6827)" fill-opacity="1.0000000" stroke="none" stroke-width="0.99999958" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+      <g>
+        <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" opacity="1.0000000" fill="url(#linearGradient6829)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
       </g>
-      <rect
-         y="-438.00000"
-         x="271.00000"
-         height="9.0000000"
-         width="20.000000"
-         id="rect6795"
-         style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
-      <path
-         transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830195,-35.68869)"
-         d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-         sodipodi:ry="3.3125000"
-         sodipodi:rx="3.3125000"
-         sodipodi:cy="-437.59375"
-         sodipodi:cx="288.37500"
-         id="path6797"
-         style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-         sodipodi:type="arc" />
-      <g
-         id="g6799">
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path6801"
-           sodipodi:cx="288.37500"
-           sodipodi:cy="-437.59375"
-           sodipodi:rx="3.3125000"
-           sodipodi:ry="3.3125000"
-           d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-           transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19811,24.86321)" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:url(#linearGradient6831);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path6803"
-           sodipodi:cx="288.37500"
-           sodipodi:cy="-437.59375"
-           sodipodi:rx="3.3125000"
-           sodipodi:ry="3.3125000"
-           d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-           transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19818,24.86331)" />
+      <rect y="-438.00000" x="271.00000" height="9.0000000" width="20.000000" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+      <path transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830195,-35.68869)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+      <g>
+        <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19811,24.86321)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19818,24.86331)" opacity="1.0000000" fill="url(#linearGradient6831)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
       </g>
-      <g
-         id="g6805">
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path6807"
-           sodipodi:cx="288.37500"
-           sodipodi:cy="-437.59375"
-           sodipodi:rx="3.3125000"
-           sodipodi:ry="3.3125000"
-           d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-           transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:url(#linearGradient6833);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path6809"
-           sodipodi:cx="288.37500"
-           sodipodi:cy="-437.59375"
-           sodipodi:rx="3.3125000"
-           sodipodi:ry="3.3125000"
-           d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-           transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" />
+      <g>
+        <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" opacity="1.0000000" fill="url(#linearGradient6833)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
       </g>
-      <g
-         transform="translate(-1.000000,0.000000)"
-         id="g6811">
-        <path
-           style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           d="M 280.46875,-440.96875 C 276.88937,-440.96875 274.00000,-438.04812 274.00000,-434.46875 C 274.00000,-432.09807 275.34943,-430.13096 277.25000,-429.00000 L 283.71875,-429.00000 C 285.61932,-430.13096 286.96875,-432.12931 286.96875,-434.50000 C 286.96875,-438.07938 284.04812,-440.96875 280.46875,-440.96875 z "
-           id="path6813" />
-        <path
-           style="opacity:1.0000000;fill:url(#linearGradient6835);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           d="M 280.50000,-441.00000 C 276.91200,-441.00000 274.00000,-438.08799 274.00000,-434.50000 C 274.00000,-432.12360 275.34485,-430.13368 277.25000,-429.00000 L 283.75000,-429.00000 C 285.65515,-430.13368 287.00000,-432.12360 287.00000,-434.50000 C 287.00000,-438.08800 284.08800,-440.99999 280.50000,-441.00000 z "
-           id="path6815" />
+      <g transform="translate(-1.000000,0.000000)">
+        <path d="M 280.46875,-440.96875 C 276.88937,-440.96875 274.00000,-438.04812 274.00000,-434.46875 C 274.00000,-432.09807 275.34943,-430.13096 277.25000,-429.00000 L 283.71875,-429.00000 C 285.61932,-430.13096 286.96875,-432.12931 286.96875,-434.50000 C 286.96875,-438.07938 284.04812,-440.96875 280.46875,-440.96875 z " opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 280.50000,-441.00000 C 276.91200,-441.00000 274.00000,-438.08799 274.00000,-434.50000 C 274.00000,-432.12360 275.34485,-430.13368 277.25000,-429.00000 L 283.75000,-429.00000 C 285.65515,-430.13368 287.00000,-432.12360 287.00000,-434.50000 C 287.00000,-438.08800 284.08800,-440.99999 280.50000,-441.00000 z " opacity="1.0000000" fill="url(#linearGradient6835)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
       </g>
-      <path
-         transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830296,-35.68884)"
-         d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-         sodipodi:ry="3.3125000"
-         sodipodi:rx="3.3125000"
-         sodipodi:cy="-437.59375"
-         sodipodi:cx="288.37500"
-         id="path6817"
-         style="opacity:1.0000000;fill:url(#linearGradient6837);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-         sodipodi:type="arc" />
-      <path
-         sodipodi:nodetypes="ccss"
-         id="path6819"
-         d="M 292.95640,-437.33396 C 292.95487,-434.64940 289.68714,-433.62001 289.68714,-433.62001 C 289.68714,-433.62001 292.03588,-435.24596 292.02399,-437.32502 C 292.02399,-437.32502 292.95640,-437.33396 292.95640,-437.33396 z "
-         style="fill:#888a85;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" />
-      <g
-         transform="matrix(1.142857,0.000000,0.000000,1.142857,-28.57139,67.00008)"
-         id="g6821">
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path6823"
-           sodipodi:cx="288.37500"
-           sodipodi:cy="-437.59375"
-           sodipodi:rx="3.3125000"
-           sodipodi:ry="3.3125000"
-           d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-           transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:url(#linearGradient6839);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path6825"
-           sodipodi:cx="288.37500"
-           sodipodi:cy="-437.59375"
-           sodipodi:rx="3.3125000"
-           sodipodi:ry="3.3125000"
-           d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-           transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" />
+      <path transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830296,-35.68884)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="1.0000000" fill="url(#linearGradient6837)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+      <path d="M 292.95640,-437.33396 C 292.95487,-434.64940 289.68714,-433.62001 289.68714,-433.62001 C 289.68714,-433.62001 292.03588,-435.24596 292.02399,-437.32502 C 292.02399,-437.32502 292.95640,-437.33396 292.95640,-437.33396 z " fill="#888a85" fill-opacity="1.0000000" fill-rule="evenodd" stroke="none" stroke-width="1.0000000px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1.0000000"/>
+      <g transform="matrix(1.142857,0.000000,0.000000,1.142857,-28.57139,67.00008)">
+        <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" opacity="1.0000000" fill="url(#linearGradient6839)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
       </g>
     </g>
-    <g
-       id="g3936">
-      <g
-         style="opacity:0.7"
-         id="g4091">
-        <path
-           style="fill:#fce94f;fill-opacity:1;stroke:#fcaf3e;stroke-width:0.73732895;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-           d="M 24 2.5 L 21.625 9.1875 C 22.399034 9.0641318 23.191406 9 24 9 C 24.808594 9 25.600966 9.0641317 26.375 9.1875 L 24 2.5 z M 8.8125 8.78125 L 11.84375 15.21875 C 12.779034 13.928569 13.928569 12.779034 15.21875 11.84375 L 8.8125 8.78125 z M 39.21875 8.78125 L 32.78125 11.84375 C 34.071431 12.779034 35.220966 13.928569 36.15625 15.21875 L 39.21875 8.78125 z M 9.1875 21.59375 L 2.5 23.96875 L 9.1875 26.34375 C 9.0673373 25.57952 9 24.797813 9 24 C 9 23.180625 9.0608858 22.377571 9.1875 21.59375 z M 38.8125 21.625 C 38.935868 22.399034 39 23.191406 39 24 C 39 24.808594 38.935868 25.600966 38.8125 26.375 L 45.5 24 L 38.8125 21.625 z M 11.84375 32.78125 L 8.8125 39.1875 L 15.21875 36.15625 C 13.928569 35.220966 12.779034 34.071431 11.84375 32.78125 z M 36.15625 32.78125 C 35.229789 34.05926 34.087617 35.194799 32.8125 36.125 L 39.21875 39.1875 L 36.15625 32.78125 z M 21.625 38.8125 L 24 45.5 L 26.375 38.8125 C 25.600966 38.935868 24.808594 39 24 39 C 23.191406 39 22.399034 38.935868 21.625 38.8125 z "
-           id="path7492" />
-        <path
-           style="fill:none;fill-opacity:1;stroke:url(#radialGradient4081);stroke-width:0.84646249;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-           d="M 24 5.25 L 22.65625 9.0625 C 23.098888 9.0231486 23.547187 9 24 9 C 24.452813 9 24.901112 9.0231486 25.34375 9.0625 L 24 5.25 z M 10.78125 10.75 L 12.5 14.375 C 13.071538 13.694089 13.724004 13.038745 14.40625 12.46875 L 10.78125 10.75 z M 37.25 10.75 L 33.625 12.46875 C 34.304675 13.038189 34.961811 13.695325 35.53125 14.375 L 37.25 10.75 z M 9.0625 22.625 L 5.28125 23.96875 L 9.0625 25.3125 C 9.024981 24.880146 9 24.442031 9 24 C 9 23.536406 9.0212735 23.077908 9.0625 22.625 z M 38.9375 22.65625 C 38.976851 23.098888 39 23.547187 39 24 C 39 24.452813 38.976851 24.901112 38.9375 25.34375 L 42.71875 24 L 38.9375 22.65625 z M 35.53125 33.59375 C 34.958293 34.27954 34.309985 34.957363 33.625 35.53125 L 37.25 37.25 L 35.53125 33.59375 z M 12.5 33.625 L 10.78125 37.21875 L 14.375 35.5 C 13.702932 34.935884 13.064116 34.297068 12.5 33.625 z M 22.65625 38.9375 L 24 42.71875 L 25.34375 38.9375 C 24.901112 38.976851 24.452813 39 24 39 C 23.547187 39 23.098888 38.976851 22.65625 38.9375 z "
-           id="path7494" />
+    <g>
+      <g opacity="0.7">
+        <path d="M 24 2.5 L 21.625 9.1875 C 22.399034 9.0641318 23.191406 9 24 9 C 24.808594 9 25.600966 9.0641317 26.375 9.1875 L 24 2.5 z M 8.8125 8.78125 L 11.84375 15.21875 C 12.779034 13.928569 13.928569 12.779034 15.21875 11.84375 L 8.8125 8.78125 z M 39.21875 8.78125 L 32.78125 11.84375 C 34.071431 12.779034 35.220966 13.928569 36.15625 15.21875 L 39.21875 8.78125 z M 9.1875 21.59375 L 2.5 23.96875 L 9.1875 26.34375 C 9.0673373 25.57952 9 24.797813 9 24 C 9 23.180625 9.0608858 22.377571 9.1875 21.59375 z M 38.8125 21.625 C 38.935868 22.399034 39 23.191406 39 24 C 39 24.808594 38.935868 25.600966 38.8125 26.375 L 45.5 24 L 38.8125 21.625 z M 11.84375 32.78125 L 8.8125 39.1875 L 15.21875 36.15625 C 13.928569 35.220966 12.779034 34.071431 11.84375 32.78125 z M 36.15625 32.78125 C 35.229789 34.05926 34.087617 35.194799 32.8125 36.125 L 39.21875 39.1875 L 36.15625 32.78125 z M 21.625 38.8125 L 24 45.5 L 26.375 38.8125 C 25.600966 38.935868 24.808594 39 24 39 C 23.191406 39 22.399034 38.935868 21.625 38.8125 z " fill="#fce94f" fill-opacity="1" stroke="#fcaf3e" stroke-width="0.73732895" stroke-linecap="square" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-opacity="1"/>
+        <path d="M 24 5.25 L 22.65625 9.0625 C 23.098888 9.0231486 23.547187 9 24 9 C 24.452813 9 24.901112 9.0231486 25.34375 9.0625 L 24 5.25 z M 10.78125 10.75 L 12.5 14.375 C 13.071538 13.694089 13.724004 13.038745 14.40625 12.46875 L 10.78125 10.75 z M 37.25 10.75 L 33.625 12.46875 C 34.304675 13.038189 34.961811 13.695325 35.53125 14.375 L 37.25 10.75 z M 9.0625 22.625 L 5.28125 23.96875 L 9.0625 25.3125 C 9.024981 24.880146 9 24.442031 9 24 C 9 23.536406 9.0212735 23.077908 9.0625 22.625 z M 38.9375 22.65625 C 38.976851 23.098888 39 23.547187 39 24 C 39 24.452813 38.976851 24.901112 38.9375 25.34375 L 42.71875 24 L 38.9375 22.65625 z M 35.53125 33.59375 C 34.958293 34.27954 34.309985 34.957363 33.625 35.53125 L 37.25 37.25 L 35.53125 33.59375 z M 12.5 33.625 L 10.78125 37.21875 L 14.375 35.5 C 13.702932 34.935884 13.064116 34.297068 12.5 33.625 z M 22.65625 38.9375 L 24 42.71875 L 25.34375 38.9375 C 24.901112 38.976851 24.452813 39 24 39 C 23.547187 39 23.098888 38.976851 22.65625 38.9375 z " fill="none" fill-opacity="1" stroke="url(#radialGradient4081)" stroke-width="0.84646249" stroke-linecap="square" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-opacity="1"/>
       </g>
-      <g
-         id="g4046">
-        <g
-           id="g3931">
-          <path
-             inkscape:r_cy="true"
-             inkscape:r_cx="true"
-             transform="matrix(0.778062,-1.061285,1.061287,0.778062,67.47952,3.641324)"
-             d="M -22.5 -17.5 A 9.5 9.5 0 1 1  -41.5,-17.5 A 9.5 9.5 0 1 1  -22.5 -17.5 z"
-             sodipodi:ry="9.5"
-             sodipodi:rx="9.5"
-             sodipodi:cy="-17.5"
-             sodipodi:cx="-32"
-             id="path7498"
-             style="fill:#ffee54;fill-opacity:1;stroke:#fcaf3e;stroke-width:0.75991178;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-             sodipodi:type="arc" />
-          <path
-             inkscape:r_cy="true"
-             inkscape:r_cx="true"
-             transform="matrix(1.244257,-0.167707,0.216642,1.251844,67.61648,40.527)"
-             d="M -22.5 -17.5 A 9.5 9.5 0 1 1  -41.5,-17.5 A 9.5 9.5 0 1 1  -22.5 -17.5 z"
-             sodipodi:ry="9.5"
-             sodipodi:rx="9.5"
-             sodipodi:cy="-17.5"
-             sodipodi:cx="-32"
-             id="path7500"
-             style="fill:url(#radialGradient4020);fill-opacity:1;stroke:none;stroke-width:1.01737845;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-             sodipodi:type="arc" />
-          <path
-             inkscape:r_cy="true"
-             inkscape:r_cx="true"
-             transform="matrix(0.715791,-0.976349,0.97635,0.715792,64.00044,5.269544)"
-             d="M -22.5 -17.5 A 9.5 9.5 0 1 1  -41.5,-17.5 A 9.5 9.5 0 1 1  -22.5 -17.5 z"
-             sodipodi:ry="9.5"
-             sodipodi:rx="9.5"
-             sodipodi:cy="-17.5"
-             sodipodi:cx="-32"
-             id="path7502"
-             style="fill:none;fill-opacity:1;stroke:url(#linearGradient3168);stroke-width:0.82601947;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-             sodipodi:type="arc" />
+      <g>
+        <g>
+          <path transform="matrix(0.778062,-1.061285,1.061287,0.778062,67.47952,3.641324)" d="M -22.5 -17.5 A 9.5 9.5 0 1 1  -41.5,-17.5 A 9.5 9.5 0 1 1  -22.5 -17.5 z" fill="#ffee54" fill-opacity="1" stroke="#fcaf3e" stroke-width="0.75991178" stroke-linecap="square" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-opacity="1"/>
+          <path transform="matrix(1.244257,-0.167707,0.216642,1.251844,67.61648,40.527)" d="M -22.5 -17.5 A 9.5 9.5 0 1 1  -41.5,-17.5 A 9.5 9.5 0 1 1  -22.5 -17.5 z" fill="url(#radialGradient4020)" fill-opacity="1" stroke="none" stroke-width="1.01737845" stroke-linecap="square" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-opacity="1"/>
+          <path transform="matrix(0.715791,-0.976349,0.97635,0.715792,64.00044,5.269544)" d="M -22.5 -17.5 A 9.5 9.5 0 1 1  -41.5,-17.5 A 9.5 9.5 0 1 1  -22.5 -17.5 z" fill="none" fill-opacity="1" stroke="url(#linearGradient3168)" stroke-width="0.82601947" stroke-linecap="square" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-opacity="1"/>
         </g>
       </g>
     </g>
-    <g
-       id="g6668"
-       transform="translate(-248.99,467.9855)">
-      <path
-         sodipodi:nodetypes="ccsscsssscsscc"
-         id="path6670"
-         d="M 280.50000,-445.50000 C 278.22917,-445.50000 276.39009,-443.94972 275.78125,-441.87500 C 275.08802,-442.23883 274.33674,-442.50000 273.50000,-442.50000 C 270.74000,-442.50000 268.49999,-440.26001 268.50000,-437.50000 C 268.50000,-436.92107 268.66252,-436.39230 268.84375,-435.87500 C 267.47028,-435.10426 266.50000,-433.68600 266.50000,-432.00000 C 266.50000,-429.51600 268.51600,-427.49999 271.00000,-427.50000 C 271.17713,-427.50000 289.82287,-427.50000 290.00000,-427.50000 C 292.48399,-427.50000 294.50000,-429.51600 294.50000,-432.00000 C 294.50000,-433.68600 293.52972,-435.10426 292.15625,-435.87500 C 292.33749,-436.39229 292.50000,-436.92108 292.50000,-437.50000 C 292.50000,-440.26000 290.26000,-442.49999 287.50000,-442.50000 C 286.66326,-442.50000 285.91198,-442.23883 285.21875,-441.87500 C 284.60991,-443.94972 282.77083,-445.50000 280.50000,-445.50000 z "
-         style="fill:#c4c5c2;fill-opacity:1.0000000;stroke:#888a85;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
-      <path
-         sodipodi:nodetypes="ccsscsssscsscc"
-         id="path6672"
-         d="M 280.50000,-445.00000 C 278.31028,-445.00000 276.77640,-443.66423 276.10445,-441.15648 C 275.43599,-441.50010 274.55686,-441.98983 273.75000,-441.98983 C 271.03349,-441.98983 268.99486,-440.05101 268.99487,-437.44429 C 268.99487,-436.89752 269.26208,-436.11085 269.43683,-435.62228 C 268.11240,-434.89433 267.00000,-433.73178 267.00000,-432.24973 C 267.00000,-429.90368 268.54617,-427.99964 271.33928,-427.99964 C 271.51009,-427.99964 289.48992,-427.99964 289.66072,-427.99964 C 292.43173,-427.99964 294.00000,-429.90368 294.00000,-432.24973 C 294.00000,-433.84210 292.88760,-434.91642 291.56317,-435.64437 C 291.73793,-436.13293 292.02724,-436.89753 292.02724,-437.44429 C 292.02724,-440.05100 289.91143,-442.01192 287.25001,-442.01193 C 286.44314,-442.01193 285.60820,-441.52219 284.93974,-441.17857 C 284.29089,-443.60011 282.68973,-445.00000 280.50000,-445.00000 z "
-         style="opacity:1.0000000;fill:url(#linearGradient6712);fill-opacity:1.0000000;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
-      <g
-         id="g6674">
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path6676"
-           sodipodi:cx="288.37500"
-           sodipodi:cy="-437.59375"
-           sodipodi:rx="3.3125000"
-           sodipodi:ry="3.3125000"
-           d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-           transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:url(#linearGradient6714);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path6678"
-           sodipodi:cx="288.37500"
-           sodipodi:cy="-437.59375"
-           sodipodi:rx="3.3125000"
-           sodipodi:ry="3.3125000"
-           d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-           transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" />
+    <g transform="translate(-248.99,467.9855)">
+      <path d="M 280.50000,-445.50000 C 278.22917,-445.50000 276.39009,-443.94972 275.78125,-441.87500 C 275.08802,-442.23883 274.33674,-442.50000 273.50000,-442.50000 C 270.74000,-442.50000 268.49999,-440.26001 268.50000,-437.50000 C 268.50000,-436.92107 268.66252,-436.39230 268.84375,-435.87500 C 267.47028,-435.10426 266.50000,-433.68600 266.50000,-432.00000 C 266.50000,-429.51600 268.51600,-427.49999 271.00000,-427.50000 C 271.17713,-427.50000 289.82287,-427.50000 290.00000,-427.50000 C 292.48399,-427.50000 294.50000,-429.51600 294.50000,-432.00000 C 294.50000,-433.68600 293.52972,-435.10426 292.15625,-435.87500 C 292.33749,-436.39229 292.50000,-436.92108 292.50000,-437.50000 C 292.50000,-440.26000 290.26000,-442.49999 287.50000,-442.50000 C 286.66326,-442.50000 285.91198,-442.23883 285.21875,-441.87500 C 284.60991,-443.94972 282.77083,-445.50000 280.50000,-445.50000 z " fill="#c4c5c2" fill-opacity="1.0000000" stroke="#888a85" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+      <path d="M 280.50000,-445.00000 C 278.31028,-445.00000 276.77640,-443.66423 276.10445,-441.15648 C 275.43599,-441.50010 274.55686,-441.98983 273.75000,-441.98983 C 271.03349,-441.98983 268.99486,-440.05101 268.99487,-437.44429 C 268.99487,-436.89752 269.26208,-436.11085 269.43683,-435.62228 C 268.11240,-434.89433 267.00000,-433.73178 267.00000,-432.24973 C 267.00000,-429.90368 268.54617,-427.99964 271.33928,-427.99964 C 271.51009,-427.99964 289.48992,-427.99964 289.66072,-427.99964 C 292.43173,-427.99964 294.00000,-429.90368 294.00000,-432.24973 C 294.00000,-433.84210 292.88760,-434.91642 291.56317,-435.64437 C 291.73793,-436.13293 292.02724,-436.89753 292.02724,-437.44429 C 292.02724,-440.05100 289.91143,-442.01192 287.25001,-442.01193 C 286.44314,-442.01193 285.60820,-441.52219 284.93974,-441.17857 C 284.29089,-443.60011 282.68973,-445.00000 280.50000,-445.00000 z " opacity="1.0000000" fill="url(#linearGradient6712)" fill-opacity="1.0000000" stroke="none" stroke-width="0.99999958" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+      <g>
+        <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" opacity="1.0000000" fill="url(#linearGradient6714)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
       </g>
-      <rect
-         y="-438.00000"
-         x="271.00000"
-         height="9.0000000"
-         width="20.000000"
-         id="rect6680"
-         style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
-      <path
-         transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830195,-35.68869)"
-         d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-         sodipodi:ry="3.3125000"
-         sodipodi:rx="3.3125000"
-         sodipodi:cy="-437.59375"
-         sodipodi:cx="288.37500"
-         id="path6682"
-         style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-         sodipodi:type="arc" />
-      <g
-         id="g6684">
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path6686"
-           sodipodi:cx="288.37500"
-           sodipodi:cy="-437.59375"
-           sodipodi:rx="3.3125000"
-           sodipodi:ry="3.3125000"
-           d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-           transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19811,24.86321)" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:url(#linearGradient6716);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path6688"
-           sodipodi:cx="288.37500"
-           sodipodi:cy="-437.59375"
-           sodipodi:rx="3.3125000"
-           sodipodi:ry="3.3125000"
-           d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-           transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19818,24.86331)" />
+      <rect y="-438.00000" x="271.00000" height="9.0000000" width="20.000000" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+      <path transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830195,-35.68869)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+      <g>
+        <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19811,24.86321)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19818,24.86331)" opacity="1.0000000" fill="url(#linearGradient6716)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
       </g>
-      <g
-         id="g6690">
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path6692"
-           sodipodi:cx="288.37500"
-           sodipodi:cy="-437.59375"
-           sodipodi:rx="3.3125000"
-           sodipodi:ry="3.3125000"
-           d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-           transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:url(#linearGradient6718);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path6694"
-           sodipodi:cx="288.37500"
-           sodipodi:cy="-437.59375"
-           sodipodi:rx="3.3125000"
-           sodipodi:ry="3.3125000"
-           d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-           transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" />
+      <g>
+        <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" opacity="1.0000000" fill="url(#linearGradient6718)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
       </g>
-      <g
-         transform="translate(-1.000000,0.000000)"
-         id="g6696">
-        <path
-           style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           d="M 280.46875,-440.96875 C 276.88937,-440.96875 274.00000,-438.04812 274.00000,-434.46875 C 274.00000,-432.09807 275.34943,-430.13096 277.25000,-429.00000 L 283.71875,-429.00000 C 285.61932,-430.13096 286.96875,-432.12931 286.96875,-434.50000 C 286.96875,-438.07938 284.04812,-440.96875 280.46875,-440.96875 z "
-           id="path6698" />
-        <path
-           style="opacity:1.0000000;fill:url(#linearGradient6720);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           d="M 280.50000,-441.00000 C 276.91200,-441.00000 274.00000,-438.08799 274.00000,-434.50000 C 274.00000,-432.12360 275.34485,-430.13368 277.25000,-429.00000 L 283.75000,-429.00000 C 285.65515,-430.13368 287.00000,-432.12360 287.00000,-434.50000 C 287.00000,-438.08800 284.08800,-440.99999 280.50000,-441.00000 z "
-           id="path6700" />
+      <g transform="translate(-1.000000,0.000000)">
+        <path d="M 280.46875,-440.96875 C 276.88937,-440.96875 274.00000,-438.04812 274.00000,-434.46875 C 274.00000,-432.09807 275.34943,-430.13096 277.25000,-429.00000 L 283.71875,-429.00000 C 285.61932,-430.13096 286.96875,-432.12931 286.96875,-434.50000 C 286.96875,-438.07938 284.04812,-440.96875 280.46875,-440.96875 z " opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 280.50000,-441.00000 C 276.91200,-441.00000 274.00000,-438.08799 274.00000,-434.50000 C 274.00000,-432.12360 275.34485,-430.13368 277.25000,-429.00000 L 283.75000,-429.00000 C 285.65515,-430.13368 287.00000,-432.12360 287.00000,-434.50000 C 287.00000,-438.08800 284.08800,-440.99999 280.50000,-441.00000 z " opacity="1.0000000" fill="url(#linearGradient6720)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
       </g>
-      <path
-         transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830296,-35.68884)"
-         d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-         sodipodi:ry="3.3125000"
-         sodipodi:rx="3.3125000"
-         sodipodi:cy="-437.59375"
-         sodipodi:cx="288.37500"
-         id="path6702"
-         style="opacity:1.0000000;fill:url(#linearGradient6722);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-         sodipodi:type="arc" />
-      <path
-         sodipodi:nodetypes="ccss"
-         id="path6704"
-         d="M 292.95640,-437.33396 C 292.95487,-434.64940 289.68714,-433.62001 289.68714,-433.62001 C 289.68714,-433.62001 292.03588,-435.24596 292.02399,-437.32502 C 292.02399,-437.32502 292.95640,-437.33396 292.95640,-437.33396 z "
-         style="fill:#888a85;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" />
-      <g
-         transform="matrix(1.142857,0.000000,0.000000,1.142857,-28.57139,67.00008)"
-         id="g6706">
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path6708"
-           sodipodi:cx="288.37500"
-           sodipodi:cy="-437.59375"
-           sodipodi:rx="3.3125000"
-           sodipodi:ry="3.3125000"
-           d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-           transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:url(#linearGradient6724);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path6710"
-           sodipodi:cx="288.37500"
-           sodipodi:cy="-437.59375"
-           sodipodi:rx="3.3125000"
-           sodipodi:ry="3.3125000"
-           d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-           transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" />
+      <path transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830296,-35.68884)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="1.0000000" fill="url(#linearGradient6722)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+      <path d="M 292.95640,-437.33396 C 292.95487,-434.64940 289.68714,-433.62001 289.68714,-433.62001 C 289.68714,-433.62001 292.03588,-435.24596 292.02399,-437.32502 C 292.02399,-437.32502 292.95640,-437.33396 292.95640,-437.33396 z " fill="#888a85" fill-opacity="1.0000000" fill-rule="evenodd" stroke="none" stroke-width="1.0000000px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1.0000000"/>
+      <g transform="matrix(1.142857,0.000000,0.000000,1.142857,-28.57139,67.00008)">
+        <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" opacity="1.0000000" fill="url(#linearGradient6724)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
       </g>
     </g>
   </g>
diff --git a/demos/embedded/weatherinfo/icons/weather-fog.svg b/demos/embedded/weatherinfo/icons/weather-fog.svg
index a9a4ca8..56a2444 100644
--- a/demos/embedded/weatherinfo/icons/weather-fog.svg
+++ b/demos/embedded/weatherinfo/icons/weather-fog.svg
@@ -1,1585 +1,114 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="48"
-   height="48"
-   id="svg2670"
-   sodipodi:version="0.32"
-   inkscape:version="0.46"
-   version="1.0"
-   sodipodi:docname="weather-fog.svg"
-   inkscape:output_extension="org.inkscape.output.svg.inkscape">
-  <defs
-     id="defs2672">
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient6549">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop6551" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop6553" />
+<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="48" height="48" id="svg2670" version="1.0">
+  <defs id="defs2672">
+    <linearGradient id="linearGradient6549">
+      <stop offset="0" id="stop6551" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop6553" stop-color="#ffffff" stop-opacity="0"/>
     </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient6527">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop6530" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop6532" />
+    <linearGradient id="linearGradient6527">
+      <stop offset="0" id="stop6530" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop6532" stop-color="#ffffff" stop-opacity="0"/>
     </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient6538">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop6540" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop6542" />
+    <linearGradient id="linearGradient6538">
+      <stop offset="0" id="stop6540" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop6542" stop-color="#ffffff" stop-opacity="0"/>
     </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient6513">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop6515" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop6517" />
+    <linearGradient id="linearGradient6513">
+      <stop offset="0" id="stop6515" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop6517" stop-color="#ffffff" stop-opacity="0"/>
     </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient6497">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop6499" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop6501" />
+    <linearGradient id="linearGradient6497">
+      <stop offset="0" id="stop6499" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop6501" stop-color="#ffffff" stop-opacity="0"/>
     </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient6470">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop6472" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop6474" />
+    <linearGradient id="linearGradient6470">
+      <stop offset="0" id="stop6472" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop6474" stop-color="#ffffff" stop-opacity="0"/>
     </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient7834">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop7836" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop7838" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient8397">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop8400" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop8402" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient8315">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop8317" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop8319" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient8381">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop8383" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop8385" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient8331">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop8333" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop8335" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient8302">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop8304" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop8306" />
-    </linearGradient>
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 526.18109 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="744.09448 : 526.18109 : 1"
-       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
-       id="perspective2678" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8302"
-       id="linearGradient4844"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(69.00259,102)"
-       x1="228.50261"
-       y1="-392.30591"
-       x2="278.91510"
-       y2="-375.37952" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8331"
-       id="linearGradient4846"
-       gradientUnits="userSpaceOnUse"
-       x1="240.07379"
-       y1="-393.40720"
-       x2="245.82706"
-       y2="-388.55029" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8381"
-       id="linearGradient4848"
-       gradientUnits="userSpaceOnUse"
-       x1="246.74042"
-       y1="-391.31381"
-       x2="252.69785"
-       y2="-385.35165" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8315"
-       id="linearGradient4850"
-       gradientUnits="userSpaceOnUse"
-       x1="230.87598"
-       y1="-390.43951"
-       x2="235.25652"
-       y2="-386.95901" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8397"
-       id="linearGradient4852"
-       gradientUnits="userSpaceOnUse"
-       x1="238.00478"
-       y1="-388.47476"
-       x2="245.65462"
-       y2="-382.64539" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient7834"
-       id="linearGradient4854"
-       gradientUnits="userSpaceOnUse"
-       x1="-156.29044"
-       y1="-100.53421"
-       x2="-153.09810"
-       y2="-96.544556" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6470"
-       id="linearGradient4856"
-       gradientUnits="userSpaceOnUse"
-       x1="271.02170"
-       y1="-441.05182"
-       x2="285.02859"
-       y2="-431.96991" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6497"
-       id="linearGradient4858"
-       gradientUnits="userSpaceOnUse"
-       x1="287.51730"
-       y1="-439.75281"
-       x2="289.67633"
-       y2="-436.32199" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6513"
-       id="linearGradient4860"
-       gradientUnits="userSpaceOnUse"
-       x1="286.51172"
-       y1="-441.29074"
-       x2="289.85379"
-       y2="-436.14453" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6538"
-       id="linearGradient4862"
-       gradientUnits="userSpaceOnUse"
-       x1="285.94086"
-       y1="-439.93900"
-       x2="289.39124"
-       y2="-436.44290" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6527"
-       id="linearGradient4864"
-       gradientUnits="userSpaceOnUse"
-       x1="275.94193"
-       y1="-437.10501"
-       x2="279.97546"
-       y2="-431.91833" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6549"
-       id="linearGradient4866"
-       gradientUnits="userSpaceOnUse"
-       x1="286.66589"
-       y1="-439.48358"
-       x2="289.76562"
-       y2="-436.70703" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6538"
-       id="linearGradient4868"
-       gradientUnits="userSpaceOnUse"
-       x1="284.80219"
-       y1="-441.23294"
-       x2="288.89954"
-       y2="-436.83109" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6470"
-       id="linearGradient4870"
-       gradientUnits="userSpaceOnUse"
-       x1="271.02170"
-       y1="-441.05182"
-       x2="285.02859"
-       y2="-431.96991" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6497"
-       id="linearGradient4872"
-       gradientUnits="userSpaceOnUse"
-       x1="287.51730"
-       y1="-439.75281"
-       x2="289.67633"
-       y2="-436.32199" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6513"
-       id="linearGradient4874"
-       gradientUnits="userSpaceOnUse"
-       x1="286.51172"
-       y1="-441.29074"
-       x2="289.85379"
-       y2="-436.14453" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6538"
-       id="linearGradient4876"
-       gradientUnits="userSpaceOnUse"
-       x1="285.94086"
-       y1="-439.93900"
-       x2="289.39124"
-       y2="-436.44290" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6527"
-       id="linearGradient4878"
-       gradientUnits="userSpaceOnUse"
-       x1="275.94193"
-       y1="-437.10501"
-       x2="279.97546"
-       y2="-431.91833" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6549"
-       id="linearGradient4880"
-       gradientUnits="userSpaceOnUse"
-       x1="286.66589"
-       y1="-439.48358"
-       x2="289.76562"
-       y2="-436.70703" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6538"
-       id="linearGradient4882"
-       gradientUnits="userSpaceOnUse"
-       x1="284.80219"
-       y1="-441.23294"
-       x2="288.89954"
-       y2="-436.83109" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8302"
-       id="linearGradient5018"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(69.00259,102)"
-       x1="228.50261"
-       y1="-392.30591"
-       x2="278.91510"
-       y2="-375.37952" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8331"
-       id="linearGradient5020"
-       gradientUnits="userSpaceOnUse"
-       x1="240.07379"
-       y1="-393.40720"
-       x2="245.82706"
-       y2="-388.55029" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8381"
-       id="linearGradient5022"
-       gradientUnits="userSpaceOnUse"
-       x1="246.74042"
-       y1="-391.31381"
-       x2="252.69785"
-       y2="-385.35165" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8315"
-       id="linearGradient5024"
-       gradientUnits="userSpaceOnUse"
-       x1="230.87598"
-       y1="-390.43951"
-       x2="235.25652"
-       y2="-386.95901" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8397"
-       id="linearGradient5026"
-       gradientUnits="userSpaceOnUse"
-       x1="238.00478"
-       y1="-388.47476"
-       x2="245.65462"
-       y2="-382.64539" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient7834"
-       id="linearGradient5028"
-       gradientUnits="userSpaceOnUse"
-       x1="-156.29044"
-       y1="-100.53421"
-       x2="-153.09810"
-       y2="-96.544556" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6470"
-       id="linearGradient5030"
-       gradientUnits="userSpaceOnUse"
-       x1="271.02170"
-       y1="-441.05182"
-       x2="285.02859"
-       y2="-431.96991" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6497"
-       id="linearGradient5032"
-       gradientUnits="userSpaceOnUse"
-       x1="287.51730"
-       y1="-439.75281"
-       x2="289.67633"
-       y2="-436.32199" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6513"
-       id="linearGradient5034"
-       gradientUnits="userSpaceOnUse"
-       x1="286.51172"
-       y1="-441.29074"
-       x2="289.85379"
-       y2="-436.14453" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6538"
-       id="linearGradient5036"
-       gradientUnits="userSpaceOnUse"
-       x1="285.94086"
-       y1="-439.93900"
-       x2="289.39124"
-       y2="-436.44290" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6527"
-       id="linearGradient5038"
-       gradientUnits="userSpaceOnUse"
-       x1="275.94193"
-       y1="-437.10501"
-       x2="279.97546"
-       y2="-431.91833" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6549"
-       id="linearGradient5040"
-       gradientUnits="userSpaceOnUse"
-       x1="286.66589"
-       y1="-439.48358"
-       x2="289.76562"
-       y2="-436.70703" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6538"
-       id="linearGradient5042"
-       gradientUnits="userSpaceOnUse"
-       x1="284.80219"
-       y1="-441.23294"
-       x2="288.89954"
-       y2="-436.83109" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6470"
-       id="linearGradient5044"
-       gradientUnits="userSpaceOnUse"
-       x1="271.02170"
-       y1="-441.05182"
-       x2="285.02859"
-       y2="-431.96991" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6497"
-       id="linearGradient5046"
-       gradientUnits="userSpaceOnUse"
-       x1="287.51730"
-       y1="-439.75281"
-       x2="289.67633"
-       y2="-436.32199" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6513"
-       id="linearGradient5048"
-       gradientUnits="userSpaceOnUse"
-       x1="286.51172"
-       y1="-441.29074"
-       x2="289.85379"
-       y2="-436.14453" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6538"
-       id="linearGradient5050"
-       gradientUnits="userSpaceOnUse"
-       x1="285.94086"
-       y1="-439.93900"
-       x2="289.39124"
-       y2="-436.44290" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6527"
-       id="linearGradient5052"
-       gradientUnits="userSpaceOnUse"
-       x1="275.94193"
-       y1="-437.10501"
-       x2="279.97546"
-       y2="-431.91833" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6549"
-       id="linearGradient5054"
-       gradientUnits="userSpaceOnUse"
-       x1="286.66589"
-       y1="-439.48358"
-       x2="289.76562"
-       y2="-436.70703" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6538"
-       id="linearGradient5056"
-       gradientUnits="userSpaceOnUse"
-       x1="284.80219"
-       y1="-441.23294"
-       x2="288.89954"
-       y2="-436.83109" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8302"
-       id="linearGradient5119"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-245.83994,432.62036)"
-       x1="228.50261"
-       y1="-392.30591"
-       x2="278.91510"
-       y2="-375.37952" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6470"
-       id="linearGradient5122"
-       gradientUnits="userSpaceOnUse"
-       x1="271.02170"
-       y1="-441.05182"
-       x2="285.02859"
-       y2="-431.96991" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6497"
-       id="linearGradient5124"
-       gradientUnits="userSpaceOnUse"
-       x1="287.51730"
-       y1="-439.75281"
-       x2="289.67633"
-       y2="-436.32199" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6513"
-       id="linearGradient5126"
-       gradientUnits="userSpaceOnUse"
-       x1="286.51172"
-       y1="-441.29074"
-       x2="289.85379"
-       y2="-436.14453" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6538"
-       id="linearGradient5128"
-       gradientUnits="userSpaceOnUse"
-       x1="285.94086"
-       y1="-439.93900"
-       x2="289.39124"
-       y2="-436.44290" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6527"
-       id="linearGradient5130"
-       gradientUnits="userSpaceOnUse"
-       x1="275.94193"
-       y1="-437.10501"
-       x2="279.97546"
-       y2="-431.91833" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6549"
-       id="linearGradient5132"
-       gradientUnits="userSpaceOnUse"
-       x1="286.66589"
-       y1="-439.48358"
-       x2="289.76562"
-       y2="-436.70703" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6538"
-       id="linearGradient5134"
-       gradientUnits="userSpaceOnUse"
-       x1="284.80219"
-       y1="-441.23294"
-       x2="288.89954"
-       y2="-436.83109" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6470"
-       id="linearGradient5156"
-       gradientUnits="userSpaceOnUse"
-       x1="271.02170"
-       y1="-441.05182"
-       x2="285.02859"
-       y2="-431.96991"
-       gradientTransform="translate(-276.83994,492.62036)" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6470"
-       id="linearGradient5159"
-       gradientUnits="userSpaceOnUse"
-       x1="271.02170"
-       y1="-441.05182"
-       x2="285.02859"
-       y2="-431.96991" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6497"
-       id="linearGradient5161"
-       gradientUnits="userSpaceOnUse"
-       x1="287.51730"
-       y1="-439.75281"
-       x2="289.67633"
-       y2="-436.32199" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6513"
-       id="linearGradient5163"
-       gradientUnits="userSpaceOnUse"
-       x1="286.51172"
-       y1="-441.29074"
-       x2="289.85379"
-       y2="-436.14453" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6538"
-       id="linearGradient5165"
-       gradientUnits="userSpaceOnUse"
-       x1="285.94086"
-       y1="-439.93900"
-       x2="289.39124"
-       y2="-436.44290" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6527"
-       id="linearGradient5167"
-       gradientUnits="userSpaceOnUse"
-       x1="275.94193"
-       y1="-437.10501"
-       x2="279.97546"
-       y2="-431.91833" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6549"
-       id="linearGradient5169"
-       gradientUnits="userSpaceOnUse"
-       x1="286.66589"
-       y1="-439.48358"
-       x2="289.76562"
-       y2="-436.70703" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6538"
-       id="linearGradient5171"
-       gradientUnits="userSpaceOnUse"
-       x1="284.80219"
-       y1="-441.23294"
-       x2="288.89954"
-       y2="-436.83109" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6470"
-       id="linearGradient5193"
-       gradientUnits="userSpaceOnUse"
-       x1="271.02170"
-       y1="-441.05182"
-       x2="285.02859"
-       y2="-431.96991"
-       gradientTransform="translate(-291.84253,488.62036)" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6470"
-       id="linearGradient5221"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-291.84253,488.62036)"
-       x1="271.02170"
-       y1="-441.05182"
-       x2="285.02859"
-       y2="-431.96991" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8302"
-       id="linearGradient5298"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(69.00259,102)"
-       x1="228.50261"
-       y1="-392.30591"
-       x2="278.91510"
-       y2="-375.37952" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8331"
-       id="linearGradient5300"
-       gradientUnits="userSpaceOnUse"
-       x1="240.07379"
-       y1="-393.40720"
-       x2="245.82706"
-       y2="-388.55029" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8381"
-       id="linearGradient5302"
-       gradientUnits="userSpaceOnUse"
-       x1="246.74042"
-       y1="-391.31381"
-       x2="252.69785"
-       y2="-385.35165" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8315"
-       id="linearGradient5304"
-       gradientUnits="userSpaceOnUse"
-       x1="230.87598"
-       y1="-390.43951"
-       x2="235.25652"
-       y2="-386.95901" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8397"
-       id="linearGradient5306"
-       gradientUnits="userSpaceOnUse"
-       x1="238.00478"
-       y1="-388.47476"
-       x2="245.65462"
-       y2="-382.64539" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient7834"
-       id="linearGradient5308"
-       gradientUnits="userSpaceOnUse"
-       x1="-156.29044"
-       y1="-100.53421"
-       x2="-153.09810"
-       y2="-96.544556" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6470"
-       id="linearGradient5310"
-       gradientUnits="userSpaceOnUse"
-       x1="271.02170"
-       y1="-441.05182"
-       x2="285.02859"
-       y2="-431.96991" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6497"
-       id="linearGradient5312"
-       gradientUnits="userSpaceOnUse"
-       x1="287.51730"
-       y1="-439.75281"
-       x2="289.67633"
-       y2="-436.32199" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6513"
-       id="linearGradient5314"
-       gradientUnits="userSpaceOnUse"
-       x1="286.51172"
-       y1="-441.29074"
-       x2="289.85379"
-       y2="-436.14453" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6538"
-       id="linearGradient5316"
-       gradientUnits="userSpaceOnUse"
-       x1="285.94086"
-       y1="-439.93900"
-       x2="289.39124"
-       y2="-436.44290" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6527"
-       id="linearGradient5318"
-       gradientUnits="userSpaceOnUse"
-       x1="275.94193"
-       y1="-437.10501"
-       x2="279.97546"
-       y2="-431.91833" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6549"
-       id="linearGradient5320"
-       gradientUnits="userSpaceOnUse"
-       x1="286.66589"
-       y1="-439.48358"
-       x2="289.76562"
-       y2="-436.70703" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6538"
-       id="linearGradient5322"
-       gradientUnits="userSpaceOnUse"
-       x1="284.80219"
-       y1="-441.23294"
-       x2="288.89954"
-       y2="-436.83109" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6470"
-       id="linearGradient5324"
-       gradientUnits="userSpaceOnUse"
-       x1="271.02170"
-       y1="-441.05182"
-       x2="285.02859"
-       y2="-431.96991" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6497"
-       id="linearGradient5326"
-       gradientUnits="userSpaceOnUse"
-       x1="287.51730"
-       y1="-439.75281"
-       x2="289.67633"
-       y2="-436.32199" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6513"
-       id="linearGradient5328"
-       gradientUnits="userSpaceOnUse"
-       x1="286.51172"
-       y1="-441.29074"
-       x2="289.85379"
-       y2="-436.14453" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6538"
-       id="linearGradient5330"
-       gradientUnits="userSpaceOnUse"
-       x1="285.94086"
-       y1="-439.93900"
-       x2="289.39124"
-       y2="-436.44290" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6527"
-       id="linearGradient5332"
-       gradientUnits="userSpaceOnUse"
-       x1="275.94193"
-       y1="-437.10501"
-       x2="279.97546"
-       y2="-431.91833" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6549"
-       id="linearGradient5334"
-       gradientUnits="userSpaceOnUse"
-       x1="286.66589"
-       y1="-439.48358"
-       x2="289.76562"
-       y2="-436.70703" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6538"
-       id="linearGradient5336"
-       gradientUnits="userSpaceOnUse"
-       x1="284.80219"
-       y1="-441.23294"
-       x2="288.89954"
-       y2="-436.83109" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8302"
-       id="linearGradient5399"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-217.99871,406.5)"
-       x1="228.50261"
-       y1="-392.30591"
-       x2="278.91510"
-       y2="-375.37952" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8302"
-       id="linearGradient5432"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-245.83994,432.62036)"
-       x1="228.50261"
-       y1="-392.30591"
-       x2="278.91510"
-       y2="-375.37952" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6470"
-       id="linearGradient5434"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-276.83994,492.62036)"
-       x1="271.02170"
-       y1="-441.05182"
-       x2="285.02859"
-       y2="-431.96991" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6470"
-       id="linearGradient5436"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-291.84253,488.62036)"
-       x1="271.02170"
-       y1="-441.05182"
-       x2="285.02859"
-       y2="-431.96991" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8302"
-       id="linearGradient5515"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-217.99871,406.5)"
-       x1="228.50261"
-       y1="-392.30591"
-       x2="278.91510"
-       y2="-375.37952" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8331"
-       id="linearGradient5517"
-       gradientUnits="userSpaceOnUse"
-       x1="240.07379"
-       y1="-393.40720"
-       x2="245.82706"
-       y2="-388.55029" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8381"
-       id="linearGradient5519"
-       gradientUnits="userSpaceOnUse"
-       x1="246.74042"
-       y1="-391.31381"
-       x2="252.69785"
-       y2="-385.35165" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8315"
-       id="linearGradient5521"
-       gradientUnits="userSpaceOnUse"
-       x1="230.87598"
-       y1="-390.43951"
-       x2="235.25652"
-       y2="-386.95901" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8397"
-       id="linearGradient5523"
-       gradientUnits="userSpaceOnUse"
-       x1="238.00478"
-       y1="-388.47476"
-       x2="245.65462"
-       y2="-382.64539" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient7834"
-       id="linearGradient5525"
-       gradientUnits="userSpaceOnUse"
-       x1="-156.29044"
-       y1="-100.53421"
-       x2="-153.09810"
-       y2="-96.544556" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6470"
-       id="linearGradient5527"
-       gradientUnits="userSpaceOnUse"
-       x1="271.02170"
-       y1="-441.05182"
-       x2="285.02859"
-       y2="-431.96991" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6497"
-       id="linearGradient5529"
-       gradientUnits="userSpaceOnUse"
-       x1="287.51730"
-       y1="-439.75281"
-       x2="289.67633"
-       y2="-436.32199" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6513"
-       id="linearGradient5531"
-       gradientUnits="userSpaceOnUse"
-       x1="286.51172"
-       y1="-441.29074"
-       x2="289.85379"
-       y2="-436.14453" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6538"
-       id="linearGradient5533"
-       gradientUnits="userSpaceOnUse"
-       x1="285.94086"
-       y1="-439.93900"
-       x2="289.39124"
-       y2="-436.44290" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6527"
-       id="linearGradient5535"
-       gradientUnits="userSpaceOnUse"
-       x1="275.94193"
-       y1="-437.10501"
-       x2="279.97546"
-       y2="-431.91833" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6549"
-       id="linearGradient5537"
-       gradientUnits="userSpaceOnUse"
-       x1="286.66589"
-       y1="-439.48358"
-       x2="289.76562"
-       y2="-436.70703" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6538"
-       id="linearGradient5539"
-       gradientUnits="userSpaceOnUse"
-       x1="284.80219"
-       y1="-441.23294"
-       x2="288.89954"
-       y2="-436.83109" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6470"
-       id="linearGradient5541"
-       gradientUnits="userSpaceOnUse"
-       x1="271.02170"
-       y1="-441.05182"
-       x2="285.02859"
-       y2="-431.96991" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6497"
-       id="linearGradient5543"
-       gradientUnits="userSpaceOnUse"
-       x1="287.51730"
-       y1="-439.75281"
-       x2="289.67633"
-       y2="-436.32199" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6513"
-       id="linearGradient5545"
-       gradientUnits="userSpaceOnUse"
-       x1="286.51172"
-       y1="-441.29074"
-       x2="289.85379"
-       y2="-436.14453" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6538"
-       id="linearGradient5547"
-       gradientUnits="userSpaceOnUse"
-       x1="285.94086"
-       y1="-439.93900"
-       x2="289.39124"
-       y2="-436.44290" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6527"
-       id="linearGradient5549"
-       gradientUnits="userSpaceOnUse"
-       x1="275.94193"
-       y1="-437.10501"
-       x2="279.97546"
-       y2="-431.91833" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6549"
-       id="linearGradient5551"
-       gradientUnits="userSpaceOnUse"
-       x1="286.66589"
-       y1="-439.48358"
-       x2="289.76562"
-       y2="-436.70703" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6538"
-       id="linearGradient5553"
-       gradientUnits="userSpaceOnUse"
-       x1="284.80219"
-       y1="-441.23294"
-       x2="288.89954"
-       y2="-436.83109" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6470"
-       id="linearGradient5689"
-       gradientUnits="userSpaceOnUse"
-       x1="271.02170"
-       y1="-441.05182"
-       x2="285.02859"
-       y2="-431.96991" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6497"
-       id="linearGradient5691"
-       gradientUnits="userSpaceOnUse"
-       x1="287.51730"
-       y1="-439.75281"
-       x2="289.67633"
-       y2="-436.32199" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6513"
-       id="linearGradient5693"
-       gradientUnits="userSpaceOnUse"
-       x1="286.51172"
-       y1="-441.29074"
-       x2="289.85379"
-       y2="-436.14453" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6538"
-       id="linearGradient5695"
-       gradientUnits="userSpaceOnUse"
-       x1="285.94086"
-       y1="-439.93900"
-       x2="289.39124"
-       y2="-436.44290" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6527"
-       id="linearGradient5697"
-       gradientUnits="userSpaceOnUse"
-       x1="275.94193"
-       y1="-437.10501"
-       x2="279.97546"
-       y2="-431.91833" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6549"
-       id="linearGradient5699"
-       gradientUnits="userSpaceOnUse"
-       x1="286.66589"
-       y1="-439.48358"
-       x2="289.76562"
-       y2="-436.70703" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6538"
-       id="linearGradient5701"
-       gradientUnits="userSpaceOnUse"
-       x1="284.80219"
-       y1="-441.23294"
-       x2="288.89954"
-       y2="-436.83109" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6470"
-       id="linearGradient5703"
-       gradientUnits="userSpaceOnUse"
-       x1="271.02170"
-       y1="-441.05182"
-       x2="285.02859"
-       y2="-431.96991" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6497"
-       id="linearGradient5705"
-       gradientUnits="userSpaceOnUse"
-       x1="287.51730"
-       y1="-439.75281"
-       x2="289.67633"
-       y2="-436.32199" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6513"
-       id="linearGradient5707"
-       gradientUnits="userSpaceOnUse"
-       x1="286.51172"
-       y1="-441.29074"
-       x2="289.85379"
-       y2="-436.14453" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6538"
-       id="linearGradient5709"
-       gradientUnits="userSpaceOnUse"
-       x1="285.94086"
-       y1="-439.93900"
-       x2="289.39124"
-       y2="-436.44290" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6527"
-       id="linearGradient5711"
-       gradientUnits="userSpaceOnUse"
-       x1="275.94193"
-       y1="-437.10501"
-       x2="279.97546"
-       y2="-431.91833" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6549"
-       id="linearGradient5713"
-       gradientUnits="userSpaceOnUse"
-       x1="286.66589"
-       y1="-439.48358"
-       x2="289.76562"
-       y2="-436.70703" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6538"
-       id="linearGradient5715"
-       gradientUnits="userSpaceOnUse"
-       x1="284.80219"
-       y1="-441.23294"
-       x2="288.89954"
-       y2="-436.83109" />
+    <linearGradient xlink:href="#linearGradient6470" id="linearGradient5689" gradientUnits="userSpaceOnUse" x1="271.02170" y1="-441.05182" x2="285.02859" y2="-431.96991"/>
+    <linearGradient xlink:href="#linearGradient6497" id="linearGradient5691" gradientUnits="userSpaceOnUse" x1="287.51730" y1="-439.75281" x2="289.67633" y2="-436.32199"/>
+    <linearGradient xlink:href="#linearGradient6513" id="linearGradient5693" gradientUnits="userSpaceOnUse" x1="286.51172" y1="-441.29074" x2="289.85379" y2="-436.14453"/>
+    <linearGradient xlink:href="#linearGradient6538" id="linearGradient5695" gradientUnits="userSpaceOnUse" x1="285.94086" y1="-439.93900" x2="289.39124" y2="-436.44290"/>
+    <linearGradient xlink:href="#linearGradient6527" id="linearGradient5697" gradientUnits="userSpaceOnUse" x1="275.94193" y1="-437.10501" x2="279.97546" y2="-431.91833"/>
+    <linearGradient xlink:href="#linearGradient6549" id="linearGradient5699" gradientUnits="userSpaceOnUse" x1="286.66589" y1="-439.48358" x2="289.76562" y2="-436.70703"/>
+    <linearGradient xlink:href="#linearGradient6538" id="linearGradient5701" gradientUnits="userSpaceOnUse" x1="284.80219" y1="-441.23294" x2="288.89954" y2="-436.83109"/>
+    <linearGradient xlink:href="#linearGradient6470" id="linearGradient5703" gradientUnits="userSpaceOnUse" x1="271.02170" y1="-441.05182" x2="285.02859" y2="-431.96991"/>
+    <linearGradient xlink:href="#linearGradient6497" id="linearGradient5705" gradientUnits="userSpaceOnUse" x1="287.51730" y1="-439.75281" x2="289.67633" y2="-436.32199"/>
+    <linearGradient xlink:href="#linearGradient6513" id="linearGradient5707" gradientUnits="userSpaceOnUse" x1="286.51172" y1="-441.29074" x2="289.85379" y2="-436.14453"/>
+    <linearGradient xlink:href="#linearGradient6538" id="linearGradient5709" gradientUnits="userSpaceOnUse" x1="285.94086" y1="-439.93900" x2="289.39124" y2="-436.44290"/>
+    <linearGradient xlink:href="#linearGradient6527" id="linearGradient5711" gradientUnits="userSpaceOnUse" x1="275.94193" y1="-437.10501" x2="279.97546" y2="-431.91833"/>
+    <linearGradient xlink:href="#linearGradient6549" id="linearGradient5713" gradientUnits="userSpaceOnUse" x1="286.66589" y1="-439.48358" x2="289.76562" y2="-436.70703"/>
+    <linearGradient xlink:href="#linearGradient6538" id="linearGradient5715" gradientUnits="userSpaceOnUse" x1="284.80219" y1="-441.23294" x2="288.89954" y2="-436.83109"/>
   </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     gridtolerance="10000"
-     guidetolerance="10"
-     objecttolerance="10"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="16.270833"
-     inkscape:cx="12.725406"
-     inkscape:cy="24"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     showguides="true"
-     inkscape:guide-bbox="true"
-     inkscape:window-width="1272"
-     inkscape:window-height="965"
-     inkscape:window-x="0"
-     inkscape:window-y="0" />
-  <metadata
-     id="metadata2675">
+  
+  <metadata id="metadata2675">
     <rdf:RDF>
-      <cc:Work
-         rdf:about="">
+      <cc:Work rdf:about="">
         <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
       </cc:Work>
     </rdf:RDF>
   </metadata>
-  <g
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     id="layer1">
-    <g
-       id="g5641"
-       transform="translate(5e-6,-4)">
-      <g
-         style="opacity:0.45"
-         transform="translate(-248.99871,466.5)"
-         id="g7794">
-        <path
-           style="fill:#c4c5c2;fill-opacity:1;stroke:#888a85;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-           d="M 280.5,-445.5 C 278.22917,-445.5 276.39009,-443.94972 275.78125,-441.875 C 275.08802,-442.23883 274.33674,-442.5 273.5,-442.5 C 270.74,-442.5 268.49999,-440.26001 268.5,-437.5 C 268.5,-436.92107 268.66252,-436.3923 268.84375,-435.875 C 267.47028,-435.10426 266.5,-433.686 266.5,-432 C 266.5,-429.516 268.516,-427.49999 271,-427.5 C 271.17713,-427.5 289.82287,-427.5 290,-427.5 C 292.48399,-427.5 294.5,-429.516 294.5,-432 C 294.5,-433.686 293.52972,-435.10426 292.15625,-435.875 C 292.33749,-436.39229 292.5,-436.92108 292.5,-437.5 C 292.5,-440.26 290.26,-442.49999 287.5,-442.5 C 286.66326,-442.5 285.91198,-442.23883 285.21875,-441.875 C 284.60991,-443.94972 282.77083,-445.5 280.5,-445.5 z"
-           id="path7796"
-           sodipodi:nodetypes="ccsscsssscsscc" />
-        <path
-           style="opacity:1;fill:url(#linearGradient5689);fill-opacity:1;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-           d="M 280.5,-445 C 278.31028,-445 276.7764,-443.66423 276.10445,-441.15648 C 275.43599,-441.5001 274.55686,-441.98983 273.75,-441.98983 C 271.03349,-441.98983 268.99486,-440.05101 268.99487,-437.44429 C 268.99487,-436.89752 269.26208,-436.11085 269.43683,-435.62228 C 268.1124,-434.89433 267,-433.73178 267,-432.24973 C 267,-429.90368 268.54617,-427.99964 271.33928,-427.99964 C 271.51009,-427.99964 289.48992,-427.99964 289.66072,-427.99964 C 292.43173,-427.99964 294,-429.90368 294,-432.24973 C 294,-433.8421 292.8876,-434.91642 291.56317,-435.64437 C 291.73793,-436.13293 292.02724,-436.89753 292.02724,-437.44429 C 292.02724,-440.051 289.91143,-442.01192 287.25001,-442.01193 C 286.44314,-442.01193 285.6082,-441.52219 284.93974,-441.17857 C 284.29089,-443.60011 282.68973,-445 280.5,-445 z"
-           id="path7798"
-           sodipodi:nodetypes="ccsscsssscsscc" />
-        <g
-           id="g7800">
-          <path
-             transform="matrix(1.056604,0,0,1.056604,-24.19818,21.86331)"
-             d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z"
-             sodipodi:ry="3.3125"
-             sodipodi:rx="3.3125"
-             sodipodi:cy="-437.59375"
-             sodipodi:cx="288.375"
-             id="path7802"
-             style="opacity:1;fill:#c4c5c2;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-             sodipodi:type="arc" />
-          <path
-             transform="matrix(1.056604,0,0,1.056604,-24.19818,21.86331)"
-             d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z"
-             sodipodi:ry="3.3125"
-             sodipodi:rx="3.3125"
-             sodipodi:cy="-437.59375"
-             sodipodi:cx="288.375"
-             id="path7804"
-             style="opacity:1;fill:url(#linearGradient5691);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-             sodipodi:type="arc" />
+  <g id="layer1">
+    <g transform="translate(5e-6,-4)">
+      <g transform="translate(-248.99871,466.5)" opacity="0.45">
+        <path d="M 280.5,-445.5 C 278.22917,-445.5 276.39009,-443.94972 275.78125,-441.875 C 275.08802,-442.23883 274.33674,-442.5 273.5,-442.5 C 270.74,-442.5 268.49999,-440.26001 268.5,-437.5 C 268.5,-436.92107 268.66252,-436.3923 268.84375,-435.875 C 267.47028,-435.10426 266.5,-433.686 266.5,-432 C 266.5,-429.516 268.516,-427.49999 271,-427.5 C 271.17713,-427.5 289.82287,-427.5 290,-427.5 C 292.48399,-427.5 294.5,-429.516 294.5,-432 C 294.5,-433.686 293.52972,-435.10426 292.15625,-435.875 C 292.33749,-436.39229 292.5,-436.92108 292.5,-437.5 C 292.5,-440.26 290.26,-442.49999 287.5,-442.5 C 286.66326,-442.5 285.91198,-442.23883 285.21875,-441.875 C 284.60991,-443.94972 282.77083,-445.5 280.5,-445.5 z" fill="#c4c5c2" fill-opacity="1" stroke="#888a85" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/>
+        <path d="M 280.5,-445 C 278.31028,-445 276.7764,-443.66423 276.10445,-441.15648 C 275.43599,-441.5001 274.55686,-441.98983 273.75,-441.98983 C 271.03349,-441.98983 268.99486,-440.05101 268.99487,-437.44429 C 268.99487,-436.89752 269.26208,-436.11085 269.43683,-435.62228 C 268.1124,-434.89433 267,-433.73178 267,-432.24973 C 267,-429.90368 268.54617,-427.99964 271.33928,-427.99964 C 271.51009,-427.99964 289.48992,-427.99964 289.66072,-427.99964 C 292.43173,-427.99964 294,-429.90368 294,-432.24973 C 294,-433.8421 292.8876,-434.91642 291.56317,-435.64437 C 291.73793,-436.13293 292.02724,-436.89753 292.02724,-437.44429 C 292.02724,-440.051 289.91143,-442.01192 287.25001,-442.01193 C 286.44314,-442.01193 285.6082,-441.52219 284.93974,-441.17857 C 284.29089,-443.60011 282.68973,-445 280.5,-445 z" opacity="1" fill="url(#linearGradient5689)" fill-opacity="1" stroke="none" stroke-width="0.99999958" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/>
+        <g>
+          <path transform="matrix(1.056604,0,0,1.056604,-24.19818,21.86331)" d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" opacity="1" fill="#c4c5c2" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/>
+          <path transform="matrix(1.056604,0,0,1.056604,-24.19818,21.86331)" d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" opacity="1" fill="url(#linearGradient5691)" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/>
         </g>
-        <rect
-           style="opacity:1;fill:#c4c5c2;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-           id="rect7806"
-           width="20"
-           height="9"
-           x="271"
-           y="-438" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:1;fill:#c4c5c2;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-           id="path7808"
-           sodipodi:cx="288.375"
-           sodipodi:cy="-437.59375"
-           sodipodi:rx="3.3125"
-           sodipodi:ry="3.3125"
-           d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z"
-           transform="matrix(0.90566,0,0,0.90566,9.830195,-35.68869)" />
-        <g
-           id="g7810">
-          <path
-             transform="matrix(1.056604,0,0,1.056604,-17.19811,24.86321)"
-             d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z"
-             sodipodi:ry="3.3125"
-             sodipodi:rx="3.3125"
-             sodipodi:cy="-437.59375"
-             sodipodi:cx="288.375"
-             id="path7812"
-             style="opacity:1;fill:#c4c5c2;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-             sodipodi:type="arc" />
-          <path
-             transform="matrix(1.056604,0,0,1.056604,-17.19818,24.86331)"
-             d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z"
-             sodipodi:ry="3.3125"
-             sodipodi:rx="3.3125"
-             sodipodi:cy="-437.59375"
-             sodipodi:cx="288.375"
-             id="path7814"
-             style="opacity:1;fill:url(#linearGradient5693);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-             sodipodi:type="arc" />
+        <rect width="20" height="9" x="271" y="-438" opacity="1" fill="#c4c5c2" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/>
+        <path d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" transform="matrix(0.90566,0,0,0.90566,9.830195,-35.68869)" opacity="1" fill="#c4c5c2" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/>
+        <g>
+          <path transform="matrix(1.056604,0,0,1.056604,-17.19811,24.86321)" d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" opacity="1" fill="#c4c5c2" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/>
+          <path transform="matrix(1.056604,0,0,1.056604,-17.19818,24.86331)" d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" opacity="1" fill="url(#linearGradient5693)" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/>
         </g>
-        <g
-           id="g7816">
-          <path
-             transform="matrix(1.056604,0,0,1.056604,-31.19818,24.86331)"
-             d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z"
-             sodipodi:ry="3.3125"
-             sodipodi:rx="3.3125"
-             sodipodi:cy="-437.59375"
-             sodipodi:cx="288.375"
-             id="path7818"
-             style="opacity:1;fill:#c4c5c2;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-             sodipodi:type="arc" />
-          <path
-             transform="matrix(1.056604,0,0,1.056604,-31.19818,24.86331)"
-             d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z"
-             sodipodi:ry="3.3125"
-             sodipodi:rx="3.3125"
-             sodipodi:cy="-437.59375"
-             sodipodi:cx="288.375"
-             id="path7820"
-             style="opacity:1;fill:url(#linearGradient5695);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-             sodipodi:type="arc" />
+        <g>
+          <path transform="matrix(1.056604,0,0,1.056604,-31.19818,24.86331)" d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" opacity="1" fill="#c4c5c2" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/>
+          <path transform="matrix(1.056604,0,0,1.056604,-31.19818,24.86331)" d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" opacity="1" fill="url(#linearGradient5695)" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/>
         </g>
-        <g
-           id="g7822"
-           transform="translate(-1,0)">
-          <path
-             id="path7824"
-             d="M 280.46875,-440.96875 C 276.88937,-440.96875 274,-438.04812 274,-434.46875 C 274,-432.09807 275.34943,-430.13096 277.25,-429 L 283.71875,-429 C 285.61932,-430.13096 286.96875,-432.12931 286.96875,-434.5 C 286.96875,-438.07938 284.04812,-440.96875 280.46875,-440.96875 z"
-             style="opacity:1;fill:#c4c5c2;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
-          <path
-             id="path7826"
-             d="M 280.5,-441 C 276.912,-441 274,-438.08799 274,-434.5 C 274,-432.1236 275.34485,-430.13368 277.25,-429 L 283.75,-429 C 285.65515,-430.13368 287,-432.1236 287,-434.5 C 287,-438.088 284.088,-440.99999 280.5,-441 z"
-             style="opacity:1;fill:url(#linearGradient5697);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+        <g transform="translate(-1,0)">
+          <path d="M 280.46875,-440.96875 C 276.88937,-440.96875 274,-438.04812 274,-434.46875 C 274,-432.09807 275.34943,-430.13096 277.25,-429 L 283.71875,-429 C 285.61932,-430.13096 286.96875,-432.12931 286.96875,-434.5 C 286.96875,-438.07938 284.04812,-440.96875 280.46875,-440.96875 z" opacity="1" fill="#c4c5c2" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/>
+          <path d="M 280.5,-441 C 276.912,-441 274,-438.08799 274,-434.5 C 274,-432.1236 275.34485,-430.13368 277.25,-429 L 283.75,-429 C 285.65515,-430.13368 287,-432.1236 287,-434.5 C 287,-438.088 284.088,-440.99999 280.5,-441 z" opacity="1" fill="url(#linearGradient5697)" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/>
         </g>
-        <path
-           sodipodi:type="arc"
-           style="opacity:1;fill:url(#linearGradient5699);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-           id="path7828"
-           sodipodi:cx="288.375"
-           sodipodi:cy="-437.59375"
-           sodipodi:rx="3.3125"
-           sodipodi:ry="3.3125"
-           d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z"
-           transform="matrix(0.90566,0,0,0.90566,9.830296,-35.68884)" />
-        <path
-           style="fill:#888a85;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-           d="M 292.9564,-437.33396 C 292.95487,-434.6494 289.68714,-433.62001 289.68714,-433.62001 C 289.68714,-433.62001 292.03588,-435.24596 292.02399,-437.32502 C 292.02399,-437.32502 292.9564,-437.33396 292.9564,-437.33396 z"
-           id="path7830"
-           sodipodi:nodetypes="ccss" />
-        <g
-           id="g7832"
-           transform="matrix(1.142857,0,0,1.142857,-28.57139,67.00008)">
-          <path
-             transform="matrix(1.056604,0,0,1.056604,-31.19818,24.86331)"
-             d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z"
-             sodipodi:ry="3.3125"
-             sodipodi:rx="3.3125"
-             sodipodi:cy="-437.59375"
-             sodipodi:cx="288.375"
-             id="path7834"
-             style="opacity:1;fill:#c4c5c2;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-             sodipodi:type="arc" />
-          <path
-             transform="matrix(1.056604,0,0,1.056604,-31.19818,24.86331)"
-             d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z"
-             sodipodi:ry="3.3125"
-             sodipodi:rx="3.3125"
-             sodipodi:cy="-437.59375"
-             sodipodi:cx="288.375"
-             id="path7836"
-             style="opacity:1;fill:url(#linearGradient5701);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-             sodipodi:type="arc" />
+        <path d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" transform="matrix(0.90566,0,0,0.90566,9.830296,-35.68884)" opacity="1" fill="url(#linearGradient5699)" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/>
+        <path d="M 292.9564,-437.33396 C 292.95487,-434.6494 289.68714,-433.62001 289.68714,-433.62001 C 289.68714,-433.62001 292.03588,-435.24596 292.02399,-437.32502 C 292.02399,-437.32502 292.9564,-437.33396 292.9564,-437.33396 z" fill="#888a85" fill-opacity="1" fill-rule="evenodd" stroke="none" stroke-width="1px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1"/>
+        <g transform="matrix(1.142857,0,0,1.142857,-28.57139,67.00008)">
+          <path transform="matrix(1.056604,0,0,1.056604,-31.19818,24.86331)" d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" opacity="1" fill="#c4c5c2" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/>
+          <path transform="matrix(1.056604,0,0,1.056604,-31.19818,24.86331)" d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" opacity="1" fill="url(#linearGradient5701)" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/>
         </g>
       </g>
-      <path
-         sodipodi:nodetypes="ccsscsssscsscc"
-         id="path4934"
-         d="M 31.501294,21.49982 C 29.311574,21.49982 27.777694,22.83559 27.105744,25.34334 C 26.437284,24.99972 25.558154,24.50999 24.751294,24.50999 C 22.034784,24.50999 19.996154,26.44881 19.996164,29.05553 C 19.996164,29.6023 20.263374,30.38897 20.438124,30.87754 C 19.113694,31.60549 18.001294,32.76804 18.001294,34.25009 C 18.001294,36.59614 19.547464,38.50018 22.340574,38.50018 C 22.511384,38.50018 40.491214,38.50018 40.662014,38.50018 C 43.433024,38.50018 45.001294,36.59614 45.001294,34.25009 C 45.001294,32.65772 43.888894,31.5834 42.564464,30.85545 C 42.739224,30.36689 43.028534,29.60229 43.028534,29.05553 C 43.028534,26.44882 40.912724,24.4879 38.251304,24.48789 C 37.444434,24.48789 36.609494,24.97763 35.941034,25.32125 C 35.292184,22.89971 33.691024,21.49982 31.501294,21.49982 z"
-         style="opacity:0.45;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
-      <g
-         style="opacity:0.45"
-         transform="translate(-264.0013,462.5)"
-         id="g7852">
-        <path
-           style="fill:#c4c5c2;fill-opacity:1;stroke:#888a85;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-           d="M 280.5,-445.5 C 278.22917,-445.5 276.39009,-443.94972 275.78125,-441.875 C 275.08802,-442.23883 274.33674,-442.5 273.5,-442.5 C 270.74,-442.5 268.49999,-440.26001 268.5,-437.5 C 268.5,-436.92107 268.66252,-436.3923 268.84375,-435.875 C 267.47028,-435.10426 266.5,-433.686 266.5,-432 C 266.5,-429.516 268.516,-427.49999 271,-427.5 C 271.17713,-427.5 289.82287,-427.5 290,-427.5 C 292.48399,-427.5 294.5,-429.516 294.5,-432 C 294.5,-433.686 293.52972,-435.10426 292.15625,-435.875 C 292.33749,-436.39229 292.5,-436.92108 292.5,-437.5 C 292.5,-440.26 290.26,-442.49999 287.5,-442.5 C 286.66326,-442.5 285.91198,-442.23883 285.21875,-441.875 C 284.60991,-443.94972 282.77083,-445.5 280.5,-445.5 z"
-           id="path7854"
-           sodipodi:nodetypes="ccsscsssscsscc" />
-        <path
-           style="opacity:1;fill:url(#linearGradient5703);fill-opacity:1;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-           d="M 280.5,-445 C 278.31028,-445 276.7764,-443.66423 276.10445,-441.15648 C 275.43599,-441.5001 274.55686,-441.98983 273.75,-441.98983 C 271.03349,-441.98983 268.99486,-440.05101 268.99487,-437.44429 C 268.99487,-436.89752 269.26208,-436.11085 269.43683,-435.62228 C 268.1124,-434.89433 267,-433.73178 267,-432.24973 C 267,-429.90368 268.54617,-427.99964 271.33928,-427.99964 C 271.51009,-427.99964 289.48992,-427.99964 289.66072,-427.99964 C 292.43173,-427.99964 294,-429.90368 294,-432.24973 C 294,-433.8421 292.8876,-434.91642 291.56317,-435.64437 C 291.73793,-436.13293 292.02724,-436.89753 292.02724,-437.44429 C 292.02724,-440.051 289.91143,-442.01192 287.25001,-442.01193 C 286.44314,-442.01193 285.6082,-441.52219 284.93974,-441.17857 C 284.29089,-443.60011 282.68973,-445 280.5,-445 z"
-           id="path7856"
-           sodipodi:nodetypes="ccsscsssscsscc" />
-        <g
-           id="g7858">
-          <path
-             transform="matrix(1.056604,0,0,1.056604,-24.19818,21.86331)"
-             d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z"
-             sodipodi:ry="3.3125"
-             sodipodi:rx="3.3125"
-             sodipodi:cy="-437.59375"
-             sodipodi:cx="288.375"
-             id="path7860"
-             style="opacity:1;fill:#c4c5c2;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-             sodipodi:type="arc" />
-          <path
-             transform="matrix(1.056604,0,0,1.056604,-24.19818,21.86331)"
-             d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z"
-             sodipodi:ry="3.3125"
-             sodipodi:rx="3.3125"
-             sodipodi:cy="-437.59375"
-             sodipodi:cx="288.375"
-             id="path7862"
-             style="opacity:1;fill:url(#linearGradient5705);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-             sodipodi:type="arc" />
+      <path d="M 31.501294,21.49982 C 29.311574,21.49982 27.777694,22.83559 27.105744,25.34334 C 26.437284,24.99972 25.558154,24.50999 24.751294,24.50999 C 22.034784,24.50999 19.996154,26.44881 19.996164,29.05553 C 19.996164,29.6023 20.263374,30.38897 20.438124,30.87754 C 19.113694,31.60549 18.001294,32.76804 18.001294,34.25009 C 18.001294,36.59614 19.547464,38.50018 22.340574,38.50018 C 22.511384,38.50018 40.491214,38.50018 40.662014,38.50018 C 43.433024,38.50018 45.001294,36.59614 45.001294,34.25009 C 45.001294,32.65772 43.888894,31.5834 42.564464,30.85545 C 42.739224,30.36689 43.028534,29.60229 43.028534,29.05553 C 43.028534,26.44882 40.912724,24.4879 38.251304,24.48789 C 37.444434,24.48789 36.609494,24.97763 35.941034,25.32125 C 35.292184,22.89971 33.691024,21.49982 31.501294,21.49982 z" opacity="0.45" fill="#ffffff" fill-opacity="1" stroke="none" stroke-width="0.99999958" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/>
+      <g transform="translate(-264.0013,462.5)" opacity="0.45">
+        <path d="M 280.5,-445.5 C 278.22917,-445.5 276.39009,-443.94972 275.78125,-441.875 C 275.08802,-442.23883 274.33674,-442.5 273.5,-442.5 C 270.74,-442.5 268.49999,-440.26001 268.5,-437.5 C 268.5,-436.92107 268.66252,-436.3923 268.84375,-435.875 C 267.47028,-435.10426 266.5,-433.686 266.5,-432 C 266.5,-429.516 268.516,-427.49999 271,-427.5 C 271.17713,-427.5 289.82287,-427.5 290,-427.5 C 292.48399,-427.5 294.5,-429.516 294.5,-432 C 294.5,-433.686 293.52972,-435.10426 292.15625,-435.875 C 292.33749,-436.39229 292.5,-436.92108 292.5,-437.5 C 292.5,-440.26 290.26,-442.49999 287.5,-442.5 C 286.66326,-442.5 285.91198,-442.23883 285.21875,-441.875 C 284.60991,-443.94972 282.77083,-445.5 280.5,-445.5 z" fill="#c4c5c2" fill-opacity="1" stroke="#888a85" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/>
+        <path d="M 280.5,-445 C 278.31028,-445 276.7764,-443.66423 276.10445,-441.15648 C 275.43599,-441.5001 274.55686,-441.98983 273.75,-441.98983 C 271.03349,-441.98983 268.99486,-440.05101 268.99487,-437.44429 C 268.99487,-436.89752 269.26208,-436.11085 269.43683,-435.62228 C 268.1124,-434.89433 267,-433.73178 267,-432.24973 C 267,-429.90368 268.54617,-427.99964 271.33928,-427.99964 C 271.51009,-427.99964 289.48992,-427.99964 289.66072,-427.99964 C 292.43173,-427.99964 294,-429.90368 294,-432.24973 C 294,-433.8421 292.8876,-434.91642 291.56317,-435.64437 C 291.73793,-436.13293 292.02724,-436.89753 292.02724,-437.44429 C 292.02724,-440.051 289.91143,-442.01192 287.25001,-442.01193 C 286.44314,-442.01193 285.6082,-441.52219 284.93974,-441.17857 C 284.29089,-443.60011 282.68973,-445 280.5,-445 z" opacity="1" fill="url(#linearGradient5703)" fill-opacity="1" stroke="none" stroke-width="0.99999958" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/>
+        <g>
+          <path transform="matrix(1.056604,0,0,1.056604,-24.19818,21.86331)" d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" opacity="1" fill="#c4c5c2" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/>
+          <path transform="matrix(1.056604,0,0,1.056604,-24.19818,21.86331)" d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" opacity="1" fill="url(#linearGradient5705)" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/>
         </g>
-        <rect
-           style="opacity:1;fill:#c4c5c2;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-           id="rect7864"
-           width="20"
-           height="9"
-           x="271"
-           y="-438" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:1;fill:#c4c5c2;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-           id="path7866"
-           sodipodi:cx="288.375"
-           sodipodi:cy="-437.59375"
-           sodipodi:rx="3.3125"
-           sodipodi:ry="3.3125"
-           d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z"
-           transform="matrix(0.90566,0,0,0.90566,9.830195,-35.68869)" />
-        <g
-           id="g7868">
-          <path
-             transform="matrix(1.056604,0,0,1.056604,-17.19811,24.86321)"
-             d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z"
-             sodipodi:ry="3.3125"
-             sodipodi:rx="3.3125"
-             sodipodi:cy="-437.59375"
-             sodipodi:cx="288.375"
-             id="path7870"
-             style="opacity:1;fill:#c4c5c2;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-             sodipodi:type="arc" />
-          <path
-             transform="matrix(1.056604,0,0,1.056604,-17.19818,24.86331)"
-             d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z"
-             sodipodi:ry="3.3125"
-             sodipodi:rx="3.3125"
-             sodipodi:cy="-437.59375"
-             sodipodi:cx="288.375"
-             id="path7872"
-             style="opacity:1;fill:url(#linearGradient5707);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-             sodipodi:type="arc" />
+        <rect width="20" height="9" x="271" y="-438" opacity="1" fill="#c4c5c2" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/>
+        <path d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" transform="matrix(0.90566,0,0,0.90566,9.830195,-35.68869)" opacity="1" fill="#c4c5c2" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/>
+        <g>
+          <path transform="matrix(1.056604,0,0,1.056604,-17.19811,24.86321)" d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" opacity="1" fill="#c4c5c2" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/>
+          <path transform="matrix(1.056604,0,0,1.056604,-17.19818,24.86331)" d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" opacity="1" fill="url(#linearGradient5707)" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/>
         </g>
-        <g
-           id="g7874">
-          <path
-             transform="matrix(1.056604,0,0,1.056604,-31.19818,24.86331)"
-             d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z"
-             sodipodi:ry="3.3125"
-             sodipodi:rx="3.3125"
-             sodipodi:cy="-437.59375"
-             sodipodi:cx="288.375"
-             id="path7876"
-             style="opacity:1;fill:#c4c5c2;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-             sodipodi:type="arc" />
-          <path
-             transform="matrix(1.056604,0,0,1.056604,-31.19818,24.86331)"
-             d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z"
-             sodipodi:ry="3.3125"
-             sodipodi:rx="3.3125"
-             sodipodi:cy="-437.59375"
-             sodipodi:cx="288.375"
-             id="path7878"
-             style="opacity:1;fill:url(#linearGradient5709);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-             sodipodi:type="arc" />
+        <g>
+          <path transform="matrix(1.056604,0,0,1.056604,-31.19818,24.86331)" d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" opacity="1" fill="#c4c5c2" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/>
+          <path transform="matrix(1.056604,0,0,1.056604,-31.19818,24.86331)" d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" opacity="1" fill="url(#linearGradient5709)" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/>
         </g>
-        <g
-           id="g7880"
-           transform="translate(-1,0)">
-          <path
-             id="path7882"
-             d="M 280.46875,-440.96875 C 276.88937,-440.96875 274,-438.04812 274,-434.46875 C 274,-432.09807 275.34943,-430.13096 277.25,-429 L 283.71875,-429 C 285.61932,-430.13096 286.96875,-432.12931 286.96875,-434.5 C 286.96875,-438.07938 284.04812,-440.96875 280.46875,-440.96875 z"
-             style="opacity:1;fill:#c4c5c2;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
-          <path
-             id="path7884"
-             d="M 280.5,-441 C 276.912,-441 274,-438.08799 274,-434.5 C 274,-432.1236 275.34485,-430.13368 277.25,-429 L 283.75,-429 C 285.65515,-430.13368 287,-432.1236 287,-434.5 C 287,-438.088 284.088,-440.99999 280.5,-441 z"
-             style="opacity:1;fill:url(#linearGradient5711);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+        <g transform="translate(-1,0)">
+          <path d="M 280.46875,-440.96875 C 276.88937,-440.96875 274,-438.04812 274,-434.46875 C 274,-432.09807 275.34943,-430.13096 277.25,-429 L 283.71875,-429 C 285.61932,-430.13096 286.96875,-432.12931 286.96875,-434.5 C 286.96875,-438.07938 284.04812,-440.96875 280.46875,-440.96875 z" opacity="1" fill="#c4c5c2" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/>
+          <path d="M 280.5,-441 C 276.912,-441 274,-438.08799 274,-434.5 C 274,-432.1236 275.34485,-430.13368 277.25,-429 L 283.75,-429 C 285.65515,-430.13368 287,-432.1236 287,-434.5 C 287,-438.088 284.088,-440.99999 280.5,-441 z" opacity="1" fill="url(#linearGradient5711)" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/>
         </g>
-        <path
-           sodipodi:type="arc"
-           style="opacity:1;fill:url(#linearGradient5713);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-           id="path7886"
-           sodipodi:cx="288.375"
-           sodipodi:cy="-437.59375"
-           sodipodi:rx="3.3125"
-           sodipodi:ry="3.3125"
-           d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z"
-           transform="matrix(0.90566,0,0,0.90566,9.830296,-35.68884)" />
-        <path
-           style="fill:#888a85;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-           d="M 292.9564,-437.33396 C 292.95487,-434.6494 289.68714,-433.62001 289.68714,-433.62001 C 289.68714,-433.62001 292.03588,-435.24596 292.02399,-437.32502 C 292.02399,-437.32502 292.9564,-437.33396 292.9564,-437.33396 z"
-           id="path7888"
-           sodipodi:nodetypes="ccss" />
-        <g
-           id="g7890"
-           transform="matrix(1.142857,0,0,1.142857,-28.57139,67.00008)">
-          <path
-             transform="matrix(1.056604,0,0,1.056604,-31.19818,24.86331)"
-             d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z"
-             sodipodi:ry="3.3125"
-             sodipodi:rx="3.3125"
-             sodipodi:cy="-437.59375"
-             sodipodi:cx="288.375"
-             id="path7892"
-             style="opacity:1;fill:#c4c5c2;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-             sodipodi:type="arc" />
-          <path
-             transform="matrix(1.056604,0,0,1.056604,-31.19818,24.86331)"
-             d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z"
-             sodipodi:ry="3.3125"
-             sodipodi:rx="3.3125"
-             sodipodi:cy="-437.59375"
-             sodipodi:cx="288.375"
-             id="path7896"
-             style="opacity:1;fill:url(#linearGradient5715);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-             sodipodi:type="arc" />
+        <path d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" transform="matrix(0.90566,0,0,0.90566,9.830296,-35.68884)" opacity="1" fill="url(#linearGradient5713)" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/>
+        <path d="M 292.9564,-437.33396 C 292.95487,-434.6494 289.68714,-433.62001 289.68714,-433.62001 C 289.68714,-433.62001 292.03588,-435.24596 292.02399,-437.32502 C 292.02399,-437.32502 292.9564,-437.33396 292.9564,-437.33396 z" fill="#888a85" fill-opacity="1" fill-rule="evenodd" stroke="none" stroke-width="1px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1"/>
+        <g transform="matrix(1.142857,0,0,1.142857,-28.57139,67.00008)">
+          <path transform="matrix(1.056604,0,0,1.056604,-31.19818,24.86331)" d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" opacity="1" fill="#c4c5c2" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/>
+          <path transform="matrix(1.056604,0,0,1.056604,-31.19818,24.86331)" d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" opacity="1" fill="url(#linearGradient5715)" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/>
         </g>
       </g>
-      <path
-         sodipodi:nodetypes="ccsscsssscsscc"
-         id="path4978"
-         d="M 16.498705,17.499819 C 14.308985,17.499819 12.775105,18.835589 12.103155,21.343339 C 11.434695,20.999719 10.555565,20.509989 9.748705,20.509989 C 7.032195,20.509989 4.993565,22.448809 4.993575,25.055529 C 4.993575,25.602299 5.260785,26.388969 5.435535,26.877539 C 4.111105,27.605489 2.998705,28.768039 2.998705,30.250089 C 2.998705,32.596139 4.544875,34.500179 7.337985,34.500179 C 7.508795,34.500179 25.488624,34.500179 25.659424,34.500179 C 28.430434,34.500179 29.998704,32.596139 29.998704,30.250089 C 29.998704,28.657719 28.886304,27.583399 27.561874,26.855449 C 27.736634,26.366889 28.025944,25.602289 28.025944,25.055529 C 28.025944,22.448819 25.910134,20.487899 23.248714,20.487889 C 22.441844,20.487889 21.606904,20.977629 20.938444,21.321249 C 20.289594,18.899709 18.688434,17.499819 16.498705,17.499819 z"
-         style="opacity:0.45;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+      <path d="M 16.498705,17.499819 C 14.308985,17.499819 12.775105,18.835589 12.103155,21.343339 C 11.434695,20.999719 10.555565,20.509989 9.748705,20.509989 C 7.032195,20.509989 4.993565,22.448809 4.993575,25.055529 C 4.993575,25.602299 5.260785,26.388969 5.435535,26.877539 C 4.111105,27.605489 2.998705,28.768039 2.998705,30.250089 C 2.998705,32.596139 4.544875,34.500179 7.337985,34.500179 C 7.508795,34.500179 25.488624,34.500179 25.659424,34.500179 C 28.430434,34.500179 29.998704,32.596139 29.998704,30.250089 C 29.998704,28.657719 28.886304,27.583399 27.561874,26.855449 C 27.736634,26.366889 28.025944,25.602289 28.025944,25.055529 C 28.025944,22.448819 25.910134,20.487899 23.248714,20.487889 C 22.441844,20.487889 21.606904,20.977629 20.938444,21.321249 C 20.289594,18.899709 18.688434,17.499819 16.498705,17.499819 z" opacity="0.45" fill="#ffffff" fill-opacity="1" stroke="none" stroke-width="0.99999958" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/>
     </g>
   </g>
 </svg>
diff --git a/demos/embedded/weatherinfo/icons/weather-haze.svg b/demos/embedded/weatherinfo/icons/weather-haze.svg
index f2d6671..b31811f 100644
--- a/demos/embedded/weatherinfo/icons/weather-haze.svg
+++ b/demos/embedded/weatherinfo/icons/weather-haze.svg
@@ -1,1121 +1,162 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="48"
-   height="48"
-   id="svg14353"
-   sodipodi:version="0.32"
-   inkscape:version="0.46"
-   version="1.0"
-   sodipodi:docname="weather-haze.svg"
-   inkscape:output_extension="org.inkscape.output.svg.inkscape">
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     gridtolerance="10000"
-     guidetolerance="10"
-     objecttolerance="10"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="1"
-     inkscape:cx="-122"
-     inkscape:cy="24"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     inkscape:showpageshadow="false"
-     showborder="false"
-     showguides="true"
-     inkscape:guide-bbox="true"
-     inkscape:window-width="982"
-     inkscape:window-height="965"
-     inkscape:window-x="1281"
-     inkscape:window-y="29"
-     borderlayer="false" />
-  <defs
-     id="defs14355">
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient8371">
-      <stop
-         style="stop-color:#e8d277;stop-opacity:1;"
-         offset="0"
-         id="stop8373" />
-      <stop
-         style="stop-color:#e8d277;stop-opacity:0;"
-         offset="1"
-         id="stop8375" />
+<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="48" height="48" id="svg14353" version="1.0">
+  
+  <defs id="defs14355">
+    <linearGradient id="linearGradient8371">
+      <stop offset="0" id="stop8373" stop-color="#e8d277" stop-opacity="1"/>
+      <stop offset="1" id="stop8375" stop-color="#e8d277" stop-opacity="0"/>
     </linearGradient>
-    <linearGradient
-       id="linearGradient9810">
-      <stop
-         style="stop-color:#ddc76e;stop-opacity:1;"
-         offset="0"
-         id="stop9812" />
-      <stop
-         style="stop-color:#e6d965;stop-opacity:0;"
-         offset="1"
-         id="stop9814" />
+    <linearGradient id="linearGradient9362">
+      <stop id="stop9364" offset="0" stop-color="#392100" stop-opacity="1"/>
+      <stop id="stop9366" offset="1" stop-color="#392100" stop-opacity="0"/>
     </linearGradient>
-    <linearGradient
-       id="linearGradient9636">
-      <stop
-         style="stop-color:#fce94f;stop-opacity:1;"
-         offset="0"
-         id="stop9638" />
-      <stop
-         style="stop-color:#fce94f;stop-opacity:0;"
-         offset="1"
-         id="stop9640" />
+    <linearGradient id="linearGradient7010">
+      <stop offset="0" id="stop7012" stop-color="#aec2d7" stop-opacity="1"/>
+      <stop id="stop9915" offset="1" stop-color="#81a0c1" stop-opacity="1"/>
     </linearGradient>
-    <linearGradient
-       id="linearGradient9362">
-      <stop
-         id="stop9364"
-         offset="0"
-         style="stop-color:#392100;stop-opacity:1;" />
-      <stop
-         id="stop9366"
-         offset="1"
-         style="stop-color:#392100;stop-opacity:0;" />
+    <linearGradient id="linearGradient6825">
+      <stop offset="0" id="stop6827" stop-color="#3a2400" stop-opacity="1"/>
+      <stop id="stop6833" offset="0.28565985" stop-color="#8c5600" stop-opacity="1"/>
+      <stop offset="1" id="stop6829" stop-color="#a36400" stop-opacity="1"/>
     </linearGradient>
-    <linearGradient
-       id="linearGradient7010">
-      <stop
-         style="stop-color:#aec2d7;stop-opacity:1;"
-         offset="0"
-         id="stop7012" />
-      <stop
-         id="stop9915"
-         offset="1"
-         style="stop-color:#81a0c1;stop-opacity:1;" />
+    <linearGradient id="linearGradient6772">
+      <stop offset="0" id="stop6774" stop-color="#888a85" stop-opacity="1"/>
+      <stop offset="1" id="stop6776" stop-color="#eeeeec" stop-opacity="1"/>
     </linearGradient>
-    <linearGradient
-       id="linearGradient6825">
-      <stop
-         style="stop-color:#3a2400;stop-opacity:1;"
-         offset="0"
-         id="stop6827" />
-      <stop
-         id="stop6833"
-         offset="0.28565985"
-         style="stop-color:#8c5600;stop-opacity:1;" />
-      <stop
-         style="stop-color:#a36400;stop-opacity:1;"
-         offset="1"
-         id="stop6829" />
+    <linearGradient id="linearGradient6764">
+      <stop offset="0" id="stop6766" stop-color="#eeeeec" stop-opacity="1"/>
+      <stop offset="1" id="stop6768" stop-color="#eeeeec" stop-opacity="0"/>
     </linearGradient>
-    <linearGradient
-       id="linearGradient6772">
-      <stop
-         style="stop-color:#888a85;stop-opacity:1;"
-         offset="0"
-         id="stop6774" />
-      <stop
-         style="stop-color:#eeeeec;stop-opacity:1;"
-         offset="1"
-         id="stop6776" />
+    <linearGradient id="linearGradient6746">
+      <stop offset="0" id="stop6748" stop-color="#eeeeec" stop-opacity="1"/>
+      <stop offset="1" id="stop6750" stop-color="#eeeeec" stop-opacity="0"/>
     </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient6764">
-      <stop
-         style="stop-color:#eeeeec;stop-opacity:1;"
-         offset="0"
-         id="stop6766" />
-      <stop
-         style="stop-color:#eeeeec;stop-opacity:0;"
-         offset="1"
-         id="stop6768" />
+    <linearGradient id="linearGradient6728">
+      <stop offset="0" id="stop6730" stop-color="#babdb6" stop-opacity="1"/>
+      <stop offset="1" id="stop6732" stop-color="#babdb6" stop-opacity="0"/>
     </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient6746">
-      <stop
-         style="stop-color:#eeeeec;stop-opacity:1;"
-         offset="0"
-         id="stop6748" />
-      <stop
-         style="stop-color:#eeeeec;stop-opacity:0;"
-         offset="1"
-         id="stop6750" />
+    <linearGradient id="linearGradient6685">
+      <stop offset="0" id="stop6687" stop-color="#000000" stop-opacity="1"/>
+      <stop offset="1" id="stop6689" stop-color="#000000" stop-opacity="0"/>
     </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient6728">
-      <stop
-         style="stop-color:#babdb6;stop-opacity:1;"
-         offset="0"
-         id="stop6730" />
-      <stop
-         style="stop-color:#babdb6;stop-opacity:0;"
-         offset="1"
-         id="stop6732" />
+    <linearGradient id="linearGradient6631">
+      <stop offset="0" id="stop6633" stop-color="#555753" stop-opacity="1"/>
+      <stop id="stop6639" offset="0.0343047" stop-color="#eeeeec" stop-opacity="0.49803922"/>
+      <stop offset="0.06714281" id="stop6641" stop-color="#555753" stop-opacity="1"/>
+      <stop id="stop6643" offset="0.08441304" stop-color="#eeeeec" stop-opacity="0.49803922"/>
+      <stop offset="0.13726114" id="stop6645" stop-color="#555753" stop-opacity="1"/>
+      <stop id="stop6647" offset="0.15779018" stop-color="#eeeeec" stop-opacity="0.49803922"/>
+      <stop offset="0.21104114" id="stop6649" stop-color="#555753" stop-opacity="1"/>
+      <stop id="stop6651" offset="0.23053712" stop-color="#eeeeec" stop-opacity="0.49803922"/>
+      <stop offset="0.27452311" id="stop6653" stop-color="#555753" stop-opacity="1"/>
+      <stop id="stop6655" offset="0.29490501" stop-color="#eeeeec" stop-opacity="0.49803922"/>
+      <stop offset="0.34954464" id="stop6657" stop-color="#555753" stop-opacity="1"/>
+      <stop id="stop6659" offset="0.36960241" stop-color="#eeeeec" stop-opacity="0.49803922"/>
+      <stop offset="0.4220143" id="stop6675" stop-color="#555753" stop-opacity="1"/>
+      <stop id="stop6677" offset="0.44345734" stop-color="#eeeeec" stop-opacity="0.49803922"/>
+      <stop offset="0.50078195" id="stop6679" stop-color="#555753" stop-opacity="1"/>
+      <stop id="stop6681" offset="0.52629334" stop-color="#eeeeec" stop-opacity="0.49803922"/>
+      <stop offset="0.57410157" id="stop6683" stop-color="#555753" stop-opacity="1"/>
+      <stop id="stop6693" offset="0.5898369" stop-color="#eeeeec" stop-opacity="0.49803922"/>
+      <stop offset="0.64333093" id="stop6695" stop-color="#555753" stop-opacity="1"/>
+      <stop id="stop6697" offset="0.66151941" stop-color="#eeeeec" stop-opacity="0.49803922"/>
+      <stop offset="0.70865703" id="stop6699" stop-color="#555753" stop-opacity="1"/>
+      <stop id="stop6701" offset="0.72415513" stop-color="#eeeeec" stop-opacity="0.49803922"/>
+      <stop offset="1" id="stop6661" stop-color="#555753" stop-opacity="1"/>
     </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient6685">
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="0"
-         id="stop6687" />
-      <stop
-         style="stop-color:#000000;stop-opacity:0;"
-         offset="1"
-         id="stop6689" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient6631">
-      <stop
-         style="stop-color:#555753;stop-opacity:1;"
-         offset="0"
-         id="stop6633" />
-      <stop
-         id="stop6639"
-         offset="0.0343047"
-         style="stop-color:#eeeeec;stop-opacity:0.49803922;" />
-      <stop
-         style="stop-color:#555753;stop-opacity:1;"
-         offset="0.06714281"
-         id="stop6641" />
-      <stop
-         id="stop6643"
-         offset="0.08441304"
-         style="stop-color:#eeeeec;stop-opacity:0.49803922;" />
-      <stop
-         style="stop-color:#555753;stop-opacity:1;"
-         offset="0.13726114"
-         id="stop6645" />
-      <stop
-         id="stop6647"
-         offset="0.15779018"
-         style="stop-color:#eeeeec;stop-opacity:0.49803922;" />
-      <stop
-         style="stop-color:#555753;stop-opacity:1;"
-         offset="0.21104114"
-         id="stop6649" />
-      <stop
-         id="stop6651"
-         offset="0.23053712"
-         style="stop-color:#eeeeec;stop-opacity:0.49803922;" />
-      <stop
-         style="stop-color:#555753;stop-opacity:1;"
-         offset="0.27452311"
-         id="stop6653" />
-      <stop
-         id="stop6655"
-         offset="0.29490501"
-         style="stop-color:#eeeeec;stop-opacity:0.49803922;" />
-      <stop
-         style="stop-color:#555753;stop-opacity:1;"
-         offset="0.34954464"
-         id="stop6657" />
-      <stop
-         id="stop6659"
-         offset="0.36960241"
-         style="stop-color:#eeeeec;stop-opacity:0.49803922;" />
-      <stop
-         style="stop-color:#555753;stop-opacity:1;"
-         offset="0.4220143"
-         id="stop6675" />
-      <stop
-         id="stop6677"
-         offset="0.44345734"
-         style="stop-color:#eeeeec;stop-opacity:0.49803922;" />
-      <stop
-         style="stop-color:#555753;stop-opacity:1;"
-         offset="0.50078195"
-         id="stop6679" />
-      <stop
-         id="stop6681"
-         offset="0.52629334"
-         style="stop-color:#eeeeec;stop-opacity:0.49803922;" />
-      <stop
-         style="stop-color:#555753;stop-opacity:1;"
-         offset="0.57410157"
-         id="stop6683" />
-      <stop
-         id="stop6693"
-         offset="0.5898369"
-         style="stop-color:#eeeeec;stop-opacity:0.49803922;" />
-      <stop
-         style="stop-color:#555753;stop-opacity:1;"
-         offset="0.64333093"
-         id="stop6695" />
-      <stop
-         id="stop6697"
-         offset="0.66151941"
-         style="stop-color:#eeeeec;stop-opacity:0.49803922;" />
-      <stop
-         style="stop-color:#555753;stop-opacity:1;"
-         offset="0.70865703"
-         id="stop6699" />
-      <stop
-         id="stop6701"
-         offset="0.72415513"
-         style="stop-color:#eeeeec;stop-opacity:0.49803922;" />
-      <stop
-         style="stop-color:#555753;stop-opacity:1;"
-         offset="1"
-         id="stop6661" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient15161">
-      <stop
-         style="stop-color:#c3b49d;stop-opacity:0.3539823;"
-         offset="0"
-         id="stop15163" />
-      <stop
-         id="stop9310"
-         offset="1"
-         style="stop-color:#dcd070;stop-opacity:1;" />
-    </linearGradient>
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 526.18109 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="744.09448 : 526.18109 : 1"
-       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
-       id="perspective14361" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient15161"
-       id="linearGradient15167"
-       x1="21.285088"
-       y1="33.110512"
-       x2="21.285088"
-       y2="-0.0017124993"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.9479167,0,0,0.9479167,1.2500007,1.2500003)" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient15161"
-       id="linearGradient15250"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.9479167,0,0,0.9479167,1.2500007,1.2500003)"
-       x1="21.285088"
-       y1="33.110512"
-       x2="21.285088"
-       y2="-0.0017124993" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6631"
-       id="linearGradient6637"
-       x1="-0.52151477"
-       y1="29.500589"
-       x2="18.516363"
-       y2="14.809909"
-       gradientUnits="userSpaceOnUse" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6685"
-       id="radialGradient6691"
-       cx="122"
-       cy="401.95938"
-       fx="122"
-       fy="401.95938"
-       r="6.7283827"
-       gradientTransform="matrix(-0.5944965,-3.8328271e-7,4.1781509e-7,-0.6480585,194.52841,528.49324)"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6728"
-       id="linearGradient6734"
-       x1="15.072129"
-       y1="21.263441"
-       x2="17.008948"
-       y2="21.263441"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6728"
-       id="linearGradient6742"
-       x1="15.133464"
-       y1="32.587334"
-       x2="17.008692"
-       y2="32.587334"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6746"
-       id="linearGradient6752"
-       x1="15.526249"
-       y1="2.097311"
-       x2="15.526249"
-       y2="14.758003"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6764"
-       id="linearGradient6770"
-       x1="11.884123"
-       y1="10.724713"
-       x2="6.123559"
-       y2="29.316263"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6772"
-       id="linearGradient6778"
-       x1="7.8838124"
-       y1="18.558826"
-       x2="7.8838124"
-       y2="34.97258"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6825"
-       id="linearGradient6831"
-       x1="37.997959"
-       y1="18.245197"
-       x2="37.997959"
-       y2="39.658928"
-       gradientUnits="userSpaceOnUse" />
-    <pattern
-       patternUnits="userSpaceOnUse"
-       width="45.991676"
-       height="45.991676"
-       patternTransform="translate(-0.532328,52.691734)"
-       id="pattern7396">
-      <rect
-         y="0"
-         x="0"
-         height="45.991676"
-         width="45.991676"
-         id="rect15159"
-         style="fill:url(#linearGradient7399);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
-    </pattern>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient15161"
-       id="linearGradient7399"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.9479167,0,0,0.9479167,0.2458325,0.2458356)"
-       x1="21.285088"
-       y1="33.110512"
-       x2="21.285088"
-       y2="-0.0017124993" />
-    <filter
-       id="filter8124"
-       inkscape:label="filter1"
-       width="11.589999999999989" />
-    <filter
-       id="filter8126"
-       inkscape:label="filter2" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient9362"
-       id="linearGradient9360"
-       x1="8.5806656"
-       y1="20.995518"
-       x2="8.5806656"
-       y2="23.085056"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient9362"
-       id="linearGradient9370"
-       gradientUnits="userSpaceOnUse"
-       x1="8.5806656"
-       y1="20.995518"
-       x2="8.5806656"
-       y2="23.085056"
-       gradientTransform="translate(25.006402,2.9778958e-7)" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient9362"
-       id="linearGradient9374"
-       gradientUnits="userSpaceOnUse"
-       x1="8.5806656"
-       y1="20.995518"
-       x2="8.5806656"
-       y2="23.085056"
-       gradientTransform="translate(35.006405,2.9778958e-7)" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient9810"
-       id="linearGradient9981"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,4.6999999,18,-122.2)"
-       x1="96"
-       y1="36"
-       x2="96"
-       y2="30" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient9810"
-       id="linearGradient9983"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.6289807,90.020139,-27.933112)"
-       x1="6.0670195"
-       y1="46"
-       x2="6.0670195"
-       y2="20.59375" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient9810"
-       id="linearGradient9985"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.6289807,93.329052,-27.775305)"
-       x1="14.197642"
-       y1="46"
-       x2="14.197642"
-       y2="20.593699" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient9810"
-       id="linearGradient9987"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.6289807,96.870945,-27.775305)"
-       x1="23.1"
-       y1="46"
-       x2="23.1"
-       y2="20.592798" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient9810"
-       id="linearGradient9989"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.6289807,99.712841,-27.775305)"
-       x1="32.200001"
-       y1="46"
-       x2="32.200001"
-       y2="20.59375" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient7010"
-       id="radialGradient6968"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.2893727,-0.2474294,0.6139915,0.7180729,9.91225,5.2335615)"
-       cx="17.055056"
-       cy="3.5953908"
-       fx="17.055056"
-       fy="3.5953908"
-       r="24" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient9810"
-       id="linearGradient6977"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,4.6999999,-72,-123.2)"
-       x1="96"
-       y1="35.333096"
-       x2="96"
-       y2="30" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient9810"
-       id="linearGradient6979"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.6289807,2.0139e-2,-28.933112)"
-       x1="6.0670195"
-       y1="46"
-       x2="6.0670195"
-       y2="20.59375" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient9810"
-       id="linearGradient6981"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.6289807,3.329052,-28.775305)"
-       x1="14.197642"
-       y1="46"
-       x2="14.197642"
-       y2="20.593699" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient9810"
-       id="linearGradient6983"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.6289807,6.870945,-28.775305)"
-       x1="23.1"
-       y1="46"
-       x2="23.1"
-       y2="20.592798" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient9810"
-       id="linearGradient6985"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.6289807,9.712841,-28.775305)"
-       x1="32.200001"
-       y1="46"
-       x2="32.200001"
-       y2="20.59375" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6825"
-       id="linearGradient7066"
-       gradientUnits="userSpaceOnUse"
-       x1="37.997959"
-       y1="18.245197"
-       x2="37.997959"
-       y2="39.658928" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6772"
-       id="linearGradient7068"
-       gradientUnits="userSpaceOnUse"
-       x1="7.8838124"
-       y1="18.558826"
-       x2="7.8838124"
-       y2="34.97258" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6728"
-       id="linearGradient7070"
-       gradientUnits="userSpaceOnUse"
-       x1="15.133464"
-       y1="32.587334"
-       x2="17.008692"
-       y2="32.587334" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6631"
-       id="linearGradient7072"
-       gradientUnits="userSpaceOnUse"
-       x1="-0.52151477"
-       y1="29.500589"
-       x2="18.516363"
-       y2="14.809909" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6685"
-       id="radialGradient7074"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.5944965,-3.8328271e-7,4.1781509e-7,-0.6480585,194.52841,528.49324)"
-       cx="122"
-       cy="401.95938"
-       fx="122"
-       fy="401.95938"
-       r="6.7283827" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6728"
-       id="linearGradient7076"
-       gradientUnits="userSpaceOnUse"
-       x1="15.072129"
-       y1="21.263441"
-       x2="17.008948"
-       y2="21.263441" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6746"
-       id="linearGradient7078"
-       gradientUnits="userSpaceOnUse"
-       x1="15.526249"
-       y1="2.097311"
-       x2="15.526249"
-       y2="14.758003" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6764"
-       id="linearGradient7080"
-       gradientUnits="userSpaceOnUse"
-       x1="11.884123"
-       y1="10.724713"
-       x2="6.123559"
-       y2="29.316263" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient9362"
-       id="linearGradient7082"
-       gradientUnits="userSpaceOnUse"
-       x1="8.5806656"
-       y1="20.995518"
-       x2="8.5806656"
-       y2="23.085056" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient9362"
-       id="linearGradient7084"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(25.006402,2.9778958e-7)"
-       x1="8.5806656"
-       y1="20.995518"
-       x2="8.5806656"
-       y2="23.085056" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient9362"
-       id="linearGradient7086"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(35.006405,2.9778958e-7)"
-       x1="8.5806656"
-       y1="20.995518"
-       x2="8.5806656"
-       y2="23.085056" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6825"
-       id="linearGradient7132"
-       gradientUnits="userSpaceOnUse"
-       x1="37.997959"
-       y1="18.245197"
-       x2="37.997959"
-       y2="39.658928" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6772"
-       id="linearGradient7134"
-       gradientUnits="userSpaceOnUse"
-       x1="7.8838124"
-       y1="18.558826"
-       x2="7.8838124"
-       y2="34.97258" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6728"
-       id="linearGradient7136"
-       gradientUnits="userSpaceOnUse"
-       x1="15.133464"
-       y1="32.587334"
-       x2="17.008692"
-       y2="32.587334" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6631"
-       id="linearGradient7138"
-       gradientUnits="userSpaceOnUse"
-       x1="-0.52151477"
-       y1="29.500589"
-       x2="18.516363"
-       y2="14.809909" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6685"
-       id="radialGradient7140"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.5944965,-3.8328271e-7,4.1781509e-7,-0.6480585,194.52841,528.49324)"
-       cx="122"
-       cy="401.95938"
-       fx="122"
-       fy="401.95938"
-       r="6.7283827" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6728"
-       id="linearGradient7142"
-       gradientUnits="userSpaceOnUse"
-       x1="15.072129"
-       y1="21.263441"
-       x2="17.008948"
-       y2="21.263441" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6746"
-       id="linearGradient7144"
-       gradientUnits="userSpaceOnUse"
-       x1="15.526249"
-       y1="2.097311"
-       x2="15.526249"
-       y2="14.758003" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6764"
-       id="linearGradient7146"
-       gradientUnits="userSpaceOnUse"
-       x1="11.884123"
-       y1="10.724713"
-       x2="6.123559"
-       y2="29.316263" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient9362"
-       id="linearGradient7148"
-       gradientUnits="userSpaceOnUse"
-       x1="8.5806656"
-       y1="20.995518"
-       x2="8.5806656"
-       y2="23.085056" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient9362"
-       id="linearGradient7150"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(25.006402,2.9778958e-7)"
-       x1="8.5806656"
-       y1="20.995518"
-       x2="8.5806656"
-       y2="23.085056" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient9362"
-       id="linearGradient7152"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(35.006405,2.9778958e-7)"
-       x1="8.5806656"
-       y1="20.995518"
-       x2="8.5806656"
-       y2="23.085056" />
-    <filter
-       inkscape:collect="always"
-       id="filter7663"
-       x="-0.1147047"
-       width="1.2294094"
-       y="-0.12580788"
-       height="1.2516158">
-      <feGaussianBlur
-         inkscape:collect="always"
-         stdDeviation="2.2006423"
-         id="feGaussianBlur7665" />
+    <radialGradient xlink:href="#linearGradient7010" id="radialGradient6968" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.2893727,-0.2474294,0.6139915,0.7180729,9.91225,5.2335615)" cx="17.055056" cy="3.5953908" fx="17.055056" fy="3.5953908" r="24"/>
+    <linearGradient xlink:href="#linearGradient6825" id="linearGradient7066" gradientUnits="userSpaceOnUse" x1="37.997959" y1="18.245197" x2="37.997959" y2="39.658928"/>
+    <linearGradient xlink:href="#linearGradient6772" id="linearGradient7068" gradientUnits="userSpaceOnUse" x1="7.8838124" y1="18.558826" x2="7.8838124" y2="34.97258"/>
+    <linearGradient xlink:href="#linearGradient6728" id="linearGradient7070" gradientUnits="userSpaceOnUse" x1="15.133464" y1="32.587334" x2="17.008692" y2="32.587334"/>
+    <linearGradient xlink:href="#linearGradient6631" id="linearGradient7072" gradientUnits="userSpaceOnUse" x1="-0.52151477" y1="29.500589" x2="18.516363" y2="14.809909"/>
+    <radialGradient xlink:href="#linearGradient6685" id="radialGradient7074" gradientUnits="userSpaceOnUse" gradientTransform="matrix(-0.5944965,-3.8328271e-7,4.1781509e-7,-0.6480585,194.52841,528.49324)" cx="122" cy="401.95938" fx="122" fy="401.95938" r="6.7283827"/>
+    <linearGradient xlink:href="#linearGradient6728" id="linearGradient7076" gradientUnits="userSpaceOnUse" x1="15.072129" y1="21.263441" x2="17.008948" y2="21.263441"/>
+    <linearGradient xlink:href="#linearGradient6746" id="linearGradient7078" gradientUnits="userSpaceOnUse" x1="15.526249" y1="2.097311" x2="15.526249" y2="14.758003"/>
+    <linearGradient xlink:href="#linearGradient6764" id="linearGradient7080" gradientUnits="userSpaceOnUse" x1="11.884123" y1="10.724713" x2="6.123559" y2="29.316263"/>
+    <linearGradient xlink:href="#linearGradient9362" id="linearGradient7082" gradientUnits="userSpaceOnUse" x1="8.5806656" y1="20.995518" x2="8.5806656" y2="23.085056"/>
+    <linearGradient xlink:href="#linearGradient9362" id="linearGradient7084" gradientUnits="userSpaceOnUse" gradientTransform="translate(25.006402,2.9778958e-7)" x1="8.5806656" y1="20.995518" x2="8.5806656" y2="23.085056"/>
+    <linearGradient xlink:href="#linearGradient9362" id="linearGradient7086" gradientUnits="userSpaceOnUse" gradientTransform="translate(35.006405,2.9778958e-7)" x1="8.5806656" y1="20.995518" x2="8.5806656" y2="23.085056"/>
+    <linearGradient xlink:href="#linearGradient6825" id="linearGradient7132" gradientUnits="userSpaceOnUse" x1="37.997959" y1="18.245197" x2="37.997959" y2="39.658928"/>
+    <linearGradient xlink:href="#linearGradient6772" id="linearGradient7134" gradientUnits="userSpaceOnUse" x1="7.8838124" y1="18.558826" x2="7.8838124" y2="34.97258"/>
+    <linearGradient xlink:href="#linearGradient6728" id="linearGradient7136" gradientUnits="userSpaceOnUse" x1="15.133464" y1="32.587334" x2="17.008692" y2="32.587334"/>
+    <linearGradient xlink:href="#linearGradient6631" id="linearGradient7138" gradientUnits="userSpaceOnUse" x1="-0.52151477" y1="29.500589" x2="18.516363" y2="14.809909"/>
+    <radialGradient xlink:href="#linearGradient6685" id="radialGradient7140" gradientUnits="userSpaceOnUse" gradientTransform="matrix(-0.5944965,-3.8328271e-7,4.1781509e-7,-0.6480585,194.52841,528.49324)" cx="122" cy="401.95938" fx="122" fy="401.95938" r="6.7283827"/>
+    <linearGradient xlink:href="#linearGradient6728" id="linearGradient7142" gradientUnits="userSpaceOnUse" x1="15.072129" y1="21.263441" x2="17.008948" y2="21.263441"/>
+    <linearGradient xlink:href="#linearGradient6746" id="linearGradient7144" gradientUnits="userSpaceOnUse" x1="15.526249" y1="2.097311" x2="15.526249" y2="14.758003"/>
+    <linearGradient xlink:href="#linearGradient6764" id="linearGradient7146" gradientUnits="userSpaceOnUse" x1="11.884123" y1="10.724713" x2="6.123559" y2="29.316263"/>
+    <linearGradient xlink:href="#linearGradient9362" id="linearGradient7148" gradientUnits="userSpaceOnUse" x1="8.5806656" y1="20.995518" x2="8.5806656" y2="23.085056"/>
+    <linearGradient xlink:href="#linearGradient9362" id="linearGradient7150" gradientUnits="userSpaceOnUse" gradientTransform="translate(25.006402,2.9778958e-7)" x1="8.5806656" y1="20.995518" x2="8.5806656" y2="23.085056"/>
+    <linearGradient xlink:href="#linearGradient9362" id="linearGradient7152" gradientUnits="userSpaceOnUse" gradientTransform="translate(35.006405,2.9778958e-7)" x1="8.5806656" y1="20.995518" x2="8.5806656" y2="23.085056"/>
+    <filter id="filter7663" x="-0.1147047" width="1.2294094" y="-0.12580788" height="1.2516158">
+      <feGaussianBlur stdDeviation="2.2006423" id="feGaussianBlur7665"/>
     </filter>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient9810"
-       id="linearGradient7668"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.6289807,9.712841,-28.775305)"
-       x1="32.200001"
-       y1="46"
-       x2="32.200001"
-       y2="20.59375" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient9810"
-       id="linearGradient7671"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.6289807,6.870945,-28.775305)"
-       x1="23.1"
-       y1="46"
-       x2="23.1"
-       y2="32.256355" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient9810"
-       id="linearGradient7674"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.6289807,3.329052,-28.775305)"
-       x1="14.197642"
-       y1="46"
-       x2="14.197642"
-       y2="20.593699" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient9810"
-       id="linearGradient7677"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.6289807,2.0139e-2,-28.933112)"
-       x1="6.0670195"
-       y1="46"
-       x2="6.0670195"
-       y2="33.256096" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8371"
-       id="linearGradient8377"
-       x1="24"
-       y1="45.998173"
-       x2="24"
-       y2="2.0644991"
-       gradientUnits="userSpaceOnUse" />
+    <linearGradient xlink:href="#linearGradient8371" id="linearGradient8377" x1="24" y1="45.998173" x2="24" y2="2.0644991" gradientUnits="userSpaceOnUse"/>
   </defs>
-  <metadata
-     id="metadata14358">
+  <metadata id="metadata14358">
     <rdf:RDF>
-      <cc:Work
-         rdf:about="">
+      <cc:Work rdf:about="">
         <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
       </cc:Work>
     </rdf:RDF>
   </metadata>
-  <g
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     id="layer1">
-    <rect
-       style="fill:url(#radialGradient6968);fill-opacity:1;fill-rule:evenodd;stroke:#132c50;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect14363"
-       width="47"
-       height="47"
-       x="0.5"
-       y="0.5" />
-    <g
-       id="g7018"
-       transform="translate(-1.6037056e-2,3.090275e-2)">
-      <path
-         sodipodi:nodetypes="cccccccccccccccccc"
-         id="path7020"
-         d="M 1.5112736,46.463508 L 46.518528,46.463508 L 46.518528,20.097311 L 42.49936,11.994593 L 37.997439,20.097311 L 33.503201,11.994593 L 29.51269,20.097311 L 29.51269,40.518226 L 17.513556,40.518226 L 17.513556,15.979513 L 18.991385,15.979513 L 15.625234,5.482499 L 11.994559,15.979622 L 13.487574,15.979622 L 13.487574,22.494238 L 8.5736236,16.493825 L 1.5112736,16.493825 L 1.5112736,46.463508 z"
-         style="fill:#888a85;fill-rule:evenodd;stroke:#888a85;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" />
-      <path
-         sodipodi:nodetypes="cccccccc"
-         id="path7022"
-         d="M 46.499202,19.996278 L 46.499164,39.496968 L 29.497928,39.514749 L 29.496716,20.073218 L 33.471729,13.30179 L 37.969149,19.742327 L 42.464705,13.30179 L 46.499202,19.996278 z"
-         style="fill:url(#linearGradient7066);fill-opacity:1;fill-rule:evenodd;stroke:#331f00;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" />
-      <path
-         sodipodi:nodetypes="ccc"
-         id="path7024"
-         d="M 30.4991,19.359794 L 30.495194,38.512814 L 45.998784,38.497189"
-         style="opacity:0.25;fill:none;fill-rule:evenodd;stroke:#eeeeec;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <rect
-         y="14.973112"
-         x="13.484319"
-         height="24.544136"
-         width="4.027225"
-         id="rect7026"
-         style="fill:#eeeeec;fill-opacity:1;fill-rule:evenodd;stroke:#2e3436;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
-      <rect
-         y="25.958162"
-         x="1.5003295"
-         height="13.560402"
-         width="14.000328"
-         id="rect7028"
-         style="fill:url(#linearGradient7068);fill-opacity:1;fill-rule:evenodd;stroke:#2e3436;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
-      <path
-         sodipodi:nodetypes="ccccc"
-         id="path7030"
-         d="M 16.000204,26.158288 L 17.008692,26.165076 L 17.006997,39.016383 L 16.000204,39.016383 L 16.000204,26.158288 z"
-         style="fill:url(#linearGradient7070);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
-      <path
-         sodipodi:nodetypes="ccccc"
-         id="path7032"
-         d="M 1.5018555,16.471187 L 1.5018555,26.192359 L 16.519497,26.192359 L 8.5470601,16.471187 L 1.5018555,16.471187 z"
-         style="fill:#7f4f01;fill-opacity:1;fill-rule:evenodd;stroke:#392100;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" />
-      <path
-         sodipodi:nodetypes="ccccccccc"
-         id="path7034"
-         d="M 46.494238,19.981528 L 42.46863,15.428034 L 37.978753,20.107557 L 33.495519,15.782001 L 28.445309,22.028089 L 33.475653,11.989135 L 37.973073,19.908885 L 42.468629,12.0045 L 46.494238,19.981528 z"
-         style="fill:#d3d7cf;fill-rule:evenodd;stroke:#d3d7cf;stroke-width:1.10000002;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
-      <path
-         sodipodi:nodetypes="ccccc"
-         id="path7036"
-         d="M 1.9983315,16.96932 L 1.9983315,25.690091 L 15.466816,25.690091 L 8.3170492,16.96932 L 1.9983315,16.96932 z"
-         style="opacity:0.5;fill:url(#linearGradient7072);fill-opacity:1;fill-rule:evenodd;stroke:url(#radialGradient7074);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" />
-      <path
-         sodipodi:nodetypes="cccc"
-         id="path7038"
-         d="M 15.632485,5.4903604 L 12.001677,15.991016 L 19.003769,15.992368 L 15.632485,5.4903604 z"
-         style="fill:#532323;fill-opacity:1;fill-rule:evenodd;stroke:#2a1111;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" />
-      <path
-         sodipodi:nodetypes="ccccscc"
-         id="path7040"
-         d="M 13.983416,22.32144 L 13.983416,16.492941 L 17.007669,16.492941 L 17.007669,21.219904 L 17.008948,26.033783 C 17.008949,26.039055 16.935124,25.911261 16.894583,25.856332 L 13.983416,22.32144 z"
-         style="fill:url(#linearGradient7076);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
-      <path
-         sodipodi:nodetypes="cccc"
-         id="path7042"
-         d="M 15.595391,8.6350832 L 13.413573,14.980794 L 17.638924,14.980794 L 15.595391,8.6350832 z"
-         style="opacity:0.5;fill:none;fill-rule:evenodd;stroke:url(#linearGradient7078);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <path
-         sodipodi:nodetypes="cccc"
-         id="path7044"
-         d="M 1.9974392,25.190652 L 14.412292,25.190652 L 8.0819463,17.470171 L 2.0013455,17.470171"
-         style="opacity:0.5;fill:none;fill-rule:evenodd;stroke:url(#linearGradient7080);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <g
-         style="fill:#fce94f"
-         id="g7046">
-        <rect
-           style="fill:#fce94f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-           id="rect7048"
-           width="2"
-           height="2"
-           x="30.999861"
-           y="22.002562" />
-        <rect
-           style="fill:#fce94f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-           id="rect7050"
-           width="2"
-           height="2"
-           x="34.001801"
-           y="22.000923" />
-        <rect
-           style="fill:#fce94f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-           id="rect7052"
-           width="2"
-           height="2"
-           x="40.997707"
-           y="22.000923" />
-        <rect
-           style="fill:#fce94f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-           id="rect7054"
-           width="2"
-           height="2"
-           x="9.0004454"
-           y="22.002562" />
-        <rect
-           style="fill:#fce94f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-           id="rect7056"
-           width="2"
-           height="2"
-           x="6.0018048"
-           y="22.002562" />
+  <g id="layer1">
+    <rect width="47" height="47" x="0.5" y="0.5" fill="url(#radialGradient6968)" fill-opacity="1" fill-rule="evenodd" stroke="#132c50" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/>
+    <g transform="translate(-1.6037056e-2,3.090275e-2)">
+      <path d="M 1.5112736,46.463508 L 46.518528,46.463508 L 46.518528,20.097311 L 42.49936,11.994593 L 37.997439,20.097311 L 33.503201,11.994593 L 29.51269,20.097311 L 29.51269,40.518226 L 17.513556,40.518226 L 17.513556,15.979513 L 18.991385,15.979513 L 15.625234,5.482499 L 11.994559,15.979622 L 13.487574,15.979622 L 13.487574,22.494238 L 8.5736236,16.493825 L 1.5112736,16.493825 L 1.5112736,46.463508 z" fill="#888a85" fill-rule="evenodd" stroke="#888a85" stroke-width="1px" stroke-linecap="butt" stroke-linejoin="round" stroke-opacity="1"/>
+      <path d="M 46.499202,19.996278 L 46.499164,39.496968 L 29.497928,39.514749 L 29.496716,20.073218 L 33.471729,13.30179 L 37.969149,19.742327 L 42.464705,13.30179 L 46.499202,19.996278 z" fill="url(#linearGradient7066)" fill-opacity="1" fill-rule="evenodd" stroke="#331f00" stroke-width="1px" stroke-linecap="round" stroke-linejoin="miter" stroke-opacity="1"/>
+      <path d="M 30.4991,19.359794 L 30.495194,38.512814 L 45.998784,38.497189" opacity="0.25" fill="none" fill-rule="evenodd" stroke="#eeeeec" stroke-width="1px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1"/>
+      <rect y="14.973112" x="13.484319" height="24.544136" width="4.027225" fill="#eeeeec" fill-opacity="1" fill-rule="evenodd" stroke="#2e3436" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/>
+      <rect y="25.958162" x="1.5003295" height="13.560402" width="14.000328" fill="url(#linearGradient7068)" fill-opacity="1" fill-rule="evenodd" stroke="#2e3436" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/>
+      <path d="M 16.000204,26.158288 L 17.008692,26.165076 L 17.006997,39.016383 L 16.000204,39.016383 L 16.000204,26.158288 z" fill="url(#linearGradient7070)" fill-opacity="1" fill-rule="evenodd" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/>
+      <path d="M 1.5018555,16.471187 L 1.5018555,26.192359 L 16.519497,26.192359 L 8.5470601,16.471187 L 1.5018555,16.471187 z" fill="#7f4f01" fill-opacity="1" fill-rule="evenodd" stroke="#392100" stroke-width="1px" stroke-linecap="butt" stroke-linejoin="round" stroke-opacity="1"/>
+      <path d="M 46.494238,19.981528 L 42.46863,15.428034 L 37.978753,20.107557 L 33.495519,15.782001 L 28.445309,22.028089 L 33.475653,11.989135 L 37.973073,19.908885 L 42.468629,12.0045 L 46.494238,19.981528 z" fill="#d3d7cf" fill-rule="evenodd" stroke="#d3d7cf" stroke-width="1.10000002" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="4" stroke-dasharray="none" stroke-opacity="1"/>
+      <path d="M 1.9983315,16.96932 L 1.9983315,25.690091 L 15.466816,25.690091 L 8.3170492,16.96932 L 1.9983315,16.96932 z" opacity="0.5" fill="url(#linearGradient7072)" fill-opacity="1" fill-rule="evenodd" stroke="url(#radialGradient7074)" stroke-width="1px" stroke-linecap="butt" stroke-linejoin="round" stroke-opacity="1"/>
+      <path d="M 15.632485,5.4903604 L 12.001677,15.991016 L 19.003769,15.992368 L 15.632485,5.4903604 z" fill="#532323" fill-opacity="1" fill-rule="evenodd" stroke="#2a1111" stroke-width="1px" stroke-linecap="butt" stroke-linejoin="round" stroke-opacity="1"/>
+      <path d="M 13.983416,22.32144 L 13.983416,16.492941 L 17.007669,16.492941 L 17.007669,21.219904 L 17.008948,26.033783 C 17.008949,26.039055 16.935124,25.911261 16.894583,25.856332 L 13.983416,22.32144 z" fill="url(#linearGradient7076)" fill-opacity="1" fill-rule="evenodd" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/>
+      <path d="M 15.595391,8.6350832 L 13.413573,14.980794 L 17.638924,14.980794 L 15.595391,8.6350832 z" opacity="0.5" fill="none" fill-rule="evenodd" stroke="url(#linearGradient7078)" stroke-width="1px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1"/>
+      <path d="M 1.9974392,25.190652 L 14.412292,25.190652 L 8.0819463,17.470171 L 2.0013455,17.470171" opacity="0.5" fill="none" fill-rule="evenodd" stroke="url(#linearGradient7080)" stroke-width="1px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1"/>
+      <g fill="#fce94f">
+        <rect width="2" height="2" x="30.999861" y="22.002562" fill="#fce94f" fill-opacity="1" fill-rule="evenodd" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="round" stroke-miterlimit="4" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/>
+        <rect width="2" height="2" x="34.001801" y="22.000923" fill="#fce94f" fill-opacity="1" fill-rule="evenodd" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="round" stroke-miterlimit="4" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/>
+        <rect width="2" height="2" x="40.997707" y="22.000923" fill="#fce94f" fill-opacity="1" fill-rule="evenodd" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="round" stroke-miterlimit="4" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/>
+        <rect width="2" height="2" x="9.0004454" y="22.002562" fill="#fce94f" fill-opacity="1" fill-rule="evenodd" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="round" stroke-miterlimit="4" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/>
+        <rect width="2" height="2" x="6.0018048" y="22.002562" fill="#fce94f" fill-opacity="1" fill-rule="evenodd" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="round" stroke-miterlimit="4" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/>
       </g>
-      <g
-         id="g7058">
-        <path
-           style="fill:url(#linearGradient7082);fill-opacity:1;fill-rule:evenodd;stroke:#392100;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1"
-           d="M 4.4711906,23.06274 L 5.7618436,21.495518 L 11.216391,21.495518 L 12.507043,23.06274"
-           id="path7060"
-           sodipodi:nodetypes="cccc" />
-        <path
-           style="fill:url(#linearGradient7084);fill-opacity:1;fill-rule:evenodd;stroke:#392100;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1"
-           d="M 29.477593,23.06274 L 30.768246,21.495518 L 36.222793,21.495518 L 37.513445,23.06274"
-           id="path7062"
-           sodipodi:nodetypes="cccc" />
-        <path
-           style="fill:url(#linearGradient7086);fill-opacity:1;fill-rule:evenodd;stroke:#392100;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1"
-           d="M 39.477596,23.06274 L 40.768249,21.495518 L 43.203584,21.495518 L 44.822027,23.06274"
-           id="path7064"
-           sodipodi:nodetypes="cccc" />
+      <g>
+        <path d="M 4.4711906,23.06274 L 5.7618436,21.495518 L 11.216391,21.495518 L 12.507043,23.06274" fill="url(#linearGradient7082)" fill-opacity="1" fill-rule="evenodd" stroke="#392100" stroke-width="1px" stroke-linecap="round" stroke-linejoin="miter" stroke-opacity="1"/>
+        <path d="M 29.477593,23.06274 L 30.768246,21.495518 L 36.222793,21.495518 L 37.513445,23.06274" fill="url(#linearGradient7084)" fill-opacity="1" fill-rule="evenodd" stroke="#392100" stroke-width="1px" stroke-linecap="round" stroke-linejoin="miter" stroke-opacity="1"/>
+        <path d="M 39.477596,23.06274 L 40.768249,21.495518 L 43.203584,21.495518 L 44.822027,23.06274" fill="url(#linearGradient7086)" fill-opacity="1" fill-rule="evenodd" stroke="#392100" stroke-width="1px" stroke-linecap="round" stroke-linejoin="miter" stroke-opacity="1"/>
       </g>
     </g>
-    <g
-       id="g6993"
-       transform="translate(-7.6824584e-3,3.0729835e-2)"
-       style="filter:url(#filter7663);opacity:0.6">
-      <path
-         sodipodi:nodetypes="cccccccccccccccccc"
-         id="path15135"
-         d="M 1.4995548,46.463508 L 46.518528,46.463508 L 46.518528,20.097311 L 42.49936,11.994593 L 37.997439,20.097311 L 33.503201,11.994593 L 29.51269,20.097311 L 29.51269,40.518226 L 17.513556,40.518226 L 17.513556,15.979513 L 18.991385,15.979513 L 15.625234,5.482499 L 11.994559,15.979622 L 13.487574,15.979622 L 13.487574,22.494238 L 8.5736236,16.493825 L 1.4995548,16.493825 L 1.4995548,46.463508 z"
-         style="fill:#888a85;fill-rule:evenodd;stroke:#888a85;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" />
-      <path
-         sodipodi:nodetypes="cccccccc"
-         id="path6819"
-         d="M 46.499202,19.996278 L 46.499164,39.496968 L 29.497928,39.514749 L 29.496716,20.073218 L 33.471729,13.30179 L 37.969149,19.742327 L 42.464705,13.30179 L 46.499202,19.996278 z"
-         style="fill:url(#linearGradient7132);fill-opacity:1;fill-rule:evenodd;stroke:#331f00;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" />
-      <path
-         sodipodi:nodetypes="ccc"
-         id="path6843"
-         d="M 30.4991,19.359794 L 30.495194,38.512814 L 45.998784,38.497189"
-         style="opacity:0.25000000000000000;fill:none;fill-rule:evenodd;stroke:#eeeeec;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <rect
-         y="14.973112"
-         x="13.484319"
-         height="24.544136"
-         width="4.027225"
-         id="rect6714"
-         style="fill:#eeeeec;fill-opacity:1;fill-rule:evenodd;stroke:#2e3436;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
-      <rect
-         y="25.958162"
-         x="1.5003295"
-         height="13.560402"
-         width="14.000328"
-         id="rect6611"
-         style="fill:url(#linearGradient7134);fill-opacity:1;fill-rule:evenodd;stroke:#2e3436;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
-      <path
-         sodipodi:nodetypes="ccccc"
-         id="path6718"
-         d="M 16.000204,26.158288 L 17.008692,26.165076 L 17.006997,39.016383 L 16.000204,39.016383 L 16.000204,26.158288 z"
-         style="fill:url(#linearGradient7136);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
-      <path
-         sodipodi:nodetypes="ccccc"
-         id="path6607"
-         d="M 1.5018555,16.471187 L 1.5018555,26.192359 L 16.519497,26.192359 L 8.5470601,16.471187 L 1.5018555,16.471187 z"
-         style="fill:#7f4f01;fill-opacity:1;fill-rule:evenodd;stroke:#392100;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" />
-      <path
-         sodipodi:nodetypes="ccccccccc"
-         id="path6817"
-         d="M 46.494238,19.981528 L 42.46863,15.428034 L 37.978753,20.107557 L 33.495519,15.782001 L 28.445309,22.028089 L 33.475653,11.989135 L 37.973073,19.908885 L 42.468629,12.0045 L 46.494238,19.981528 z"
-         style="fill:#d3d7cf;fill-rule:evenodd;stroke:#d3d7cf;stroke-width:1.10000002000000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
-      <path
-         sodipodi:nodetypes="ccccc"
-         id="path6629"
-         d="M 1.9983315,16.96932 L 1.9983315,25.690091 L 15.466816,25.690091 L 8.3170492,16.96932 L 1.9983315,16.96932 z"
-         style="opacity:0.50000000000000000;fill:url(#linearGradient7138);fill-opacity:1;fill-rule:evenodd;stroke:url(#radialGradient7140);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" />
-      <path
-         sodipodi:nodetypes="cccc"
-         id="path6712"
-         d="M 15.632485,5.4903604 L 12.001677,15.991016 L 19.003769,15.992368 L 15.632485,5.4903604 z"
-         style="fill:#532323;fill-opacity:1;fill-rule:evenodd;stroke:#2a1111;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" />
-      <path
-         sodipodi:nodetypes="ccccscc"
-         id="path6716"
-         d="M 13.983416,22.32144 L 13.983416,16.492941 L 17.007669,16.492941 L 17.007669,21.219904 L 17.008948,26.033783 C 17.008949,26.039055 16.935124,25.911261 16.894583,25.856332 L 13.983416,22.32144 z"
-         style="fill:url(#linearGradient7142);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
-      <path
-         sodipodi:nodetypes="cccc"
-         id="path6744"
-         d="M 15.595391,8.6350832 L 13.413573,14.980794 L 17.638924,14.980794 L 15.595391,8.6350832 z"
-         style="opacity:0.50000000000000000;fill:none;fill-rule:evenodd;stroke:url(#linearGradient7144);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <path
-         sodipodi:nodetypes="cccc"
-         id="path6754"
-         d="M 1.9974392,25.190652 L 14.412292,25.190652 L 8.0819463,17.470171 L 2.0013455,17.470171"
-         style="opacity:0.50000000000000000;fill:none;fill-rule:evenodd;stroke:url(#linearGradient7146);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <g
-         style="fill:#fce94f"
-         id="g6598">
-        <rect
-           style="fill:#fce94f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-           id="rect15193"
-           width="2"
-           height="2"
-           x="30.999861"
-           y="22.002562" />
-        <rect
-           style="fill:#fce94f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-           id="rect15201"
-           width="2"
-           height="2"
-           x="34.001801"
-           y="22.000923" />
-        <rect
-           style="fill:#fce94f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-           id="rect15213"
-           width="2"
-           height="2"
-           x="40.997707"
-           y="22.000923" />
-        <rect
-           style="fill:#fce94f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-           id="rect15231"
-           width="2"
-           height="2"
-           x="9.0004454"
-           y="22.002562" />
-        <rect
-           style="fill:#fce94f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-           id="rect15235"
-           width="2"
-           height="2"
-           x="6.0018048"
-           y="22.002562" />
+    <g transform="translate(-7.6824584e-3,3.0729835e-2)" filter="url(#filter7663)" opacity="0.6">
+      <path d="M 1.4995548,46.463508 L 46.518528,46.463508 L 46.518528,20.097311 L 42.49936,11.994593 L 37.997439,20.097311 L 33.503201,11.994593 L 29.51269,20.097311 L 29.51269,40.518226 L 17.513556,40.518226 L 17.513556,15.979513 L 18.991385,15.979513 L 15.625234,5.482499 L 11.994559,15.979622 L 13.487574,15.979622 L 13.487574,22.494238 L 8.5736236,16.493825 L 1.4995548,16.493825 L 1.4995548,46.463508 z" fill="#888a85" fill-rule="evenodd" stroke="#888a85" stroke-width="1px" stroke-linecap="butt" stroke-linejoin="round" stroke-opacity="1"/>
+      <path d="M 46.499202,19.996278 L 46.499164,39.496968 L 29.497928,39.514749 L 29.496716,20.073218 L 33.471729,13.30179 L 37.969149,19.742327 L 42.464705,13.30179 L 46.499202,19.996278 z" fill="url(#linearGradient7132)" fill-opacity="1" fill-rule="evenodd" stroke="#331f00" stroke-width="1px" stroke-linecap="round" stroke-linejoin="miter" stroke-opacity="1"/>
+      <path d="M 30.4991,19.359794 L 30.495194,38.512814 L 45.998784,38.497189" opacity="0.25000000000000000" fill="none" fill-rule="evenodd" stroke="#eeeeec" stroke-width="1px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1"/>
+      <rect y="14.973112" x="13.484319" height="24.544136" width="4.027225" fill="#eeeeec" fill-opacity="1" fill-rule="evenodd" stroke="#2e3436" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/>
+      <rect y="25.958162" x="1.5003295" height="13.560402" width="14.000328" fill="url(#linearGradient7134)" fill-opacity="1" fill-rule="evenodd" stroke="#2e3436" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/>
+      <path d="M 16.000204,26.158288 L 17.008692,26.165076 L 17.006997,39.016383 L 16.000204,39.016383 L 16.000204,26.158288 z" fill="url(#linearGradient7136)" fill-opacity="1" fill-rule="evenodd" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/>
+      <path d="M 1.5018555,16.471187 L 1.5018555,26.192359 L 16.519497,26.192359 L 8.5470601,16.471187 L 1.5018555,16.471187 z" fill="#7f4f01" fill-opacity="1" fill-rule="evenodd" stroke="#392100" stroke-width="1px" stroke-linecap="butt" stroke-linejoin="round" stroke-opacity="1"/>
+      <path d="M 46.494238,19.981528 L 42.46863,15.428034 L 37.978753,20.107557 L 33.495519,15.782001 L 28.445309,22.028089 L 33.475653,11.989135 L 37.973073,19.908885 L 42.468629,12.0045 L 46.494238,19.981528 z" fill="#d3d7cf" fill-rule="evenodd" stroke="#d3d7cf" stroke-width="1.10000002000000000" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="4" stroke-dasharray="none" stroke-opacity="1"/>
+      <path d="M 1.9983315,16.96932 L 1.9983315,25.690091 L 15.466816,25.690091 L 8.3170492,16.96932 L 1.9983315,16.96932 z" opacity="0.50000000000000000" fill="url(#linearGradient7138)" fill-opacity="1" fill-rule="evenodd" stroke="url(#radialGradient7140)" stroke-width="1px" stroke-linecap="butt" stroke-linejoin="round" stroke-opacity="1"/>
+      <path d="M 15.632485,5.4903604 L 12.001677,15.991016 L 19.003769,15.992368 L 15.632485,5.4903604 z" fill="#532323" fill-opacity="1" fill-rule="evenodd" stroke="#2a1111" stroke-width="1px" stroke-linecap="butt" stroke-linejoin="round" stroke-opacity="1"/>
+      <path d="M 13.983416,22.32144 L 13.983416,16.492941 L 17.007669,16.492941 L 17.007669,21.219904 L 17.008948,26.033783 C 17.008949,26.039055 16.935124,25.911261 16.894583,25.856332 L 13.983416,22.32144 z" fill="url(#linearGradient7142)" fill-opacity="1" fill-rule="evenodd" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/>
+      <path d="M 15.595391,8.6350832 L 13.413573,14.980794 L 17.638924,14.980794 L 15.595391,8.6350832 z" opacity="0.50000000000000000" fill="none" fill-rule="evenodd" stroke="url(#linearGradient7144)" stroke-width="1px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1"/>
+      <path d="M 1.9974392,25.190652 L 14.412292,25.190652 L 8.0819463,17.470171 L 2.0013455,17.470171" opacity="0.50000000000000000" fill="none" fill-rule="evenodd" stroke="url(#linearGradient7146)" stroke-width="1px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1"/>
+      <g fill="#fce94f">
+        <rect width="2" height="2" x="30.999861" y="22.002562" fill="#fce94f" fill-opacity="1" fill-rule="evenodd" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="round" stroke-miterlimit="4" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/>
+        <rect width="2" height="2" x="34.001801" y="22.000923" fill="#fce94f" fill-opacity="1" fill-rule="evenodd" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="round" stroke-miterlimit="4" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/>
+        <rect width="2" height="2" x="40.997707" y="22.000923" fill="#fce94f" fill-opacity="1" fill-rule="evenodd" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="round" stroke-miterlimit="4" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/>
+        <rect width="2" height="2" x="9.0004454" y="22.002562" fill="#fce94f" fill-opacity="1" fill-rule="evenodd" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="round" stroke-miterlimit="4" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/>
+        <rect width="2" height="2" x="6.0018048" y="22.002562" fill="#fce94f" fill-opacity="1" fill-rule="evenodd" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="round" stroke-miterlimit="4" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/>
       </g>
-      <g
-         id="g6422">
-        <path
-           style="fill:url(#linearGradient7148);fill-opacity:1;fill-rule:evenodd;stroke:#392100;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1"
-           d="M 4.4711906,23.06274 L 5.7618436,21.495518 L 11.216391,21.495518 L 12.507043,23.06274"
-           id="path9350"
-           sodipodi:nodetypes="cccc" />
-        <path
-           style="fill:url(#linearGradient7150);fill-opacity:1;fill-rule:evenodd;stroke:#392100;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1"
-           d="M 29.477593,23.06274 L 30.768246,21.495518 L 36.222793,21.495518 L 37.513445,23.06274"
-           id="path9368"
-           sodipodi:nodetypes="cccc" />
-        <path
-           style="fill:url(#linearGradient7152);fill-opacity:1;fill-rule:evenodd;stroke:#392100;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1"
-           d="M 39.477596,23.06274 L 40.768249,21.495518 L 43.203584,21.495518 L 44.822027,23.06274"
-           id="path9372"
-           sodipodi:nodetypes="cccc" />
+      <g>
+        <path d="M 4.4711906,23.06274 L 5.7618436,21.495518 L 11.216391,21.495518 L 12.507043,23.06274" fill="url(#linearGradient7148)" fill-opacity="1" fill-rule="evenodd" stroke="#392100" stroke-width="1px" stroke-linecap="round" stroke-linejoin="miter" stroke-opacity="1"/>
+        <path d="M 29.477593,23.06274 L 30.768246,21.495518 L 36.222793,21.495518 L 37.513445,23.06274" fill="url(#linearGradient7150)" fill-opacity="1" fill-rule="evenodd" stroke="#392100" stroke-width="1px" stroke-linecap="round" stroke-linejoin="miter" stroke-opacity="1"/>
+        <path d="M 39.477596,23.06274 L 40.768249,21.495518 L 43.203584,21.495518 L 44.822027,23.06274" fill="url(#linearGradient7152)" fill-opacity="1" fill-rule="evenodd" stroke="#392100" stroke-width="1px" stroke-linecap="round" stroke-linejoin="miter" stroke-opacity="1"/>
       </g>
     </g>
-    <rect
-       style="opacity:0.5;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#eeeeec;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect15237"
-       width="45"
-       height="45"
-       x="1.5"
-       y="1.5" />
-    <rect
-       style="opacity:0.5;fill:url(#linearGradient8377);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect9717"
-       width="44"
-       height="43.933674"
-       x="2"
-       y="2.0644991" />
+    <rect width="45" height="45" x="1.5" y="1.5" opacity="0.5" fill="none" fill-opacity="1" fill-rule="evenodd" stroke="#eeeeec" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/>
+    <rect width="44" height="43.933674" x="2" y="2.0644991" opacity="0.5" fill="url(#linearGradient8377)" fill-opacity="1" fill-rule="evenodd" stroke="none" stroke-width="1" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="4" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/>
   </g>
 </svg>
diff --git a/demos/embedded/weatherinfo/icons/weather-icy.svg b/demos/embedded/weatherinfo/icons/weather-icy.svg
index fe42860..2c45b33 100644
--- a/demos/embedded/weatherinfo/icons/weather-icy.svg
+++ b/demos/embedded/weatherinfo/icons/weather-icy.svg
@@ -1,255 +1,51 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="48"
-   height="48"
-   id="svg6619"
-   sodipodi:version="0.32"
-   inkscape:version="0.46"
-   version="1.0"
-   sodipodi:docname="weather-icy.svg"
-   inkscape:output_extension="org.inkscape.output.svg.inkscape">
-  <defs
-     id="defs6621">
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient7440">
-      <stop
-         style="stop-color:#eeeeec;stop-opacity:1;"
-         offset="0"
-         id="stop7442" />
-      <stop
-         style="stop-color:#eeeeec;stop-opacity:0;"
-         offset="1"
-         id="stop7444" />
+<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="48" height="48" id="svg6619" version="1.0">
+  <defs id="defs6621">
+    <linearGradient id="linearGradient7440">
+      <stop offset="0" id="stop7442" stop-color="#eeeeec" stop-opacity="1"/>
+      <stop offset="1" id="stop7444" stop-color="#eeeeec" stop-opacity="0"/>
     </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient7430">
-      <stop
-         style="stop-color:#eeeeec;stop-opacity:1;"
-         offset="0"
-         id="stop7432" />
-      <stop
-         style="stop-color:#eeeeec;stop-opacity:0;"
-         offset="1"
-         id="stop7434" />
+    <linearGradient id="linearGradient7430">
+      <stop offset="0" id="stop7432" stop-color="#eeeeec" stop-opacity="1"/>
+      <stop offset="1" id="stop7434" stop-color="#eeeeec" stop-opacity="0"/>
     </linearGradient>
-    <linearGradient
-       id="linearGradient7392">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop7394" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop7396" />
+    <linearGradient id="linearGradient7392">
+      <stop offset="0" id="stop7394" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop7396" stop-color="#ffffff" stop-opacity="0"/>
     </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient7380">
-      <stop
-         style="stop-color:#cedeef;stop-opacity:1;"
-         offset="0"
-         id="stop7382" />
-      <stop
-         style="stop-color:#cedeef;stop-opacity:0;"
-         offset="1"
-         id="stop7384" />
+    <linearGradient id="linearGradient7380">
+      <stop offset="0" id="stop7382" stop-color="#cedeef" stop-opacity="1"/>
+      <stop offset="1" id="stop7384" stop-color="#cedeef" stop-opacity="0"/>
     </linearGradient>
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 526.18109 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="744.09448 : 526.18109 : 1"
-       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
-       id="perspective6627" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient7380"
-       id="linearGradient7386"
-       x1="18.165867"
-       y1="9.2548895"
-       x2="20.711481"
-       y2="21.572344"
-       gradientUnits="userSpaceOnUse" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient7392"
-       id="radialGradient7398"
-       cx="17.700384"
-       cy="13.797695"
-       fx="17.700384"
-       fy="13.797695"
-       r="1.4135723"
-       gradientTransform="matrix(1,0,0,1.0652174,6.1248392e-7,-0.8998502)"
-       gradientUnits="userSpaceOnUse" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient7392"
-       id="radialGradient7402"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.0652174,6.1248392e-7,-0.8998502)"
-       cx="17.700384"
-       cy="13.797695"
-       fx="17.700384"
-       fy="13.797695"
-       r="1.4135723" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient7430"
-       id="radialGradient7438"
-       cx="10.693982"
-       cy="16.471191"
-       fx="10.693982"
-       fy="16.471191"
-       r="0.553137"
-       gradientTransform="matrix(2.1647007,0,0,0.8888889,-12.455288,1.8301322)"
-       gradientUnits="userSpaceOnUse" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient7440"
-       id="radialGradient7448"
-       cx="10.693982"
-       cy="16.471191"
-       fx="10.693982"
-       fy="16.471191"
-       r="0.553137"
-       gradientTransform="matrix(2.2783611,0,0,0.8888889,-13.670771,1.8301322)"
-       gradientUnits="userSpaceOnUse" />
+    <linearGradient xlink:href="#linearGradient7380" id="linearGradient7386" x1="18.165867" y1="9.2548895" x2="20.711481" y2="21.572344" gradientUnits="userSpaceOnUse"/>
+    <radialGradient xlink:href="#linearGradient7392" id="radialGradient7398" cx="17.700384" cy="13.797695" fx="17.700384" fy="13.797695" r="1.4135723" gradientTransform="matrix(1,0,0,1.0652174,6.1248392e-7,-0.8998502)" gradientUnits="userSpaceOnUse"/>
+    <radialGradient xlink:href="#linearGradient7392" id="radialGradient7402" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1,0,0,1.0652174,6.1248392e-7,-0.8998502)" cx="17.700384" cy="13.797695" fx="17.700384" fy="13.797695" r="1.4135723"/>
+    <radialGradient xlink:href="#linearGradient7430" id="radialGradient7438" cx="10.693982" cy="16.471191" fx="10.693982" fy="16.471191" r="0.553137" gradientTransform="matrix(2.1647007,0,0,0.8888889,-12.455288,1.8301322)" gradientUnits="userSpaceOnUse"/>
+    <radialGradient xlink:href="#linearGradient7440" id="radialGradient7448" cx="10.693982" cy="16.471191" fx="10.693982" fy="16.471191" r="0.553137" gradientTransform="matrix(2.2783611,0,0,0.8888889,-13.670771,1.8301322)" gradientUnits="userSpaceOnUse"/>
   </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     gridtolerance="10000"
-     guidetolerance="10"
-     objecttolerance="10"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="1"
-     inkscape:cx="31.408407"
-     inkscape:cy="30.326192"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     showguides="true"
-     inkscape:guide-bbox="true"
-     inkscape:window-width="982"
-     inkscape:window-height="965"
-     inkscape:window-x="1280"
-     inkscape:window-y="28" />
-  <metadata
-     id="metadata6624">
+  
+  <metadata id="metadata6624">
     <rdf:RDF>
-      <cc:Work
-         rdf:about="">
+      <cc:Work rdf:about="">
         <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
       </cc:Work>
     </rdf:RDF>
   </metadata>
-  <g
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     id="layer1">
-    <g
-       id="g7906">
-      <path
-         id="path7342"
-         d="M 24 10.375 C 11.701921 10.375 1.71875 12.767211 1.71875 15.71875 C 1.71875 17.498261 5.3609075 19.059125 10.9375 20.03125 L 14.3125 46.90625 L 17.9375 26.1875 L 21.3125 41.90625 L 25.5625 23.71875 L 28.03125 37.6875 L 32.3125 22.9375 L 34.84375 33.0625 L 38.375 19.8125 C 43.199321 18.83144 46.28125 17.354051 46.28125 15.71875 C 46.28125 12.767211 36.298079 10.375 24 10.375 z "
-         style="fill:#729fcf;fill-rule:evenodd;stroke:#204a87;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" />
-      <path
-         sodipodi:nodetypes="cssssscssssscscssssszsssssc"
-         id="path7150"
-         d="M 24.013525,20.535861 C 29.915498,20.535861 35.256377,19.860148 39.169775,19.061611 C 41.126474,18.662343 42.702812,18.185066 43.857275,17.628422 C 45.011738,17.071777 45.794775,16.382816 45.794775,15.758562 C 45.794775,15.111496 45.011739,14.383887 43.857275,13.827243 C 42.702811,13.270598 41.126474,12.706404 39.169775,12.307136 C 35.256377,11.508599 29.915498,10.878502 24.013525,10.878502 C 18.111552,10.878502 12.739423,11.552057 8.826025,12.350594 C 6.8693258,12.749862 5.2929887,13.270598 4.138525,13.827243 C 2.9840613,14.383887 2.201025,14.939123 2.201025,15.758562 C 2.201025,16.578001 2.9840613,17.071777 4.138525,17.628422 C 5.2929887,18.185066 6.8693258,18.662343 8.826025,19.061611 M 8.826025,19.061611 C 12.739423,19.860148 18.111552,20.535861 24.013525,20.535861 M 24.013525,11.738416 C 29.832893,11.738416 35.083852,12.397075 38.857275,13.16705 C 40.743987,13.552037 42.268014,14.087721 43.263525,14.567724 C 44.259036,15.047727 44.669775,15.382119 44.669775,15.758562 C 44.669775,16.135005 44.259035,16.407937 43.263525,16.88794 C 42.268015,17.367943 40.743986,17.840596 38.857275,18.225584 C 35.083852,18.995559 29.832893,19.652061 24.013525,19.652061 C 18.194157,19.652061 12.911948,18.995559 9.138525,18.225584 C 7.2518134,17.840596 5.7277856,17.367943 4.732275,16.88794 C 3.7367644,16.407937 3.326025,16.135005 3.326025,15.758562 C 3.326025,15.382119 3.7367644,15.047727 4.732275,14.567724 C 5.7277856,14.087721 7.2518134,13.595495 9.138525,13.210508 C 12.911948,12.440533 18.194157,11.738416 24.013525,11.738416 z"
-         style="opacity:0.5;fill:#eeeeec;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.14379668;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
-      <path
-         sodipodi:nodetypes="ccccc"
-         id="path7140"
-         d="M 20.220231,11.00128 L 29.138835,20.368103 L 24.21511,20.523801 L 15.180538,11.370038 L 20.220231,11.00128 z"
-         style="fill:#cedeef;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1" />
-      <path
-         sodipodi:nodetypes="cccccccccccc"
-         id="path7355"
-         d="M 11.915494,19.751601 L 14.481435,40.163892 L 16.883534,26.331262 C 17.063009,24.706837 18.883373,24.906404 18.990928,26.307141 L 21.349551,37.344431 L 24.506026,23.859196 C 24.638961,22.408831 26.471791,22.275606 26.60475,23.905247 L 28.263765,33.272727 L 31.29544,22.83487 C 31.632247,21.540581 33.13534,21.733731 33.309125,22.813719 L 34.878361,29.055058 L 37.413573,19.544174"
-         style="fill:none;fill-rule:evenodd;stroke:#eeeeec;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:7;stroke-dasharray:none;opacity:0.5" />
-      <path
-         sodipodi:nodetypes="ccccc"
-         id="path7358"
-         d="M 24.796795,10.87836 L 33.030717,20.024802 L 31.057055,20.187957 L 22.768625,10.889409 L 24.796795,10.87836 z"
-         style="fill:#cedeef;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <path
-         sodipodi:nodetypes="ccccc"
-         id="path7364"
-         d="M 28.334973,10.980368 L 36.114053,19.582843 L 35.115621,19.734949 L 27.305235,10.925125 L 28.334973,10.980368 z"
-         style="fill:#cedeef;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <path
-         sodipodi:nodetypes="ccccccc"
-         id="path7372"
-         d="M 24.276568,13.090909 C 16.315524,13.346336 6.9039601,14.217661 2.7042254,16.717029 C 1.2906531,14.934699 3.0729833,13.828425 9.2804097,12.230474 C 14.942786,11.172151 20.784867,10.869471 24.346019,10.869471 C 29.101893,10.979193 33.366216,11.259555 39.81653,12.450903 C 39.81653,12.450903 46.858243,14.197968 45.56759,16.287597 C 41.461334,13.814622 33.948682,12.944657 24.276568,13.090909 z"
-         style="fill:url(#linearGradient7386);fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1" />
-      <path
-         transform="matrix(2.1222827,0,0,1.9923469,-21.167011,-16.108233)"
-         d="M 19.113956,13.797695 A 1.4135723,1.5057619 0 1 1 16.286812,13.797695 A 1.4135723,1.5057619 0 1 1 19.113956,13.797695 z"
-         sodipodi:ry="1.5057619"
-         sodipodi:rx="1.4135723"
-         sodipodi:cy="13.797695"
-         sodipodi:cx="17.700384"
-         id="path7390"
-         style="opacity:1;fill:url(#radialGradient7398);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:7;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-         sodipodi:type="arc" />
-      <path
-         transform="matrix(1.8078704,0,0,1.0169271,-3.0298763,-5.1757356)"
-         d="M 11.247119,16.471191 A 0.553137,0.49167734 0 1 1 10.140845,16.471191 A 0.553137,0.49167734 0 1 1 11.247119,16.471191 z"
-         sodipodi:ry="0.49167734"
-         sodipodi:rx="0.553137"
-         sodipodi:cy="16.471191"
-         sodipodi:cx="10.693982"
-         id="path7416"
-         style="opacity:1;fill:#eeeeec;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:7;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-         sodipodi:type="arc" />
-      <path
-         transform="matrix(4.4701088,0,0,4.6249999,-65.908816,-42.825863)"
-         d="M 19.113956,13.797695 A 1.4135723,1.5057619 0 1 1 16.286812,13.797695 A 1.4135723,1.5057619 0 1 1 19.113956,13.797695 z"
-         sodipodi:ry="1.5057619"
-         sodipodi:rx="1.4135723"
-         sodipodi:cy="13.797695"
-         sodipodi:cx="17.700384"
-         id="path7400"
-         style="opacity:1;fill:url(#radialGradient7402);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:7;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-         sodipodi:type="arc" />
-      <path
-         transform="matrix(4.5196759,0,0,1.0169271,-35.029811,3.0059967)"
-         d="M 11.247119,16.471191 A 0.553137,0.49167734 0 1 1 10.140845,16.471191 A 0.553137,0.49167734 0 1 1 11.247119,16.471191 z"
-         sodipodi:ry="0.49167734"
-         sodipodi:rx="0.553137"
-         sodipodi:cy="16.471191"
-         sodipodi:cx="10.693982"
-         id="path7418"
-         style="opacity:1;fill:url(#radialGradient7438);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:7;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-         sodipodi:type="arc" />
-      <path
-         transform="matrix(0,4.5196759,-2.0338541,0,46.913063,-27.253478)"
-         d="M 11.247119,16.471191 A 0.553137,0.49167734 0 1 1 10.140845,16.471191 A 0.553137,0.49167734 0 1 1 11.247119,16.471191 z"
-         sodipodi:ry="0.49167734"
-         sodipodi:rx="0.553137"
-         sodipodi:cy="16.471191"
-         sodipodi:cx="10.693982"
-         id="path7420"
-         style="opacity:1;fill:url(#radialGradient7448);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:7;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-         sodipodi:type="arc" />
+  <g id="layer1">
+    <g>
+      <path d="M 24 10.375 C 11.701921 10.375 1.71875 12.767211 1.71875 15.71875 C 1.71875 17.498261 5.3609075 19.059125 10.9375 20.03125 L 14.3125 46.90625 L 17.9375 26.1875 L 21.3125 41.90625 L 25.5625 23.71875 L 28.03125 37.6875 L 32.3125 22.9375 L 34.84375 33.0625 L 38.375 19.8125 C 43.199321 18.83144 46.28125 17.354051 46.28125 15.71875 C 46.28125 12.767211 36.298079 10.375 24 10.375 z " fill="#729fcf" fill-rule="evenodd" stroke="#204a87" stroke-width="1px" stroke-linecap="butt" stroke-linejoin="round" stroke-opacity="1"/>
+      <path d="M 24.013525,20.535861 C 29.915498,20.535861 35.256377,19.860148 39.169775,19.061611 C 41.126474,18.662343 42.702812,18.185066 43.857275,17.628422 C 45.011738,17.071777 45.794775,16.382816 45.794775,15.758562 C 45.794775,15.111496 45.011739,14.383887 43.857275,13.827243 C 42.702811,13.270598 41.126474,12.706404 39.169775,12.307136 C 35.256377,11.508599 29.915498,10.878502 24.013525,10.878502 C 18.111552,10.878502 12.739423,11.552057 8.826025,12.350594 C 6.8693258,12.749862 5.2929887,13.270598 4.138525,13.827243 C 2.9840613,14.383887 2.201025,14.939123 2.201025,15.758562 C 2.201025,16.578001 2.9840613,17.071777 4.138525,17.628422 C 5.2929887,18.185066 6.8693258,18.662343 8.826025,19.061611 M 8.826025,19.061611 C 12.739423,19.860148 18.111552,20.535861 24.013525,20.535861 M 24.013525,11.738416 C 29.832893,11.738416 35.083852,12.397075 38.857275,13.16705 C 40.743987,13.552037 42.268014,14.087721 43.263525,14.567724 C 44.259036,15.047727 44.669775,15.382119 44.669775,15.758562 C 44.669775,16.135005 44.259035,16.407937 43.263525,16.88794 C 42.268015,17.367943 40.743986,17.840596 38.857275,18.225584 C 35.083852,18.995559 29.832893,19.652061 24.013525,19.652061 C 18.194157,19.652061 12.911948,18.995559 9.138525,18.225584 C 7.2518134,17.840596 5.7277856,17.367943 4.732275,16.88794 C 3.7367644,16.407937 3.326025,16.135005 3.326025,15.758562 C 3.326025,15.382119 3.7367644,15.047727 4.732275,14.567724 C 5.7277856,14.087721 7.2518134,13.595495 9.138525,13.210508 C 12.911948,12.440533 18.194157,11.738416 24.013525,11.738416 z" opacity="0.5" fill="#eeeeec" fill-opacity="1" fill-rule="evenodd" stroke="none" stroke-width="1.14379668" stroke-linecap="square" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/>
+      <path d="M 20.220231,11.00128 L 29.138835,20.368103 L 24.21511,20.523801 L 15.180538,11.370038 L 20.220231,11.00128 z" fill="#cedeef" fill-rule="evenodd" stroke="none" stroke-width="1px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1" fill-opacity="1"/>
+      <path d="M 11.915494,19.751601 L 14.481435,40.163892 L 16.883534,26.331262 C 17.063009,24.706837 18.883373,24.906404 18.990928,26.307141 L 21.349551,37.344431 L 24.506026,23.859196 C 24.638961,22.408831 26.471791,22.275606 26.60475,23.905247 L 28.263765,33.272727 L 31.29544,22.83487 C 31.632247,21.540581 33.13534,21.733731 33.309125,22.813719 L 34.878361,29.055058 L 37.413573,19.544174" fill="none" fill-rule="evenodd" stroke="#eeeeec" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1" stroke-miterlimit="7" stroke-dasharray="none" opacity="0.5"/>
+      <path d="M 24.796795,10.87836 L 33.030717,20.024802 L 31.057055,20.187957 L 22.768625,10.889409 L 24.796795,10.87836 z" fill="#cedeef" fill-opacity="1" fill-rule="evenodd" stroke="none" stroke-width="1px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1"/>
+      <path d="M 28.334973,10.980368 L 36.114053,19.582843 L 35.115621,19.734949 L 27.305235,10.925125 L 28.334973,10.980368 z" fill="#cedeef" fill-opacity="1" fill-rule="evenodd" stroke="none" stroke-width="1px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1"/>
+      <path d="M 24.276568,13.090909 C 16.315524,13.346336 6.9039601,14.217661 2.7042254,16.717029 C 1.2906531,14.934699 3.0729833,13.828425 9.2804097,12.230474 C 14.942786,11.172151 20.784867,10.869471 24.346019,10.869471 C 29.101893,10.979193 33.366216,11.259555 39.81653,12.450903 C 39.81653,12.450903 46.858243,14.197968 45.56759,16.287597 C 41.461334,13.814622 33.948682,12.944657 24.276568,13.090909 z" fill="url(#linearGradient7386)" fill-rule="evenodd" stroke="none" stroke-width="1px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1" fill-opacity="1"/>
+      <path transform="matrix(2.1222827,0,0,1.9923469,-21.167011,-16.108233)" d="M 19.113956,13.797695 A 1.4135723,1.5057619 0 1 1 16.286812,13.797695 A 1.4135723,1.5057619 0 1 1 19.113956,13.797695 z" opacity="1" fill="url(#radialGradient7398)" fill-opacity="1" fill-rule="evenodd" stroke="none" stroke-width="1" stroke-linecap="square" stroke-linejoin="round" stroke-miterlimit="7" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/>
+      <path transform="matrix(1.8078704,0,0,1.0169271,-3.0298763,-5.1757356)" d="M 11.247119,16.471191 A 0.553137,0.49167734 0 1 1 10.140845,16.471191 A 0.553137,0.49167734 0 1 1 11.247119,16.471191 z" opacity="1" fill="#eeeeec" fill-opacity="1" fill-rule="evenodd" stroke="none" stroke-width="1" stroke-linecap="square" stroke-linejoin="round" stroke-miterlimit="7" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/>
+      <path transform="matrix(4.4701088,0,0,4.6249999,-65.908816,-42.825863)" d="M 19.113956,13.797695 A 1.4135723,1.5057619 0 1 1 16.286812,13.797695 A 1.4135723,1.5057619 0 1 1 19.113956,13.797695 z" opacity="1" fill="url(#radialGradient7402)" fill-opacity="1" fill-rule="evenodd" stroke="none" stroke-width="1" stroke-linecap="square" stroke-linejoin="round" stroke-miterlimit="7" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/>
+      <path transform="matrix(4.5196759,0,0,1.0169271,-35.029811,3.0059967)" d="M 11.247119,16.471191 A 0.553137,0.49167734 0 1 1 10.140845,16.471191 A 0.553137,0.49167734 0 1 1 11.247119,16.471191 z" opacity="1" fill="url(#radialGradient7438)" fill-opacity="1" fill-rule="evenodd" stroke="none" stroke-width="1" stroke-linecap="square" stroke-linejoin="round" stroke-miterlimit="7" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/>
+      <path transform="matrix(0,4.5196759,-2.0338541,0,46.913063,-27.253478)" d="M 11.247119,16.471191 A 0.553137,0.49167734 0 1 1 10.140845,16.471191 A 0.553137,0.49167734 0 1 1 11.247119,16.471191 z" opacity="1" fill="url(#radialGradient7448)" fill-opacity="1" fill-rule="evenodd" stroke="none" stroke-width="1" stroke-linecap="square" stroke-linejoin="round" stroke-miterlimit="7" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/>
     </g>
   </g>
 </svg>
diff --git a/demos/embedded/weatherinfo/icons/weather-overcast.svg b/demos/embedded/weatherinfo/icons/weather-overcast.svg
index 35fb4a4..cf77214 100644
--- a/demos/embedded/weatherinfo/icons/weather-overcast.svg
+++ b/demos/embedded/weatherinfo/icons/weather-overcast.svg
@@ -1,2554 +1,81 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="48px"
-   height="48px"
-   id="svg1306"
-   sodipodi:version="0.32"
-   inkscape:version="0.46"
-   sodipodi:docbase="/home/rcollier/Work/Novell/Tango/weather"
-   sodipodi:docname="weather-overcast.svg"
-   inkscape:output_extension="org.inkscape.output.svg.inkscape">
-  <defs
-     id="defs1308">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 24 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="48 : 24 : 1"
-       inkscape:persp3d-origin="24 : 16 : 1"
-       id="perspective361" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6538"
-       id="linearGradient10670"
-       gradientUnits="userSpaceOnUse"
-       x1="284.80219"
-       y1="-441.23294"
-       x2="288.89954"
-       y2="-436.83109" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6549"
-       id="linearGradient10668"
-       gradientUnits="userSpaceOnUse"
-       x1="286.66589"
-       y1="-439.48358"
-       x2="289.76562"
-       y2="-436.70703" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6527"
-       id="linearGradient10666"
-       gradientUnits="userSpaceOnUse"
-       x1="275.94193"
-       y1="-437.10501"
-       x2="279.97546"
-       y2="-431.91833" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6538"
-       id="linearGradient10664"
-       gradientUnits="userSpaceOnUse"
-       x1="285.94086"
-       y1="-439.93900"
-       x2="289.39124"
-       y2="-436.44290" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6513"
-       id="linearGradient10662"
-       gradientUnits="userSpaceOnUse"
-       x1="286.51172"
-       y1="-441.29074"
-       x2="289.85379"
-       y2="-436.14453" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6497"
-       id="linearGradient10660"
-       gradientUnits="userSpaceOnUse"
-       x1="287.51730"
-       y1="-439.75281"
-       x2="289.67633"
-       y2="-436.32199" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6470"
-       id="linearGradient10658"
-       gradientUnits="userSpaceOnUse"
-       x1="271.02170"
-       y1="-441.05182"
-       x2="285.02859"
-       y2="-431.96991" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6538"
-       id="linearGradient10656"
-       gradientUnits="userSpaceOnUse"
-       x1="284.80219"
-       y1="-441.23294"
-       x2="288.89954"
-       y2="-436.83109" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient6549">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop6551" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop6553" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6549"
-       id="linearGradient10654"
-       gradientUnits="userSpaceOnUse"
-       x1="286.66589"
-       y1="-439.48358"
-       x2="289.76562"
-       y2="-436.70703" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient6527">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop6530" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop6532" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6527"
-       id="linearGradient10652"
-       gradientUnits="userSpaceOnUse"
-       x1="275.94193"
-       y1="-437.10501"
-       x2="279.97546"
-       y2="-431.91833" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient6538">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop6540" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop6542" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6538"
-       id="linearGradient10650"
-       gradientUnits="userSpaceOnUse"
-       x1="285.94086"
-       y1="-439.93900"
-       x2="289.39124"
-       y2="-436.44290" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient6513">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop6515" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop6517" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6513"
-       id="linearGradient10648"
-       gradientUnits="userSpaceOnUse"
-       x1="286.51172"
-       y1="-441.29074"
-       x2="289.85379"
-       y2="-436.14453" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient6497">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop6499" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop6501" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6497"
-       id="linearGradient10646"
-       gradientUnits="userSpaceOnUse"
-       x1="287.51730"
-       y1="-439.75281"
-       x2="289.67633"
-       y2="-436.32199" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient6470">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop6472" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop6474" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6470"
-       id="linearGradient10644"
-       gradientUnits="userSpaceOnUse"
-       x1="271.02170"
-       y1="-441.05182"
-       x2="285.02859"
-       y2="-431.96991" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient7834">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop7836" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop7838" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient7834"
-       id="linearGradient10642"
-       gradientUnits="userSpaceOnUse"
-       x1="-156.29044"
-       y1="-100.53421"
-       x2="-153.09810"
-       y2="-96.544556" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient8397">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop8400" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop8402" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8397"
-       id="linearGradient10640"
-       gradientUnits="userSpaceOnUse"
-       x1="238.00478"
-       y1="-388.47476"
-       x2="245.65462"
-       y2="-382.64539" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient8315">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop8317" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop8319" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8315"
-       id="linearGradient10638"
-       gradientUnits="userSpaceOnUse"
-       x1="230.87598"
-       y1="-390.43951"
-       x2="235.25652"
-       y2="-386.95901" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient8381">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop8383" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop8385" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8381"
-       id="linearGradient10636"
-       gradientUnits="userSpaceOnUse"
-       x1="246.74042"
-       y1="-391.31381"
-       x2="252.69785"
-       y2="-385.35165" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient8331">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop8333" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop8335" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8331"
-       id="linearGradient10634"
-       gradientUnits="userSpaceOnUse"
-       x1="240.07379"
-       y1="-393.40720"
-       x2="245.82706"
-       y2="-388.55029" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient8302">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop8304" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop8306" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8302"
-       id="linearGradient10632"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(69.00259,102.0000)"
-       x1="228.50261"
-       y1="-392.30591"
-       x2="278.91510"
-       y2="-375.37952" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient3019">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop3021" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop3023" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2298"
-       id="linearGradient2861"
-       gradientUnits="userSpaceOnUse"
-       x1="-27.006643"
-       y1="-37.550461"
-       x2="-34.700153"
-       y2="-4.4493785" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2527"
-       id="linearGradient2859"
-       gradientUnits="userSpaceOnUse"
-       x1="-25.137094"
-       y1="-1.2491118"
-       x2="-35.652866"
-       y2="-24.884460" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3478"
-       id="linearGradient2857"
-       gradientUnits="userSpaceOnUse"
-       x1="11.149398"
-       y1="-43.997444"
-       x2="4.9625983"
-       y2="-8.3080902" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient4488">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop4490" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop4492" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient3478">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop3480" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop3482" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2298">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop2300" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop2302" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient3347">
-      <stop
-         style="stop-color:#edd400;stop-opacity:1;"
-         offset="0"
-         id="stop3349" />
-      <stop
-         style="stop-color:#edd400;stop-opacity:0;"
-         offset="1"
-         id="stop3351" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2527">
-      <stop
-         style="stop-color:#fcaf3e;stop-opacity:1;"
-         offset="0"
-         id="stop2529" />
-      <stop
-         style="stop-color:#fcaf3e;stop-opacity:0;"
-         offset="1"
-         id="stop2531" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2500">
-      <stop
-         style="stop-color:#fce94f;stop-opacity:1;"
-         offset="0"
-         id="stop2502" />
-      <stop
-         style="stop-color:#fce94f;stop-opacity:0;"
-         offset="1"
-         id="stop2504" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2392">
-      <stop
-         style="stop-color:#eeeeec;stop-opacity:1;"
-         offset="0"
-         id="stop2394" />
-      <stop
-         style="stop-color:#eeeeec;stop-opacity:0;"
-         offset="1"
-         id="stop2396" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2254">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop2256" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop2258" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2263"
-       gradientUnits="userSpaceOnUse"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581"
-       gradientTransform="translate(-1.608757,3.097272)" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2267"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(3.555020,0.968578)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2271"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(9.263651,3.495228)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2275"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(8.497184,-2.330824)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2279"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(14.46340,2.014073)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2283"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2287"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2291"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2295"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2299"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2303"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(1.707748,-5.784024)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2311"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2350"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(16.14002,24.66420)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2352"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-0.932144,25.87240)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2354"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(5.356636,23.86870)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2356"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(11.19027,26.52035)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2358"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(10.30638,19.27251)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2360"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,0.229156,30.76299)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2362"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,16.67145,27.22746)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2364"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,17.05272,31.47010)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2366"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-4.010744,24.96040)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2368"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,8.185476,29.52556)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2370"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(4.207586,21.30544)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2372"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.12415,32.08882)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2392"
-       id="linearGradient2398"
-       x1="6.6651416"
-       y1="13.802798"
-       x2="41.403877"
-       y2="13.802798"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2426"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(14.46340,2.014073)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2428"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(8.497184,-2.330824)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2430"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-1.608757,3.097272)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2432"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(3.555020,0.968578)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2434"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(9.263651,3.495228)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2436"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2438"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2440"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2442"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2444"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2446"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2392"
-       id="linearGradient2448"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)"
-       x1="6.6651416"
-       y1="13.802798"
-       x2="41.403877"
-       y2="13.802798" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2392"
-       id="linearGradient2451"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,4.378541,10.65407)"
-       x1="6.6651416"
-       y1="13.802798"
-       x2="41.403877"
-       y2="13.802798" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2457"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2460"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2463"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2469"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2472"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(12.51365,8.745228)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2475"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(6.805020,6.218578)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2478"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(1.641243,8.347272)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2483"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(0.842481,-3.998086)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2500"
-       id="linearGradient2506"
-       x1="37.000000"
-       y1="-21.750000"
-       x2="53.750000"
-       y2="9.0000000"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2500"
-       id="linearGradient2509"
-       gradientUnits="userSpaceOnUse"
-       x1="37.000000"
-       y1="-21.750000"
-       x2="53.750000"
-       y2="9.0000000"
-       gradientTransform="matrix(0.889091,0.000000,0.000000,0.617886,-4.771368,39.81402)" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2500"
-       id="linearGradient2513"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.605509,0.000000,0.000000,0.710542,-0.224971,42.19500)"
-       x1="38.857941"
-       y1="-18.407482"
-       x2="53.750000"
-       y2="9.0000000" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2500"
-       id="linearGradient2517"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.414169,0.000000,0.000000,0.778853,-1.910724,36.87850)"
-       x1="37.000000"
-       y1="-21.750000"
-       x2="53.750000"
-       y2="9.0000000" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2527"
-       id="linearGradient2533"
-       x1="-25.137094"
-       y1="-1.2491118"
-       x2="-35.652866"
-       y2="-24.884460"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2537"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(17.33814,3.415985)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2541"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(13.40064,1.353485)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2555"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-7.499805,1.708617)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2563"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-0.726830,2.481141)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3347"
-       id="linearGradient3353"
-       x1="23.303862"
-       y1="29.115711"
-       x2="29.750000"
-       y2="46.092930"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3366"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(13.40064,1.353485)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3368"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(1.641243,8.347272)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3370"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(6.805020,6.218578)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3372"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(12.51365,8.745228)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3374"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3376"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3378"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3380"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3383"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3386"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3389"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3392"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3395"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(3.674812,3.088370)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3398"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-2.033818,0.561720)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3401"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-7.197595,2.690414)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3405"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(4.561802,-4.303373)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       gradientUnits="userSpaceOnUse"
-       y2="-4.4493785"
-       x2="-34.700153"
-       y1="-37.550461"
-       x1="-27.006643"
-       id="linearGradient2916"
-       xlink:href="#linearGradient2298"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="-24.884460"
-       x2="-35.652866"
-       y1="-1.2491118"
-       x1="-25.137094"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2914"
-       xlink:href="#linearGradient2527"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(57.97693,-10.56876)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2912"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,123.1162,-5.446357)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2910"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2908"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2906"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2904"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2902"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(3.674812,3.088370)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2900"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(-2.033818,0.561720)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2898"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(-7.197595,2.690414)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2896"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="-24.884460"
-       x2="-35.652866"
-       y1="-1.2491118"
-       x1="-25.137094"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2894"
-       xlink:href="#linearGradient2527"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,79.36909,-3.193747)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2892"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,56.25514,-12.39388)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2890"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(88.49344,-9.697877)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2888"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(4.561802,-4.303373)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2886"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(-7.197595,2.690414)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2884"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(-2.033818,0.561720)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2882"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(3.674812,3.088370)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2880"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2878"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2876"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2874"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2872"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2870"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2868"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2866"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2864"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(12.51365,8.745228)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2862"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(6.805020,6.218578)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2860"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(1.641243,8.347272)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2858"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(13.40064,1.353485)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2856"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientUnits="userSpaceOnUse"
-       y2="46.092930"
-       x2="29.750000"
-       y1="29.115711"
-       x1="23.303862"
-       id="linearGradient2854"
-       xlink:href="#linearGradient3347"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(-0.726830,2.481141)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2852"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(-7.499805,1.708617)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2850"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(13.40064,1.353485)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2848"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(17.33814,3.415985)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2846"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientUnits="userSpaceOnUse"
-       y2="-24.884460"
-       x2="-35.652866"
-       y1="-1.2491118"
-       x1="-25.137094"
-       id="linearGradient2844"
-       xlink:href="#linearGradient2527"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="9.0000000"
-       x2="53.750000"
-       y1="-21.750000"
-       x1="37.000000"
-       gradientTransform="matrix(0.414169,0.000000,0.000000,0.778853,-1.910724,36.87850)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2842"
-       xlink:href="#linearGradient2500"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="9.0000000"
-       x2="53.750000"
-       y1="-18.407482"
-       x1="38.857941"
-       gradientTransform="matrix(0.605509,0.000000,0.000000,0.710542,-0.224971,42.19500)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2840"
-       xlink:href="#linearGradient2500"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientTransform="matrix(0.889091,0.000000,0.000000,0.617886,-4.771368,39.81402)"
-       y2="9.0000000"
-       x2="53.750000"
-       y1="-21.750000"
-       x1="37.000000"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2838"
-       xlink:href="#linearGradient2500"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientUnits="userSpaceOnUse"
-       y2="9.0000000"
-       x2="53.750000"
-       y1="-21.750000"
-       x1="37.000000"
-       id="linearGradient2836"
-       xlink:href="#linearGradient2500"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(0.842481,-3.998086)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2834"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(1.641243,8.347272)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2832"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(6.805020,6.218578)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2830"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(12.51365,8.745228)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2828"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2826"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2824"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2822"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2820"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="13.802798"
-       x2="41.403877"
-       y1="13.802798"
-       x1="6.6651416"
-       gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,4.378541,10.65407)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2818"
-       xlink:href="#linearGradient2392"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="13.802798"
-       x2="41.403877"
-       y1="13.802798"
-       x1="6.6651416"
-       gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2816"
-       xlink:href="#linearGradient2392"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2814"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2812"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2810"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2808"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2806"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2804"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(9.263651,3.495228)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2802"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(3.555020,0.968578)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2800"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(-1.608757,3.097272)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2798"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(8.497184,-2.330824)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2796"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(14.46340,2.014073)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2794"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)"
-       gradientUnits="userSpaceOnUse"
-       y2="13.802798"
-       x2="41.403877"
-       y1="13.802798"
-       x1="6.6651416"
-       id="linearGradient2792"
-       xlink:href="#linearGradient2392"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.12415,32.08882)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2790"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(4.207586,21.30544)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2788"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,8.185476,29.52556)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2786"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-4.010744,24.96040)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2784"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,17.05272,31.47010)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2782"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,16.67145,27.22746)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2780"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,0.229156,30.76299)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2778"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(10.30638,19.27251)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2776"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(11.19027,26.52035)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2774"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(5.356636,23.86870)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2772"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(-0.932144,25.87240)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2770"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(16.14002,24.66420)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2768"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2766"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(1.707748,-5.784024)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2764"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2762"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2760"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2758"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2756"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2754"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(14.46340,2.014073)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2752"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(8.497184,-2.330824)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2750"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(9.263651,3.495228)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2748"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(3.555020,0.968578)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2746"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientTransform="translate(-1.608757,3.097272)"
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2744"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient4434"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(41.44608,-6.716447)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient4436"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(46.60985,-8.845141)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient4438"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(52.31848,-6.318491)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient4440"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,42.85737,-2.200849)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient4442"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,57.93093,-1.243739)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient4444"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,37.36747,-8.003450)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient4446"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,49.43869,-3.313289)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient4464"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(41.44608,-6.716447)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient4466"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(46.60985,-8.845141)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient4468"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(52.31848,-6.318491)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient4470"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,42.85737,-2.200849)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient4472"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,57.93093,-1.243739)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient4474"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,37.36747,-8.003450)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient4476"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,49.43869,-3.313289)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient4538"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(41.44608,-6.716447)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient4540"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(46.60985,-8.845141)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient4542"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(52.31848,-6.318491)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient4544"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,42.85737,-2.200849)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient4546"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,57.93093,-1.243739)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient4548"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,37.36747,-8.003450)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient4550"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,49.43869,-3.313289)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4488"
-       id="linearGradient4552"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.927204,0.000000,0.000000,0.882329,2.105168,3.373861)"
-       x1="17.181321"
-       y1="32.443652"
-       x2="47.342173"
-       y2="32.443652" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4488"
-       id="linearGradient2276"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.926905,0.000000,0.000000,0.881886,2.081767,3.390390)"
-       x1="17.181321"
-       y1="32.443652"
-       x2="47.342173"
-       y2="32.443652" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4488"
-       id="linearGradient2289"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.931230,0.000000,0.000000,0.881886,-13.99458,-6.609596)"
-       x1="17.181321"
-       y1="32.443652"
-       x2="47.342173"
-       y2="32.443652" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient3025"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient3029"
-       gradientUnits="userSpaceOnUse"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient3033"
-       gradientUnits="userSpaceOnUse"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient3037"
-       gradientUnits="userSpaceOnUse"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient3041"
-       gradientUnits="userSpaceOnUse"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient3045"
-       gradientUnits="userSpaceOnUse"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient3049"
-       gradientUnits="userSpaceOnUse"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient3053"
-       gradientUnits="userSpaceOnUse"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient3056"
-       gradientUnits="userSpaceOnUse"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641"
-       gradientTransform="translate(3.437500,-3.000000)" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient3060"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.333333,0.000000,0.000000,1.000000,-6.911612,2.585786)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient3064"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-3.146447,8.838835e-2)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient3068"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,13.66667,3.000000)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient3072"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,15.66667,8.000000)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient3076"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,-0.698434,10.27557)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient3080"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.613903,0.000000,0.000000,0.613903,17.68234,16.99480)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient3107"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(3.437500,-3.000000)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient3109"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.333333,0.000000,0.000000,1.000000,-6.911612,2.585786)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient3111"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-3.146447,8.838835e-2)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient3113"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,13.66667,3.000000)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient3115"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,15.66667,8.000000)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient3117"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,-0.698434,10.27557)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient3119"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.613903,0.000000,0.000000,0.613903,17.68234,16.99480)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
+<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="48px" height="48px" id="svg1306">
+  <defs id="defs1308">
+    <linearGradient xlink:href="#linearGradient6538" id="linearGradient10670" gradientUnits="userSpaceOnUse" x1="284.80219" y1="-441.23294" x2="288.89954" y2="-436.83109"/>
+    <linearGradient xlink:href="#linearGradient6549" id="linearGradient10668" gradientUnits="userSpaceOnUse" x1="286.66589" y1="-439.48358" x2="289.76562" y2="-436.70703"/>
+    <linearGradient xlink:href="#linearGradient6527" id="linearGradient10666" gradientUnits="userSpaceOnUse" x1="275.94193" y1="-437.10501" x2="279.97546" y2="-431.91833"/>
+    <linearGradient xlink:href="#linearGradient6538" id="linearGradient10664" gradientUnits="userSpaceOnUse" x1="285.94086" y1="-439.93900" x2="289.39124" y2="-436.44290"/>
+    <linearGradient xlink:href="#linearGradient6513" id="linearGradient10662" gradientUnits="userSpaceOnUse" x1="286.51172" y1="-441.29074" x2="289.85379" y2="-436.14453"/>
+    <linearGradient xlink:href="#linearGradient6497" id="linearGradient10660" gradientUnits="userSpaceOnUse" x1="287.51730" y1="-439.75281" x2="289.67633" y2="-436.32199"/>
+    <linearGradient xlink:href="#linearGradient6470" id="linearGradient10658" gradientUnits="userSpaceOnUse" x1="271.02170" y1="-441.05182" x2="285.02859" y2="-431.96991"/>
+    <linearGradient xlink:href="#linearGradient6538" id="linearGradient10656" gradientUnits="userSpaceOnUse" x1="284.80219" y1="-441.23294" x2="288.89954" y2="-436.83109"/>
+    <linearGradient id="linearGradient6549">
+      <stop offset="0" id="stop6551" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop6553" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient xlink:href="#linearGradient6549" id="linearGradient10654" gradientUnits="userSpaceOnUse" x1="286.66589" y1="-439.48358" x2="289.76562" y2="-436.70703"/>
+    <linearGradient id="linearGradient6527">
+      <stop offset="0" id="stop6530" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop6532" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient xlink:href="#linearGradient6527" id="linearGradient10652" gradientUnits="userSpaceOnUse" x1="275.94193" y1="-437.10501" x2="279.97546" y2="-431.91833"/>
+    <linearGradient id="linearGradient6538">
+      <stop offset="0" id="stop6540" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop6542" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient xlink:href="#linearGradient6538" id="linearGradient10650" gradientUnits="userSpaceOnUse" x1="285.94086" y1="-439.93900" x2="289.39124" y2="-436.44290"/>
+    <linearGradient id="linearGradient6513">
+      <stop offset="0" id="stop6515" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop6517" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient xlink:href="#linearGradient6513" id="linearGradient10648" gradientUnits="userSpaceOnUse" x1="286.51172" y1="-441.29074" x2="289.85379" y2="-436.14453"/>
+    <linearGradient id="linearGradient6497">
+      <stop offset="0" id="stop6499" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop6501" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient xlink:href="#linearGradient6497" id="linearGradient10646" gradientUnits="userSpaceOnUse" x1="287.51730" y1="-439.75281" x2="289.67633" y2="-436.32199"/>
+    <linearGradient id="linearGradient6470">
+      <stop offset="0" id="stop6472" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop6474" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient xlink:href="#linearGradient6470" id="linearGradient10644" gradientUnits="userSpaceOnUse" x1="271.02170" y1="-441.05182" x2="285.02859" y2="-431.96991"/>
+    <linearGradient id="linearGradient7834">
+      <stop offset="0" id="stop7836" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop7838" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient xlink:href="#linearGradient7834" id="linearGradient10642" gradientUnits="userSpaceOnUse" x1="-156.29044" y1="-100.53421" x2="-153.09810" y2="-96.544556"/>
+    <linearGradient id="linearGradient8397">
+      <stop offset="0" id="stop8400" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop8402" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient xlink:href="#linearGradient8397" id="linearGradient10640" gradientUnits="userSpaceOnUse" x1="238.00478" y1="-388.47476" x2="245.65462" y2="-382.64539"/>
+    <linearGradient id="linearGradient8315">
+      <stop offset="0" id="stop8317" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop8319" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient xlink:href="#linearGradient8315" id="linearGradient10638" gradientUnits="userSpaceOnUse" x1="230.87598" y1="-390.43951" x2="235.25652" y2="-386.95901"/>
+    <linearGradient id="linearGradient8381">
+      <stop offset="0" id="stop8383" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop8385" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient xlink:href="#linearGradient8381" id="linearGradient10636" gradientUnits="userSpaceOnUse" x1="246.74042" y1="-391.31381" x2="252.69785" y2="-385.35165"/>
+    <linearGradient id="linearGradient8331">
+      <stop offset="0" id="stop8333" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop8335" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient xlink:href="#linearGradient8331" id="linearGradient10634" gradientUnits="userSpaceOnUse" x1="240.07379" y1="-393.40720" x2="245.82706" y2="-388.55029"/>
+    <linearGradient id="linearGradient8302">
+      <stop offset="0" id="stop8304" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop8306" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient xlink:href="#linearGradient8302" id="linearGradient10632" gradientUnits="userSpaceOnUse" gradientTransform="translate(69.00259,102.0000)" x1="228.50261" y1="-392.30591" x2="278.91510" y2="-375.37952"/>
   </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="11.313709"
-     inkscape:cx="8.6163343"
-     inkscape:cy="24.822365"
-     inkscape:current-layer="layer1"
-     showgrid="true"
-     inkscape:grid-bbox="true"
-     inkscape:document-units="px"
-     inkscape:window-width="1210"
-     inkscape:window-height="704"
-     inkscape:window-x="182"
-     inkscape:window-y="144"
-     inkscape:showpageshadow="false"
-     showguides="true"
-     inkscape:guide-bbox="true" />
-  <metadata
-     id="metadata1311">
+  
+  <metadata id="metadata1311">
     <rdf:RDF>
-      <cc:Work
-         rdf:about="">
+      <cc:Work rdf:about="">
         <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
         <dc:title>weather-overcast</dc:title>
         <dc:date>January 2006</dc:date>
         <dc:creator>
@@ -2569,466 +96,94 @@
             <rdf:li>notify</rdf:li>
           </rdf:Bag>
         </dc:subject>
-        <cc:license
-           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+        <cc:license rdf:resource="http://creativecommons.org/licenses/publicdomain/"/>
       </cc:Work>
-      <cc:License
-         rdf:about="http://creativecommons.org/licenses/publicdomain/">
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Reproduction" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Distribution" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      <cc:License rdf:about="http://creativecommons.org/licenses/publicdomain/">
+        <cc:permits rdf:resource="http://creativecommons.org/ns#Reproduction"/>
+        <cc:permits rdf:resource="http://creativecommons.org/ns#Distribution"/>
+        <cc:permits rdf:resource="http://creativecommons.org/ns#DerivativeWorks"/>
       </cc:License>
     </rdf:RDF>
   </metadata>
-  <g
-     id="layer1"
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer">
-    <g
-       id="g10011"
-       transform="translate(-287.0000,298.0000)">
-      <path
-         id="path8267"
-         d="M 311.50259,-296.00000 C 308.73017,-296.00000 306.39436,-294.42629 305.09634,-292.18750 C 304.15198,-292.66254 303.13115,-293.00000 302.00259,-293.00000 C 298.13859,-293.00000 295.00259,-289.86400 295.00259,-286.00000 C 295.00259,-282.13600 298.13859,-279.00000 302.00259,-279.00000 C 304.42226,-279.00000 306.43268,-280.31932 307.69009,-282.18750 C 308.82429,-281.49788 310.07907,-281.00000 311.50259,-281.00000 C 312.41571,-281.00000 313.25554,-281.23202 314.06509,-281.53125 C 314.57503,-280.66352 315.24421,-279.95153 316.06509,-279.37500 C 316.05785,-279.24462 316.00259,-279.13218 316.00259,-279.00000 C 316.00259,-275.13600 319.13858,-272.00000 323.00259,-272.00000 C 326.86659,-272.00000 330.00259,-275.13600 330.00259,-279.00000 C 330.00259,-281.36969 328.74361,-283.35834 326.94009,-284.62500 C 326.94733,-284.75538 327.00259,-284.86782 327.00259,-285.00000 C 327.00259,-288.86400 323.86660,-292.00000 320.00259,-292.00000 C 319.37989,-292.00000 318.82740,-291.77781 318.25259,-291.62500 C 317.05806,-294.18384 314.51125,-296.00000 311.50259,-296.00000 z "
-         style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
-      <path
-         id="path8291"
-         d="M 311.50259,-295.00000 C 308.72211,-295.00000 306.36808,-293.23815 305.44009,-290.78125 C 304.45467,-291.49069 303.30866,-292.00000 302.00259,-292.00000 C 298.69059,-292.00000 296.00259,-289.31200 296.00259,-286.00000 C 296.00259,-282.68800 298.69059,-280.00000 302.00259,-280.00000 C 304.43034,-280.00000 306.49583,-281.45558 307.44009,-283.53125 C 308.56085,-282.61369 309.94223,-282.00000 311.50259,-282.00000 C 312.57713,-282.00000 313.54687,-282.31896 314.44009,-282.78125 C 314.83849,-281.78149 315.54123,-280.99493 316.37759,-280.34375 C 316.19758,-279.74813 316.00259,-279.15410 316.00259,-278.50000 C 316.00259,-274.91200 318.91459,-272.00000 322.50259,-272.00000 C 326.09059,-272.00000 329.00259,-274.91200 329.00259,-278.50000 C 329.00259,-280.86079 327.66826,-282.83019 325.78384,-283.96875 C 325.84643,-284.31598 326.00259,-284.63483 326.00259,-285.00000 C 326.00259,-288.31200 323.31459,-291.00000 320.00259,-291.00000 C 319.14961,-291.00000 318.33129,-290.82132 317.59634,-290.50000 C 316.74257,-293.09388 314.38110,-294.99999 311.50259,-295.00000 z "
-         style="opacity:1.0000000;fill:url(#linearGradient10632);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
-      <path
-         transform="matrix(0.964447,0.000000,0.000000,0.964447,89.29111,91.52621)"
-         d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1  235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1  248.54804 -383.66660 z"
-         sodipodi:ry="6.7396116"
-         sodipodi:rx="6.7396116"
-         sodipodi:cy="-383.66660"
-         sodipodi:cx="241.80843"
-         id="path8414"
-         style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-         sodipodi:type="arc" />
-      <g
-         transform="translate(69.00259,102.0000)"
-         id="g8349">
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path8327"
-           sodipodi:cx="243.95184"
-           sodipodi:cy="-389.30136"
-           sodipodi:rx="6.2313786"
-           sodipodi:ry="6.2313786"
-           d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1  237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1  250.18322 -389.30136 z"
-           transform="matrix(0.882630,0.000000,0.000000,0.882630,27.18078,-46.89094)" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:url(#linearGradient10634);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path8329"
-           sodipodi:cx="243.95184"
-           sodipodi:cy="-389.30136"
-           sodipodi:rx="6.2313786"
-           sodipodi:ry="6.2313786"
-           d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1  237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1  250.18322 -389.30136 z"
-           transform="matrix(0.882630,0.000000,0.000000,0.882630,27.18078,-46.89094)" />
+  <g id="layer1">
+    <g transform="translate(-287.0000,298.0000)">
+      <path d="M 311.50259,-296.00000 C 308.73017,-296.00000 306.39436,-294.42629 305.09634,-292.18750 C 304.15198,-292.66254 303.13115,-293.00000 302.00259,-293.00000 C 298.13859,-293.00000 295.00259,-289.86400 295.00259,-286.00000 C 295.00259,-282.13600 298.13859,-279.00000 302.00259,-279.00000 C 304.42226,-279.00000 306.43268,-280.31932 307.69009,-282.18750 C 308.82429,-281.49788 310.07907,-281.00000 311.50259,-281.00000 C 312.41571,-281.00000 313.25554,-281.23202 314.06509,-281.53125 C 314.57503,-280.66352 315.24421,-279.95153 316.06509,-279.37500 C 316.05785,-279.24462 316.00259,-279.13218 316.00259,-279.00000 C 316.00259,-275.13600 319.13858,-272.00000 323.00259,-272.00000 C 326.86659,-272.00000 330.00259,-275.13600 330.00259,-279.00000 C 330.00259,-281.36969 328.74361,-283.35834 326.94009,-284.62500 C 326.94733,-284.75538 327.00259,-284.86782 327.00259,-285.00000 C 327.00259,-288.86400 323.86660,-292.00000 320.00259,-292.00000 C 319.37989,-292.00000 318.82740,-291.77781 318.25259,-291.62500 C 317.05806,-294.18384 314.51125,-296.00000 311.50259,-296.00000 z " opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+      <path d="M 311.50259,-295.00000 C 308.72211,-295.00000 306.36808,-293.23815 305.44009,-290.78125 C 304.45467,-291.49069 303.30866,-292.00000 302.00259,-292.00000 C 298.69059,-292.00000 296.00259,-289.31200 296.00259,-286.00000 C 296.00259,-282.68800 298.69059,-280.00000 302.00259,-280.00000 C 304.43034,-280.00000 306.49583,-281.45558 307.44009,-283.53125 C 308.56085,-282.61369 309.94223,-282.00000 311.50259,-282.00000 C 312.57713,-282.00000 313.54687,-282.31896 314.44009,-282.78125 C 314.83849,-281.78149 315.54123,-280.99493 316.37759,-280.34375 C 316.19758,-279.74813 316.00259,-279.15410 316.00259,-278.50000 C 316.00259,-274.91200 318.91459,-272.00000 322.50259,-272.00000 C 326.09059,-272.00000 329.00259,-274.91200 329.00259,-278.50000 C 329.00259,-280.86079 327.66826,-282.83019 325.78384,-283.96875 C 325.84643,-284.31598 326.00259,-284.63483 326.00259,-285.00000 C 326.00259,-288.31200 323.31459,-291.00000 320.00259,-291.00000 C 319.14961,-291.00000 318.33129,-290.82132 317.59634,-290.50000 C 316.74257,-293.09388 314.38110,-294.99999 311.50259,-295.00000 z " opacity="1.0000000" fill="url(#linearGradient10632)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+      <path transform="matrix(0.964447,0.000000,0.000000,0.964447,89.29111,91.52621)" d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1  235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1  248.54804 -383.66660 z" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+      <g transform="translate(69.00259,102.0000)">
+        <path d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1  237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1  250.18322 -389.30136 z" transform="matrix(0.882630,0.000000,0.000000,0.882630,27.18078,-46.89094)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1  237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1  250.18322 -389.30136 z" transform="matrix(0.882630,0.000000,0.000000,0.882630,27.18078,-46.89094)" opacity="1.0000000" fill="url(#linearGradient10634)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
       </g>
-      <g
-         transform="translate(69.00259,102.0000)"
-         id="g8389">
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path8368"
-           sodipodi:cx="251.22179"
-           sodipodi:cy="-385.78790"
-           sodipodi:rx="6.0325046"
-           sodipodi:ry="6.0325046"
-           d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1  245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1  257.25429 -385.78790 z"
-           transform="matrix(0.911728,0.000000,0.000000,0.911728,21.45407,-34.76637)" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:url(#linearGradient10636);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path8370"
-           sodipodi:cx="251.22179"
-           sodipodi:cy="-385.78790"
-           sodipodi:rx="6.0325046"
-           sodipodi:ry="6.0325046"
-           d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1  245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1  257.25429 -385.78790 z"
-           transform="matrix(0.911728,0.000000,0.000000,0.911728,21.45407,-34.76637)" />
+      <g transform="translate(69.00259,102.0000)">
+        <path d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1  245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1  257.25429 -385.78790 z" transform="matrix(0.911728,0.000000,0.000000,0.911728,21.45407,-34.76637)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1  245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1  257.25429 -385.78790 z" transform="matrix(0.911728,0.000000,0.000000,0.911728,21.45407,-34.76637)" opacity="1.0000000" fill="url(#linearGradient10636)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
       </g>
-      <g
-         transform="translate(69.00259,102.0000)"
-         id="g8323">
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path8311"
-           sodipodi:cx="233.43362"
-           sodipodi:cy="-387.88715"
-           sodipodi:rx="4.3752232"
-           sodipodi:ry="4.3752232"
-           d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1  229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1  237.80885 -387.88715 z"
-           transform="matrix(1.142799,0.000000,0.000000,1.142799,-33.76771,55.27704)" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:url(#linearGradient10638);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path8313"
-           sodipodi:cx="233.43362"
-           sodipodi:cy="-387.88715"
-           sodipodi:rx="4.3752232"
-           sodipodi:ry="4.3752232"
-           d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1  229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1  237.80885 -387.88715 z"
-           transform="matrix(1.142799,0.000000,0.000000,1.142799,-33.76771,55.27704)" />
+      <g transform="translate(69.00259,102.0000)">
+        <path d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1  229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1  237.80885 -387.88715 z" transform="matrix(1.142799,0.000000,0.000000,1.142799,-33.76771,55.27704)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1  229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1  237.80885 -387.88715 z" transform="matrix(1.142799,0.000000,0.000000,1.142799,-33.76771,55.27704)" opacity="1.0000000" fill="url(#linearGradient10638)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
       </g>
-      <g
-         transform="translate(69.00259,102.0000)"
-         id="g8406">
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path8393"
-           sodipodi:cx="241.80843"
-           sodipodi:cy="-383.66660"
-           sodipodi:rx="6.7396116"
-           sodipodi:ry="6.7396116"
-           d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1  235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1  248.54804 -383.66660 z"
-           transform="matrix(1.038636,0.000000,0.000000,1.038636,-9.150940,14.48994)" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:url(#linearGradient10640);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path8395"
-           sodipodi:cx="241.80843"
-           sodipodi:cy="-383.66660"
-           sodipodi:rx="6.7396116"
-           sodipodi:ry="6.7396116"
-           d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1  235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1  248.54804 -383.66660 z"
-           transform="matrix(1.038636,0.000000,0.000000,1.038636,-9.150933,14.48993)" />
+      <g transform="translate(69.00259,102.0000)">
+        <path d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1  235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1  248.54804 -383.66660 z" transform="matrix(1.038636,0.000000,0.000000,1.038636,-9.150940,14.48994)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1  235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1  248.54804 -383.66660 z" transform="matrix(1.038636,0.000000,0.000000,1.038636,-9.150933,14.48993)" opacity="1.0000000" fill="url(#linearGradient10640)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
       </g>
-      <g
-         style="stroke:none"
-         transform="matrix(0.935028,0.000000,0.000000,0.935028,446.8280,-187.6162)"
-         id="g4518">
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:0.33115697;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path4520"
-           sodipodi:cx="-155.06250"
-           sodipodi:cy="-96.937500"
-           sodipodi:rx="3.1250000"
-           sodipodi:ry="3.1250000"
-           d="M -151.93750 -96.937500 A 3.1250000 3.1250000 0 1 1  -158.18750,-96.937500 A 3.1250000 3.1250000 0 1 1  -151.93750 -96.937500 z"
-           transform="matrix(1.737733,0.000000,0.000000,1.737733,110.8322,70.07649)" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:url(#linearGradient10642);fill-opacity:1.0000000;stroke:none;stroke-width:0.45224530;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path4522"
-           sodipodi:cx="-155.06250"
-           sodipodi:cy="-96.937500"
-           sodipodi:rx="3.1250000"
-           sodipodi:ry="3.1250000"
-           d="M -151.93750 -96.937500 A 3.1250000 3.1250000 0 1 1  -158.18750,-96.937500 A 3.1250000 3.1250000 0 1 1  -151.93750 -96.937500 z"
-           transform="matrix(1.737733,0.000000,0.000000,1.737733,110.8948,70.01402)" />
+      <g transform="matrix(0.935028,0.000000,0.000000,0.935028,446.8280,-187.6162)" stroke="none">
+        <path d="M -151.93750 -96.937500 A 3.1250000 3.1250000 0 1 1  -158.18750,-96.937500 A 3.1250000 3.1250000 0 1 1  -151.93750 -96.937500 z" transform="matrix(1.737733,0.000000,0.000000,1.737733,110.8322,70.07649)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="0.33115697" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M -151.93750 -96.937500 A 3.1250000 3.1250000 0 1 1  -158.18750,-96.937500 A 3.1250000 3.1250000 0 1 1  -151.93750 -96.937500 z" transform="matrix(1.737733,0.000000,0.000000,1.737733,110.8948,70.01402)" opacity="1.0000000" fill="url(#linearGradient10642)" fill-opacity="1.0000000" stroke="none" stroke-width="0.45224530" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
       </g>
-      <g
-         transform="translate(38.00259,162.0000)"
-         id="g7794">
-        <path
-           style="fill:#c4c5c2;fill-opacity:1.0000000;stroke:#888a85;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           d="M 280.50000,-445.50000 C 278.22917,-445.50000 276.39009,-443.94972 275.78125,-441.87500 C 275.08802,-442.23883 274.33674,-442.50000 273.50000,-442.50000 C 270.74000,-442.50000 268.49999,-440.26001 268.50000,-437.50000 C 268.50000,-436.92107 268.66252,-436.39230 268.84375,-435.87500 C 267.47028,-435.10426 266.50000,-433.68600 266.50000,-432.00000 C 266.50000,-429.51600 268.51600,-427.49999 271.00000,-427.50000 C 271.17713,-427.50000 289.82287,-427.50000 290.00000,-427.50000 C 292.48399,-427.50000 294.50000,-429.51600 294.50000,-432.00000 C 294.50000,-433.68600 293.52972,-435.10426 292.15625,-435.87500 C 292.33749,-436.39229 292.50000,-436.92108 292.50000,-437.50000 C 292.50000,-440.26000 290.26000,-442.49999 287.50000,-442.50000 C 286.66326,-442.50000 285.91198,-442.23883 285.21875,-441.87500 C 284.60991,-443.94972 282.77083,-445.50000 280.50000,-445.50000 z "
-           id="path7796"
-           sodipodi:nodetypes="ccsscsssscsscc" />
-        <path
-           style="opacity:1.0000000;fill:url(#linearGradient10644);fill-opacity:1.0000000;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           d="M 280.50000,-445.00000 C 278.31028,-445.00000 276.77640,-443.66423 276.10445,-441.15648 C 275.43599,-441.50010 274.55686,-441.98983 273.75000,-441.98983 C 271.03349,-441.98983 268.99486,-440.05101 268.99487,-437.44429 C 268.99487,-436.89752 269.26208,-436.11085 269.43683,-435.62228 C 268.11240,-434.89433 267.00000,-433.73178 267.00000,-432.24973 C 267.00000,-429.90368 268.54617,-427.99964 271.33928,-427.99964 C 271.51009,-427.99964 289.48992,-427.99964 289.66072,-427.99964 C 292.43173,-427.99964 294.00000,-429.90368 294.00000,-432.24973 C 294.00000,-433.84210 292.88760,-434.91642 291.56317,-435.64437 C 291.73793,-436.13293 292.02724,-436.89753 292.02724,-437.44429 C 292.02724,-440.05100 289.91143,-442.01192 287.25001,-442.01193 C 286.44314,-442.01193 285.60820,-441.52219 284.93974,-441.17857 C 284.29089,-443.60011 282.68973,-445.00000 280.50000,-445.00000 z "
-           id="path7798"
-           sodipodi:nodetypes="ccsscsssscsscc" />
-        <g
-           id="g7800">
-          <path
-             transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)"
-             d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-             sodipodi:ry="3.3125000"
-             sodipodi:rx="3.3125000"
-             sodipodi:cy="-437.59375"
-             sodipodi:cx="288.37500"
-             id="path7802"
-             style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-             sodipodi:type="arc" />
-          <path
-             transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)"
-             d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-             sodipodi:ry="3.3125000"
-             sodipodi:rx="3.3125000"
-             sodipodi:cy="-437.59375"
-             sodipodi:cx="288.37500"
-             id="path7804"
-             style="opacity:1.0000000;fill:url(#linearGradient10646);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-             sodipodi:type="arc" />
+      <g transform="translate(38.00259,162.0000)">
+        <path d="M 280.50000,-445.50000 C 278.22917,-445.50000 276.39009,-443.94972 275.78125,-441.87500 C 275.08802,-442.23883 274.33674,-442.50000 273.50000,-442.50000 C 270.74000,-442.50000 268.49999,-440.26001 268.50000,-437.50000 C 268.50000,-436.92107 268.66252,-436.39230 268.84375,-435.87500 C 267.47028,-435.10426 266.50000,-433.68600 266.50000,-432.00000 C 266.50000,-429.51600 268.51600,-427.49999 271.00000,-427.50000 C 271.17713,-427.50000 289.82287,-427.50000 290.00000,-427.50000 C 292.48399,-427.50000 294.50000,-429.51600 294.50000,-432.00000 C 294.50000,-433.68600 293.52972,-435.10426 292.15625,-435.87500 C 292.33749,-436.39229 292.50000,-436.92108 292.50000,-437.50000 C 292.50000,-440.26000 290.26000,-442.49999 287.50000,-442.50000 C 286.66326,-442.50000 285.91198,-442.23883 285.21875,-441.87500 C 284.60991,-443.94972 282.77083,-445.50000 280.50000,-445.50000 z " fill="#c4c5c2" fill-opacity="1.0000000" stroke="#888a85" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 280.50000,-445.00000 C 278.31028,-445.00000 276.77640,-443.66423 276.10445,-441.15648 C 275.43599,-441.50010 274.55686,-441.98983 273.75000,-441.98983 C 271.03349,-441.98983 268.99486,-440.05101 268.99487,-437.44429 C 268.99487,-436.89752 269.26208,-436.11085 269.43683,-435.62228 C 268.11240,-434.89433 267.00000,-433.73178 267.00000,-432.24973 C 267.00000,-429.90368 268.54617,-427.99964 271.33928,-427.99964 C 271.51009,-427.99964 289.48992,-427.99964 289.66072,-427.99964 C 292.43173,-427.99964 294.00000,-429.90368 294.00000,-432.24973 C 294.00000,-433.84210 292.88760,-434.91642 291.56317,-435.64437 C 291.73793,-436.13293 292.02724,-436.89753 292.02724,-437.44429 C 292.02724,-440.05100 289.91143,-442.01192 287.25001,-442.01193 C 286.44314,-442.01193 285.60820,-441.52219 284.93974,-441.17857 C 284.29089,-443.60011 282.68973,-445.00000 280.50000,-445.00000 z " opacity="1.0000000" fill="url(#linearGradient10644)" fill-opacity="1.0000000" stroke="none" stroke-width="0.99999958" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <g>
+          <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+          <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="1.0000000" fill="url(#linearGradient10646)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
         </g>
-        <rect
-           style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="rect7806"
-           width="20.000000"
-           height="9.0000000"
-           x="271.00000"
-           y="-438.00000" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path7808"
-           sodipodi:cx="288.37500"
-           sodipodi:cy="-437.59375"
-           sodipodi:rx="3.3125000"
-           sodipodi:ry="3.3125000"
-           d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-           transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830195,-35.68869)" />
-        <g
-           id="g7810">
-          <path
-             transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19811,24.86321)"
-             d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-             sodipodi:ry="3.3125000"
-             sodipodi:rx="3.3125000"
-             sodipodi:cy="-437.59375"
-             sodipodi:cx="288.37500"
-             id="path7812"
-             style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-             sodipodi:type="arc" />
-          <path
-             transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19818,24.86331)"
-             d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-             sodipodi:ry="3.3125000"
-             sodipodi:rx="3.3125000"
-             sodipodi:cy="-437.59375"
-             sodipodi:cx="288.37500"
-             id="path7814"
-             style="opacity:1.0000000;fill:url(#linearGradient10648);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-             sodipodi:type="arc" />
+        <rect width="20.000000" height="9.0000000" x="271.00000" y="-438.00000" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830195,-35.68869)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <g>
+          <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19811,24.86321)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+          <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19818,24.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="1.0000000" fill="url(#linearGradient10648)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
         </g>
-        <g
-           id="g7816">
-          <path
-             transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)"
-             d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-             sodipodi:ry="3.3125000"
-             sodipodi:rx="3.3125000"
-             sodipodi:cy="-437.59375"
-             sodipodi:cx="288.37500"
-             id="path7818"
-             style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-             sodipodi:type="arc" />
-          <path
-             transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)"
-             d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-             sodipodi:ry="3.3125000"
-             sodipodi:rx="3.3125000"
-             sodipodi:cy="-437.59375"
-             sodipodi:cx="288.37500"
-             id="path7820"
-             style="opacity:1.0000000;fill:url(#linearGradient10650);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-             sodipodi:type="arc" />
+        <g>
+          <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+          <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="1.0000000" fill="url(#linearGradient10650)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
         </g>
-        <g
-           id="g7822"
-           transform="translate(-1.000000,0.000000)">
-          <path
-             id="path7824"
-             d="M 280.46875,-440.96875 C 276.88937,-440.96875 274.00000,-438.04812 274.00000,-434.46875 C 274.00000,-432.09807 275.34943,-430.13096 277.25000,-429.00000 L 283.71875,-429.00000 C 285.61932,-430.13096 286.96875,-432.12931 286.96875,-434.50000 C 286.96875,-438.07938 284.04812,-440.96875 280.46875,-440.96875 z "
-             style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
-          <path
-             id="path7826"
-             d="M 280.50000,-441.00000 C 276.91200,-441.00000 274.00000,-438.08799 274.00000,-434.50000 C 274.00000,-432.12360 275.34485,-430.13368 277.25000,-429.00000 L 283.75000,-429.00000 C 285.65515,-430.13368 287.00000,-432.12360 287.00000,-434.50000 C 287.00000,-438.08800 284.08800,-440.99999 280.50000,-441.00000 z "
-             style="opacity:1.0000000;fill:url(#linearGradient10652);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
+        <g transform="translate(-1.000000,0.000000)">
+          <path d="M 280.46875,-440.96875 C 276.88937,-440.96875 274.00000,-438.04812 274.00000,-434.46875 C 274.00000,-432.09807 275.34943,-430.13096 277.25000,-429.00000 L 283.71875,-429.00000 C 285.61932,-430.13096 286.96875,-432.12931 286.96875,-434.50000 C 286.96875,-438.07938 284.04812,-440.96875 280.46875,-440.96875 z " opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+          <path d="M 280.50000,-441.00000 C 276.91200,-441.00000 274.00000,-438.08799 274.00000,-434.50000 C 274.00000,-432.12360 275.34485,-430.13368 277.25000,-429.00000 L 283.75000,-429.00000 C 285.65515,-430.13368 287.00000,-432.12360 287.00000,-434.50000 C 287.00000,-438.08800 284.08800,-440.99999 280.50000,-441.00000 z " opacity="1.0000000" fill="url(#linearGradient10652)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
         </g>
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:url(#linearGradient10654);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path7828"
-           sodipodi:cx="288.37500"
-           sodipodi:cy="-437.59375"
-           sodipodi:rx="3.3125000"
-           sodipodi:ry="3.3125000"
-           d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-           transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830296,-35.68884)" />
-        <path
-           style="fill:#888a85;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
-           d="M 292.95640,-437.33396 C 292.95487,-434.64940 289.68714,-433.62001 289.68714,-433.62001 C 289.68714,-433.62001 292.03588,-435.24596 292.02399,-437.32502 C 292.02399,-437.32502 292.95640,-437.33396 292.95640,-437.33396 z "
-           id="path7830"
-           sodipodi:nodetypes="ccss" />
-        <g
-           id="g7832"
-           transform="matrix(1.142857,0.000000,0.000000,1.142857,-28.57139,67.00008)">
-          <path
-             transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)"
-             d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-             sodipodi:ry="3.3125000"
-             sodipodi:rx="3.3125000"
-             sodipodi:cy="-437.59375"
-             sodipodi:cx="288.37500"
-             id="path7834"
-             style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-             sodipodi:type="arc" />
-          <path
-             transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)"
-             d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-             sodipodi:ry="3.3125000"
-             sodipodi:rx="3.3125000"
-             sodipodi:cy="-437.59375"
-             sodipodi:cx="288.37500"
-             id="path7836"
-             style="opacity:1.0000000;fill:url(#linearGradient10656);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-             sodipodi:type="arc" />
+        <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830296,-35.68884)" opacity="1.0000000" fill="url(#linearGradient10654)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 292.95640,-437.33396 C 292.95487,-434.64940 289.68714,-433.62001 289.68714,-433.62001 C 289.68714,-433.62001 292.03588,-435.24596 292.02399,-437.32502 C 292.02399,-437.32502 292.95640,-437.33396 292.95640,-437.33396 z " fill="#888a85" fill-opacity="1.0000000" fill-rule="evenodd" stroke="none" stroke-width="1.0000000px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1.0000000"/>
+        <g transform="matrix(1.142857,0.000000,0.000000,1.142857,-28.57139,67.00008)">
+          <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+          <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="1.0000000" fill="url(#linearGradient10656)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
         </g>
       </g>
-      <g
-         transform="translate(23.00000,158.0000)"
-         id="g7852">
-        <path
-           style="fill:#c4c5c2;fill-opacity:1.0000000;stroke:#888a85;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           d="M 280.50000,-445.50000 C 278.22917,-445.50000 276.39009,-443.94972 275.78125,-441.87500 C 275.08802,-442.23883 274.33674,-442.50000 273.50000,-442.50000 C 270.74000,-442.50000 268.49999,-440.26001 268.50000,-437.50000 C 268.50000,-436.92107 268.66252,-436.39230 268.84375,-435.87500 C 267.47028,-435.10426 266.50000,-433.68600 266.50000,-432.00000 C 266.50000,-429.51600 268.51600,-427.49999 271.00000,-427.50000 C 271.17713,-427.50000 289.82287,-427.50000 290.00000,-427.50000 C 292.48399,-427.50000 294.50000,-429.51600 294.50000,-432.00000 C 294.50000,-433.68600 293.52972,-435.10426 292.15625,-435.87500 C 292.33749,-436.39229 292.50000,-436.92108 292.50000,-437.50000 C 292.50000,-440.26000 290.26000,-442.49999 287.50000,-442.50000 C 286.66326,-442.50000 285.91198,-442.23883 285.21875,-441.87500 C 284.60991,-443.94972 282.77083,-445.50000 280.50000,-445.50000 z "
-           id="path7854"
-           sodipodi:nodetypes="ccsscsssscsscc" />
-        <path
-           style="opacity:1.0000000;fill:url(#linearGradient10658);fill-opacity:1.0000000;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           d="M 280.50000,-445.00000 C 278.31028,-445.00000 276.77640,-443.66423 276.10445,-441.15648 C 275.43599,-441.50010 274.55686,-441.98983 273.75000,-441.98983 C 271.03349,-441.98983 268.99486,-440.05101 268.99487,-437.44429 C 268.99487,-436.89752 269.26208,-436.11085 269.43683,-435.62228 C 268.11240,-434.89433 267.00000,-433.73178 267.00000,-432.24973 C 267.00000,-429.90368 268.54617,-427.99964 271.33928,-427.99964 C 271.51009,-427.99964 289.48992,-427.99964 289.66072,-427.99964 C 292.43173,-427.99964 294.00000,-429.90368 294.00000,-432.24973 C 294.00000,-433.84210 292.88760,-434.91642 291.56317,-435.64437 C 291.73793,-436.13293 292.02724,-436.89753 292.02724,-437.44429 C 292.02724,-440.05100 289.91143,-442.01192 287.25001,-442.01193 C 286.44314,-442.01193 285.60820,-441.52219 284.93974,-441.17857 C 284.29089,-443.60011 282.68973,-445.00000 280.50000,-445.00000 z "
-           id="path7856"
-           sodipodi:nodetypes="ccsscsssscsscc" />
-        <g
-           id="g7858">
-          <path
-             transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)"
-             d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-             sodipodi:ry="3.3125000"
-             sodipodi:rx="3.3125000"
-             sodipodi:cy="-437.59375"
-             sodipodi:cx="288.37500"
-             id="path7860"
-             style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-             sodipodi:type="arc" />
-          <path
-             transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)"
-             d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-             sodipodi:ry="3.3125000"
-             sodipodi:rx="3.3125000"
-             sodipodi:cy="-437.59375"
-             sodipodi:cx="288.37500"
-             id="path7862"
-             style="opacity:1.0000000;fill:url(#linearGradient10660);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-             sodipodi:type="arc" />
+      <g transform="translate(23.00000,158.0000)">
+        <path d="M 280.50000,-445.50000 C 278.22917,-445.50000 276.39009,-443.94972 275.78125,-441.87500 C 275.08802,-442.23883 274.33674,-442.50000 273.50000,-442.50000 C 270.74000,-442.50000 268.49999,-440.26001 268.50000,-437.50000 C 268.50000,-436.92107 268.66252,-436.39230 268.84375,-435.87500 C 267.47028,-435.10426 266.50000,-433.68600 266.50000,-432.00000 C 266.50000,-429.51600 268.51600,-427.49999 271.00000,-427.50000 C 271.17713,-427.50000 289.82287,-427.50000 290.00000,-427.50000 C 292.48399,-427.50000 294.50000,-429.51600 294.50000,-432.00000 C 294.50000,-433.68600 293.52972,-435.10426 292.15625,-435.87500 C 292.33749,-436.39229 292.50000,-436.92108 292.50000,-437.50000 C 292.50000,-440.26000 290.26000,-442.49999 287.50000,-442.50000 C 286.66326,-442.50000 285.91198,-442.23883 285.21875,-441.87500 C 284.60991,-443.94972 282.77083,-445.50000 280.50000,-445.50000 z " fill="#c4c5c2" fill-opacity="1.0000000" stroke="#888a85" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 280.50000,-445.00000 C 278.31028,-445.00000 276.77640,-443.66423 276.10445,-441.15648 C 275.43599,-441.50010 274.55686,-441.98983 273.75000,-441.98983 C 271.03349,-441.98983 268.99486,-440.05101 268.99487,-437.44429 C 268.99487,-436.89752 269.26208,-436.11085 269.43683,-435.62228 C 268.11240,-434.89433 267.00000,-433.73178 267.00000,-432.24973 C 267.00000,-429.90368 268.54617,-427.99964 271.33928,-427.99964 C 271.51009,-427.99964 289.48992,-427.99964 289.66072,-427.99964 C 292.43173,-427.99964 294.00000,-429.90368 294.00000,-432.24973 C 294.00000,-433.84210 292.88760,-434.91642 291.56317,-435.64437 C 291.73793,-436.13293 292.02724,-436.89753 292.02724,-437.44429 C 292.02724,-440.05100 289.91143,-442.01192 287.25001,-442.01193 C 286.44314,-442.01193 285.60820,-441.52219 284.93974,-441.17857 C 284.29089,-443.60011 282.68973,-445.00000 280.50000,-445.00000 z " opacity="1.0000000" fill="url(#linearGradient10658)" fill-opacity="1.0000000" stroke="none" stroke-width="0.99999958" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <g>
+          <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+          <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="1.0000000" fill="url(#linearGradient10660)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
         </g>
-        <rect
-           style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="rect7864"
-           width="20.000000"
-           height="9.0000000"
-           x="271.00000"
-           y="-438.00000" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path7866"
-           sodipodi:cx="288.37500"
-           sodipodi:cy="-437.59375"
-           sodipodi:rx="3.3125000"
-           sodipodi:ry="3.3125000"
-           d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-           transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830195,-35.68869)" />
-        <g
-           id="g7868">
-          <path
-             transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19811,24.86321)"
-             d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-             sodipodi:ry="3.3125000"
-             sodipodi:rx="3.3125000"
-             sodipodi:cy="-437.59375"
-             sodipodi:cx="288.37500"
-             id="path7870"
-             style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-             sodipodi:type="arc" />
-          <path
-             transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19818,24.86331)"
-             d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-             sodipodi:ry="3.3125000"
-             sodipodi:rx="3.3125000"
-             sodipodi:cy="-437.59375"
-             sodipodi:cx="288.37500"
-             id="path7872"
-             style="opacity:1.0000000;fill:url(#linearGradient10662);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-             sodipodi:type="arc" />
+        <rect width="20.000000" height="9.0000000" x="271.00000" y="-438.00000" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830195,-35.68869)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <g>
+          <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19811,24.86321)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+          <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19818,24.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="1.0000000" fill="url(#linearGradient10662)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
         </g>
-        <g
-           id="g7874">
-          <path
-             transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)"
-             d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-             sodipodi:ry="3.3125000"
-             sodipodi:rx="3.3125000"
-             sodipodi:cy="-437.59375"
-             sodipodi:cx="288.37500"
-             id="path7876"
-             style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-             sodipodi:type="arc" />
-          <path
-             transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)"
-             d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-             sodipodi:ry="3.3125000"
-             sodipodi:rx="3.3125000"
-             sodipodi:cy="-437.59375"
-             sodipodi:cx="288.37500"
-             id="path7878"
-             style="opacity:1.0000000;fill:url(#linearGradient10664);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-             sodipodi:type="arc" />
+        <g>
+          <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+          <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="1.0000000" fill="url(#linearGradient10664)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
         </g>
-        <g
-           id="g7880"
-           transform="translate(-1.000000,0.000000)">
-          <path
-             id="path7882"
-             d="M 280.46875,-440.96875 C 276.88937,-440.96875 274.00000,-438.04812 274.00000,-434.46875 C 274.00000,-432.09807 275.34943,-430.13096 277.25000,-429.00000 L 283.71875,-429.00000 C 285.61932,-430.13096 286.96875,-432.12931 286.96875,-434.50000 C 286.96875,-438.07938 284.04812,-440.96875 280.46875,-440.96875 z "
-             style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
-          <path
-             id="path7884"
-             d="M 280.50000,-441.00000 C 276.91200,-441.00000 274.00000,-438.08799 274.00000,-434.50000 C 274.00000,-432.12360 275.34485,-430.13368 277.25000,-429.00000 L 283.75000,-429.00000 C 285.65515,-430.13368 287.00000,-432.12360 287.00000,-434.50000 C 287.00000,-438.08800 284.08800,-440.99999 280.50000,-441.00000 z "
-             style="opacity:1.0000000;fill:url(#linearGradient10666);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
+        <g transform="translate(-1.000000,0.000000)">
+          <path d="M 280.46875,-440.96875 C 276.88937,-440.96875 274.00000,-438.04812 274.00000,-434.46875 C 274.00000,-432.09807 275.34943,-430.13096 277.25000,-429.00000 L 283.71875,-429.00000 C 285.61932,-430.13096 286.96875,-432.12931 286.96875,-434.50000 C 286.96875,-438.07938 284.04812,-440.96875 280.46875,-440.96875 z " opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+          <path d="M 280.50000,-441.00000 C 276.91200,-441.00000 274.00000,-438.08799 274.00000,-434.50000 C 274.00000,-432.12360 275.34485,-430.13368 277.25000,-429.00000 L 283.75000,-429.00000 C 285.65515,-430.13368 287.00000,-432.12360 287.00000,-434.50000 C 287.00000,-438.08800 284.08800,-440.99999 280.50000,-441.00000 z " opacity="1.0000000" fill="url(#linearGradient10666)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
         </g>
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:url(#linearGradient10668);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path7886"
-           sodipodi:cx="288.37500"
-           sodipodi:cy="-437.59375"
-           sodipodi:rx="3.3125000"
-           sodipodi:ry="3.3125000"
-           d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-           transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830296,-35.68884)" />
-        <path
-           style="fill:#888a85;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
-           d="M 292.95640,-437.33396 C 292.95487,-434.64940 289.68714,-433.62001 289.68714,-433.62001 C 289.68714,-433.62001 292.03588,-435.24596 292.02399,-437.32502 C 292.02399,-437.32502 292.95640,-437.33396 292.95640,-437.33396 z "
-           id="path7888"
-           sodipodi:nodetypes="ccss" />
-        <g
-           id="g7890"
-           transform="matrix(1.142857,0.000000,0.000000,1.142857,-28.57139,67.00008)">
-          <path
-             transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)"
-             d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-             sodipodi:ry="3.3125000"
-             sodipodi:rx="3.3125000"
-             sodipodi:cy="-437.59375"
-             sodipodi:cx="288.37500"
-             id="path7892"
-             style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-             sodipodi:type="arc" />
-          <path
-             transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)"
-             d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-             sodipodi:ry="3.3125000"
-             sodipodi:rx="3.3125000"
-             sodipodi:cy="-437.59375"
-             sodipodi:cx="288.37500"
-             id="path7896"
-             style="opacity:1.0000000;fill:url(#linearGradient10670);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-             sodipodi:type="arc" />
+        <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830296,-35.68884)" opacity="1.0000000" fill="url(#linearGradient10668)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 292.95640,-437.33396 C 292.95487,-434.64940 289.68714,-433.62001 289.68714,-433.62001 C 289.68714,-433.62001 292.03588,-435.24596 292.02399,-437.32502 C 292.02399,-437.32502 292.95640,-437.33396 292.95640,-437.33396 z " fill="#888a85" fill-opacity="1.0000000" fill-rule="evenodd" stroke="none" stroke-width="1.0000000px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1.0000000"/>
+        <g transform="matrix(1.142857,0.000000,0.000000,1.142857,-28.57139,67.00008)">
+          <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+          <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="1.0000000" fill="url(#linearGradient10670)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
         </g>
       </g>
     </g>
diff --git a/demos/embedded/weatherinfo/icons/weather-showers.svg b/demos/embedded/weatherinfo/icons/weather-showers.svg
index c814571..017665d 100644
--- a/demos/embedded/weatherinfo/icons/weather-showers.svg
+++ b/demos/embedded/weatherinfo/icons/weather-showers.svg
@@ -1,4297 +1,83 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="48px"
-   height="48px"
-   id="svg1306"
-   sodipodi:version="0.32"
-   inkscape:version="0.46"
-   sodipodi:docbase="/home/rcollier/Work/Novell/Tango/weather"
-   sodipodi:docname="weather-showers.svg"
-   inkscape:output_extension="org.inkscape.output.svg.inkscape">
-  <defs
-     id="defs1308">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 24 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="48 : 24 : 1"
-       inkscape:persp3d-origin="24 : 16 : 1"
-       id="perspective530" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient11348"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.070878,0.000000,-0.535439,0.674858,287.5142,77.50802)"
-       x1="-137.49608"
-       y1="-425.28664"
-       x2="-130.60854"
-       y2="-425.28665" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient11346"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.070879,0.000000,-0.535439,0.674857,277.5140,77.50780)"
-       x1="-137.49608"
-       y1="-425.28664"
-       x2="-130.60854"
-       y2="-425.28665" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient11344"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.088439,0.000000,-0.544220,0.674842,265.9811,77.50139)"
-       x1="-137.49608"
-       y1="-425.28664"
-       x2="-130.60854"
-       y2="-425.28665" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6538"
-       id="linearGradient13352"
-       gradientUnits="userSpaceOnUse"
-       x1="284.80219"
-       y1="-441.23294"
-       x2="288.89954"
-       y2="-436.83109" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6549"
-       id="linearGradient13350"
-       gradientUnits="userSpaceOnUse"
-       x1="286.66589"
-       y1="-439.48358"
-       x2="289.76562"
-       y2="-436.70703" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6527"
-       id="linearGradient13347"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-35.00007,207.0001)"
-       x1="275.94193"
-       y1="-437.10501"
-       x2="279.97546"
-       y2="-431.91833" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6538"
-       id="linearGradient13345"
-       gradientUnits="userSpaceOnUse"
-       x1="285.94086"
-       y1="-439.93900"
-       x2="289.39124"
-       y2="-436.44290" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6513"
-       id="linearGradient13343"
-       gradientUnits="userSpaceOnUse"
-       x1="286.51172"
-       y1="-441.29074"
-       x2="289.85379"
-       y2="-436.14453" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6497"
-       id="linearGradient13341"
-       gradientUnits="userSpaceOnUse"
-       x1="287.51730"
-       y1="-439.75281"
-       x2="289.67633"
-       y2="-436.32199" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6470"
-       id="linearGradient13339"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-34.00007,207.0001)"
-       x1="271.02170"
-       y1="-441.05182"
-       x2="285.02859"
-       y2="-431.96991" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6538"
-       id="linearGradient13337"
-       gradientUnits="userSpaceOnUse"
-       x1="284.80219"
-       y1="-441.23294"
-       x2="288.89954"
-       y2="-436.83109" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient6549">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop6551" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop6553" />
+<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="48px" height="48px" id="svg1306">
+  <defs id="defs1308">
+    <linearGradient xlink:href="#linearGradient2254" id="linearGradient11348" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.070878,0.000000,-0.535439,0.674858,287.5142,77.50802)" x1="-137.49608" y1="-425.28664" x2="-130.60854" y2="-425.28665"/>
+    <linearGradient xlink:href="#linearGradient2254" id="linearGradient11346" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.070879,0.000000,-0.535439,0.674857,277.5140,77.50780)" x1="-137.49608" y1="-425.28664" x2="-130.60854" y2="-425.28665"/>
+    <linearGradient xlink:href="#linearGradient2254" id="linearGradient11344" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.088439,0.000000,-0.544220,0.674842,265.9811,77.50139)" x1="-137.49608" y1="-425.28664" x2="-130.60854" y2="-425.28665"/>
+    <linearGradient xlink:href="#linearGradient6538" id="linearGradient13352" gradientUnits="userSpaceOnUse" x1="284.80219" y1="-441.23294" x2="288.89954" y2="-436.83109"/>
+    <linearGradient xlink:href="#linearGradient6549" id="linearGradient13350" gradientUnits="userSpaceOnUse" x1="286.66589" y1="-439.48358" x2="289.76562" y2="-436.70703"/>
+    <linearGradient xlink:href="#linearGradient6527" id="linearGradient13347" gradientUnits="userSpaceOnUse" gradientTransform="translate(-35.00007,207.0001)" x1="275.94193" y1="-437.10501" x2="279.97546" y2="-431.91833"/>
+    <linearGradient xlink:href="#linearGradient6538" id="linearGradient13345" gradientUnits="userSpaceOnUse" x1="285.94086" y1="-439.93900" x2="289.39124" y2="-436.44290"/>
+    <linearGradient xlink:href="#linearGradient6513" id="linearGradient13343" gradientUnits="userSpaceOnUse" x1="286.51172" y1="-441.29074" x2="289.85379" y2="-436.14453"/>
+    <linearGradient xlink:href="#linearGradient6497" id="linearGradient13341" gradientUnits="userSpaceOnUse" x1="287.51730" y1="-439.75281" x2="289.67633" y2="-436.32199"/>
+    <linearGradient xlink:href="#linearGradient6470" id="linearGradient13339" gradientUnits="userSpaceOnUse" gradientTransform="translate(-34.00007,207.0001)" x1="271.02170" y1="-441.05182" x2="285.02859" y2="-431.96991"/>
+    <linearGradient xlink:href="#linearGradient6538" id="linearGradient13337" gradientUnits="userSpaceOnUse" x1="284.80219" y1="-441.23294" x2="288.89954" y2="-436.83109"/>
+    <linearGradient id="linearGradient6549">
+      <stop offset="0" id="stop6551" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop6553" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient xlink:href="#linearGradient6549" id="linearGradient13335" gradientUnits="userSpaceOnUse" x1="286.66589" y1="-439.48358" x2="289.76562" y2="-436.70703"/>
+    <linearGradient id="linearGradient6527">
+      <stop offset="0" id="stop6530" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop6532" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient xlink:href="#linearGradient6527" id="linearGradient13333" gradientUnits="userSpaceOnUse" gradientTransform="translate(-35.00007,207.0001)" x1="275.94193" y1="-437.10501" x2="279.97546" y2="-431.91833"/>
+    <linearGradient id="linearGradient6538">
+      <stop offset="0" id="stop6540" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop6542" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient xlink:href="#linearGradient6538" id="linearGradient13331" gradientUnits="userSpaceOnUse" x1="285.94086" y1="-439.93900" x2="289.39124" y2="-436.44290"/>
+    <linearGradient id="linearGradient6513">
+      <stop offset="0" id="stop6515" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop6517" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient xlink:href="#linearGradient6513" id="linearGradient13329" gradientUnits="userSpaceOnUse" x1="286.51172" y1="-441.29074" x2="289.85379" y2="-436.14453"/>
+    <linearGradient id="linearGradient6497">
+      <stop offset="0" id="stop6499" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop6501" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient xlink:href="#linearGradient6497" id="linearGradient13327" gradientUnits="userSpaceOnUse" x1="287.51730" y1="-439.75281" x2="289.67633" y2="-436.32199"/>
+    <linearGradient id="linearGradient6470">
+      <stop offset="0" id="stop6472" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop6474" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient xlink:href="#linearGradient6470" id="linearGradient13325" gradientUnits="userSpaceOnUse" gradientTransform="translate(-34.00007,207.0001)" x1="271.02170" y1="-441.05182" x2="285.02859" y2="-431.96991"/>
+    <linearGradient id="linearGradient8397">
+      <stop offset="0" id="stop8400" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop8402" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient xlink:href="#linearGradient8397" id="linearGradient13323" gradientUnits="userSpaceOnUse" x1="238.00478" y1="-388.47476" x2="245.65462" y2="-382.64539"/>
+    <linearGradient id="linearGradient8315">
+      <stop offset="0" id="stop8317" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop8319" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient xlink:href="#linearGradient8315" id="linearGradient13321" gradientUnits="userSpaceOnUse" x1="230.87598" y1="-390.43951" x2="235.25652" y2="-386.95901"/>
+    <linearGradient id="linearGradient8381">
+      <stop offset="0" id="stop8383" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop8385" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient xlink:href="#linearGradient8381" id="linearGradient13319" gradientUnits="userSpaceOnUse" x1="246.74042" y1="-391.31381" x2="252.69785" y2="-385.35165"/>
+    <linearGradient id="linearGradient8331">
+      <stop offset="0" id="stop8333" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop8335" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient xlink:href="#linearGradient8331" id="linearGradient13317" gradientUnits="userSpaceOnUse" x1="240.07379" y1="-393.40720" x2="245.82706" y2="-388.55029"/>
+    <linearGradient id="linearGradient8302">
+      <stop offset="0" id="stop8304" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop8306" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient xlink:href="#linearGradient8302" id="linearGradient13315" gradientUnits="userSpaceOnUse" gradientTransform="translate(69.00000,155.0000)" x1="228.50261" y1="-392.30591" x2="266.36395" y2="-379.26862"/>
+    <linearGradient id="linearGradient2254">
+      <stop offset="0" id="stop2256" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop2258" stop-color="#ffffff" stop-opacity="0"/>
     </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6549"
-       id="linearGradient13335"
-       gradientUnits="userSpaceOnUse"
-       x1="286.66589"
-       y1="-439.48358"
-       x2="289.76562"
-       y2="-436.70703" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient6527">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop6530" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop6532" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6527"
-       id="linearGradient13333"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-35.00007,207.0001)"
-       x1="275.94193"
-       y1="-437.10501"
-       x2="279.97546"
-       y2="-431.91833" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient6538">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop6540" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop6542" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6538"
-       id="linearGradient13331"
-       gradientUnits="userSpaceOnUse"
-       x1="285.94086"
-       y1="-439.93900"
-       x2="289.39124"
-       y2="-436.44290" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient6513">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop6515" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop6517" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6513"
-       id="linearGradient13329"
-       gradientUnits="userSpaceOnUse"
-       x1="286.51172"
-       y1="-441.29074"
-       x2="289.85379"
-       y2="-436.14453" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient6497">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop6499" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop6501" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6497"
-       id="linearGradient13327"
-       gradientUnits="userSpaceOnUse"
-       x1="287.51730"
-       y1="-439.75281"
-       x2="289.67633"
-       y2="-436.32199" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient6470">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop6472" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop6474" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6470"
-       id="linearGradient13325"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-34.00007,207.0001)"
-       x1="271.02170"
-       y1="-441.05182"
-       x2="285.02859"
-       y2="-431.96991" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient8397">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop8400" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop8402" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8397"
-       id="linearGradient13323"
-       gradientUnits="userSpaceOnUse"
-       x1="238.00478"
-       y1="-388.47476"
-       x2="245.65462"
-       y2="-382.64539" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient8315">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop8317" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop8319" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8315"
-       id="linearGradient13321"
-       gradientUnits="userSpaceOnUse"
-       x1="230.87598"
-       y1="-390.43951"
-       x2="235.25652"
-       y2="-386.95901" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient8381">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop8383" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop8385" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8381"
-       id="linearGradient13319"
-       gradientUnits="userSpaceOnUse"
-       x1="246.74042"
-       y1="-391.31381"
-       x2="252.69785"
-       y2="-385.35165" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient8331">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop8333" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop8335" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8331"
-       id="linearGradient13317"
-       gradientUnits="userSpaceOnUse"
-       x1="240.07379"
-       y1="-393.40720"
-       x2="245.82706"
-       y2="-388.55029" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient8302">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop8304" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop8306" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8302"
-       id="linearGradient13315"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(69.00000,155.0000)"
-       x1="228.50261"
-       y1="-392.30591"
-       x2="266.36395"
-       y2="-379.26862" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient4442">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop4444" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop4446" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4442"
-       id="linearGradient4467"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-59.00000,27.72122)"
-       x1="4.3602662"
-       y1="-21.904713"
-       x2="40.139732"
-       y2="-1.8452871" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient4430"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,7.747730,-6.786242)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient4426"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,12.43523,-5.473742)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient4404"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.333333,0.000000,0.000000,1.000000,-14.02052,-13.29853)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient4407"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,-9.728831,-6.856090)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient4410"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-4.033948,-17.90479)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient4413"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.613903,0.000000,0.000000,0.613903,-1.200260,0.631990)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient4419"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,4.534070,-12.70656)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient4422"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-9.992899,-16.32980)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4488"
-       id="linearGradient4479"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.926905,0.000000,0.000000,0.881886,-60.91820,-2.915960)"
-       x1="17.181321"
-       y1="32.443652"
-       x2="47.342173"
-       y2="32.443652" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient4359"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.333333,0.000000,0.000000,1.000000,-7.329241,-50.85192)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient4357"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,-0.912551,-43.37823)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient4355"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(3.365819,-55.70818)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient4353"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.613903,0.000000,0.000000,0.613903,17.14727,-36.85890)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient4351"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,15.17579,-44.92562)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient4349"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,12.81910,-50.04120)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient4347"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-3.681521,-53.82781)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient4488">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop4490" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop4492" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4488"
-       id="linearGradient4370"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.926905,0.000000,0.000000,0.881886,-74.92090,-6.914630)"
-       x1="17.175579"
-       y1="23.374163"
-       x2="38.037014"
-       y2="38.680286" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient4255"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.333333,0.000000,0.000000,1.000000,-7.329241,-50.85192)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient4253"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,-0.912551,-43.37823)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient4251"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(3.365819,-55.70818)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient4249"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.613903,0.000000,0.000000,0.613903,17.14727,-36.85890)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient4247"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,15.17579,-44.92562)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient4245"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,12.81910,-50.04120)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient3019">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop3021" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop3023" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient4243"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-3.681521,-53.82781)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       id="linearGradient6525"
-       gradientUnits="userSpaceOnUse"
-       x1="4.1914001"
-       y1="11.113300"
-       x2="47.319698"
-       y2="56.052299">
-      <stop
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:1;"
-         id="stop6529" />
-      <stop
-         offset="1"
-         style="stop-color:#ffffff;stop-opacity:0.34020618;"
-         id="stop6531" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6525"
-       id="linearGradient5250"
-       x1="8.5469341"
-       y1="30.281681"
-       x2="30.85088"
-       y2="48.301884"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.874977,0.000000,0.000000,0.921480,-56.65990,-1.553540)" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient6537">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop6539" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop6541" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2298">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop2300" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop2302" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient3347">
-      <stop
-         style="stop-color:#edd400;stop-opacity:1;"
-         offset="0"
-         id="stop3349" />
-      <stop
-         style="stop-color:#edd400;stop-opacity:0;"
-         offset="1"
-         id="stop3351" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2527">
-      <stop
-         style="stop-color:#fcaf3e;stop-opacity:1;"
-         offset="0"
-         id="stop2529" />
-      <stop
-         style="stop-color:#fcaf3e;stop-opacity:0;"
-         offset="1"
-         id="stop2531" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2500">
-      <stop
-         style="stop-color:#fce94f;stop-opacity:1;"
-         offset="0"
-         id="stop2502" />
-      <stop
-         style="stop-color:#fce94f;stop-opacity:0;"
-         offset="1"
-         id="stop2504" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2392">
-      <stop
-         style="stop-color:#eeeeec;stop-opacity:1;"
-         offset="0"
-         id="stop2394" />
-      <stop
-         style="stop-color:#eeeeec;stop-opacity:0;"
-         offset="1"
-         id="stop2396" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2254">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop2256" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop2258" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2263"
-       gradientUnits="userSpaceOnUse"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581"
-       gradientTransform="translate(-1.608757,3.097272)" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2267"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(3.555020,0.968578)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2271"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(9.263651,3.495228)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2275"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(8.497184,-2.330824)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2279"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(14.46340,2.014073)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2283"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2287"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2291"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2295"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2299"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2303"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(1.707748,-5.784024)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2311"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2350"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(16.14002,24.66420)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2352"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-0.932144,25.87240)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2354"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(5.356636,23.86870)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2356"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(11.19027,26.52035)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2358"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(10.30638,19.27251)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2360"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,0.229156,30.76299)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2362"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,16.67145,27.22746)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2364"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,17.05272,31.47010)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2366"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-4.010744,24.96040)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2368"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,8.185476,29.52556)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2370"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(4.207586,21.30544)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2372"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.12415,32.08882)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2392"
-       id="linearGradient2398"
-       x1="6.6651416"
-       y1="13.802798"
-       x2="41.403877"
-       y2="13.802798"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2426"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(14.46340,2.014073)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2428"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(8.497184,-2.330824)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2430"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-1.608757,3.097272)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2432"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(3.555020,0.968578)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2434"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(9.263651,3.495228)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2436"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2438"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2440"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2442"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2444"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2446"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2392"
-       id="linearGradient2448"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)"
-       x1="6.6651416"
-       y1="13.802798"
-       x2="41.403877"
-       y2="13.802798" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2392"
-       id="linearGradient2451"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,4.378541,10.65407)"
-       x1="6.6651416"
-       y1="13.802798"
-       x2="41.403877"
-       y2="13.802798" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2457"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2460"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2463"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2469"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2472"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(12.51365,8.745228)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2475"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(6.805020,6.218578)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2478"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(1.641243,8.347272)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2483"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(0.842481,-3.998086)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2500"
-       id="linearGradient2506"
-       x1="37.000000"
-       y1="-21.750000"
-       x2="53.750000"
-       y2="9.0000000"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2500"
-       id="linearGradient2509"
-       gradientUnits="userSpaceOnUse"
-       x1="37.000000"
-       y1="-21.750000"
-       x2="53.750000"
-       y2="9.0000000"
-       gradientTransform="matrix(0.889091,0.000000,0.000000,0.617886,-4.771368,39.81402)" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2500"
-       id="linearGradient2513"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.605509,0.000000,0.000000,0.710542,-0.224971,42.19500)"
-       x1="38.857941"
-       y1="-18.407482"
-       x2="53.750000"
-       y2="9.0000000" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2500"
-       id="linearGradient2517"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.414169,0.000000,0.000000,0.778853,-1.910724,36.87850)"
-       x1="37.000000"
-       y1="-21.750000"
-       x2="53.750000"
-       y2="9.0000000" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2527"
-       id="linearGradient2533"
-       x1="-25.137094"
-       y1="-1.2491118"
-       x2="-35.652866"
-       y2="-24.884460"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2537"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(17.33814,3.415985)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2541"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(13.40064,1.353485)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2555"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-7.499805,1.708617)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2563"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-0.726830,2.481141)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3347"
-       id="linearGradient3353"
-       x1="23.303862"
-       y1="29.115711"
-       x2="29.750000"
-       y2="46.092930"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3366"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(13.40064,1.353485)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3368"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(1.641243,8.347272)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3370"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(6.805020,6.218578)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3372"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(12.51365,8.745228)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3374"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3376"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3378"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3380"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3383"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3386"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3389"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3392"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3395"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(3.674812,3.088370)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3398"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-2.033818,0.561720)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3401"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-7.197595,2.690414)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3405"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(4.561802,-4.303373)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       gradientUnits="userSpaceOnUse"
-       y2="-4.4493785"
-       x2="-34.700153"
-       y1="-37.550461"
-       x1="-27.006643"
-       id="linearGradient2916"
-       xlink:href="#linearGradient2298"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="-24.884460"
-       x2="-35.652866"
-       y1="-1.2491118"
-       x1="-25.137094"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2914"
-       xlink:href="#linearGradient2527"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(57.97693,-10.56876)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2912"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,123.1162,-5.446357)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2910"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2908"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2906"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2904"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2902"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(3.674812,3.088370)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2900"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(-2.033818,0.561720)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2898"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(-7.197595,2.690414)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2896"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="-24.884460"
-       x2="-35.652866"
-       y1="-1.2491118"
-       x1="-25.137094"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2894"
-       xlink:href="#linearGradient2527"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,79.36909,-3.193747)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2892"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,56.25514,-12.39388)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2890"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(88.49344,-9.697877)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2888"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(4.561802,-4.303373)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2886"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(-7.197595,2.690414)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2884"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(-2.033818,0.561720)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2882"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(3.674812,3.088370)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2880"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2878"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2876"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2874"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2872"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2870"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2868"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2866"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2864"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(12.51365,8.745228)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2862"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(6.805020,6.218578)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2860"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(1.641243,8.347272)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2858"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(13.40064,1.353485)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2856"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientUnits="userSpaceOnUse"
-       y2="46.092930"
-       x2="29.750000"
-       y1="29.115711"
-       x1="23.303862"
-       id="linearGradient2854"
-       xlink:href="#linearGradient3347"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(-0.726830,2.481141)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2852"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(-7.499805,1.708617)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2850"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(13.40064,1.353485)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2848"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(17.33814,3.415985)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2846"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientUnits="userSpaceOnUse"
-       y2="-24.884460"
-       x2="-35.652866"
-       y1="-1.2491118"
-       x1="-25.137094"
-       id="linearGradient2844"
-       xlink:href="#linearGradient2527"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="9.0000000"
-       x2="53.750000"
-       y1="-21.750000"
-       x1="37.000000"
-       gradientTransform="matrix(0.414169,0.000000,0.000000,0.778853,-1.910724,36.87850)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2842"
-       xlink:href="#linearGradient2500"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="9.0000000"
-       x2="53.750000"
-       y1="-18.407482"
-       x1="38.857941"
-       gradientTransform="matrix(0.605509,0.000000,0.000000,0.710542,-0.224971,42.19500)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2840"
-       xlink:href="#linearGradient2500"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientTransform="matrix(0.889091,0.000000,0.000000,0.617886,-4.771368,39.81402)"
-       y2="9.0000000"
-       x2="53.750000"
-       y1="-21.750000"
-       x1="37.000000"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2838"
-       xlink:href="#linearGradient2500"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientUnits="userSpaceOnUse"
-       y2="9.0000000"
-       x2="53.750000"
-       y1="-21.750000"
-       x1="37.000000"
-       id="linearGradient2836"
-       xlink:href="#linearGradient2500"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(0.842481,-3.998086)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2834"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(1.641243,8.347272)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2832"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(6.805020,6.218578)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2830"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(12.51365,8.745228)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2828"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2826"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2824"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2822"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2820"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="13.802798"
-       x2="41.403877"
-       y1="13.802798"
-       x1="6.6651416"
-       gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,4.378541,10.65407)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2818"
-       xlink:href="#linearGradient2392"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="13.802798"
-       x2="41.403877"
-       y1="13.802798"
-       x1="6.6651416"
-       gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2816"
-       xlink:href="#linearGradient2392"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2814"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2812"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2810"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2808"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2806"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2804"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(9.263651,3.495228)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2802"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(3.555020,0.968578)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2800"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(-1.608757,3.097272)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2798"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(8.497184,-2.330824)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2796"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(14.46340,2.014073)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2794"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)"
-       gradientUnits="userSpaceOnUse"
-       y2="13.802798"
-       x2="41.403877"
-       y1="13.802798"
-       x1="6.6651416"
-       id="linearGradient2792"
-       xlink:href="#linearGradient2392"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.12415,32.08882)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2790"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(4.207586,21.30544)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2788"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,8.185476,29.52556)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2786"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-4.010744,24.96040)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2784"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,17.05272,31.47010)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2782"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,16.67145,27.22746)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2780"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,0.229156,30.76299)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2778"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(10.30638,19.27251)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2776"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(11.19027,26.52035)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2774"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(5.356636,23.86870)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2772"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(-0.932144,25.87240)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2770"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(16.14002,24.66420)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2768"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2766"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(1.707748,-5.784024)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2764"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2762"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2760"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2758"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2756"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2754"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(14.46340,2.014073)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2752"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(8.497184,-2.330824)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2750"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(9.263651,3.495228)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2748"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(3.555020,0.968578)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2746"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientTransform="translate(-1.608757,3.097272)"
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2744"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientUnits="userSpaceOnUse"
-       y2="-4.4493785"
-       x2="-34.700153"
-       y1="-37.550461"
-       x1="-27.006643"
-       id="linearGradient2304"
-       xlink:href="#linearGradient2298"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="-24.884460"
-       x2="-35.652866"
-       y1="-1.2491118"
-       x1="-25.137094"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient1557"
-       xlink:href="#linearGradient2527"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(57.97693,-10.56876)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient1538"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,123.1162,-5.446357)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient1536"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient1534"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient1532"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient1530"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient1528"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(3.674812,3.088370)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient1526"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(-2.033818,0.561720)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient1524"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(-7.197595,2.690414)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient1522"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="-24.884460"
-       x2="-35.652866"
-       y1="-1.2491118"
-       x1="-25.137094"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient1520"
-       xlink:href="#linearGradient2527"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,79.36909,-3.193747)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient1518"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,56.25514,-12.39388)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient1516"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(88.49344,-9.697877)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient1514"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(4.561802,-4.303373)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5957"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(-7.197595,2.690414)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5955"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(-2.033818,0.561720)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5953"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(3.674812,3.088370)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5951"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5949"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5947"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5945"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5943"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5941"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5939"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5937"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5935"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(12.51365,8.745228)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5933"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(6.805020,6.218578)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5931"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(1.641243,8.347272)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5929"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(13.40064,1.353485)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5927"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientUnits="userSpaceOnUse"
-       y2="46.092930"
-       x2="29.750000"
-       y1="29.115711"
-       x1="23.303862"
-       id="linearGradient5925"
-       xlink:href="#linearGradient3347"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(-0.726830,2.481141)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5923"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(-7.499805,1.708617)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5921"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(13.40064,1.353485)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5919"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(17.33814,3.415985)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5917"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientUnits="userSpaceOnUse"
-       y2="-24.884460"
-       x2="-35.652866"
-       y1="-1.2491118"
-       x1="-25.137094"
-       id="linearGradient5915"
-       xlink:href="#linearGradient2527"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="9.0000000"
-       x2="53.750000"
-       y1="-21.750000"
-       x1="37.000000"
-       gradientTransform="matrix(0.414169,0.000000,0.000000,0.778853,-1.910724,36.87850)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5913"
-       xlink:href="#linearGradient2500"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="9.0000000"
-       x2="53.750000"
-       y1="-18.407482"
-       x1="38.857941"
-       gradientTransform="matrix(0.605509,0.000000,0.000000,0.710542,-0.224971,42.19500)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5911"
-       xlink:href="#linearGradient2500"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientTransform="matrix(0.889091,0.000000,0.000000,0.617886,-4.771368,39.81402)"
-       y2="9.0000000"
-       x2="53.750000"
-       y1="-21.750000"
-       x1="37.000000"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5909"
-       xlink:href="#linearGradient2500"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientUnits="userSpaceOnUse"
-       y2="9.0000000"
-       x2="53.750000"
-       y1="-21.750000"
-       x1="37.000000"
-       id="linearGradient5907"
-       xlink:href="#linearGradient2500"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(0.842481,-3.998086)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5905"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(1.641243,8.347272)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5903"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(6.805020,6.218578)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5901"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(12.51365,8.745228)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5899"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5897"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5895"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5893"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5891"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="13.802798"
-       x2="41.403877"
-       y1="13.802798"
-       x1="6.6651416"
-       gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,4.378541,10.65407)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5889"
-       xlink:href="#linearGradient2392"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="13.802798"
-       x2="41.403877"
-       y1="13.802798"
-       x1="6.6651416"
-       gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5887"
-       xlink:href="#linearGradient2392"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5885"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5883"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5881"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5879"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5877"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5875"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(9.263651,3.495228)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5873"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(3.555020,0.968578)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5871"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(-1.608757,3.097272)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5869"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(8.497184,-2.330824)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5867"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(14.46340,2.014073)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5865"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)"
-       gradientUnits="userSpaceOnUse"
-       y2="13.802798"
-       x2="41.403877"
-       y1="13.802798"
-       x1="6.6651416"
-       id="linearGradient5863"
-       xlink:href="#linearGradient2392"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.12415,32.08882)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5861"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(4.207586,21.30544)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5859"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,8.185476,29.52556)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5857"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-4.010744,24.96040)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5855"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,17.05272,31.47010)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5853"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,16.67145,27.22746)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5851"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,0.229156,30.76299)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5849"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(10.30638,19.27251)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5847"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(11.19027,26.52035)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5845"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(5.356636,23.86870)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5843"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(-0.932144,25.87240)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5841"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(16.14002,24.66420)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5839"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5837"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(1.707748,-5.784024)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5835"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5833"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5831"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5829"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5827"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5825"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(14.46340,2.014073)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5823"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(8.497184,-2.330824)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5821"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(9.263651,3.495228)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5819"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(3.555020,0.968578)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5817"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientTransform="translate(-1.608757,3.097272)"
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5815"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6101"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.13675,17.05613)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6118"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,12.38965,19.30874)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6121"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-10.72430,10.10861)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6124"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(21.51400,12.80461)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6179"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-7.197595,2.690414)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6181"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-2.033818,0.561720)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6183"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(3.674812,3.088370)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6185"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6187"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6189"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6191"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2527"
-       id="linearGradient6193"
-       gradientUnits="userSpaceOnUse"
-       x1="-25.137094"
-       y1="-1.2491118"
-       x2="-35.652866"
-       y2="-24.884460" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6196"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,2.209129,10.83861)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6199"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-9.862093,6.148450)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6202"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,10.70137,12.90816)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6205"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-4.372193,11.95105)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6208"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(5.088919,7.833409)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6211"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-0.619711,5.306759)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6214"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-5.783488,7.435453)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6242"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-5.783488,7.435453)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6244"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-0.619711,5.306759)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6246"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(5.088919,7.833409)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6248"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,10.70137,12.90816)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6250"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-9.862093,6.148450)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6252"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,2.209129,10.83861)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6254"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-9.002513,11.93373)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6257"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-0.297112,4.275205)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6260"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,10.91453,3.180085)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6263"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-1.156692,-1.510075)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6266"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,19.40677,5.249635)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6269"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(13.79432,0.174884)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6272"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(8.085690,-2.351766)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6275"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(2.921913,-0.223072)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6311"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(21.51400,12.80461)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6313"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-10.72430,10.10861)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6315"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,12.38965,19.30874)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6317"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-1.156692,-1.510075)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6319"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.13675,17.05613)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6321"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-5.783488,7.435453)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6323"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-0.619711,5.306759)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6325"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(5.088919,7.833409)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6327"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,10.70137,12.90816)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6329"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-9.862093,6.148450)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6331"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,2.209129,10.83861)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6333"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-9.002513,11.93373)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6335"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(2.921913,-0.223072)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6337"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(8.085690,-2.351766)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6339"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(13.79432,0.174884)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6341"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,19.40677,5.249635)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6343"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,10.91453,3.180085)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6537"
-       id="linearGradient6543"
-       x1="27.320963"
-       y1="44.228481"
-       x2="52.328316"
-       y2="44.228481"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.526962,0.000000,-2.763717e-17,0.972572,16.13182,0.843286)" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6537"
-       id="linearGradient6547"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.526962,0.000000,-4.388782e-16,0.972572,25.91493,0.633642)"
-       x1="27.320963"
-       y1="44.228481"
-       x2="52.328316"
-       y2="44.228481" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6537"
-       id="linearGradient6551"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.526962,0.000000,-4.388782e-16,0.972572,36.25638,0.633643)"
-       x1="27.320963"
-       y1="44.228481"
-       x2="45.115814"
-       y2="44.228455" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6537"
-       id="linearGradient6559"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.526962,0.000000,-2.332577e-16,0.972572,16.13182,0.843286)"
-       x1="27.320963"
-       y1="44.228481"
-       x2="52.328316"
-       y2="44.228481" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6537"
-       id="linearGradient6561"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.526962,0.000000,-6.444987e-16,0.972572,25.91493,0.633642)"
-       x1="27.320963"
-       y1="44.228481"
-       x2="52.328316"
-       y2="44.228481" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6537"
-       id="linearGradient6563"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.526962,0.000000,-6.444987e-16,0.972572,36.25638,0.633643)"
-       x1="27.320963"
-       y1="44.228481"
-       x2="45.115814"
-       y2="44.228455" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6537"
-       id="linearGradient6566"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.577744,0.000000,-5.984325e-16,1.025105,38.38995,-1.768804)"
-       x1="27.320963"
-       y1="44.228481"
-       x2="45.115814"
-       y2="44.228455" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6537"
-       id="linearGradient6569"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.577744,0.000000,-5.984325e-16,1.025105,27.05193,-1.768805)"
-       x1="27.320963"
-       y1="44.228481"
-       x2="52.328316"
-       y2="44.228481" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6537"
-       id="linearGradient6572"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.589347,0.000000,-1.531909e-16,1.025217,16.34910,-1.110328)"
-       x1="27.320963"
-       y1="44.228481"
-       x2="52.328316"
-       y2="44.228481" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6576"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.132431,0.000000,0.000000,1.016132,11.79178,-1.090051)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6579"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.853605,0.000000,0.000000,1.016132,20.48211,1.012885)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6582"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,14.73875,-4.143732)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6585"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,8.896962,-6.711142)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6588"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,3.612740,-4.548108)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6599"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.999079,0.000000,0.000000,1.016132,58.06881,13.00984)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6603"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.496116,0.000000,0.000000,1.282841,-0.560999,-5.855873)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6606"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.314274,0.000000,0.000000,1.016132,13.30131,15.29879)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6609"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.496116,0.000000,0.000000,1.282841,-10.35177,5.950245)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6612"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,22.63849,8.689740)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6618"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,17.34164,6.586930)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6622"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,12.56867,12.68572)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6624"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-5.783488,7.435453)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6626"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-0.619711,5.306759)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6628"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(5.088919,7.833409)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6630"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,10.70137,12.90816)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6632"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-9.862093,6.148450)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6634"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,2.209129,10.83861)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6636"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-9.002513,11.93373)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4442"
-       id="linearGradient2736"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-59.00000,27.72122)"
-       x1="4.3602662"
-       y1="-21.904713"
-       x2="40.139732"
-       y2="-1.8452871" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient2738"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-9.992899,-16.32980)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient2740"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,4.534070,-12.70656)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient2742"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.613903,0.000000,0.000000,0.613903,-1.200260,0.631990)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient2745"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-4.033948,-17.90479)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient2747"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,-9.728831,-6.856090)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient2749"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.333333,0.000000,0.000000,1.000000,-14.02052,-13.29853)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient2751"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,12.43523,-5.473742)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient2753"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,7.747730,-6.786242)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4488"
-       id="linearGradient2755"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.926905,0.000000,0.000000,0.881886,-60.91820,-2.915960)"
-       x1="17.181321"
-       y1="32.443652"
-       x2="47.342173"
-       y2="32.443652" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient2757"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-3.681521,-53.82781)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient2759"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,12.81910,-50.04120)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient2761"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,15.17579,-44.92562)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient2763"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.613903,0.000000,0.000000,0.613903,17.14727,-36.85890)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient2765"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(3.365819,-55.70818)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient2767"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,-0.912551,-43.37823)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient2769"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.333333,0.000000,0.000000,1.000000,-7.329241,-50.85192)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4488"
-       id="linearGradient2771"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.926905,0.000000,0.000000,0.881886,-74.92090,-6.914630)"
-       x1="17.175579"
-       y1="23.374163"
-       x2="38.037014"
-       y2="38.680286" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient2773"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-3.681521,-53.82781)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient2775"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,12.81910,-50.04120)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient2777"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,15.17579,-44.92562)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient2779"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.613903,0.000000,0.000000,0.613903,17.14727,-36.85890)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient2781"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(3.365819,-55.70818)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient2783"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,-0.912551,-43.37823)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient2785"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.333333,0.000000,0.000000,1.000000,-7.329241,-50.85192)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4488"
-       id="linearGradient2799"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.926905,0.000000,0.000000,0.881886,-11.91814,-7.649759)"
-       x1="17.175579"
-       y1="23.374163"
-       x2="38.037014"
-       y2="38.680286" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4488"
-       id="linearGradient2813"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.926905,0.000000,0.000000,0.881886,2.084560,-3.651089)"
-       x1="18.664751"
-       y1="23.374166"
-       x2="31.294144"
-       y2="35.845455" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4442"
-       id="linearGradient2827"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(4.002760,26.98609)"
-       x1="4.3602662"
-       y1="-21.904713"
-       x2="40.139732"
-       y2="-1.8452871" />
   </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="16"
-     inkscape:cx="11.996306"
-     inkscape:cy="38.014291"
-     inkscape:current-layer="layer1"
-     showgrid="true"
-     inkscape:grid-bbox="true"
-     inkscape:document-units="px"
-     inkscape:window-width="1200"
-     inkscape:window-height="704"
-     inkscape:window-x="134"
-     inkscape:window-y="133"
-     inkscape:showpageshadow="false" />
-  <metadata
-     id="metadata1311">
+  
+  <metadata id="metadata1311">
     <rdf:RDF>
-      <cc:Work
-         rdf:about="">
+      <cc:Work rdf:about="">
         <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
         <dc:title>weather-showers</dc:title>
         <dc:date>January 2006</dc:date>
         <dc:creator>
@@ -4312,441 +98,81 @@
             <rdf:li>notify</rdf:li>
           </rdf:Bag>
         </dc:subject>
-        <cc:license
-           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+        <cc:license rdf:resource="http://creativecommons.org/licenses/publicdomain/"/>
       </cc:Work>
-      <cc:License
-         rdf:about="http://creativecommons.org/licenses/publicdomain/">
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Reproduction" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Distribution" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      <cc:License rdf:about="http://creativecommons.org/licenses/publicdomain/">
+        <cc:permits rdf:resource="http://creativecommons.org/ns#Reproduction"/>
+        <cc:permits rdf:resource="http://creativecommons.org/ns#Distribution"/>
+        <cc:permits rdf:resource="http://creativecommons.org/ns#DerivativeWorks"/>
       </cc:License>
     </rdf:RDF>
   </metadata>
-  <g
-     id="layer1"
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer">
-    <g
-       id="g11337"
-       transform="translate(-339.9823,245.0132)">
-      <rect
-         transform="matrix(1.000000,0.000000,-0.600523,0.799607,0.000000,0.000000)"
-         ry="1.5179254"
-         rx="2.3596079"
-         y="-270.75461"
-         x="189.68199"
-         height="17.509083"
-         width="32.962067"
-         id="rect6086"
-         style="opacity:1.0000000;fill:#729fcf;fill-opacity:1.0000000;stroke:#3465a4;stroke-width:1.0817814;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
-      <g
-         style="opacity:0.80000001"
-         transform="matrix(1.000000,0.000000,0.000000,0.999611,0.000000,-7.862650e-2)"
-         id="g10414">
-        <path
-           style="fill:url(#linearGradient11344);fill-opacity:1.0000000;stroke:none;stroke-width:1.1547011;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           d="M 352.47790,-216.00000 L 359.39580,-216.00000 C 360.69054,-216.00000 361.33008,-215.50056 360.82979,-214.88017 L 352.15249,-204.12015 C 351.65217,-203.49974 350.20707,-203.00030 348.91233,-203.00030 L 344.86943,-203.00030 C 343.57469,-203.00030 342.30979,-202.95120 343.43545,-204.12015 C 343.43545,-204.12015 352.47790,-216.00000 352.47790,-216.00000 z "
-           id="rect6088"
-           sodipodi:nodetypes="cccccccc" />
-        <path
-           style="fill:url(#linearGradient11346);fill-opacity:1.0000000;stroke:none;stroke-width:1.1547011;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           d="M 362.74641,-216.00000 L 369.42169,-216.00000 C 370.69552,-216.00000 371.32477,-215.50054 370.83253,-214.88014 L 362.29523,-204.11987 C 361.80299,-203.49946 360.38121,-203.00000 359.10738,-203.00000 L 353.00000,-203.00000 C 353.00000,-203.00000 362.74641,-216.00000 362.74641,-216.00000 z "
-           id="path6115"
-           sodipodi:nodetypes="ccccccc" />
-        <path
-           style="fill:url(#linearGradient11348);fill-opacity:1.0000000;stroke:none;stroke-width:1.1547011;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           d="M 372.74640,-216.00000 L 379.42169,-216.00000 C 380.69553,-216.00000 381.32477,-215.50053 380.83253,-214.88014 L 372.29523,-204.11986 C 371.80299,-203.49945 370.38122,-203.00000 369.10738,-203.00000 L 363.00000,-203.00000 C 363.00000,-203.00000 372.74640,-216.00000 372.74640,-216.00000 z "
-           id="path6125"
-           sodipodi:nodetypes="ccccccc" />
+  <g id="layer1">
+    <g transform="translate(-339.9823,245.0132)">
+      <rect transform="matrix(1.000000,0.000000,-0.600523,0.799607,0.000000,0.000000)" ry="1.5179254" rx="2.3596079" y="-270.75461" x="189.68199" height="17.509083" width="32.962067" opacity="1.0000000" fill="#729fcf" fill-opacity="1.0000000" stroke="#3465a4" stroke-width="1.0817814" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+      <g transform="matrix(1.000000,0.000000,0.000000,0.999611,0.000000,-7.862650e-2)" opacity="0.80000001">
+        <path d="M 352.47790,-216.00000 L 359.39580,-216.00000 C 360.69054,-216.00000 361.33008,-215.50056 360.82979,-214.88017 L 352.15249,-204.12015 C 351.65217,-203.49974 350.20707,-203.00030 348.91233,-203.00030 L 344.86943,-203.00030 C 343.57469,-203.00030 342.30979,-202.95120 343.43545,-204.12015 C 343.43545,-204.12015 352.47790,-216.00000 352.47790,-216.00000 z " fill="url(#linearGradient11344)" fill-opacity="1.0000000" stroke="none" stroke-width="1.1547011" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0.0000000" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 362.74641,-216.00000 L 369.42169,-216.00000 C 370.69552,-216.00000 371.32477,-215.50054 370.83253,-214.88014 L 362.29523,-204.11987 C 361.80299,-203.49946 360.38121,-203.00000 359.10738,-203.00000 L 353.00000,-203.00000 C 353.00000,-203.00000 362.74641,-216.00000 362.74641,-216.00000 z " fill="url(#linearGradient11346)" fill-opacity="1.0000000" stroke="none" stroke-width="1.1547011" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0.0000000" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 372.74640,-216.00000 L 379.42169,-216.00000 C 380.69553,-216.00000 381.32477,-215.50053 380.83253,-214.88014 L 372.29523,-204.11986 C 371.80299,-203.49945 370.38122,-203.00000 369.10738,-203.00000 L 363.00000,-203.00000 C 363.00000,-203.00000 372.74640,-216.00000 372.74640,-216.00000 z " fill="url(#linearGradient11348)" fill-opacity="1.0000000" stroke="none" stroke-width="1.1547011" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0.0000000" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
       </g>
     </g>
-    <g
-       id="g13213"
-       transform="matrix(0.999675,0.000000,0.000000,1.000000,-286.8562,245.0000)">
-      <g
-         id="g13215">
-        <path
-           style="opacity:1.0000000;fill:#555753;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           d="M 311.50000,-242.99998 C 308.72758,-242.99998 306.39177,-241.42627 305.09375,-239.18748 C 304.14939,-239.66252 303.12856,-239.99998 302.00000,-239.99998 C 298.13600,-239.99998 295.00000,-236.86398 295.00000,-232.99998 C 295.00000,-229.13598 298.13600,-225.99998 302.00000,-225.99998 C 304.41967,-225.99998 306.43009,-227.31930 307.68750,-229.18748 C 308.82170,-228.49786 310.07648,-227.99998 311.50000,-227.99998 C 312.41312,-227.99998 313.25295,-228.23200 314.06250,-228.53123 C 314.57244,-227.66350 315.24162,-226.95151 316.06250,-226.37498 C 316.05526,-226.24460 316.00000,-226.13216 316.00000,-225.99998 C 316.00000,-222.13598 319.13599,-218.99998 323.00000,-218.99998 C 326.86400,-218.99998 330.00000,-222.13598 330.00000,-225.99998 C 330.00000,-228.36967 328.74102,-230.35832 326.93750,-231.62498 C 326.94474,-231.75536 327.00000,-231.86780 327.00000,-231.99998 C 327.00000,-235.86398 323.86401,-238.99998 320.00000,-238.99998 C 319.37730,-238.99998 318.82481,-238.77779 318.25000,-238.62498 C 317.05547,-241.18382 314.50866,-242.99998 311.50000,-242.99998 z "
-           id="path13217" />
-        <path
-           style="opacity:1.0000000;fill:url(#linearGradient13315);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           d="M 311.50000,-241.99998 C 308.71952,-241.99998 306.36549,-240.23813 305.43750,-237.78123 C 304.45208,-238.49067 303.30607,-238.99998 302.00000,-238.99998 C 298.68800,-238.99998 296.00000,-236.31198 296.00000,-232.99998 C 296.00000,-229.68798 298.68800,-226.99998 302.00000,-226.99998 C 304.42775,-226.99998 306.49324,-228.45556 307.43750,-230.53123 C 308.55826,-229.61367 309.93964,-228.99998 311.50000,-228.99998 C 312.57454,-228.99998 313.54428,-229.31894 314.43750,-229.78123 C 314.83590,-228.78147 315.53864,-227.99491 316.37500,-227.34373 C 316.19499,-226.74811 316.00000,-226.15408 316.00000,-225.49998 C 316.00000,-221.91198 318.91200,-218.99998 322.50000,-218.99998 C 326.08800,-218.99998 329.00000,-221.91198 329.00000,-225.49998 C 329.00000,-227.86077 327.66567,-229.83017 325.78125,-230.96873 C 325.84384,-231.31596 326.00000,-231.63481 326.00000,-231.99998 C 326.00000,-235.31198 323.31200,-237.99998 320.00000,-237.99998 C 319.14702,-237.99998 318.32870,-237.82130 317.59375,-237.49998 C 316.73998,-240.09386 314.37851,-241.99997 311.50000,-241.99998 z "
-           id="path13219" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path13221"
-           sodipodi:cx="241.80843"
-           sodipodi:cy="-383.66660"
-           sodipodi:rx="6.7396116"
-           sodipodi:ry="6.7396116"
-           d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1  235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1  248.54804 -383.66660 z"
-           transform="matrix(0.964447,0.000000,0.000000,0.964447,89.28852,144.5262)" />
-        <g
-           id="g13223">
-          <path
-             transform="matrix(0.882630,0.000000,0.000000,0.882630,96.18078,108.1091)"
-             d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1  237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1  250.18322 -389.30136 z"
-             sodipodi:ry="6.2313786"
-             sodipodi:rx="6.2313786"
-             sodipodi:cy="-389.30136"
-             sodipodi:cx="243.95184"
-             id="path13225"
-             style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-             sodipodi:type="arc" />
-          <path
-             transform="matrix(0.882630,0.000000,0.000000,0.882630,96.18078,108.1091)"
-             d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1  237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1  250.18322 -389.30136 z"
-             sodipodi:ry="6.2313786"
-             sodipodi:rx="6.2313786"
-             sodipodi:cy="-389.30136"
-             sodipodi:cx="243.95184"
-             id="path13227"
-             style="opacity:0.49444440;fill:url(#linearGradient13317);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-             sodipodi:type="arc" />
+    <g transform="matrix(0.999675,0.000000,0.000000,1.000000,-286.8562,245.0000)">
+      <g>
+        <path d="M 311.50000,-242.99998 C 308.72758,-242.99998 306.39177,-241.42627 305.09375,-239.18748 C 304.14939,-239.66252 303.12856,-239.99998 302.00000,-239.99998 C 298.13600,-239.99998 295.00000,-236.86398 295.00000,-232.99998 C 295.00000,-229.13598 298.13600,-225.99998 302.00000,-225.99998 C 304.41967,-225.99998 306.43009,-227.31930 307.68750,-229.18748 C 308.82170,-228.49786 310.07648,-227.99998 311.50000,-227.99998 C 312.41312,-227.99998 313.25295,-228.23200 314.06250,-228.53123 C 314.57244,-227.66350 315.24162,-226.95151 316.06250,-226.37498 C 316.05526,-226.24460 316.00000,-226.13216 316.00000,-225.99998 C 316.00000,-222.13598 319.13599,-218.99998 323.00000,-218.99998 C 326.86400,-218.99998 330.00000,-222.13598 330.00000,-225.99998 C 330.00000,-228.36967 328.74102,-230.35832 326.93750,-231.62498 C 326.94474,-231.75536 327.00000,-231.86780 327.00000,-231.99998 C 327.00000,-235.86398 323.86401,-238.99998 320.00000,-238.99998 C 319.37730,-238.99998 318.82481,-238.77779 318.25000,-238.62498 C 317.05547,-241.18382 314.50866,-242.99998 311.50000,-242.99998 z " opacity="1.0000000" fill="#555753" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 311.50000,-241.99998 C 308.71952,-241.99998 306.36549,-240.23813 305.43750,-237.78123 C 304.45208,-238.49067 303.30607,-238.99998 302.00000,-238.99998 C 298.68800,-238.99998 296.00000,-236.31198 296.00000,-232.99998 C 296.00000,-229.68798 298.68800,-226.99998 302.00000,-226.99998 C 304.42775,-226.99998 306.49324,-228.45556 307.43750,-230.53123 C 308.55826,-229.61367 309.93964,-228.99998 311.50000,-228.99998 C 312.57454,-228.99998 313.54428,-229.31894 314.43750,-229.78123 C 314.83590,-228.78147 315.53864,-227.99491 316.37500,-227.34373 C 316.19499,-226.74811 316.00000,-226.15408 316.00000,-225.49998 C 316.00000,-221.91198 318.91200,-218.99998 322.50000,-218.99998 C 326.08800,-218.99998 329.00000,-221.91198 329.00000,-225.49998 C 329.00000,-227.86077 327.66567,-229.83017 325.78125,-230.96873 C 325.84384,-231.31596 326.00000,-231.63481 326.00000,-231.99998 C 326.00000,-235.31198 323.31200,-237.99998 320.00000,-237.99998 C 319.14702,-237.99998 318.32870,-237.82130 317.59375,-237.49998 C 316.73998,-240.09386 314.37851,-241.99997 311.50000,-241.99998 z " opacity="1.0000000" fill="url(#linearGradient13315)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1  235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1  248.54804 -383.66660 z" transform="matrix(0.964447,0.000000,0.000000,0.964447,89.28852,144.5262)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <g>
+          <path transform="matrix(0.882630,0.000000,0.000000,0.882630,96.18078,108.1091)" d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1  237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1  250.18322 -389.30136 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+          <path transform="matrix(0.882630,0.000000,0.000000,0.882630,96.18078,108.1091)" d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1  237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1  250.18322 -389.30136 z" opacity="0.49444440" fill="url(#linearGradient13317)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
         </g>
-        <g
-           id="g13229">
-          <path
-             transform="matrix(0.911728,0.000000,0.000000,0.911728,90.45407,120.2336)"
-             d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1  245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1  257.25429 -385.78790 z"
-             sodipodi:ry="6.0325046"
-             sodipodi:rx="6.0325046"
-             sodipodi:cy="-385.78790"
-             sodipodi:cx="251.22179"
-             id="path13231"
-             style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-             sodipodi:type="arc" />
-          <path
-             transform="matrix(0.911728,0.000000,0.000000,0.911728,90.45407,120.2336)"
-             d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1  245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1  257.25429 -385.78790 z"
-             sodipodi:ry="6.0325046"
-             sodipodi:rx="6.0325046"
-             sodipodi:cy="-385.78790"
-             sodipodi:cx="251.22179"
-             id="path13233"
-             style="opacity:0.49444440;fill:url(#linearGradient13319);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-             sodipodi:type="arc" />
+        <g>
+          <path transform="matrix(0.911728,0.000000,0.000000,0.911728,90.45407,120.2336)" d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1  245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1  257.25429 -385.78790 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+          <path transform="matrix(0.911728,0.000000,0.000000,0.911728,90.45407,120.2336)" d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1  245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1  257.25429 -385.78790 z" opacity="0.49444440" fill="url(#linearGradient13319)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
         </g>
-        <g
-           id="g13235">
-          <path
-             transform="matrix(1.142799,0.000000,0.000000,1.142799,35.23229,210.2770)"
-             d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1  229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1  237.80885 -387.88715 z"
-             sodipodi:ry="4.3752232"
-             sodipodi:rx="4.3752232"
-             sodipodi:cy="-387.88715"
-             sodipodi:cx="233.43362"
-             id="path13237"
-             style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-             sodipodi:type="arc" />
-          <path
-             transform="matrix(1.142799,0.000000,0.000000,1.142799,35.23229,210.2770)"
-             d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1  229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1  237.80885 -387.88715 z"
-             sodipodi:ry="4.3752232"
-             sodipodi:rx="4.3752232"
-             sodipodi:cy="-387.88715"
-             sodipodi:cx="233.43362"
-             id="path13239"
-             style="opacity:0.49444440;fill:url(#linearGradient13321);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-             sodipodi:type="arc" />
+        <g>
+          <path transform="matrix(1.142799,0.000000,0.000000,1.142799,35.23229,210.2770)" d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1  229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1  237.80885 -387.88715 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+          <path transform="matrix(1.142799,0.000000,0.000000,1.142799,35.23229,210.2770)" d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1  229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1  237.80885 -387.88715 z" opacity="0.49444440" fill="url(#linearGradient13321)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
         </g>
-        <g
-           id="g13241">
-          <path
-             transform="matrix(1.038636,0.000000,0.000000,1.038636,59.84906,169.4899)"
-             d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1  235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1  248.54804 -383.66660 z"
-             sodipodi:ry="6.7396116"
-             sodipodi:rx="6.7396116"
-             sodipodi:cy="-383.66660"
-             sodipodi:cx="241.80843"
-             id="path13243"
-             style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-             sodipodi:type="arc" />
-          <path
-             transform="matrix(1.038636,0.000000,0.000000,1.038636,59.84907,169.4899)"
-             d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1  235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1  248.54804 -383.66660 z"
-             sodipodi:ry="6.7396116"
-             sodipodi:rx="6.7396116"
-             sodipodi:cy="-383.66660"
-             sodipodi:cx="241.80843"
-             id="path13245"
-             style="opacity:0.49444440;fill:url(#linearGradient13323);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-             sodipodi:type="arc" />
+        <g>
+          <path transform="matrix(1.038636,0.000000,0.000000,1.038636,59.84906,169.4899)" d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1  235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1  248.54804 -383.66660 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+          <path transform="matrix(1.038636,0.000000,0.000000,1.038636,59.84907,169.4899)" d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1  235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1  248.54804 -383.66660 z" opacity="0.49444440" fill="url(#linearGradient13323)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
         </g>
       </g>
-      <g
-         transform="translate(72.00007,7.999930)"
-         id="g13247">
-        <path
-           style="fill:#888a85;fill-opacity:1.0000000;stroke:#555753;stroke-width:1.0001625;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           d="M 246.49993,-238.49993 C 244.22910,-238.49993 242.39002,-236.94965 241.78118,-234.87493 C 241.08795,-235.23876 240.33667,-235.49993 239.49993,-235.49993 C 236.73993,-235.49993 234.49992,-233.25994 234.49993,-230.49993 C 234.49993,-229.92100 234.66245,-229.39223 234.84368,-228.87493 C 233.47021,-228.10419 232.49993,-226.68593 232.49993,-224.99993 C 232.49993,-222.51593 234.51593,-220.49992 236.99993,-220.49993 C 237.17706,-220.49993 255.82280,-220.49993 255.99993,-220.49993 C 258.48392,-220.49993 260.49993,-222.51593 260.49993,-224.99993 C 260.49993,-226.68593 259.52965,-228.10419 258.15618,-228.87493 C 258.33742,-229.39222 258.49993,-229.92101 258.49993,-230.49993 C 258.49993,-233.25993 256.25993,-235.49992 253.49993,-235.49993 C 252.66319,-235.49993 251.91191,-235.23876 251.21868,-234.87493 C 250.60984,-236.94965 248.77076,-238.49993 246.49993,-238.49993 z "
-           id="path13249"
-           sodipodi:nodetypes="ccsscsssscsscc" />
-        <path
-           style="opacity:1.0000000;fill:url(#linearGradient13325);fill-opacity:1.0000000;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           d="M 246.49993,-237.99993 C 244.31021,-237.99993 242.77633,-236.66416 242.10438,-234.15641 C 241.43592,-234.50003 240.55679,-234.98976 239.74993,-234.98976 C 237.03342,-234.98976 234.99479,-233.05094 234.99480,-230.44422 C 234.99480,-229.89745 235.26201,-229.11078 235.43676,-228.62221 C 234.11233,-227.89426 232.99993,-226.73171 232.99993,-225.24966 C 232.99993,-222.90361 234.54610,-220.99957 237.33921,-220.99957 C 237.51002,-220.99957 255.48985,-220.99957 255.66065,-220.99957 C 258.43166,-220.99957 259.99993,-222.90361 259.99993,-225.24966 C 259.99993,-226.84203 258.88753,-227.91635 257.56310,-228.64430 C 257.73786,-229.13286 258.02717,-229.89746 258.02717,-230.44422 C 258.02717,-233.05093 255.91136,-235.01185 253.24994,-235.01186 C 252.44307,-235.01186 251.60813,-234.52212 250.93967,-234.17850 C 250.29082,-236.60004 248.68966,-237.99993 246.49993,-237.99993 z "
-           id="path13251"
-           sodipodi:nodetypes="ccsscsssscsscc" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path13253"
-           sodipodi:cx="288.37500"
-           sodipodi:cy="-437.59375"
-           sodipodi:rx="3.3125000"
-           sodipodi:ry="3.3125000"
-           d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-           transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:0.47777775;fill:url(#linearGradient13327);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path13255"
-           sodipodi:cx="288.37500"
-           sodipodi:cy="-437.59375"
-           sodipodi:rx="3.3125000"
-           sodipodi:ry="3.3125000"
-           d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-           transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" />
-        <rect
-           style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="rect13257"
-           width="20.000000"
-           height="9.0000000"
-           x="236.99994"
-           y="-230.99992" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path13259"
-           sodipodi:cx="288.37500"
-           sodipodi:cy="-437.59375"
-           sodipodi:rx="3.3125000"
-           sodipodi:ry="3.3125000"
-           d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-           transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16987,171.3114)" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path13261"
-           sodipodi:cx="288.37500"
-           sodipodi:cy="-437.59375"
-           sodipodi:rx="3.3125000"
-           sodipodi:ry="3.3125000"
-           d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-           transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19818,231.8633)" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:0.47777775;fill:url(#linearGradient13329);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path13263"
-           sodipodi:cx="288.37500"
-           sodipodi:cy="-437.59375"
-           sodipodi:rx="3.3125000"
-           sodipodi:ry="3.3125000"
-           d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-           transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19825,231.8634)" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path13265"
-           sodipodi:cx="288.37500"
-           sodipodi:cy="-437.59375"
-           sodipodi:rx="3.3125000"
-           sodipodi:ry="3.3125000"
-           d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-           transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:0.47777775;fill:url(#linearGradient13331);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path13267"
-           sodipodi:cx="288.37500"
-           sodipodi:cy="-437.59375"
-           sodipodi:rx="3.3125000"
-           sodipodi:ry="3.3125000"
-           d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-           transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" />
-        <path
-           style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           d="M 245.46868,-233.96868 C 241.88930,-233.96868 238.99993,-231.04805 238.99993,-227.46868 C 238.99993,-225.09800 240.34936,-223.13089 242.24993,-221.99993 L 248.71868,-221.99993 C 250.61925,-223.13089 251.96868,-225.12924 251.96868,-227.49993 C 251.96868,-231.07931 249.04805,-233.96868 245.46868,-233.96868 z "
-           id="path13269" />
-        <path
-           style="opacity:0.47777775;fill:url(#linearGradient13333);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           d="M 245.49993,-233.99993 C 241.91193,-233.99993 238.99993,-231.08792 238.99993,-227.49993 C 238.99993,-225.12353 240.34478,-223.13361 242.24993,-221.99993 L 248.74993,-221.99993 C 250.65508,-223.13361 251.99993,-225.12353 251.99993,-227.49993 C 251.99993,-231.08793 249.08793,-233.99992 245.49993,-233.99993 z "
-           id="path13271" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:0.47777775;fill:url(#linearGradient13335);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path13273"
-           sodipodi:cx="288.37500"
-           sodipodi:cy="-437.59375"
-           sodipodi:rx="3.3125000"
-           sodipodi:ry="3.3125000"
-           d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-           transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16977,171.3113)" />
-        <path
-           style="fill:#555753;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
-           d="M 258.95633,-230.33389 C 258.95480,-227.64933 255.68707,-226.61994 255.68707,-226.61994 C 255.68707,-226.61994 258.03581,-228.24589 258.02392,-230.32495 C 258.02392,-230.32495 258.95633,-230.33389 258.95633,-230.33389 z "
-           id="path13275"
-           sodipodi:nodetypes="ccss" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path13277"
-           sodipodi:cx="288.37500"
-           sodipodi:cy="-437.59375"
-           sodipodi:rx="3.3125000"
-           sodipodi:ry="3.3125000"
-           d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-           transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:0.47777775;fill:url(#linearGradient13337);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path13279"
-           sodipodi:cx="288.37500"
-           sodipodi:cy="-437.59375"
-           sodipodi:rx="3.3125000"
-           sodipodi:ry="3.3125000"
-           d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-           transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" />
+      <g transform="translate(72.00007,7.999930)">
+        <path d="M 246.49993,-238.49993 C 244.22910,-238.49993 242.39002,-236.94965 241.78118,-234.87493 C 241.08795,-235.23876 240.33667,-235.49993 239.49993,-235.49993 C 236.73993,-235.49993 234.49992,-233.25994 234.49993,-230.49993 C 234.49993,-229.92100 234.66245,-229.39223 234.84368,-228.87493 C 233.47021,-228.10419 232.49993,-226.68593 232.49993,-224.99993 C 232.49993,-222.51593 234.51593,-220.49992 236.99993,-220.49993 C 237.17706,-220.49993 255.82280,-220.49993 255.99993,-220.49993 C 258.48392,-220.49993 260.49993,-222.51593 260.49993,-224.99993 C 260.49993,-226.68593 259.52965,-228.10419 258.15618,-228.87493 C 258.33742,-229.39222 258.49993,-229.92101 258.49993,-230.49993 C 258.49993,-233.25993 256.25993,-235.49992 253.49993,-235.49993 C 252.66319,-235.49993 251.91191,-235.23876 251.21868,-234.87493 C 250.60984,-236.94965 248.77076,-238.49993 246.49993,-238.49993 z " fill="#888a85" fill-opacity="1.0000000" stroke="#555753" stroke-width="1.0001625" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 246.49993,-237.99993 C 244.31021,-237.99993 242.77633,-236.66416 242.10438,-234.15641 C 241.43592,-234.50003 240.55679,-234.98976 239.74993,-234.98976 C 237.03342,-234.98976 234.99479,-233.05094 234.99480,-230.44422 C 234.99480,-229.89745 235.26201,-229.11078 235.43676,-228.62221 C 234.11233,-227.89426 232.99993,-226.73171 232.99993,-225.24966 C 232.99993,-222.90361 234.54610,-220.99957 237.33921,-220.99957 C 237.51002,-220.99957 255.48985,-220.99957 255.66065,-220.99957 C 258.43166,-220.99957 259.99993,-222.90361 259.99993,-225.24966 C 259.99993,-226.84203 258.88753,-227.91635 257.56310,-228.64430 C 257.73786,-229.13286 258.02717,-229.89746 258.02717,-230.44422 C 258.02717,-233.05093 255.91136,-235.01185 253.24994,-235.01186 C 252.44307,-235.01186 251.60813,-234.52212 250.93967,-234.17850 C 250.29082,-236.60004 248.68966,-237.99993 246.49993,-237.99993 z " opacity="1.0000000" fill="url(#linearGradient13325)" fill-opacity="1.0000000" stroke="none" stroke-width="0.99999958" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" opacity="0.47777775" fill="url(#linearGradient13327)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <rect width="20.000000" height="9.0000000" x="236.99994" y="-230.99992" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16987,171.3114)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19818,231.8633)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19825,231.8634)" opacity="0.47777775" fill="url(#linearGradient13329)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" opacity="0.47777775" fill="url(#linearGradient13331)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 245.46868,-233.96868 C 241.88930,-233.96868 238.99993,-231.04805 238.99993,-227.46868 C 238.99993,-225.09800 240.34936,-223.13089 242.24993,-221.99993 L 248.71868,-221.99993 C 250.61925,-223.13089 251.96868,-225.12924 251.96868,-227.49993 C 251.96868,-231.07931 249.04805,-233.96868 245.46868,-233.96868 z " opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 245.49993,-233.99993 C 241.91193,-233.99993 238.99993,-231.08792 238.99993,-227.49993 C 238.99993,-225.12353 240.34478,-223.13361 242.24993,-221.99993 L 248.74993,-221.99993 C 250.65508,-223.13361 251.99993,-225.12353 251.99993,-227.49993 C 251.99993,-231.08793 249.08793,-233.99992 245.49993,-233.99993 z " opacity="0.47777775" fill="url(#linearGradient13333)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16977,171.3113)" opacity="0.47777775" fill="url(#linearGradient13335)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 258.95633,-230.33389 C 258.95480,-227.64933 255.68707,-226.61994 255.68707,-226.61994 C 255.68707,-226.61994 258.03581,-228.24589 258.02392,-230.32495 C 258.02392,-230.32495 258.95633,-230.33389 258.95633,-230.33389 z " fill="#555753" fill-opacity="1.0000000" fill-rule="evenodd" stroke="none" stroke-width="1.0000000px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1.0000000"/>
+        <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" opacity="0.47777775" fill="url(#linearGradient13337)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
       </g>
-      <g
-         transform="translate(56.98577,3.983930)"
-         id="g13281">
-        <path
-           style="fill:#888a85;fill-opacity:1.0000000;stroke:#555753;stroke-width:1.0001625;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           d="M 246.49993,-238.49993 C 244.22910,-238.49993 242.39002,-236.94965 241.78118,-234.87493 C 241.08795,-235.23876 240.33667,-235.49993 239.49993,-235.49993 C 236.73993,-235.49993 234.49992,-233.25994 234.49993,-230.49993 C 234.49993,-229.92100 234.66245,-229.39223 234.84368,-228.87493 C 233.47021,-228.10419 232.49993,-226.68593 232.49993,-224.99993 C 232.49993,-222.51593 234.51593,-220.49992 236.99993,-220.49993 C 237.17706,-220.49993 255.82280,-220.49993 255.99993,-220.49993 C 258.48392,-220.49993 260.49993,-222.51593 260.49993,-224.99993 C 260.49993,-226.68593 259.52965,-228.10419 258.15618,-228.87493 C 258.33742,-229.39222 258.49993,-229.92101 258.49993,-230.49993 C 258.49993,-233.25993 256.25993,-235.49992 253.49993,-235.49993 C 252.66319,-235.49993 251.91191,-235.23876 251.21868,-234.87493 C 250.60984,-236.94965 248.77076,-238.49993 246.49993,-238.49993 z "
-           id="path13283"
-           sodipodi:nodetypes="ccsscsssscsscc" />
-        <path
-           style="opacity:1.0000000;fill:url(#linearGradient13339);fill-opacity:1.0000000;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           d="M 246.49993,-237.99993 C 244.31021,-237.99993 242.77633,-236.66416 242.10438,-234.15641 C 241.43592,-234.50003 240.55679,-234.98976 239.74993,-234.98976 C 237.03342,-234.98976 234.99479,-233.05094 234.99480,-230.44422 C 234.99480,-229.89745 235.26201,-229.11078 235.43676,-228.62221 C 234.11233,-227.89426 232.99993,-226.73171 232.99993,-225.24966 C 232.99993,-222.90361 234.54610,-220.99957 237.33921,-220.99957 C 237.51002,-220.99957 255.48985,-220.99957 255.66065,-220.99957 C 258.43166,-220.99957 259.99993,-222.90361 259.99993,-225.24966 C 259.99993,-226.84203 258.88753,-227.91635 257.56310,-228.64430 C 257.73786,-229.13286 258.02717,-229.89746 258.02717,-230.44422 C 258.02717,-233.05093 255.91136,-235.01185 253.24994,-235.01186 C 252.44307,-235.01186 251.60813,-234.52212 250.93967,-234.17850 C 250.29082,-236.60004 248.68966,-237.99993 246.49993,-237.99993 z "
-           id="path13285"
-           sodipodi:nodetypes="ccsscsssscsscc" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path13287"
-           sodipodi:cx="288.37500"
-           sodipodi:cy="-437.59375"
-           sodipodi:rx="3.3125000"
-           sodipodi:ry="3.3125000"
-           d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-           transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:0.47777775;fill:url(#linearGradient13341);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path13289"
-           sodipodi:cx="288.37500"
-           sodipodi:cy="-437.59375"
-           sodipodi:rx="3.3125000"
-           sodipodi:ry="3.3125000"
-           d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-           transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" />
-        <rect
-           style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="rect13291"
-           width="20.000000"
-           height="9.0000000"
-           x="236.99994"
-           y="-230.99992" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path13293"
-           sodipodi:cx="288.37500"
-           sodipodi:cy="-437.59375"
-           sodipodi:rx="3.3125000"
-           sodipodi:ry="3.3125000"
-           d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-           transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16987,171.3114)" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path13295"
-           sodipodi:cx="288.37500"
-           sodipodi:cy="-437.59375"
-           sodipodi:rx="3.3125000"
-           sodipodi:ry="3.3125000"
-           d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-           transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19818,231.8633)" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:0.47777775;fill:url(#linearGradient13343);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path13297"
-           sodipodi:cx="288.37500"
-           sodipodi:cy="-437.59375"
-           sodipodi:rx="3.3125000"
-           sodipodi:ry="3.3125000"
-           d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-           transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19825,231.8634)" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path13299"
-           sodipodi:cx="288.37500"
-           sodipodi:cy="-437.59375"
-           sodipodi:rx="3.3125000"
-           sodipodi:ry="3.3125000"
-           d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-           transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:0.47777775;fill:url(#linearGradient13345);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path13301"
-           sodipodi:cx="288.37500"
-           sodipodi:cy="-437.59375"
-           sodipodi:rx="3.3125000"
-           sodipodi:ry="3.3125000"
-           d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-           transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" />
-        <path
-           style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           d="M 245.46868,-233.96868 C 241.88930,-233.96868 238.99993,-231.04805 238.99993,-227.46868 C 238.99993,-225.09800 240.34936,-223.13089 242.24993,-221.99993 L 248.71868,-221.99993 C 250.61925,-223.13089 251.96868,-225.12924 251.96868,-227.49993 C 251.96868,-231.07931 249.04805,-233.96868 245.46868,-233.96868 z "
-           id="path13303" />
-        <path
-           style="opacity:0.47777775;fill:url(#linearGradient13347);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           d="M 245.49993,-233.99993 C 241.91193,-233.99993 238.99993,-231.08792 238.99993,-227.49993 C 238.99993,-225.12353 240.34478,-223.13361 242.24993,-221.99993 L 248.74993,-221.99993 C 250.65508,-223.13361 251.99993,-225.12353 251.99993,-227.49993 C 251.99993,-231.08793 249.08793,-233.99992 245.49993,-233.99993 z "
-           id="path13305" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:0.47777775;fill:url(#linearGradient13350);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path13307"
-           sodipodi:cx="288.37500"
-           sodipodi:cy="-437.59375"
-           sodipodi:rx="3.3125000"
-           sodipodi:ry="3.3125000"
-           d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-           transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16977,171.3113)" />
-        <path
-           style="fill:#555753;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
-           d="M 258.95633,-230.33389 C 258.95480,-227.64933 255.68707,-226.61994 255.68707,-226.61994 C 255.68707,-226.61994 258.03581,-228.24589 258.02392,-230.32495 C 258.02392,-230.32495 258.95633,-230.33389 258.95633,-230.33389 z "
-           id="path13309"
-           sodipodi:nodetypes="ccss" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path13311"
-           sodipodi:cx="288.37500"
-           sodipodi:cy="-437.59375"
-           sodipodi:rx="3.3125000"
-           sodipodi:ry="3.3125000"
-           d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-           transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:0.47777775;fill:url(#linearGradient13352);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path13313"
-           sodipodi:cx="288.37500"
-           sodipodi:cy="-437.59375"
-           sodipodi:rx="3.3125000"
-           sodipodi:ry="3.3125000"
-           d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-           transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" />
+      <g transform="translate(56.98577,3.983930)">
+        <path d="M 246.49993,-238.49993 C 244.22910,-238.49993 242.39002,-236.94965 241.78118,-234.87493 C 241.08795,-235.23876 240.33667,-235.49993 239.49993,-235.49993 C 236.73993,-235.49993 234.49992,-233.25994 234.49993,-230.49993 C 234.49993,-229.92100 234.66245,-229.39223 234.84368,-228.87493 C 233.47021,-228.10419 232.49993,-226.68593 232.49993,-224.99993 C 232.49993,-222.51593 234.51593,-220.49992 236.99993,-220.49993 C 237.17706,-220.49993 255.82280,-220.49993 255.99993,-220.49993 C 258.48392,-220.49993 260.49993,-222.51593 260.49993,-224.99993 C 260.49993,-226.68593 259.52965,-228.10419 258.15618,-228.87493 C 258.33742,-229.39222 258.49993,-229.92101 258.49993,-230.49993 C 258.49993,-233.25993 256.25993,-235.49992 253.49993,-235.49993 C 252.66319,-235.49993 251.91191,-235.23876 251.21868,-234.87493 C 250.60984,-236.94965 248.77076,-238.49993 246.49993,-238.49993 z " fill="#888a85" fill-opacity="1.0000000" stroke="#555753" stroke-width="1.0001625" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 246.49993,-237.99993 C 244.31021,-237.99993 242.77633,-236.66416 242.10438,-234.15641 C 241.43592,-234.50003 240.55679,-234.98976 239.74993,-234.98976 C 237.03342,-234.98976 234.99479,-233.05094 234.99480,-230.44422 C 234.99480,-229.89745 235.26201,-229.11078 235.43676,-228.62221 C 234.11233,-227.89426 232.99993,-226.73171 232.99993,-225.24966 C 232.99993,-222.90361 234.54610,-220.99957 237.33921,-220.99957 C 237.51002,-220.99957 255.48985,-220.99957 255.66065,-220.99957 C 258.43166,-220.99957 259.99993,-222.90361 259.99993,-225.24966 C 259.99993,-226.84203 258.88753,-227.91635 257.56310,-228.64430 C 257.73786,-229.13286 258.02717,-229.89746 258.02717,-230.44422 C 258.02717,-233.05093 255.91136,-235.01185 253.24994,-235.01186 C 252.44307,-235.01186 251.60813,-234.52212 250.93967,-234.17850 C 250.29082,-236.60004 248.68966,-237.99993 246.49993,-237.99993 z " opacity="1.0000000" fill="url(#linearGradient13339)" fill-opacity="1.0000000" stroke="none" stroke-width="0.99999958" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" opacity="0.47777775" fill="url(#linearGradient13341)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <rect width="20.000000" height="9.0000000" x="236.99994" y="-230.99992" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16987,171.3114)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19818,231.8633)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19825,231.8634)" opacity="0.47777775" fill="url(#linearGradient13343)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" opacity="0.47777775" fill="url(#linearGradient13345)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 245.46868,-233.96868 C 241.88930,-233.96868 238.99993,-231.04805 238.99993,-227.46868 C 238.99993,-225.09800 240.34936,-223.13089 242.24993,-221.99993 L 248.71868,-221.99993 C 250.61925,-223.13089 251.96868,-225.12924 251.96868,-227.49993 C 251.96868,-231.07931 249.04805,-233.96868 245.46868,-233.96868 z " opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 245.49993,-233.99993 C 241.91193,-233.99993 238.99993,-231.08792 238.99993,-227.49993 C 238.99993,-225.12353 240.34478,-223.13361 242.24993,-221.99993 L 248.74993,-221.99993 C 250.65508,-223.13361 251.99993,-225.12353 251.99993,-227.49993 C 251.99993,-231.08793 249.08793,-233.99992 245.49993,-233.99993 z " opacity="0.47777775" fill="url(#linearGradient13347)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16977,171.3113)" opacity="0.47777775" fill="url(#linearGradient13350)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 258.95633,-230.33389 C 258.95480,-227.64933 255.68707,-226.61994 255.68707,-226.61994 C 255.68707,-226.61994 258.03581,-228.24589 258.02392,-230.32495 C 258.02392,-230.32495 258.95633,-230.33389 258.95633,-230.33389 z " fill="#555753" fill-opacity="1.0000000" fill-rule="evenodd" stroke="none" stroke-width="1.0000000px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1.0000000"/>
+        <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" opacity="0.47777775" fill="url(#linearGradient13352)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
       </g>
     </g>
   </g>
diff --git a/demos/embedded/weatherinfo/icons/weather-sleet.svg b/demos/embedded/weatherinfo/icons/weather-sleet.svg
index f1cb9eb..bf2306f 100644
--- a/demos/embedded/weatherinfo/icons/weather-sleet.svg
+++ b/demos/embedded/weatherinfo/icons/weather-sleet.svg
@@ -1,4573 +1,96 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="48px"
-   height="48px"
-   id="svg1306"
-   sodipodi:version="0.32"
-   inkscape:version="0.46"
-   sodipodi:docbase="/home/rcollier/Work/Novell/Tango/weather"
-   sodipodi:docname="weather-sleet.svg"
-   inkscape:output_extension="org.inkscape.output.svg.inkscape">
-  <defs
-     id="defs1308">
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5358"
-       id="linearGradient12213"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)"
-       x1="6.8942904"
-       y1="-359.82382"
-       x2="27.400387"
-       y2="-381.30222" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5346"
-       id="radialGradient12211"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)"
-       cx="21.920311"
-       cy="-382.96454"
-       fx="21.920311"
-       fy="-382.96454"
-       r="21.743534" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5358"
-       id="linearGradient12201"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)"
-       x1="6.8942904"
-       y1="-359.82382"
-       x2="27.400387"
-       y2="-381.30222" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5346"
-       id="radialGradient12199"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)"
-       cx="21.920311"
-       cy="-382.96454"
-       fx="21.920311"
-       fy="-382.96454"
-       r="21.743534" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5358"
-       id="linearGradient12253"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)"
-       x1="6.8942904"
-       y1="-359.82382"
-       x2="27.400387"
-       y2="-381.30222" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5346"
-       id="radialGradient12251"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)"
-       cx="21.920311"
-       cy="-382.96454"
-       fx="21.920311"
-       fy="-382.96454"
-       r="21.743534" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5358"
-       id="linearGradient12237"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)"
-       x1="6.8942904"
-       y1="-359.82382"
-       x2="27.400387"
-       y2="-381.30222" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5346"
-       id="radialGradient12235"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)"
-       cx="21.920311"
-       cy="-382.96454"
-       fx="21.920311"
-       fy="-382.96454"
-       r="21.743534" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5358"
-       id="linearGradient12225"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)"
-       x1="6.8942904"
-       y1="-359.82382"
-       x2="27.400387"
-       y2="-381.30222" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5346"
-       id="radialGradient12223"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)"
-       cx="21.920311"
-       cy="-382.96454"
-       fx="21.920311"
-       fy="-382.96454"
-       r="21.743534" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient5358">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop5360" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop5362" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5358"
-       id="linearGradient12249"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)"
-       x1="6.8942904"
-       y1="-359.82382"
-       x2="27.400387"
-       y2="-381.30222" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient5346">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop5348" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop5350" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5346"
-       id="radialGradient12247"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)"
-       cx="21.920311"
-       cy="-382.96454"
-       fx="21.920311"
-       fy="-382.96454"
-       r="21.743534" />
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 24 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="48 : 24 : 1"
-       inkscape:persp3d-origin="24 : 16 : 1"
-       id="perspective6329" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient11348"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.070878,0.000000,-0.535439,0.674858,287.5142,77.50802)"
-       x1="-137.49608"
-       y1="-425.28664"
-       x2="-130.60854"
-       y2="-425.28665" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient11346"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.070879,0.000000,-0.535439,0.674857,277.5140,77.50780)"
-       x1="-137.49608"
-       y1="-425.28664"
-       x2="-130.60854"
-       y2="-425.28665" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient11344"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.088439,0.000000,-0.544220,0.674842,265.9811,77.50139)"
-       x1="-137.49608"
-       y1="-425.28664"
-       x2="-130.60854"
-       y2="-425.28665" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6538"
-       id="linearGradient13352"
-       gradientUnits="userSpaceOnUse"
-       x1="284.80219"
-       y1="-441.23294"
-       x2="288.89954"
-       y2="-436.83109" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6549"
-       id="linearGradient13350"
-       gradientUnits="userSpaceOnUse"
-       x1="286.66589"
-       y1="-439.48358"
-       x2="289.76562"
-       y2="-436.70703" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6527"
-       id="linearGradient13347"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-35.00007,207.0001)"
-       x1="275.94193"
-       y1="-437.10501"
-       x2="279.97546"
-       y2="-431.91833" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6538"
-       id="linearGradient13345"
-       gradientUnits="userSpaceOnUse"
-       x1="285.94086"
-       y1="-439.93900"
-       x2="289.39124"
-       y2="-436.44290" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6513"
-       id="linearGradient13343"
-       gradientUnits="userSpaceOnUse"
-       x1="286.51172"
-       y1="-441.29074"
-       x2="289.85379"
-       y2="-436.14453" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6497"
-       id="linearGradient13341"
-       gradientUnits="userSpaceOnUse"
-       x1="287.51730"
-       y1="-439.75281"
-       x2="289.67633"
-       y2="-436.32199" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6470"
-       id="linearGradient13339"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-34.00007,207.0001)"
-       x1="271.02170"
-       y1="-441.05182"
-       x2="285.02859"
-       y2="-431.96991" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6538"
-       id="linearGradient13337"
-       gradientUnits="userSpaceOnUse"
-       x1="284.80219"
-       y1="-441.23294"
-       x2="288.89954"
-       y2="-436.83109" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient6549">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop6551" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop6553" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6549"
-       id="linearGradient13335"
-       gradientUnits="userSpaceOnUse"
-       x1="286.66589"
-       y1="-439.48358"
-       x2="289.76562"
-       y2="-436.70703" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient6527">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop6530" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop6532" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6527"
-       id="linearGradient13333"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-35.00007,207.0001)"
-       x1="275.94193"
-       y1="-437.10501"
-       x2="279.97546"
-       y2="-431.91833" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient6538">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop6540" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop6542" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6538"
-       id="linearGradient13331"
-       gradientUnits="userSpaceOnUse"
-       x1="285.94086"
-       y1="-439.93900"
-       x2="289.39124"
-       y2="-436.44290" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient6513">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop6515" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop6517" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6513"
-       id="linearGradient13329"
-       gradientUnits="userSpaceOnUse"
-       x1="286.51172"
-       y1="-441.29074"
-       x2="289.85379"
-       y2="-436.14453" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient6497">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop6499" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop6501" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6497"
-       id="linearGradient13327"
-       gradientUnits="userSpaceOnUse"
-       x1="287.51730"
-       y1="-439.75281"
-       x2="289.67633"
-       y2="-436.32199" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient6470">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop6472" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop6474" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6470"
-       id="linearGradient13325"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-34.00007,207.0001)"
-       x1="271.02170"
-       y1="-441.05182"
-       x2="285.02859"
-       y2="-431.96991" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient8397">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop8400" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop8402" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8397"
-       id="linearGradient13323"
-       gradientUnits="userSpaceOnUse"
-       x1="238.00478"
-       y1="-388.47476"
-       x2="245.65462"
-       y2="-382.64539" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient8315">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop8317" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop8319" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8315"
-       id="linearGradient13321"
-       gradientUnits="userSpaceOnUse"
-       x1="230.87598"
-       y1="-390.43951"
-       x2="235.25652"
-       y2="-386.95901" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient8381">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop8383" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop8385" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8381"
-       id="linearGradient13319"
-       gradientUnits="userSpaceOnUse"
-       x1="246.74042"
-       y1="-391.31381"
-       x2="252.69785"
-       y2="-385.35165" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient8331">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop8333" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop8335" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8331"
-       id="linearGradient13317"
-       gradientUnits="userSpaceOnUse"
-       x1="240.07379"
-       y1="-393.40720"
-       x2="245.82706"
-       y2="-388.55029" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient8302">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop8304" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop8306" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8302"
-       id="linearGradient13315"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(69.00000,155.0000)"
-       x1="228.50261"
-       y1="-392.30591"
-       x2="266.36395"
-       y2="-379.26862" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient4442">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop4444" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop4446" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4442"
-       id="linearGradient4467"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-59.00000,27.72122)"
-       x1="4.3602662"
-       y1="-21.904713"
-       x2="40.139732"
-       y2="-1.8452871" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient4430"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,7.747730,-6.786242)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient4426"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,12.43523,-5.473742)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient4404"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.333333,0.000000,0.000000,1.000000,-14.02052,-13.29853)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient4407"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,-9.728831,-6.856090)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient4410"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-4.033948,-17.90479)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient4413"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.613903,0.000000,0.000000,0.613903,-1.200260,0.631990)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient4419"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,4.534070,-12.70656)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient4422"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-9.992899,-16.32980)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4488"
-       id="linearGradient4479"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.926905,0.000000,0.000000,0.881886,-60.91820,-2.915960)"
-       x1="17.181321"
-       y1="32.443652"
-       x2="47.342173"
-       y2="32.443652" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient4359"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.333333,0.000000,0.000000,1.000000,-7.329241,-50.85192)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient4357"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,-0.912551,-43.37823)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient4355"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(3.365819,-55.70818)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient4353"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.613903,0.000000,0.000000,0.613903,17.14727,-36.85890)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient4351"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,15.17579,-44.92562)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient4349"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,12.81910,-50.04120)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient4347"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-3.681521,-53.82781)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient4488">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop4490" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop4492" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4488"
-       id="linearGradient4370"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.926905,0.000000,0.000000,0.881886,-74.92090,-6.914630)"
-       x1="17.175579"
-       y1="23.374163"
-       x2="38.037014"
-       y2="38.680286" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient4255"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.333333,0.000000,0.000000,1.000000,-7.329241,-50.85192)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient4253"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,-0.912551,-43.37823)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient4251"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(3.365819,-55.70818)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient4249"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.613903,0.000000,0.000000,0.613903,17.14727,-36.85890)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient4247"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,15.17579,-44.92562)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient4245"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,12.81910,-50.04120)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient3019">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop3021" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop3023" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient4243"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-3.681521,-53.82781)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       id="linearGradient6525"
-       gradientUnits="userSpaceOnUse"
-       x1="4.1914001"
-       y1="11.113300"
-       x2="47.319698"
-       y2="56.052299">
-      <stop
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:1;"
-         id="stop6529" />
-      <stop
-         offset="1"
-         style="stop-color:#ffffff;stop-opacity:0.34020618;"
-         id="stop6531" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6525"
-       id="linearGradient5250"
-       x1="8.5469341"
-       y1="30.281681"
-       x2="30.85088"
-       y2="48.301884"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.874977,0.000000,0.000000,0.921480,-56.65990,-1.553540)" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient6537">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop6539" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop6541" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2298">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop2300" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop2302" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient3347">
-      <stop
-         style="stop-color:#edd400;stop-opacity:1;"
-         offset="0"
-         id="stop3349" />
-      <stop
-         style="stop-color:#edd400;stop-opacity:0;"
-         offset="1"
-         id="stop3351" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2527">
-      <stop
-         style="stop-color:#fcaf3e;stop-opacity:1;"
-         offset="0"
-         id="stop2529" />
-      <stop
-         style="stop-color:#fcaf3e;stop-opacity:0;"
-         offset="1"
-         id="stop2531" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2500">
-      <stop
-         style="stop-color:#fce94f;stop-opacity:1;"
-         offset="0"
-         id="stop2502" />
-      <stop
-         style="stop-color:#fce94f;stop-opacity:0;"
-         offset="1"
-         id="stop2504" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2392">
-      <stop
-         style="stop-color:#eeeeec;stop-opacity:1;"
-         offset="0"
-         id="stop2394" />
-      <stop
-         style="stop-color:#eeeeec;stop-opacity:0;"
-         offset="1"
-         id="stop2396" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2254">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop2256" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop2258" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2263"
-       gradientUnits="userSpaceOnUse"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581"
-       gradientTransform="translate(-1.608757,3.097272)" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2267"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(3.555020,0.968578)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2271"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(9.263651,3.495228)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2275"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(8.497184,-2.330824)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2279"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(14.46340,2.014073)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2283"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2287"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2291"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2295"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2299"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2303"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(1.707748,-5.784024)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2311"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2350"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(16.14002,24.66420)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2352"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-0.932144,25.87240)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2354"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(5.356636,23.86870)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2356"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(11.19027,26.52035)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2358"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(10.30638,19.27251)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2360"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,0.229156,30.76299)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2362"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,16.67145,27.22746)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2364"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,17.05272,31.47010)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2366"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-4.010744,24.96040)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2368"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,8.185476,29.52556)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2370"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(4.207586,21.30544)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2372"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.12415,32.08882)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2392"
-       id="linearGradient2398"
-       x1="6.6651416"
-       y1="13.802798"
-       x2="41.403877"
-       y2="13.802798"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2426"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(14.46340,2.014073)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2428"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(8.497184,-2.330824)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2430"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-1.608757,3.097272)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2432"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(3.555020,0.968578)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2434"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(9.263651,3.495228)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2436"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2438"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2440"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2442"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2444"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2446"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2392"
-       id="linearGradient2448"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)"
-       x1="6.6651416"
-       y1="13.802798"
-       x2="41.403877"
-       y2="13.802798" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2392"
-       id="linearGradient2451"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,4.378541,10.65407)"
-       x1="6.6651416"
-       y1="13.802798"
-       x2="41.403877"
-       y2="13.802798" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2457"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2460"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2463"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2469"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2472"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(12.51365,8.745228)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2475"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(6.805020,6.218578)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2478"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(1.641243,8.347272)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2483"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(0.842481,-3.998086)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2500"
-       id="linearGradient2506"
-       x1="37.000000"
-       y1="-21.750000"
-       x2="53.750000"
-       y2="9.0000000"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2500"
-       id="linearGradient2509"
-       gradientUnits="userSpaceOnUse"
-       x1="37.000000"
-       y1="-21.750000"
-       x2="53.750000"
-       y2="9.0000000"
-       gradientTransform="matrix(0.889091,0.000000,0.000000,0.617886,-4.771368,39.81402)" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2500"
-       id="linearGradient2513"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.605509,0.000000,0.000000,0.710542,-0.224971,42.19500)"
-       x1="38.857941"
-       y1="-18.407482"
-       x2="53.750000"
-       y2="9.0000000" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2500"
-       id="linearGradient2517"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.414169,0.000000,0.000000,0.778853,-1.910724,36.87850)"
-       x1="37.000000"
-       y1="-21.750000"
-       x2="53.750000"
-       y2="9.0000000" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2527"
-       id="linearGradient2533"
-       x1="-25.137094"
-       y1="-1.2491118"
-       x2="-35.652866"
-       y2="-24.884460"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2537"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(17.33814,3.415985)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2541"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(13.40064,1.353485)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2555"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-7.499805,1.708617)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2563"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-0.726830,2.481141)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3347"
-       id="linearGradient3353"
-       x1="23.303862"
-       y1="29.115711"
-       x2="29.750000"
-       y2="46.092930"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3366"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(13.40064,1.353485)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3368"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(1.641243,8.347272)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3370"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(6.805020,6.218578)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3372"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(12.51365,8.745228)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3374"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3376"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3378"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3380"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3383"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3386"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3389"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3392"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3395"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(3.674812,3.088370)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3398"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-2.033818,0.561720)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3401"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-7.197595,2.690414)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3405"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(4.561802,-4.303373)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       gradientUnits="userSpaceOnUse"
-       y2="-4.4493785"
-       x2="-34.700153"
-       y1="-37.550461"
-       x1="-27.006643"
-       id="linearGradient2916"
-       xlink:href="#linearGradient2298"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="-24.884460"
-       x2="-35.652866"
-       y1="-1.2491118"
-       x1="-25.137094"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2914"
-       xlink:href="#linearGradient2527"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(57.97693,-10.56876)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2912"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,123.1162,-5.446357)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2910"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2908"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2906"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2904"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2902"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(3.674812,3.088370)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2900"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(-2.033818,0.561720)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2898"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(-7.197595,2.690414)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2896"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="-24.884460"
-       x2="-35.652866"
-       y1="-1.2491118"
-       x1="-25.137094"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2894"
-       xlink:href="#linearGradient2527"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,79.36909,-3.193747)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2892"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,56.25514,-12.39388)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2890"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(88.49344,-9.697877)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2888"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(4.561802,-4.303373)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2886"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(-7.197595,2.690414)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2884"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(-2.033818,0.561720)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2882"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(3.674812,3.088370)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2880"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2878"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2876"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2874"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2872"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2870"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2868"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2866"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2864"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(12.51365,8.745228)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2862"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(6.805020,6.218578)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2860"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(1.641243,8.347272)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2858"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(13.40064,1.353485)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2856"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientUnits="userSpaceOnUse"
-       y2="46.092930"
-       x2="29.750000"
-       y1="29.115711"
-       x1="23.303862"
-       id="linearGradient2854"
-       xlink:href="#linearGradient3347"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(-0.726830,2.481141)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2852"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(-7.499805,1.708617)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2850"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(13.40064,1.353485)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2848"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(17.33814,3.415985)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2846"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientUnits="userSpaceOnUse"
-       y2="-24.884460"
-       x2="-35.652866"
-       y1="-1.2491118"
-       x1="-25.137094"
-       id="linearGradient2844"
-       xlink:href="#linearGradient2527"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="9.0000000"
-       x2="53.750000"
-       y1="-21.750000"
-       x1="37.000000"
-       gradientTransform="matrix(0.414169,0.000000,0.000000,0.778853,-1.910724,36.87850)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2842"
-       xlink:href="#linearGradient2500"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="9.0000000"
-       x2="53.750000"
-       y1="-18.407482"
-       x1="38.857941"
-       gradientTransform="matrix(0.605509,0.000000,0.000000,0.710542,-0.224971,42.19500)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2840"
-       xlink:href="#linearGradient2500"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientTransform="matrix(0.889091,0.000000,0.000000,0.617886,-4.771368,39.81402)"
-       y2="9.0000000"
-       x2="53.750000"
-       y1="-21.750000"
-       x1="37.000000"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2838"
-       xlink:href="#linearGradient2500"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientUnits="userSpaceOnUse"
-       y2="9.0000000"
-       x2="53.750000"
-       y1="-21.750000"
-       x1="37.000000"
-       id="linearGradient2836"
-       xlink:href="#linearGradient2500"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(0.842481,-3.998086)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2834"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(1.641243,8.347272)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2832"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(6.805020,6.218578)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2830"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(12.51365,8.745228)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2828"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2826"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2824"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2822"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2820"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="13.802798"
-       x2="41.403877"
-       y1="13.802798"
-       x1="6.6651416"
-       gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,4.378541,10.65407)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2818"
-       xlink:href="#linearGradient2392"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="13.802798"
-       x2="41.403877"
-       y1="13.802798"
-       x1="6.6651416"
-       gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2816"
-       xlink:href="#linearGradient2392"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2814"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2812"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2810"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2808"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2806"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2804"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(9.263651,3.495228)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2802"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(3.555020,0.968578)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2800"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(-1.608757,3.097272)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2798"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(8.497184,-2.330824)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2796"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(14.46340,2.014073)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2794"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)"
-       gradientUnits="userSpaceOnUse"
-       y2="13.802798"
-       x2="41.403877"
-       y1="13.802798"
-       x1="6.6651416"
-       id="linearGradient2792"
-       xlink:href="#linearGradient2392"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.12415,32.08882)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2790"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(4.207586,21.30544)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2788"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,8.185476,29.52556)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2786"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-4.010744,24.96040)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2784"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,17.05272,31.47010)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2782"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,16.67145,27.22746)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2780"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,0.229156,30.76299)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2778"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(10.30638,19.27251)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2776"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(11.19027,26.52035)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2774"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(5.356636,23.86870)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2772"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(-0.932144,25.87240)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2770"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(16.14002,24.66420)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2768"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2766"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(1.707748,-5.784024)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2764"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2762"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2760"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2758"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2756"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2754"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(14.46340,2.014073)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2752"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(8.497184,-2.330824)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2750"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(9.263651,3.495228)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2748"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(3.555020,0.968578)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2746"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientTransform="translate(-1.608757,3.097272)"
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2744"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientUnits="userSpaceOnUse"
-       y2="-4.4493785"
-       x2="-34.700153"
-       y1="-37.550461"
-       x1="-27.006643"
-       id="linearGradient2304"
-       xlink:href="#linearGradient2298"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="-24.884460"
-       x2="-35.652866"
-       y1="-1.2491118"
-       x1="-25.137094"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient1557"
-       xlink:href="#linearGradient2527"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(57.97693,-10.56876)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient1538"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,123.1162,-5.446357)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient1536"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient1534"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient1532"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient1530"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient1528"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(3.674812,3.088370)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient1526"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(-2.033818,0.561720)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient1524"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(-7.197595,2.690414)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient1522"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="-24.884460"
-       x2="-35.652866"
-       y1="-1.2491118"
-       x1="-25.137094"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient1520"
-       xlink:href="#linearGradient2527"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,79.36909,-3.193747)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient1518"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,56.25514,-12.39388)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient1516"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(88.49344,-9.697877)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient1514"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(4.561802,-4.303373)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5957"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(-7.197595,2.690414)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5955"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(-2.033818,0.561720)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5953"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(3.674812,3.088370)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5951"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5949"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5947"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5945"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5943"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5941"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5939"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5937"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5935"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(12.51365,8.745228)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5933"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(6.805020,6.218578)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5931"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(1.641243,8.347272)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5929"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(13.40064,1.353485)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5927"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientUnits="userSpaceOnUse"
-       y2="46.092930"
-       x2="29.750000"
-       y1="29.115711"
-       x1="23.303862"
-       id="linearGradient5925"
-       xlink:href="#linearGradient3347"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(-0.726830,2.481141)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5923"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(-7.499805,1.708617)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5921"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(13.40064,1.353485)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5919"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(17.33814,3.415985)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5917"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientUnits="userSpaceOnUse"
-       y2="-24.884460"
-       x2="-35.652866"
-       y1="-1.2491118"
-       x1="-25.137094"
-       id="linearGradient5915"
-       xlink:href="#linearGradient2527"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="9.0000000"
-       x2="53.750000"
-       y1="-21.750000"
-       x1="37.000000"
-       gradientTransform="matrix(0.414169,0.000000,0.000000,0.778853,-1.910724,36.87850)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5913"
-       xlink:href="#linearGradient2500"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="9.0000000"
-       x2="53.750000"
-       y1="-18.407482"
-       x1="38.857941"
-       gradientTransform="matrix(0.605509,0.000000,0.000000,0.710542,-0.224971,42.19500)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5911"
-       xlink:href="#linearGradient2500"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientTransform="matrix(0.889091,0.000000,0.000000,0.617886,-4.771368,39.81402)"
-       y2="9.0000000"
-       x2="53.750000"
-       y1="-21.750000"
-       x1="37.000000"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5909"
-       xlink:href="#linearGradient2500"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientUnits="userSpaceOnUse"
-       y2="9.0000000"
-       x2="53.750000"
-       y1="-21.750000"
-       x1="37.000000"
-       id="linearGradient5907"
-       xlink:href="#linearGradient2500"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(0.842481,-3.998086)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5905"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(1.641243,8.347272)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5903"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(6.805020,6.218578)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5901"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(12.51365,8.745228)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5899"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5897"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5895"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5893"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5891"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="13.802798"
-       x2="41.403877"
-       y1="13.802798"
-       x1="6.6651416"
-       gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,4.378541,10.65407)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5889"
-       xlink:href="#linearGradient2392"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="13.802798"
-       x2="41.403877"
-       y1="13.802798"
-       x1="6.6651416"
-       gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5887"
-       xlink:href="#linearGradient2392"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5885"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5883"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5881"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5879"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5877"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5875"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(9.263651,3.495228)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5873"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(3.555020,0.968578)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5871"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(-1.608757,3.097272)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5869"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(8.497184,-2.330824)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5867"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(14.46340,2.014073)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5865"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)"
-       gradientUnits="userSpaceOnUse"
-       y2="13.802798"
-       x2="41.403877"
-       y1="13.802798"
-       x1="6.6651416"
-       id="linearGradient5863"
-       xlink:href="#linearGradient2392"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.12415,32.08882)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5861"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(4.207586,21.30544)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5859"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,8.185476,29.52556)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5857"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-4.010744,24.96040)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5855"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,17.05272,31.47010)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5853"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,16.67145,27.22746)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5851"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,0.229156,30.76299)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5849"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(10.30638,19.27251)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5847"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(11.19027,26.52035)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5845"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(5.356636,23.86870)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5843"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(-0.932144,25.87240)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5841"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(16.14002,24.66420)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5839"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5837"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(1.707748,-5.784024)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5835"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5833"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5831"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5829"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5827"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5825"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(14.46340,2.014073)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5823"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(8.497184,-2.330824)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5821"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(9.263651,3.495228)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5819"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(3.555020,0.968578)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5817"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientTransform="translate(-1.608757,3.097272)"
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5815"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6101"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.13675,17.05613)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6118"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,12.38965,19.30874)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6121"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-10.72430,10.10861)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6124"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(21.51400,12.80461)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6179"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-7.197595,2.690414)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6181"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-2.033818,0.561720)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6183"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(3.674812,3.088370)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6185"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6187"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6189"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6191"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2527"
-       id="linearGradient6193"
-       gradientUnits="userSpaceOnUse"
-       x1="-25.137094"
-       y1="-1.2491118"
-       x2="-35.652866"
-       y2="-24.884460" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6196"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,2.209129,10.83861)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6199"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-9.862093,6.148450)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6202"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,10.70137,12.90816)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6205"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-4.372193,11.95105)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6208"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(5.088919,7.833409)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6211"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-0.619711,5.306759)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6214"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-5.783488,7.435453)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6242"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-5.783488,7.435453)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6244"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-0.619711,5.306759)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6246"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(5.088919,7.833409)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6248"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,10.70137,12.90816)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6250"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-9.862093,6.148450)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6252"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,2.209129,10.83861)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6254"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-9.002513,11.93373)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6257"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-0.297112,4.275205)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6260"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,10.91453,3.180085)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6263"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-1.156692,-1.510075)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6266"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,19.40677,5.249635)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6269"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(13.79432,0.174884)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6272"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(8.085690,-2.351766)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6275"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(2.921913,-0.223072)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6311"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(21.51400,12.80461)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6313"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-10.72430,10.10861)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6315"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,12.38965,19.30874)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6317"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-1.156692,-1.510075)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6319"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.13675,17.05613)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6321"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-5.783488,7.435453)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6323"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-0.619711,5.306759)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6325"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(5.088919,7.833409)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6327"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,10.70137,12.90816)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6329"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-9.862093,6.148450)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6331"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,2.209129,10.83861)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6333"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-9.002513,11.93373)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6335"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(2.921913,-0.223072)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6337"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(8.085690,-2.351766)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6339"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(13.79432,0.174884)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6341"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,19.40677,5.249635)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6343"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,10.91453,3.180085)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6537"
-       id="linearGradient6543"
-       x1="27.320963"
-       y1="44.228481"
-       x2="52.328316"
-       y2="44.228481"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.526962,0.000000,-2.763717e-17,0.972572,16.13182,0.843286)" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6537"
-       id="linearGradient6547"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.526962,0.000000,-4.388782e-16,0.972572,25.91493,0.633642)"
-       x1="27.320963"
-       y1="44.228481"
-       x2="52.328316"
-       y2="44.228481" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6537"
-       id="linearGradient6551"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.526962,0.000000,-4.388782e-16,0.972572,36.25638,0.633643)"
-       x1="27.320963"
-       y1="44.228481"
-       x2="45.115814"
-       y2="44.228455" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6537"
-       id="linearGradient6559"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.526962,0.000000,-2.332577e-16,0.972572,16.13182,0.843286)"
-       x1="27.320963"
-       y1="44.228481"
-       x2="52.328316"
-       y2="44.228481" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6537"
-       id="linearGradient6561"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.526962,0.000000,-6.444987e-16,0.972572,25.91493,0.633642)"
-       x1="27.320963"
-       y1="44.228481"
-       x2="52.328316"
-       y2="44.228481" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6537"
-       id="linearGradient6563"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.526962,0.000000,-6.444987e-16,0.972572,36.25638,0.633643)"
-       x1="27.320963"
-       y1="44.228481"
-       x2="45.115814"
-       y2="44.228455" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6537"
-       id="linearGradient6566"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.577744,0.000000,-5.984325e-16,1.025105,38.38995,-1.768804)"
-       x1="27.320963"
-       y1="44.228481"
-       x2="45.115814"
-       y2="44.228455" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6537"
-       id="linearGradient6569"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.577744,0.000000,-5.984325e-16,1.025105,27.05193,-1.768805)"
-       x1="27.320963"
-       y1="44.228481"
-       x2="52.328316"
-       y2="44.228481" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6537"
-       id="linearGradient6572"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.589347,0.000000,-1.531909e-16,1.025217,16.34910,-1.110328)"
-       x1="27.320963"
-       y1="44.228481"
-       x2="52.328316"
-       y2="44.228481" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6576"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.132431,0.000000,0.000000,1.016132,11.79178,-1.090051)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6579"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.853605,0.000000,0.000000,1.016132,20.48211,1.012885)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6582"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,14.73875,-4.143732)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6585"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,8.896962,-6.711142)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6588"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,3.612740,-4.548108)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6599"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.999079,0.000000,0.000000,1.016132,58.06881,13.00984)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6603"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.496116,0.000000,0.000000,1.282841,-0.560999,-5.855873)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6606"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.314274,0.000000,0.000000,1.016132,13.30131,15.29879)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6609"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.496116,0.000000,0.000000,1.282841,-10.35177,5.950245)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6612"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,22.63849,8.689740)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6618"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,17.34164,6.586930)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6622"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,12.56867,12.68572)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6624"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-5.783488,7.435453)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6626"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-0.619711,5.306759)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6628"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(5.088919,7.833409)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6630"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,10.70137,12.90816)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6632"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-9.862093,6.148450)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6634"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,2.209129,10.83861)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6636"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-9.002513,11.93373)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4442"
-       id="linearGradient2736"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-59.00000,27.72122)"
-       x1="4.3602662"
-       y1="-21.904713"
-       x2="40.139732"
-       y2="-1.8452871" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient2738"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-9.992899,-16.32980)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient2740"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,4.534070,-12.70656)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient2742"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.613903,0.000000,0.000000,0.613903,-1.200260,0.631990)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient2745"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-4.033948,-17.90479)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient2747"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,-9.728831,-6.856090)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient2749"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.333333,0.000000,0.000000,1.000000,-14.02052,-13.29853)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient2751"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,12.43523,-5.473742)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient2753"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,7.747730,-6.786242)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4488"
-       id="linearGradient2755"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.926905,0.000000,0.000000,0.881886,-60.91820,-2.915960)"
-       x1="17.181321"
-       y1="32.443652"
-       x2="47.342173"
-       y2="32.443652" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient2757"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-3.681521,-53.82781)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient2759"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,12.81910,-50.04120)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient2761"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,15.17579,-44.92562)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient2763"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.613903,0.000000,0.000000,0.613903,17.14727,-36.85890)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient2765"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(3.365819,-55.70818)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient2767"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,-0.912551,-43.37823)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient2769"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.333333,0.000000,0.000000,1.000000,-7.329241,-50.85192)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4488"
-       id="linearGradient2771"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.926905,0.000000,0.000000,0.881886,-74.92090,-6.914630)"
-       x1="17.175579"
-       y1="23.374163"
-       x2="38.037014"
-       y2="38.680286" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient2773"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-3.681521,-53.82781)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient2775"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,12.81910,-50.04120)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient2777"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,15.17579,-44.92562)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient2779"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.613903,0.000000,0.000000,0.613903,17.14727,-36.85890)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient2781"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(3.365819,-55.70818)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient2783"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,-0.912551,-43.37823)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3019"
-       id="linearGradient2785"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.333333,0.000000,0.000000,1.000000,-7.329241,-50.85192)"
-       x1="23.688078"
-       y1="28.201012"
-       x2="29.521708"
-       y2="34.034641" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4488"
-       id="linearGradient2799"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.926905,0.000000,0.000000,0.881886,-11.91814,-7.649759)"
-       x1="17.175579"
-       y1="23.374163"
-       x2="38.037014"
-       y2="38.680286" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4488"
-       id="linearGradient2813"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.926905,0.000000,0.000000,0.881886,2.084560,-3.651089)"
-       x1="18.664751"
-       y1="23.374166"
-       x2="31.294144"
-       y2="35.845455" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4442"
-       id="linearGradient2827"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(4.002760,26.98609)"
-       x1="4.3602662"
-       y1="-21.904713"
-       x2="40.139732"
-       y2="-1.8452871" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5346"
-       id="radialGradient8290"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)"
-       cx="21.920311"
-       cy="-382.96454"
-       fx="21.920311"
-       fy="-382.96454"
-       r="21.743534" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5358"
-       id="linearGradient8292"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)"
-       x1="6.8942904"
-       y1="-359.82382"
-       x2="27.400387"
-       y2="-381.30222" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5346"
-       id="radialGradient8294"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)"
-       cx="21.920311"
-       cy="-382.96454"
-       fx="21.920311"
-       fy="-382.96454"
-       r="21.743534" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5358"
-       id="linearGradient8296"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)"
-       x1="6.8942904"
-       y1="-359.82382"
-       x2="27.400387"
-       y2="-381.30222" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5346"
-       id="radialGradient8298"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)"
-       cx="21.920311"
-       cy="-382.96454"
-       fx="21.920311"
-       fy="-382.96454"
-       r="21.743534" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5358"
-       id="linearGradient8300"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)"
-       x1="6.8942904"
-       y1="-359.82382"
-       x2="27.400387"
-       y2="-381.30222" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5346"
-       id="radialGradient8302"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)"
-       cx="21.920311"
-       cy="-382.96454"
-       fx="21.920311"
-       fy="-382.96454"
-       r="21.743534" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5358"
-       id="linearGradient8304"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)"
-       x1="6.8942904"
-       y1="-359.82382"
-       x2="27.400387"
-       y2="-381.30222" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5346"
-       id="radialGradient8306"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)"
-       cx="21.920311"
-       cy="-382.96454"
-       fx="21.920311"
-       fy="-382.96454"
-       r="21.743534" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5358"
-       id="linearGradient8308"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)"
-       x1="6.8942904"
-       y1="-359.82382"
-       x2="27.400387"
-       y2="-381.30222" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5346"
-       id="radialGradient8310"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)"
-       cx="21.920311"
-       cy="-382.96454"
-       fx="21.920311"
-       fy="-382.96454"
-       r="21.743534" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5358"
-       id="linearGradient8312"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)"
-       x1="6.8942904"
-       y1="-359.82382"
-       x2="27.400387"
-       y2="-381.30222" />
+<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="48px" height="48px" id="svg1306">
+  <defs id="defs1308">
+    <linearGradient id="linearGradient5358">
+      <stop offset="0" id="stop5360" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop5362" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient id="linearGradient5346">
+      <stop offset="0" id="stop5348" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop5350" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient xlink:href="#linearGradient6538" id="linearGradient13352" gradientUnits="userSpaceOnUse" x1="284.80219" y1="-441.23294" x2="288.89954" y2="-436.83109"/>
+    <linearGradient xlink:href="#linearGradient6549" id="linearGradient13350" gradientUnits="userSpaceOnUse" x1="286.66589" y1="-439.48358" x2="289.76562" y2="-436.70703"/>
+    <linearGradient xlink:href="#linearGradient6527" id="linearGradient13347" gradientUnits="userSpaceOnUse" gradientTransform="translate(-35.00007,207.0001)" x1="275.94193" y1="-437.10501" x2="279.97546" y2="-431.91833"/>
+    <linearGradient xlink:href="#linearGradient6538" id="linearGradient13345" gradientUnits="userSpaceOnUse" x1="285.94086" y1="-439.93900" x2="289.39124" y2="-436.44290"/>
+    <linearGradient xlink:href="#linearGradient6513" id="linearGradient13343" gradientUnits="userSpaceOnUse" x1="286.51172" y1="-441.29074" x2="289.85379" y2="-436.14453"/>
+    <linearGradient xlink:href="#linearGradient6497" id="linearGradient13341" gradientUnits="userSpaceOnUse" x1="287.51730" y1="-439.75281" x2="289.67633" y2="-436.32199"/>
+    <linearGradient xlink:href="#linearGradient6470" id="linearGradient13339" gradientUnits="userSpaceOnUse" gradientTransform="translate(-34.00007,207.0001)" x1="271.02170" y1="-441.05182" x2="285.02859" y2="-431.96991"/>
+    <linearGradient xlink:href="#linearGradient6538" id="linearGradient13337" gradientUnits="userSpaceOnUse" x1="284.80219" y1="-441.23294" x2="288.89954" y2="-436.83109"/>
+    <linearGradient id="linearGradient6549">
+      <stop offset="0" id="stop6551" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop6553" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient xlink:href="#linearGradient6549" id="linearGradient13335" gradientUnits="userSpaceOnUse" x1="286.66589" y1="-439.48358" x2="289.76562" y2="-436.70703"/>
+    <linearGradient id="linearGradient6527">
+      <stop offset="0" id="stop6530" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop6532" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient xlink:href="#linearGradient6527" id="linearGradient13333" gradientUnits="userSpaceOnUse" gradientTransform="translate(-35.00007,207.0001)" x1="275.94193" y1="-437.10501" x2="279.97546" y2="-431.91833"/>
+    <linearGradient id="linearGradient6538">
+      <stop offset="0" id="stop6540" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop6542" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient xlink:href="#linearGradient6538" id="linearGradient13331" gradientUnits="userSpaceOnUse" x1="285.94086" y1="-439.93900" x2="289.39124" y2="-436.44290"/>
+    <linearGradient id="linearGradient6513">
+      <stop offset="0" id="stop6515" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop6517" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient xlink:href="#linearGradient6513" id="linearGradient13329" gradientUnits="userSpaceOnUse" x1="286.51172" y1="-441.29074" x2="289.85379" y2="-436.14453"/>
+    <linearGradient id="linearGradient6497">
+      <stop offset="0" id="stop6499" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop6501" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient xlink:href="#linearGradient6497" id="linearGradient13327" gradientUnits="userSpaceOnUse" x1="287.51730" y1="-439.75281" x2="289.67633" y2="-436.32199"/>
+    <linearGradient id="linearGradient6470">
+      <stop offset="0" id="stop6472" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop6474" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient xlink:href="#linearGradient6470" id="linearGradient13325" gradientUnits="userSpaceOnUse" gradientTransform="translate(-34.00007,207.0001)" x1="271.02170" y1="-441.05182" x2="285.02859" y2="-431.96991"/>
+    <linearGradient id="linearGradient8397">
+      <stop offset="0" id="stop8400" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop8402" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient xlink:href="#linearGradient8397" id="linearGradient13323" gradientUnits="userSpaceOnUse" x1="238.00478" y1="-388.47476" x2="245.65462" y2="-382.64539"/>
+    <linearGradient id="linearGradient8315">
+      <stop offset="0" id="stop8317" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop8319" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient xlink:href="#linearGradient8315" id="linearGradient13321" gradientUnits="userSpaceOnUse" x1="230.87598" y1="-390.43951" x2="235.25652" y2="-386.95901"/>
+    <linearGradient id="linearGradient8381">
+      <stop offset="0" id="stop8383" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop8385" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient xlink:href="#linearGradient8381" id="linearGradient13319" gradientUnits="userSpaceOnUse" x1="246.74042" y1="-391.31381" x2="252.69785" y2="-385.35165"/>
+    <linearGradient id="linearGradient8331">
+      <stop offset="0" id="stop8333" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop8335" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient xlink:href="#linearGradient8331" id="linearGradient13317" gradientUnits="userSpaceOnUse" x1="240.07379" y1="-393.40720" x2="245.82706" y2="-388.55029"/>
+    <linearGradient id="linearGradient8302">
+      <stop offset="0" id="stop8304" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop8306" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient xlink:href="#linearGradient8302" id="linearGradient13315" gradientUnits="userSpaceOnUse" gradientTransform="translate(69.00000,155.0000)" x1="228.50261" y1="-392.30591" x2="266.36395" y2="-379.26862"/>
+    <radialGradient xlink:href="#linearGradient5346" id="radialGradient8290" gradientUnits="userSpaceOnUse" gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)" cx="21.920311" cy="-382.96454" fx="21.920311" fy="-382.96454" r="21.743534"/>
+    <linearGradient xlink:href="#linearGradient5358" id="linearGradient8292" gradientUnits="userSpaceOnUse" gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)" x1="6.8942904" y1="-359.82382" x2="27.400387" y2="-381.30222"/>
+    <radialGradient xlink:href="#linearGradient5346" id="radialGradient8294" gradientUnits="userSpaceOnUse" gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)" cx="21.920311" cy="-382.96454" fx="21.920311" fy="-382.96454" r="21.743534"/>
+    <linearGradient xlink:href="#linearGradient5358" id="linearGradient8296" gradientUnits="userSpaceOnUse" gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)" x1="6.8942904" y1="-359.82382" x2="27.400387" y2="-381.30222"/>
+    <radialGradient xlink:href="#linearGradient5346" id="radialGradient8298" gradientUnits="userSpaceOnUse" gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)" cx="21.920311" cy="-382.96454" fx="21.920311" fy="-382.96454" r="21.743534"/>
+    <linearGradient xlink:href="#linearGradient5358" id="linearGradient8300" gradientUnits="userSpaceOnUse" gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)" x1="6.8942904" y1="-359.82382" x2="27.400387" y2="-381.30222"/>
+    <radialGradient xlink:href="#linearGradient5346" id="radialGradient8302" gradientUnits="userSpaceOnUse" gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)" cx="21.920311" cy="-382.96454" fx="21.920311" fy="-382.96454" r="21.743534"/>
+    <linearGradient xlink:href="#linearGradient5358" id="linearGradient8304" gradientUnits="userSpaceOnUse" gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)" x1="6.8942904" y1="-359.82382" x2="27.400387" y2="-381.30222"/>
+    <radialGradient xlink:href="#linearGradient5346" id="radialGradient8306" gradientUnits="userSpaceOnUse" gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)" cx="21.920311" cy="-382.96454" fx="21.920311" fy="-382.96454" r="21.743534"/>
+    <linearGradient xlink:href="#linearGradient5358" id="linearGradient8308" gradientUnits="userSpaceOnUse" gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)" x1="6.8942904" y1="-359.82382" x2="27.400387" y2="-381.30222"/>
+    <radialGradient xlink:href="#linearGradient5346" id="radialGradient8310" gradientUnits="userSpaceOnUse" gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)" cx="21.920311" cy="-382.96454" fx="21.920311" fy="-382.96454" r="21.743534"/>
+    <linearGradient xlink:href="#linearGradient5358" id="linearGradient8312" gradientUnits="userSpaceOnUse" gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)" x1="6.8942904" y1="-359.82382" x2="27.400387" y2="-381.30222"/>
   </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="1"
-     inkscape:cx="24"
-     inkscape:cy="24"
-     inkscape:current-layer="layer1"
-     showgrid="true"
-     inkscape:grid-bbox="true"
-     inkscape:document-units="px"
-     inkscape:window-width="982"
-     inkscape:window-height="965"
-     inkscape:window-x="1280"
-     inkscape:window-y="28"
-     inkscape:showpageshadow="false" />
-  <metadata
-     id="metadata1311">
+  
+  <metadata id="metadata1311">
     <rdf:RDF>
-      <cc:Work
-         rdf:about="">
+      <cc:Work rdf:about="">
         <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
         <dc:title>weather-showers</dc:title>
         <dc:date>January 2006</dc:date>
         <dc:creator>
@@ -4588,608 +111,119 @@
             <rdf:li>notify</rdf:li>
           </rdf:Bag>
         </dc:subject>
-        <cc:license
-           rdf:resource="http://creativecommons.org/licenses/by-sa/2.0/" />
+        <cc:license rdf:resource="http://creativecommons.org/licenses/by-sa/2.0/"/>
       </cc:Work>
-      <cc:License
-         rdf:about="http://creativecommons.org/licenses/by-sa/2.0/">
-        <cc:permits
-           rdf:resource="http://web.resource.org/cc/Reproduction" />
-        <cc:permits
-           rdf:resource="http://web.resource.org/cc/Distribution" />
-        <cc:requires
-           rdf:resource="http://web.resource.org/cc/Notice" />
-        <cc:requires
-           rdf:resource="http://web.resource.org/cc/Attribution" />
-        <cc:permits
-           rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
-        <cc:requires
-           rdf:resource="http://web.resource.org/cc/ShareAlike" />
+      <cc:License rdf:about="http://creativecommons.org/licenses/by-sa/2.0/">
+        <cc:permits rdf:resource="http://web.resource.org/cc/Reproduction"/>
+        <cc:permits rdf:resource="http://web.resource.org/cc/Distribution"/>
+        <cc:requires rdf:resource="http://web.resource.org/cc/Notice"/>
+        <cc:requires rdf:resource="http://web.resource.org/cc/Attribution"/>
+        <cc:permits rdf:resource="http://web.resource.org/cc/DerivativeWorks"/>
+        <cc:requires rdf:resource="http://web.resource.org/cc/ShareAlike"/>
       </cc:License>
     </rdf:RDF>
   </metadata>
-  <g
-     id="layer1"
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer">
-    <g
-       id="g10087">
-      <g
-         transform="matrix(0.999675,0.000000,0.000000,1.000000,-286.8562,245.0000)"
-         id="g13213">
-        <g
-           id="g13215">
-          <path
-             id="path13217"
-             d="M 311.50000,-242.99998 C 308.72758,-242.99998 306.39177,-241.42627 305.09375,-239.18748 C 304.14939,-239.66252 303.12856,-239.99998 302.00000,-239.99998 C 298.13600,-239.99998 295.00000,-236.86398 295.00000,-232.99998 C 295.00000,-229.13598 298.13600,-225.99998 302.00000,-225.99998 C 304.41967,-225.99998 306.43009,-227.31930 307.68750,-229.18748 C 308.82170,-228.49786 310.07648,-227.99998 311.50000,-227.99998 C 312.41312,-227.99998 313.25295,-228.23200 314.06250,-228.53123 C 314.57244,-227.66350 315.24162,-226.95151 316.06250,-226.37498 C 316.05526,-226.24460 316.00000,-226.13216 316.00000,-225.99998 C 316.00000,-222.13598 319.13599,-218.99998 323.00000,-218.99998 C 326.86400,-218.99998 330.00000,-222.13598 330.00000,-225.99998 C 330.00000,-228.36967 328.74102,-230.35832 326.93750,-231.62498 C 326.94474,-231.75536 327.00000,-231.86780 327.00000,-231.99998 C 327.00000,-235.86398 323.86401,-238.99998 320.00000,-238.99998 C 319.37730,-238.99998 318.82481,-238.77779 318.25000,-238.62498 C 317.05547,-241.18382 314.50866,-242.99998 311.50000,-242.99998 z "
-             style="opacity:1.0000000;fill:#555753;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
-          <path
-             id="path13219"
-             d="M 311.50000,-241.99998 C 308.71952,-241.99998 306.36549,-240.23813 305.43750,-237.78123 C 304.45208,-238.49067 303.30607,-238.99998 302.00000,-238.99998 C 298.68800,-238.99998 296.00000,-236.31198 296.00000,-232.99998 C 296.00000,-229.68798 298.68800,-226.99998 302.00000,-226.99998 C 304.42775,-226.99998 306.49324,-228.45556 307.43750,-230.53123 C 308.55826,-229.61367 309.93964,-228.99998 311.50000,-228.99998 C 312.57454,-228.99998 313.54428,-229.31894 314.43750,-229.78123 C 314.83590,-228.78147 315.53864,-227.99491 316.37500,-227.34373 C 316.19499,-226.74811 316.00000,-226.15408 316.00000,-225.49998 C 316.00000,-221.91198 318.91200,-218.99998 322.50000,-218.99998 C 326.08800,-218.99998 329.00000,-221.91198 329.00000,-225.49998 C 329.00000,-227.86077 327.66567,-229.83017 325.78125,-230.96873 C 325.84384,-231.31596 326.00000,-231.63481 326.00000,-231.99998 C 326.00000,-235.31198 323.31200,-237.99998 320.00000,-237.99998 C 319.14702,-237.99998 318.32870,-237.82130 317.59375,-237.49998 C 316.73998,-240.09386 314.37851,-241.99997 311.50000,-241.99998 z "
-             style="opacity:1.0000000;fill:url(#linearGradient13315);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
-          <path
-             transform="matrix(0.964447,0.000000,0.000000,0.964447,89.28852,144.5262)"
-             d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1  235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1  248.54804 -383.66660 z"
-             sodipodi:ry="6.7396116"
-             sodipodi:rx="6.7396116"
-             sodipodi:cy="-383.66660"
-             sodipodi:cx="241.80843"
-             id="path13221"
-             style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-             sodipodi:type="arc" />
-          <g
-             id="g13223">
-            <path
-               sodipodi:type="arc"
-               style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-               id="path13225"
-               sodipodi:cx="243.95184"
-               sodipodi:cy="-389.30136"
-               sodipodi:rx="6.2313786"
-               sodipodi:ry="6.2313786"
-               d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1  237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1  250.18322 -389.30136 z"
-               transform="matrix(0.882630,0.000000,0.000000,0.882630,96.18078,108.1091)" />
-            <path
-               sodipodi:type="arc"
-               style="opacity:0.49444440;fill:url(#linearGradient13317);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-               id="path13227"
-               sodipodi:cx="243.95184"
-               sodipodi:cy="-389.30136"
-               sodipodi:rx="6.2313786"
-               sodipodi:ry="6.2313786"
-               d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1  237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1  250.18322 -389.30136 z"
-               transform="matrix(0.882630,0.000000,0.000000,0.882630,96.18078,108.1091)" />
+  <g id="layer1">
+    <g>
+      <g transform="matrix(0.999675,0.000000,0.000000,1.000000,-286.8562,245.0000)">
+        <g>
+          <path d="M 311.50000,-242.99998 C 308.72758,-242.99998 306.39177,-241.42627 305.09375,-239.18748 C 304.14939,-239.66252 303.12856,-239.99998 302.00000,-239.99998 C 298.13600,-239.99998 295.00000,-236.86398 295.00000,-232.99998 C 295.00000,-229.13598 298.13600,-225.99998 302.00000,-225.99998 C 304.41967,-225.99998 306.43009,-227.31930 307.68750,-229.18748 C 308.82170,-228.49786 310.07648,-227.99998 311.50000,-227.99998 C 312.41312,-227.99998 313.25295,-228.23200 314.06250,-228.53123 C 314.57244,-227.66350 315.24162,-226.95151 316.06250,-226.37498 C 316.05526,-226.24460 316.00000,-226.13216 316.00000,-225.99998 C 316.00000,-222.13598 319.13599,-218.99998 323.00000,-218.99998 C 326.86400,-218.99998 330.00000,-222.13598 330.00000,-225.99998 C 330.00000,-228.36967 328.74102,-230.35832 326.93750,-231.62498 C 326.94474,-231.75536 327.00000,-231.86780 327.00000,-231.99998 C 327.00000,-235.86398 323.86401,-238.99998 320.00000,-238.99998 C 319.37730,-238.99998 318.82481,-238.77779 318.25000,-238.62498 C 317.05547,-241.18382 314.50866,-242.99998 311.50000,-242.99998 z " opacity="1.0000000" fill="#555753" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+          <path d="M 311.50000,-241.99998 C 308.71952,-241.99998 306.36549,-240.23813 305.43750,-237.78123 C 304.45208,-238.49067 303.30607,-238.99998 302.00000,-238.99998 C 298.68800,-238.99998 296.00000,-236.31198 296.00000,-232.99998 C 296.00000,-229.68798 298.68800,-226.99998 302.00000,-226.99998 C 304.42775,-226.99998 306.49324,-228.45556 307.43750,-230.53123 C 308.55826,-229.61367 309.93964,-228.99998 311.50000,-228.99998 C 312.57454,-228.99998 313.54428,-229.31894 314.43750,-229.78123 C 314.83590,-228.78147 315.53864,-227.99491 316.37500,-227.34373 C 316.19499,-226.74811 316.00000,-226.15408 316.00000,-225.49998 C 316.00000,-221.91198 318.91200,-218.99998 322.50000,-218.99998 C 326.08800,-218.99998 329.00000,-221.91198 329.00000,-225.49998 C 329.00000,-227.86077 327.66567,-229.83017 325.78125,-230.96873 C 325.84384,-231.31596 326.00000,-231.63481 326.00000,-231.99998 C 326.00000,-235.31198 323.31200,-237.99998 320.00000,-237.99998 C 319.14702,-237.99998 318.32870,-237.82130 317.59375,-237.49998 C 316.73998,-240.09386 314.37851,-241.99997 311.50000,-241.99998 z " opacity="1.0000000" fill="url(#linearGradient13315)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+          <path transform="matrix(0.964447,0.000000,0.000000,0.964447,89.28852,144.5262)" d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1  235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1  248.54804 -383.66660 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+          <g>
+            <path d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1  237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1  250.18322 -389.30136 z" transform="matrix(0.882630,0.000000,0.000000,0.882630,96.18078,108.1091)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+            <path d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1  237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1  250.18322 -389.30136 z" transform="matrix(0.882630,0.000000,0.000000,0.882630,96.18078,108.1091)" opacity="0.49444440" fill="url(#linearGradient13317)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
           </g>
-          <g
-             id="g13229">
-            <path
-               sodipodi:type="arc"
-               style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-               id="path13231"
-               sodipodi:cx="251.22179"
-               sodipodi:cy="-385.78790"
-               sodipodi:rx="6.0325046"
-               sodipodi:ry="6.0325046"
-               d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1  245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1  257.25429 -385.78790 z"
-               transform="matrix(0.911728,0.000000,0.000000,0.911728,90.45407,120.2336)" />
-            <path
-               sodipodi:type="arc"
-               style="opacity:0.49444440;fill:url(#linearGradient13319);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-               id="path13233"
-               sodipodi:cx="251.22179"
-               sodipodi:cy="-385.78790"
-               sodipodi:rx="6.0325046"
-               sodipodi:ry="6.0325046"
-               d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1  245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1  257.25429 -385.78790 z"
-               transform="matrix(0.911728,0.000000,0.000000,0.911728,90.45407,120.2336)" />
+          <g>
+            <path d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1  245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1  257.25429 -385.78790 z" transform="matrix(0.911728,0.000000,0.000000,0.911728,90.45407,120.2336)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+            <path d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1  245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1  257.25429 -385.78790 z" transform="matrix(0.911728,0.000000,0.000000,0.911728,90.45407,120.2336)" opacity="0.49444440" fill="url(#linearGradient13319)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
           </g>
-          <g
-             id="g13235">
-            <path
-               sodipodi:type="arc"
-               style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-               id="path13237"
-               sodipodi:cx="233.43362"
-               sodipodi:cy="-387.88715"
-               sodipodi:rx="4.3752232"
-               sodipodi:ry="4.3752232"
-               d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1  229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1  237.80885 -387.88715 z"
-               transform="matrix(1.142799,0.000000,0.000000,1.142799,35.23229,210.2770)" />
-            <path
-               sodipodi:type="arc"
-               style="opacity:0.49444440;fill:url(#linearGradient13321);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-               id="path13239"
-               sodipodi:cx="233.43362"
-               sodipodi:cy="-387.88715"
-               sodipodi:rx="4.3752232"
-               sodipodi:ry="4.3752232"
-               d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1  229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1  237.80885 -387.88715 z"
-               transform="matrix(1.142799,0.000000,0.000000,1.142799,35.23229,210.2770)" />
+          <g>
+            <path d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1  229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1  237.80885 -387.88715 z" transform="matrix(1.142799,0.000000,0.000000,1.142799,35.23229,210.2770)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+            <path d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1  229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1  237.80885 -387.88715 z" transform="matrix(1.142799,0.000000,0.000000,1.142799,35.23229,210.2770)" opacity="0.49444440" fill="url(#linearGradient13321)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
           </g>
-          <g
-             id="g13241">
-            <path
-               sodipodi:type="arc"
-               style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-               id="path13243"
-               sodipodi:cx="241.80843"
-               sodipodi:cy="-383.66660"
-               sodipodi:rx="6.7396116"
-               sodipodi:ry="6.7396116"
-               d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1  235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1  248.54804 -383.66660 z"
-               transform="matrix(1.038636,0.000000,0.000000,1.038636,59.84906,169.4899)" />
-            <path
-               sodipodi:type="arc"
-               style="opacity:0.49444440;fill:url(#linearGradient13323);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-               id="path13245"
-               sodipodi:cx="241.80843"
-               sodipodi:cy="-383.66660"
-               sodipodi:rx="6.7396116"
-               sodipodi:ry="6.7396116"
-               d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1  235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1  248.54804 -383.66660 z"
-               transform="matrix(1.038636,0.000000,0.000000,1.038636,59.84907,169.4899)" />
+          <g>
+            <path d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1  235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1  248.54804 -383.66660 z" transform="matrix(1.038636,0.000000,0.000000,1.038636,59.84906,169.4899)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+            <path d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1  235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1  248.54804 -383.66660 z" transform="matrix(1.038636,0.000000,0.000000,1.038636,59.84907,169.4899)" opacity="0.49444440" fill="url(#linearGradient13323)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
           </g>
         </g>
-        <g
-           id="g13247"
-           transform="translate(72.00007,7.999930)">
-          <path
-             sodipodi:nodetypes="ccsscsssscsscc"
-             id="path13249"
-             d="M 246.49993,-238.49993 C 244.22910,-238.49993 242.39002,-236.94965 241.78118,-234.87493 C 241.08795,-235.23876 240.33667,-235.49993 239.49993,-235.49993 C 236.73993,-235.49993 234.49992,-233.25994 234.49993,-230.49993 C 234.49993,-229.92100 234.66245,-229.39223 234.84368,-228.87493 C 233.47021,-228.10419 232.49993,-226.68593 232.49993,-224.99993 C 232.49993,-222.51593 234.51593,-220.49992 236.99993,-220.49993 C 237.17706,-220.49993 255.82280,-220.49993 255.99993,-220.49993 C 258.48392,-220.49993 260.49993,-222.51593 260.49993,-224.99993 C 260.49993,-226.68593 259.52965,-228.10419 258.15618,-228.87493 C 258.33742,-229.39222 258.49993,-229.92101 258.49993,-230.49993 C 258.49993,-233.25993 256.25993,-235.49992 253.49993,-235.49993 C 252.66319,-235.49993 251.91191,-235.23876 251.21868,-234.87493 C 250.60984,-236.94965 248.77076,-238.49993 246.49993,-238.49993 z "
-             style="fill:#888a85;fill-opacity:1.0000000;stroke:#555753;stroke-width:1.0001625;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
-          <path
-             sodipodi:nodetypes="ccsscsssscsscc"
-             id="path13251"
-             d="M 246.49993,-237.99993 C 244.31021,-237.99993 242.77633,-236.66416 242.10438,-234.15641 C 241.43592,-234.50003 240.55679,-234.98976 239.74993,-234.98976 C 237.03342,-234.98976 234.99479,-233.05094 234.99480,-230.44422 C 234.99480,-229.89745 235.26201,-229.11078 235.43676,-228.62221 C 234.11233,-227.89426 232.99993,-226.73171 232.99993,-225.24966 C 232.99993,-222.90361 234.54610,-220.99957 237.33921,-220.99957 C 237.51002,-220.99957 255.48985,-220.99957 255.66065,-220.99957 C 258.43166,-220.99957 259.99993,-222.90361 259.99993,-225.24966 C 259.99993,-226.84203 258.88753,-227.91635 257.56310,-228.64430 C 257.73786,-229.13286 258.02717,-229.89746 258.02717,-230.44422 C 258.02717,-233.05093 255.91136,-235.01185 253.24994,-235.01186 C 252.44307,-235.01186 251.60813,-234.52212 250.93967,-234.17850 C 250.29082,-236.60004 248.68966,-237.99993 246.49993,-237.99993 z "
-             style="opacity:1.0000000;fill:url(#linearGradient13325);fill-opacity:1.0000000;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
-          <path
-             transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)"
-             d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-             sodipodi:ry="3.3125000"
-             sodipodi:rx="3.3125000"
-             sodipodi:cy="-437.59375"
-             sodipodi:cx="288.37500"
-             id="path13253"
-             style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-             sodipodi:type="arc" />
-          <path
-             transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)"
-             d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-             sodipodi:ry="3.3125000"
-             sodipodi:rx="3.3125000"
-             sodipodi:cy="-437.59375"
-             sodipodi:cx="288.37500"
-             id="path13255"
-             style="opacity:0.47777775;fill:url(#linearGradient13327);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-             sodipodi:type="arc" />
-          <rect
-             y="-230.99992"
-             x="236.99994"
-             height="9.0000000"
-             width="20.000000"
-             id="rect13257"
-             style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
-          <path
-             transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16987,171.3114)"
-             d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-             sodipodi:ry="3.3125000"
-             sodipodi:rx="3.3125000"
-             sodipodi:cy="-437.59375"
-             sodipodi:cx="288.37500"
-             id="path13259"
-             style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-             sodipodi:type="arc" />
-          <path
-             transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19818,231.8633)"
-             d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-             sodipodi:ry="3.3125000"
-             sodipodi:rx="3.3125000"
-             sodipodi:cy="-437.59375"
-             sodipodi:cx="288.37500"
-             id="path13261"
-             style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-             sodipodi:type="arc" />
-          <path
-             transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19825,231.8634)"
-             d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-             sodipodi:ry="3.3125000"
-             sodipodi:rx="3.3125000"
-             sodipodi:cy="-437.59375"
-             sodipodi:cx="288.37500"
-             id="path13263"
-             style="opacity:0.47777775;fill:url(#linearGradient13329);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-             sodipodi:type="arc" />
-          <path
-             transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)"
-             d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-             sodipodi:ry="3.3125000"
-             sodipodi:rx="3.3125000"
-             sodipodi:cy="-437.59375"
-             sodipodi:cx="288.37500"
-             id="path13265"
-             style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-             sodipodi:type="arc" />
-          <path
-             transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)"
-             d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-             sodipodi:ry="3.3125000"
-             sodipodi:rx="3.3125000"
-             sodipodi:cy="-437.59375"
-             sodipodi:cx="288.37500"
-             id="path13267"
-             style="opacity:0.47777775;fill:url(#linearGradient13331);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-             sodipodi:type="arc" />
-          <path
-             id="path13269"
-             d="M 245.46868,-233.96868 C 241.88930,-233.96868 238.99993,-231.04805 238.99993,-227.46868 C 238.99993,-225.09800 240.34936,-223.13089 242.24993,-221.99993 L 248.71868,-221.99993 C 250.61925,-223.13089 251.96868,-225.12924 251.96868,-227.49993 C 251.96868,-231.07931 249.04805,-233.96868 245.46868,-233.96868 z "
-             style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
-          <path
-             id="path13271"
-             d="M 245.49993,-233.99993 C 241.91193,-233.99993 238.99993,-231.08792 238.99993,-227.49993 C 238.99993,-225.12353 240.34478,-223.13361 242.24993,-221.99993 L 248.74993,-221.99993 C 250.65508,-223.13361 251.99993,-225.12353 251.99993,-227.49993 C 251.99993,-231.08793 249.08793,-233.99992 245.49993,-233.99993 z "
-             style="opacity:0.47777775;fill:url(#linearGradient13333);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
-          <path
-             transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16977,171.3113)"
-             d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-             sodipodi:ry="3.3125000"
-             sodipodi:rx="3.3125000"
-             sodipodi:cy="-437.59375"
-             sodipodi:cx="288.37500"
-             id="path13273"
-             style="opacity:0.47777775;fill:url(#linearGradient13335);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-             sodipodi:type="arc" />
-          <path
-             sodipodi:nodetypes="ccss"
-             id="path13275"
-             d="M 258.95633,-230.33389 C 258.95480,-227.64933 255.68707,-226.61994 255.68707,-226.61994 C 255.68707,-226.61994 258.03581,-228.24589 258.02392,-230.32495 C 258.02392,-230.32495 258.95633,-230.33389 258.95633,-230.33389 z "
-             style="fill:#555753;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" />
-          <path
-             transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)"
-             d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-             sodipodi:ry="3.3125000"
-             sodipodi:rx="3.3125000"
-             sodipodi:cy="-437.59375"
-             sodipodi:cx="288.37500"
-             id="path13277"
-             style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-             sodipodi:type="arc" />
-          <path
-             transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)"
-             d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-             sodipodi:ry="3.3125000"
-             sodipodi:rx="3.3125000"
-             sodipodi:cy="-437.59375"
-             sodipodi:cx="288.37500"
-             id="path13279"
-             style="opacity:0.47777775;fill:url(#linearGradient13337);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-             sodipodi:type="arc" />
+        <g transform="translate(72.00007,7.999930)">
+          <path d="M 246.49993,-238.49993 C 244.22910,-238.49993 242.39002,-236.94965 241.78118,-234.87493 C 241.08795,-235.23876 240.33667,-235.49993 239.49993,-235.49993 C 236.73993,-235.49993 234.49992,-233.25994 234.49993,-230.49993 C 234.49993,-229.92100 234.66245,-229.39223 234.84368,-228.87493 C 233.47021,-228.10419 232.49993,-226.68593 232.49993,-224.99993 C 232.49993,-222.51593 234.51593,-220.49992 236.99993,-220.49993 C 237.17706,-220.49993 255.82280,-220.49993 255.99993,-220.49993 C 258.48392,-220.49993 260.49993,-222.51593 260.49993,-224.99993 C 260.49993,-226.68593 259.52965,-228.10419 258.15618,-228.87493 C 258.33742,-229.39222 258.49993,-229.92101 258.49993,-230.49993 C 258.49993,-233.25993 256.25993,-235.49992 253.49993,-235.49993 C 252.66319,-235.49993 251.91191,-235.23876 251.21868,-234.87493 C 250.60984,-236.94965 248.77076,-238.49993 246.49993,-238.49993 z " fill="#888a85" fill-opacity="1.0000000" stroke="#555753" stroke-width="1.0001625" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+          <path d="M 246.49993,-237.99993 C 244.31021,-237.99993 242.77633,-236.66416 242.10438,-234.15641 C 241.43592,-234.50003 240.55679,-234.98976 239.74993,-234.98976 C 237.03342,-234.98976 234.99479,-233.05094 234.99480,-230.44422 C 234.99480,-229.89745 235.26201,-229.11078 235.43676,-228.62221 C 234.11233,-227.89426 232.99993,-226.73171 232.99993,-225.24966 C 232.99993,-222.90361 234.54610,-220.99957 237.33921,-220.99957 C 237.51002,-220.99957 255.48985,-220.99957 255.66065,-220.99957 C 258.43166,-220.99957 259.99993,-222.90361 259.99993,-225.24966 C 259.99993,-226.84203 258.88753,-227.91635 257.56310,-228.64430 C 257.73786,-229.13286 258.02717,-229.89746 258.02717,-230.44422 C 258.02717,-233.05093 255.91136,-235.01185 253.24994,-235.01186 C 252.44307,-235.01186 251.60813,-234.52212 250.93967,-234.17850 C 250.29082,-236.60004 248.68966,-237.99993 246.49993,-237.99993 z " opacity="1.0000000" fill="url(#linearGradient13325)" fill-opacity="1.0000000" stroke="none" stroke-width="0.99999958" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+          <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+          <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="0.47777775" fill="url(#linearGradient13327)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+          <rect y="-230.99992" x="236.99994" height="9.0000000" width="20.000000" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+          <path transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16987,171.3114)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+          <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19818,231.8633)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+          <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19825,231.8634)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="0.47777775" fill="url(#linearGradient13329)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+          <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+          <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="0.47777775" fill="url(#linearGradient13331)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+          <path d="M 245.46868,-233.96868 C 241.88930,-233.96868 238.99993,-231.04805 238.99993,-227.46868 C 238.99993,-225.09800 240.34936,-223.13089 242.24993,-221.99993 L 248.71868,-221.99993 C 250.61925,-223.13089 251.96868,-225.12924 251.96868,-227.49993 C 251.96868,-231.07931 249.04805,-233.96868 245.46868,-233.96868 z " opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+          <path d="M 245.49993,-233.99993 C 241.91193,-233.99993 238.99993,-231.08792 238.99993,-227.49993 C 238.99993,-225.12353 240.34478,-223.13361 242.24993,-221.99993 L 248.74993,-221.99993 C 250.65508,-223.13361 251.99993,-225.12353 251.99993,-227.49993 C 251.99993,-231.08793 249.08793,-233.99992 245.49993,-233.99993 z " opacity="0.47777775" fill="url(#linearGradient13333)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+          <path transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16977,171.3113)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="0.47777775" fill="url(#linearGradient13335)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+          <path d="M 258.95633,-230.33389 C 258.95480,-227.64933 255.68707,-226.61994 255.68707,-226.61994 C 255.68707,-226.61994 258.03581,-228.24589 258.02392,-230.32495 C 258.02392,-230.32495 258.95633,-230.33389 258.95633,-230.33389 z " fill="#555753" fill-opacity="1.0000000" fill-rule="evenodd" stroke="none" stroke-width="1.0000000px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1.0000000"/>
+          <path transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+          <path transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="0.47777775" fill="url(#linearGradient13337)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
         </g>
-        <g
-           id="g13281"
-           transform="translate(56.98577,3.983930)">
-          <path
-             sodipodi:nodetypes="ccsscsssscsscc"
-             id="path13283"
-             d="M 246.49993,-238.49993 C 244.22910,-238.49993 242.39002,-236.94965 241.78118,-234.87493 C 241.08795,-235.23876 240.33667,-235.49993 239.49993,-235.49993 C 236.73993,-235.49993 234.49992,-233.25994 234.49993,-230.49993 C 234.49993,-229.92100 234.66245,-229.39223 234.84368,-228.87493 C 233.47021,-228.10419 232.49993,-226.68593 232.49993,-224.99993 C 232.49993,-222.51593 234.51593,-220.49992 236.99993,-220.49993 C 237.17706,-220.49993 255.82280,-220.49993 255.99993,-220.49993 C 258.48392,-220.49993 260.49993,-222.51593 260.49993,-224.99993 C 260.49993,-226.68593 259.52965,-228.10419 258.15618,-228.87493 C 258.33742,-229.39222 258.49993,-229.92101 258.49993,-230.49993 C 258.49993,-233.25993 256.25993,-235.49992 253.49993,-235.49993 C 252.66319,-235.49993 251.91191,-235.23876 251.21868,-234.87493 C 250.60984,-236.94965 248.77076,-238.49993 246.49993,-238.49993 z "
-             style="fill:#888a85;fill-opacity:1.0000000;stroke:#555753;stroke-width:1.0001625;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
-          <path
-             sodipodi:nodetypes="ccsscsssscsscc"
-             id="path13285"
-             d="M 246.49993,-237.99993 C 244.31021,-237.99993 242.77633,-236.66416 242.10438,-234.15641 C 241.43592,-234.50003 240.55679,-234.98976 239.74993,-234.98976 C 237.03342,-234.98976 234.99479,-233.05094 234.99480,-230.44422 C 234.99480,-229.89745 235.26201,-229.11078 235.43676,-228.62221 C 234.11233,-227.89426 232.99993,-226.73171 232.99993,-225.24966 C 232.99993,-222.90361 234.54610,-220.99957 237.33921,-220.99957 C 237.51002,-220.99957 255.48985,-220.99957 255.66065,-220.99957 C 258.43166,-220.99957 259.99993,-222.90361 259.99993,-225.24966 C 259.99993,-226.84203 258.88753,-227.91635 257.56310,-228.64430 C 257.73786,-229.13286 258.02717,-229.89746 258.02717,-230.44422 C 258.02717,-233.05093 255.91136,-235.01185 253.24994,-235.01186 C 252.44307,-235.01186 251.60813,-234.52212 250.93967,-234.17850 C 250.29082,-236.60004 248.68966,-237.99993 246.49993,-237.99993 z "
-             style="opacity:1.0000000;fill:url(#linearGradient13339);fill-opacity:1.0000000;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
-          <path
-             transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)"
-             d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-             sodipodi:ry="3.3125000"
-             sodipodi:rx="3.3125000"
-             sodipodi:cy="-437.59375"
-             sodipodi:cx="288.37500"
-             id="path13287"
-             style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-             sodipodi:type="arc" />
-          <path
-             transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)"
-             d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-             sodipodi:ry="3.3125000"
-             sodipodi:rx="3.3125000"
-             sodipodi:cy="-437.59375"
-             sodipodi:cx="288.37500"
-             id="path13289"
-             style="opacity:0.47777775;fill:url(#linearGradient13341);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-             sodipodi:type="arc" />
-          <rect
-             y="-230.99992"
-             x="236.99994"
-             height="9.0000000"
-             width="20.000000"
-             id="rect13291"
-             style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
-          <path
-             transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16987,171.3114)"
-             d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-             sodipodi:ry="3.3125000"
-             sodipodi:rx="3.3125000"
-             sodipodi:cy="-437.59375"
-             sodipodi:cx="288.37500"
-             id="path13293"
-             style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-             sodipodi:type="arc" />
-          <path
-             transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19818,231.8633)"
-             d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-             sodipodi:ry="3.3125000"
-             sodipodi:rx="3.3125000"
-             sodipodi:cy="-437.59375"
-             sodipodi:cx="288.37500"
-             id="path13295"
-             style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-             sodipodi:type="arc" />
-          <path
-             transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19825,231.8634)"
-             d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-             sodipodi:ry="3.3125000"
-             sodipodi:rx="3.3125000"
-             sodipodi:cy="-437.59375"
-             sodipodi:cx="288.37500"
-             id="path13297"
-             style="opacity:0.47777775;fill:url(#linearGradient13343);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-             sodipodi:type="arc" />
-          <path
-             transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)"
-             d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-             sodipodi:ry="3.3125000"
-             sodipodi:rx="3.3125000"
-             sodipodi:cy="-437.59375"
-             sodipodi:cx="288.37500"
-             id="path13299"
-             style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-             sodipodi:type="arc" />
-          <path
-             transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)"
-             d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-             sodipodi:ry="3.3125000"
-             sodipodi:rx="3.3125000"
-             sodipodi:cy="-437.59375"
-             sodipodi:cx="288.37500"
-             id="path13301"
-             style="opacity:0.47777775;fill:url(#linearGradient13345);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-             sodipodi:type="arc" />
-          <path
-             id="path13303"
-             d="M 245.46868,-233.96868 C 241.88930,-233.96868 238.99993,-231.04805 238.99993,-227.46868 C 238.99993,-225.09800 240.34936,-223.13089 242.24993,-221.99993 L 248.71868,-221.99993 C 250.61925,-223.13089 251.96868,-225.12924 251.96868,-227.49993 C 251.96868,-231.07931 249.04805,-233.96868 245.46868,-233.96868 z "
-             style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
-          <path
-             id="path13305"
-             d="M 245.49993,-233.99993 C 241.91193,-233.99993 238.99993,-231.08792 238.99993,-227.49993 C 238.99993,-225.12353 240.34478,-223.13361 242.24993,-221.99993 L 248.74993,-221.99993 C 250.65508,-223.13361 251.99993,-225.12353 251.99993,-227.49993 C 251.99993,-231.08793 249.08793,-233.99992 245.49993,-233.99993 z "
-             style="opacity:0.47777775;fill:url(#linearGradient13347);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
-          <path
-             transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16977,171.3113)"
-             d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-             sodipodi:ry="3.3125000"
-             sodipodi:rx="3.3125000"
-             sodipodi:cy="-437.59375"
-             sodipodi:cx="288.37500"
-             id="path13307"
-             style="opacity:0.47777775;fill:url(#linearGradient13350);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-             sodipodi:type="arc" />
-          <path
-             sodipodi:nodetypes="ccss"
-             id="path13309"
-             d="M 258.95633,-230.33389 C 258.95480,-227.64933 255.68707,-226.61994 255.68707,-226.61994 C 255.68707,-226.61994 258.03581,-228.24589 258.02392,-230.32495 C 258.02392,-230.32495 258.95633,-230.33389 258.95633,-230.33389 z "
-             style="fill:#555753;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" />
-          <path
-             transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)"
-             d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-             sodipodi:ry="3.3125000"
-             sodipodi:rx="3.3125000"
-             sodipodi:cy="-437.59375"
-             sodipodi:cx="288.37500"
-             id="path13311"
-             style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-             sodipodi:type="arc" />
-          <path
-             transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)"
-             d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-             sodipodi:ry="3.3125000"
-             sodipodi:rx="3.3125000"
-             sodipodi:cy="-437.59375"
-             sodipodi:cx="288.37500"
-             id="path13313"
-             style="opacity:0.47777775;fill:url(#linearGradient13352);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-             sodipodi:type="arc" />
+        <g transform="translate(56.98577,3.983930)">
+          <path d="M 246.49993,-238.49993 C 244.22910,-238.49993 242.39002,-236.94965 241.78118,-234.87493 C 241.08795,-235.23876 240.33667,-235.49993 239.49993,-235.49993 C 236.73993,-235.49993 234.49992,-233.25994 234.49993,-230.49993 C 234.49993,-229.92100 234.66245,-229.39223 234.84368,-228.87493 C 233.47021,-228.10419 232.49993,-226.68593 232.49993,-224.99993 C 232.49993,-222.51593 234.51593,-220.49992 236.99993,-220.49993 C 237.17706,-220.49993 255.82280,-220.49993 255.99993,-220.49993 C 258.48392,-220.49993 260.49993,-222.51593 260.49993,-224.99993 C 260.49993,-226.68593 259.52965,-228.10419 258.15618,-228.87493 C 258.33742,-229.39222 258.49993,-229.92101 258.49993,-230.49993 C 258.49993,-233.25993 256.25993,-235.49992 253.49993,-235.49993 C 252.66319,-235.49993 251.91191,-235.23876 251.21868,-234.87493 C 250.60984,-236.94965 248.77076,-238.49993 246.49993,-238.49993 z " fill="#888a85" fill-opacity="1.0000000" stroke="#555753" stroke-width="1.0001625" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+          <path d="M 246.49993,-237.99993 C 244.31021,-237.99993 242.77633,-236.66416 242.10438,-234.15641 C 241.43592,-234.50003 240.55679,-234.98976 239.74993,-234.98976 C 237.03342,-234.98976 234.99479,-233.05094 234.99480,-230.44422 C 234.99480,-229.89745 235.26201,-229.11078 235.43676,-228.62221 C 234.11233,-227.89426 232.99993,-226.73171 232.99993,-225.24966 C 232.99993,-222.90361 234.54610,-220.99957 237.33921,-220.99957 C 237.51002,-220.99957 255.48985,-220.99957 255.66065,-220.99957 C 258.43166,-220.99957 259.99993,-222.90361 259.99993,-225.24966 C 259.99993,-226.84203 258.88753,-227.91635 257.56310,-228.64430 C 257.73786,-229.13286 258.02717,-229.89746 258.02717,-230.44422 C 258.02717,-233.05093 255.91136,-235.01185 253.24994,-235.01186 C 252.44307,-235.01186 251.60813,-234.52212 250.93967,-234.17850 C 250.29082,-236.60004 248.68966,-237.99993 246.49993,-237.99993 z " opacity="1.0000000" fill="url(#linearGradient13339)" fill-opacity="1.0000000" stroke="none" stroke-width="0.99999958" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+          <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+          <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="0.47777775" fill="url(#linearGradient13341)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+          <rect y="-230.99992" x="236.99994" height="9.0000000" width="20.000000" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+          <path transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16987,171.3114)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+          <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19818,231.8633)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+          <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19825,231.8634)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="0.47777775" fill="url(#linearGradient13343)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+          <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+          <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="0.47777775" fill="url(#linearGradient13345)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+          <path d="M 245.46868,-233.96868 C 241.88930,-233.96868 238.99993,-231.04805 238.99993,-227.46868 C 238.99993,-225.09800 240.34936,-223.13089 242.24993,-221.99993 L 248.71868,-221.99993 C 250.61925,-223.13089 251.96868,-225.12924 251.96868,-227.49993 C 251.96868,-231.07931 249.04805,-233.96868 245.46868,-233.96868 z " opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+          <path d="M 245.49993,-233.99993 C 241.91193,-233.99993 238.99993,-231.08792 238.99993,-227.49993 C 238.99993,-225.12353 240.34478,-223.13361 242.24993,-221.99993 L 248.74993,-221.99993 C 250.65508,-223.13361 251.99993,-225.12353 251.99993,-227.49993 C 251.99993,-231.08793 249.08793,-233.99992 245.49993,-233.99993 z " opacity="0.47777775" fill="url(#linearGradient13347)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+          <path transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16977,171.3113)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="0.47777775" fill="url(#linearGradient13350)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+          <path d="M 258.95633,-230.33389 C 258.95480,-227.64933 255.68707,-226.61994 255.68707,-226.61994 C 255.68707,-226.61994 258.03581,-228.24589 258.02392,-230.32495 C 258.02392,-230.32495 258.95633,-230.33389 258.95633,-230.33389 z " fill="#555753" fill-opacity="1.0000000" fill-rule="evenodd" stroke="none" stroke-width="1.0000000px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1.0000000"/>
+          <path transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+          <path transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="0.47777775" fill="url(#linearGradient13352)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
         </g>
       </g>
-      <g
-         transform="translate(17.177973,-2)"
-         id="g8264">
-        <g
-           id="g12227"
-           transform="translate(-219.67784,275.47179)">
-          <path
-             sodipodi:nodetypes="cccc"
-             id="path12229"
-             d="M 231.62587,-228.77086 C 230.58662,-229.36665 230.23015,-230.68774 230.83016,-231.71967 C 232.16166,-233.80243 233.93524,-233.26584 234.84231,-235.46138 C 236.10323,-234.12777 235.63545,-227.21367 231.62587,-228.77086 z"
-             style="fill:#729fcf;fill-opacity:1;stroke:#204a87;stroke-width:1.07456863;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
-          <path
-             sodipodi:nodetypes="csscc"
-             id="path12231"
-             d="M 234.31017,-229.9035 C 233.82059,-229.03976 232.73502,-228.74348 231.88703,-229.24216 C 231.03903,-229.74084 230.74816,-230.84657 231.23774,-231.71031 C 231.72733,-232.57405 233.84374,-232.16235 234.58388,-234 C 235.43187,-233.50133 234.79976,-230.76724 234.31017,-229.9035 z"
-             style="opacity:0.46111109;fill:url(#radialGradient8290);fill-opacity:1;stroke:none;stroke-width:1.07457018;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1" />
-          <path
-             sodipodi:nodetypes="ccc"
-             id="path12233"
-             d="M 233.02237,-229 C 228.40776,-230.07384 233.25985,-233.71939 234,-232.92154 C 230.4176,-231.55118 233.02237,-229 233.02237,-229 z"
-             style="opacity:1;fill:url(#linearGradient8292);fill-opacity:1;stroke:none;stroke-width:1.07457018;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1" />
+      <g transform="translate(17.177973,-2)">
+        <g transform="translate(-219.67784,275.47179)">
+          <path d="M 231.62587,-228.77086 C 230.58662,-229.36665 230.23015,-230.68774 230.83016,-231.71967 C 232.16166,-233.80243 233.93524,-233.26584 234.84231,-235.46138 C 236.10323,-234.12777 235.63545,-227.21367 231.62587,-228.77086 z" fill="#729fcf" fill-opacity="1" stroke="#204a87" stroke-width="1.07456863" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/>
+          <path d="M 234.31017,-229.9035 C 233.82059,-229.03976 232.73502,-228.74348 231.88703,-229.24216 C 231.03903,-229.74084 230.74816,-230.84657 231.23774,-231.71031 C 231.72733,-232.57405 233.84374,-232.16235 234.58388,-234 C 235.43187,-233.50133 234.79976,-230.76724 234.31017,-229.9035 z" opacity="0.46111109" fill="url(#radialGradient8290)" fill-opacity="1" stroke="none" stroke-width="1.07457018" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0" stroke-dashoffset="0" stroke-opacity="1"/>
+          <path d="M 233.02237,-229 C 228.40776,-230.07384 233.25985,-233.71939 234,-232.92154 C 230.4176,-231.55118 233.02237,-229 233.02237,-229 z" opacity="1" fill="url(#linearGradient8292)" fill-opacity="1" stroke="none" stroke-width="1.07457018" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0" stroke-dashoffset="0" stroke-opacity="1"/>
         </g>
-        <g
-           id="g12191"
-           transform="translate(-239.67784,265.47959)">
-          <path
-             sodipodi:nodetypes="cccc"
-             id="path12193"
-             d="M 231.62587,-228.77086 C 230.58662,-229.36665 230.23015,-230.68774 230.83016,-231.71967 C 232.16166,-233.80243 233.93524,-233.26584 234.84231,-235.46138 C 236.10323,-234.12777 235.63545,-227.21367 231.62587,-228.77086 z"
-             style="fill:#729fcf;fill-opacity:1;stroke:#204a87;stroke-width:1.07456863;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
-          <path
-             sodipodi:nodetypes="csscc"
-             id="path12195"
-             d="M 234.31017,-229.9035 C 233.82059,-229.03976 232.73502,-228.74348 231.88703,-229.24216 C 231.03903,-229.74084 230.74816,-230.84657 231.23774,-231.71031 C 231.72733,-232.57405 233.84374,-232.16235 234.58388,-234 C 235.43187,-233.50133 234.79976,-230.76724 234.31017,-229.9035 z"
-             style="opacity:0.46111109;fill:url(#radialGradient8294);fill-opacity:1;stroke:none;stroke-width:1.07457018;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1" />
-          <path
-             sodipodi:nodetypes="ccc"
-             id="path12197"
-             d="M 233.02237,-229 C 228.40776,-230.07384 233.25985,-233.71939 234,-232.92154 C 230.4176,-231.55118 233.02237,-229 233.02237,-229 z"
-             style="opacity:1;fill:url(#linearGradient8296);fill-opacity:1;stroke:none;stroke-width:1.07457018;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1" />
+        <g transform="translate(-239.67784,265.47959)">
+          <path d="M 231.62587,-228.77086 C 230.58662,-229.36665 230.23015,-230.68774 230.83016,-231.71967 C 232.16166,-233.80243 233.93524,-233.26584 234.84231,-235.46138 C 236.10323,-234.12777 235.63545,-227.21367 231.62587,-228.77086 z" fill="#729fcf" fill-opacity="1" stroke="#204a87" stroke-width="1.07456863" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/>
+          <path d="M 234.31017,-229.9035 C 233.82059,-229.03976 232.73502,-228.74348 231.88703,-229.24216 C 231.03903,-229.74084 230.74816,-230.84657 231.23774,-231.71031 C 231.72733,-232.57405 233.84374,-232.16235 234.58388,-234 C 235.43187,-233.50133 234.79976,-230.76724 234.31017,-229.9035 z" opacity="0.46111109" fill="url(#radialGradient8294)" fill-opacity="1" stroke="none" stroke-width="1.07457018" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0" stroke-dashoffset="0" stroke-opacity="1"/>
+          <path d="M 233.02237,-229 C 228.40776,-230.07384 233.25985,-233.71939 234,-232.92154 C 230.4176,-231.55118 233.02237,-229 233.02237,-229 z" opacity="1" fill="url(#linearGradient8296)" fill-opacity="1" stroke="none" stroke-width="1.07457018" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0" stroke-dashoffset="0" stroke-opacity="1"/>
         </g>
-        <g
-           id="g12239"
-           transform="translate(-210.67944,272.47179)">
-          <path
-             sodipodi:nodetypes="cccc"
-             id="path12241"
-             d="M 231.62587,-228.77086 C 230.58662,-229.36665 230.23015,-230.68774 230.83016,-231.71967 C 232.16166,-233.80243 233.93524,-233.26584 234.84231,-235.46138 C 236.10323,-234.12777 235.63545,-227.21367 231.62587,-228.77086 z"
-             style="fill:#729fcf;fill-opacity:1;stroke:#204a87;stroke-width:1.07456863;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
-          <path
-             sodipodi:nodetypes="csscc"
-             id="path12243"
-             d="M 234.31017,-229.9035 C 233.82059,-229.03976 232.73502,-228.74348 231.88703,-229.24216 C 231.03903,-229.74084 230.74816,-230.84657 231.23774,-231.71031 C 231.72733,-232.57405 233.84374,-232.16235 234.58388,-234 C 235.43187,-233.50133 234.79976,-230.76724 234.31017,-229.9035 z"
-             style="opacity:0.46111109;fill:url(#radialGradient8298);fill-opacity:1;stroke:none;stroke-width:1.07457018;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1" />
-          <path
-             sodipodi:nodetypes="ccc"
-             id="path12245"
-             d="M 233.02237,-229 C 228.40776,-230.07384 233.25985,-233.71939 234,-232.92154 C 230.4176,-231.55118 233.02237,-229 233.02237,-229 z"
-             style="opacity:1;fill:url(#linearGradient8300);fill-opacity:1;stroke:none;stroke-width:1.07457018;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1" />
+        <g transform="translate(-210.67944,272.47179)">
+          <path d="M 231.62587,-228.77086 C 230.58662,-229.36665 230.23015,-230.68774 230.83016,-231.71967 C 232.16166,-233.80243 233.93524,-233.26584 234.84231,-235.46138 C 236.10323,-234.12777 235.63545,-227.21367 231.62587,-228.77086 z" fill="#729fcf" fill-opacity="1" stroke="#204a87" stroke-width="1.07456863" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/>
+          <path d="M 234.31017,-229.9035 C 233.82059,-229.03976 232.73502,-228.74348 231.88703,-229.24216 C 231.03903,-229.74084 230.74816,-230.84657 231.23774,-231.71031 C 231.72733,-232.57405 233.84374,-232.16235 234.58388,-234 C 235.43187,-233.50133 234.79976,-230.76724 234.31017,-229.9035 z" opacity="0.46111109" fill="url(#radialGradient8298)" fill-opacity="1" stroke="none" stroke-width="1.07457018" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0" stroke-dashoffset="0" stroke-opacity="1"/>
+          <path d="M 233.02237,-229 C 228.40776,-230.07384 233.25985,-233.71939 234,-232.92154 C 230.4176,-231.55118 233.02237,-229 233.02237,-229 z" opacity="1" fill="url(#linearGradient8300)" fill-opacity="1" stroke="none" stroke-width="1.07457018" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0" stroke-dashoffset="0" stroke-opacity="1"/>
         </g>
-        <g
-           id="g12186"
-           transform="translate(-241.67794,275.47309)">
-          <path
-             sodipodi:nodetypes="cccc"
-             id="path6059"
-             d="M 231.62587,-228.77086 C 230.58662,-229.36665 230.23015,-230.68774 230.83016,-231.71967 C 232.16166,-233.80243 233.93524,-233.26584 234.84231,-235.46138 C 236.10323,-234.12777 235.63545,-227.21367 231.62587,-228.77086 z"
-             style="fill:#729fcf;fill-opacity:1;stroke:#204a87;stroke-width:1.07456863;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
-          <path
-             sodipodi:nodetypes="csscc"
-             id="path6061"
-             d="M 234.31017,-229.9035 C 233.82059,-229.03976 232.73502,-228.74348 231.88703,-229.24216 C 231.03903,-229.74084 230.74816,-230.84657 231.23774,-231.71031 C 231.72733,-232.57405 233.84374,-232.16235 234.58388,-234 C 235.43187,-233.50133 234.79976,-230.76724 234.31017,-229.9035 z"
-             style="opacity:0.46111109;fill:url(#radialGradient8302);fill-opacity:1;stroke:none;stroke-width:1.07457018;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1" />
-          <path
-             sodipodi:nodetypes="ccc"
-             id="path6063"
-             d="M 233.02237,-229 C 228.40776,-230.07384 233.25985,-233.71939 234,-232.92154 C 230.4176,-231.55118 233.02237,-229 233.02237,-229 z"
-             style="opacity:1;fill:url(#linearGradient8304);fill-opacity:1;stroke:none;stroke-width:1.07457018;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1" />
+        <g transform="translate(-241.67794,275.47309)">
+          <path d="M 231.62587,-228.77086 C 230.58662,-229.36665 230.23015,-230.68774 230.83016,-231.71967 C 232.16166,-233.80243 233.93524,-233.26584 234.84231,-235.46138 C 236.10323,-234.12777 235.63545,-227.21367 231.62587,-228.77086 z" fill="#729fcf" fill-opacity="1" stroke="#204a87" stroke-width="1.07456863" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/>
+          <path d="M 234.31017,-229.9035 C 233.82059,-229.03976 232.73502,-228.74348 231.88703,-229.24216 C 231.03903,-229.74084 230.74816,-230.84657 231.23774,-231.71031 C 231.72733,-232.57405 233.84374,-232.16235 234.58388,-234 C 235.43187,-233.50133 234.79976,-230.76724 234.31017,-229.9035 z" opacity="0.46111109" fill="url(#radialGradient8302)" fill-opacity="1" stroke="none" stroke-width="1.07457018" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0" stroke-dashoffset="0" stroke-opacity="1"/>
+          <path d="M 233.02237,-229 C 228.40776,-230.07384 233.25985,-233.71939 234,-232.92154 C 230.4176,-231.55118 233.02237,-229 233.02237,-229 z" opacity="1" fill="url(#linearGradient8304)" fill-opacity="1" stroke="none" stroke-width="1.07457018" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0" stroke-dashoffset="0" stroke-opacity="1"/>
         </g>
-        <g
-           id="g12203"
-           transform="translate(-231.67944,270.47179)">
-          <path
-             sodipodi:nodetypes="cccc"
-             id="path12205"
-             d="M 231.62587,-228.77086 C 230.58662,-229.36665 230.23015,-230.68774 230.83016,-231.71967 C 232.16166,-233.80243 233.93524,-233.26584 234.84231,-235.46138 C 236.10323,-234.12777 235.63545,-227.21367 231.62587,-228.77086 z"
-             style="fill:#729fcf;fill-opacity:1;stroke:#204a87;stroke-width:1.07456863;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
-          <path
-             sodipodi:nodetypes="csscc"
-             id="path12207"
-             d="M 234.31017,-229.9035 C 233.82059,-229.03976 232.73502,-228.74348 231.88703,-229.24216 C 231.03903,-229.74084 230.74816,-230.84657 231.23774,-231.71031 C 231.72733,-232.57405 233.84374,-232.16235 234.58388,-234 C 235.43187,-233.50133 234.79976,-230.76724 234.31017,-229.9035 z"
-             style="opacity:0.46111109;fill:url(#radialGradient8306);fill-opacity:1;stroke:none;stroke-width:1.07457018;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1" />
-          <path
-             sodipodi:nodetypes="ccc"
-             id="path12209"
-             d="M 233.02237,-229 C 228.40776,-230.07384 233.25985,-233.71939 234,-232.92154 C 230.4176,-231.55118 233.02237,-229 233.02237,-229 z"
-             style="opacity:1;fill:url(#linearGradient8308);fill-opacity:1;stroke:none;stroke-width:1.07457018;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1" />
+        <g transform="translate(-231.67944,270.47179)">
+          <path d="M 231.62587,-228.77086 C 230.58662,-229.36665 230.23015,-230.68774 230.83016,-231.71967 C 232.16166,-233.80243 233.93524,-233.26584 234.84231,-235.46138 C 236.10323,-234.12777 235.63545,-227.21367 231.62587,-228.77086 z" fill="#729fcf" fill-opacity="1" stroke="#204a87" stroke-width="1.07456863" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/>
+          <path d="M 234.31017,-229.9035 C 233.82059,-229.03976 232.73502,-228.74348 231.88703,-229.24216 C 231.03903,-229.74084 230.74816,-230.84657 231.23774,-231.71031 C 231.72733,-232.57405 233.84374,-232.16235 234.58388,-234 C 235.43187,-233.50133 234.79976,-230.76724 234.31017,-229.9035 z" opacity="0.46111109" fill="url(#radialGradient8306)" fill-opacity="1" stroke="none" stroke-width="1.07457018" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0" stroke-dashoffset="0" stroke-opacity="1"/>
+          <path d="M 233.02237,-229 C 228.40776,-230.07384 233.25985,-233.71939 234,-232.92154 C 230.4176,-231.55118 233.02237,-229 233.02237,-229 z" opacity="1" fill="url(#linearGradient8308)" fill-opacity="1" stroke="none" stroke-width="1.07457018" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0" stroke-dashoffset="0" stroke-opacity="1"/>
         </g>
-        <g
-           id="g12215"
-           transform="translate(-217.67944,265.47959)">
-          <path
-             sodipodi:nodetypes="cccc"
-             id="path12217"
-             d="M 231.62587,-228.77086 C 230.58662,-229.36665 230.23015,-230.68774 230.83016,-231.71967 C 232.16166,-233.80243 233.93524,-233.26584 234.84231,-235.46138 C 236.10323,-234.12777 235.63545,-227.21367 231.62587,-228.77086 z"
-             style="fill:#729fcf;fill-opacity:1;stroke:#204a87;stroke-width:1.07456863;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
-          <path
-             sodipodi:nodetypes="csscc"
-             id="path12219"
-             d="M 234.31017,-229.9035 C 233.82059,-229.03976 232.73502,-228.74348 231.88703,-229.24216 C 231.03903,-229.74084 230.74816,-230.84657 231.23774,-231.71031 C 231.72733,-232.57405 233.84374,-232.16235 234.58388,-234 C 235.43187,-233.50133 234.79976,-230.76724 234.31017,-229.9035 z"
-             style="opacity:0.46111109;fill:url(#radialGradient8310);fill-opacity:1;stroke:none;stroke-width:1.07457018;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1" />
-          <path
-             sodipodi:nodetypes="ccc"
-             id="path12221"
-             d="M 233.02237,-229 C 228.40776,-230.07384 233.25985,-233.71939 234,-232.92154 C 230.4176,-231.55118 233.02237,-229 233.02237,-229 z"
-             style="opacity:1;fill:url(#linearGradient8312);fill-opacity:1;stroke:none;stroke-width:1.07457018;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1" />
+        <g transform="translate(-217.67944,265.47959)">
+          <path d="M 231.62587,-228.77086 C 230.58662,-229.36665 230.23015,-230.68774 230.83016,-231.71967 C 232.16166,-233.80243 233.93524,-233.26584 234.84231,-235.46138 C 236.10323,-234.12777 235.63545,-227.21367 231.62587,-228.77086 z" fill="#729fcf" fill-opacity="1" stroke="#204a87" stroke-width="1.07456863" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/>
+          <path d="M 234.31017,-229.9035 C 233.82059,-229.03976 232.73502,-228.74348 231.88703,-229.24216 C 231.03903,-229.74084 230.74816,-230.84657 231.23774,-231.71031 C 231.72733,-232.57405 233.84374,-232.16235 234.58388,-234 C 235.43187,-233.50133 234.79976,-230.76724 234.31017,-229.9035 z" opacity="0.46111109" fill="url(#radialGradient8310)" fill-opacity="1" stroke="none" stroke-width="1.07457018" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0" stroke-dashoffset="0" stroke-opacity="1"/>
+          <path d="M 233.02237,-229 C 228.40776,-230.07384 233.25985,-233.71939 234,-232.92154 C 230.4176,-231.55118 233.02237,-229 233.02237,-229 z" opacity="1" fill="url(#linearGradient8312)" fill-opacity="1" stroke="none" stroke-width="1.07457018" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0" stroke-dashoffset="0" stroke-opacity="1"/>
         </g>
       </g>
-      <g
-         transform="translate(-162.99643,221.88968)"
-         id="g12157">
-        <path
-           sodipodi:type="arc"
-           style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#729fcf;stroke-width:1.45874679;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-           id="path12159"
-           sodipodi:cx="29.610096"
-           sodipodi:cy="-316.77872"
-           sodipodi:rx="2.2097087"
-           sodipodi:ry="2.2097087"
-           d="M 31.819805,-316.77872 A 2.2097087,2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087,2.2097087 0 1 1 31.819805,-316.77872 z"
-           transform="matrix(0.68552,0,0,0.68552,151.7017,27.15827)" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#729fcf;stroke-width:1.09220433;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-           id="path12161"
-           sodipodi:cx="29.610096"
-           sodipodi:cy="-316.77872"
-           sodipodi:rx="2.2097087"
-           sodipodi:ry="2.2097087"
-           d="M 31.819805,-316.77872 A 2.2097087,2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087,2.2097087 0 1 1 31.819805,-316.77872 z"
-           transform="matrix(0.915572,0,0,0.915587,152.4091,103.5577)" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#729fcf;stroke-width:1.47481608;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-           id="path12163"
-           sodipodi:cx="29.610096"
-           sodipodi:cy="-316.77872"
-           sodipodi:rx="2.2097087"
-           sodipodi:ry="2.2097087"
-           d="M 31.819805,-316.77872 A 2.2097087,2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087,2.2097087 0 1 1 31.819805,-316.77872 z"
-           transform="matrix(0.672406,0,0,0.683742,153.0708,34.62149)" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#729fcf;stroke-width:1.4678179;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-           id="path12165"
-           sodipodi:cx="29.610096"
-           sodipodi:cy="-316.77872"
-           sodipodi:rx="2.2097087"
-           sodipodi:ry="2.2097087"
-           d="M 31.819805,-316.77872 A 2.2097087,2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087,2.2097087 0 1 1 31.819805,-316.77872 z"
-           transform="matrix(0.6823,0,0,0.680269,181.797,30.49471)" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#729fcf;stroke-width:0.89916825;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-           id="path12167"
-           sodipodi:cx="29.610096"
-           sodipodi:cy="-316.77872"
-           sodipodi:rx="2.2097087"
-           sodipodi:ry="2.2097087"
-           d="M 31.819805,-316.77872 A 2.2097087,2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087,2.2097087 0 1 1 31.819805,-316.77872 z"
-           transform="matrix(1.107132,0,0,1.117168,157.2177,164.9217)" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#729fcf;stroke-width:0.91822928;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-           id="path12169"
-           sodipodi:cx="29.610096"
-           sodipodi:cy="-316.77872"
-           sodipodi:rx="2.2097087"
-           sodipodi:ry="2.2097087"
-           d="M 31.819805,-316.77872 A 2.2097087,2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087,2.2097087 0 1 1 31.819805,-316.77872 z"
-           transform="matrix(1.127592,0,0,1.05183,161.6119,151.3731)" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#729fcf;stroke-width:1.46413279;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-           id="path12171"
-           sodipodi:cx="29.610096"
-           sodipodi:cy="-316.77872"
-           sodipodi:rx="2.2097087"
-           sodipodi:ry="2.2097087"
-           d="M 31.819805,-316.77872 A 2.2097087,2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087,2.2097087 0 1 1 31.819805,-316.77872 z"
-           transform="matrix(0.685519,0,0,0.680487,164.6869,34.56369)" />
+      <g transform="translate(-162.99643,221.88968)">
+        <path d="M 31.819805,-316.77872 A 2.2097087,2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087,2.2097087 0 1 1 31.819805,-316.77872 z" transform="matrix(0.68552,0,0,0.68552,151.7017,27.15827)" opacity="1" fill="#ffffff" fill-opacity="1" stroke="#729fcf" stroke-width="1.45874679" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/>
+        <path d="M 31.819805,-316.77872 A 2.2097087,2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087,2.2097087 0 1 1 31.819805,-316.77872 z" transform="matrix(0.915572,0,0,0.915587,152.4091,103.5577)" opacity="1" fill="#ffffff" fill-opacity="1" stroke="#729fcf" stroke-width="1.09220433" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/>
+        <path d="M 31.819805,-316.77872 A 2.2097087,2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087,2.2097087 0 1 1 31.819805,-316.77872 z" transform="matrix(0.672406,0,0,0.683742,153.0708,34.62149)" opacity="1" fill="#ffffff" fill-opacity="1" stroke="#729fcf" stroke-width="1.47481608" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/>
+        <path d="M 31.819805,-316.77872 A 2.2097087,2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087,2.2097087 0 1 1 31.819805,-316.77872 z" transform="matrix(0.6823,0,0,0.680269,181.797,30.49471)" opacity="1" fill="#ffffff" fill-opacity="1" stroke="#729fcf" stroke-width="1.4678179" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/>
+        <path d="M 31.819805,-316.77872 A 2.2097087,2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087,2.2097087 0 1 1 31.819805,-316.77872 z" transform="matrix(1.107132,0,0,1.117168,157.2177,164.9217)" opacity="1" fill="#ffffff" fill-opacity="1" stroke="#729fcf" stroke-width="0.89916825" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/>
+        <path d="M 31.819805,-316.77872 A 2.2097087,2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087,2.2097087 0 1 1 31.819805,-316.77872 z" transform="matrix(1.127592,0,0,1.05183,161.6119,151.3731)" opacity="1" fill="#ffffff" fill-opacity="1" stroke="#729fcf" stroke-width="0.91822928" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/>
+        <path d="M 31.819805,-316.77872 A 2.2097087,2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087,2.2097087 0 1 1 31.819805,-316.77872 z" transform="matrix(0.685519,0,0,0.680487,164.6869,34.56369)" opacity="1" fill="#ffffff" fill-opacity="1" stroke="#729fcf" stroke-width="1.46413279" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/>
       </g>
     </g>
   </g>
diff --git a/demos/embedded/weatherinfo/icons/weather-snow.svg b/demos/embedded/weatherinfo/icons/weather-snow.svg
index 6c7b4ad..a91946f 100644
--- a/demos/embedded/weatherinfo/icons/weather-snow.svg
+++ b/demos/embedded/weatherinfo/icons/weather-snow.svg
@@ -1,1418 +1,81 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="48px"
-   height="48px"
-   id="svg1306"
-   sodipodi:version="0.32"
-   inkscape:version="0.46"
-   sodipodi:docbase="/home/rcollier/Work/Novell/Tango/weather"
-   sodipodi:docname="weather-snow.svg"
-   inkscape:output_extension="org.inkscape.output.svg.inkscape">
-  <defs
-     id="defs1308">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 24 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="48 : 24 : 1"
-       inkscape:persp3d-origin="24 : 16 : 1"
-       id="perspective253" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6538"
-       id="linearGradient10630"
-       gradientUnits="userSpaceOnUse"
-       x1="284.80219"
-       y1="-441.23294"
-       x2="288.89954"
-       y2="-436.83109" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6549"
-       id="linearGradient10628"
-       gradientUnits="userSpaceOnUse"
-       x1="286.66589"
-       y1="-439.48358"
-       x2="289.76562"
-       y2="-436.70703" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6527"
-       id="linearGradient10626"
-       gradientUnits="userSpaceOnUse"
-       x1="275.94193"
-       y1="-437.10501"
-       x2="279.97546"
-       y2="-431.91833" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6538"
-       id="linearGradient10624"
-       gradientUnits="userSpaceOnUse"
-       x1="285.94086"
-       y1="-439.93900"
-       x2="289.39124"
-       y2="-436.44290" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6513"
-       id="linearGradient10622"
-       gradientUnits="userSpaceOnUse"
-       x1="286.51172"
-       y1="-441.29074"
-       x2="289.85379"
-       y2="-436.14453" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6497"
-       id="linearGradient10620"
-       gradientUnits="userSpaceOnUse"
-       x1="287.51730"
-       y1="-439.75281"
-       x2="289.67633"
-       y2="-436.32199" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6470"
-       id="linearGradient10618"
-       gradientUnits="userSpaceOnUse"
-       x1="271.02170"
-       y1="-441.05182"
-       x2="285.02859"
-       y2="-431.96991" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6538"
-       id="linearGradient10616"
-       gradientUnits="userSpaceOnUse"
-       x1="284.80219"
-       y1="-441.23294"
-       x2="288.89954"
-       y2="-436.83109" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient6549">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop6551" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop6553" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6549"
-       id="linearGradient10614"
-       gradientUnits="userSpaceOnUse"
-       x1="286.66589"
-       y1="-439.48358"
-       x2="289.76562"
-       y2="-436.70703" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient6527">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop6530" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop6532" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6527"
-       id="linearGradient10612"
-       gradientUnits="userSpaceOnUse"
-       x1="275.94193"
-       y1="-437.10501"
-       x2="279.97546"
-       y2="-431.91833" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient6538">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop6540" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop6542" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6538"
-       id="linearGradient10610"
-       gradientUnits="userSpaceOnUse"
-       x1="285.94086"
-       y1="-439.93900"
-       x2="289.39124"
-       y2="-436.44290" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient6513">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop6515" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop6517" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6513"
-       id="linearGradient10608"
-       gradientUnits="userSpaceOnUse"
-       x1="286.51172"
-       y1="-441.29074"
-       x2="289.85379"
-       y2="-436.14453" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient6497">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop6499" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop6501" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6497"
-       id="linearGradient10606"
-       gradientUnits="userSpaceOnUse"
-       x1="287.51730"
-       y1="-439.75281"
-       x2="289.67633"
-       y2="-436.32199" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient6470">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop6472" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop6474" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6470"
-       id="linearGradient10604"
-       gradientUnits="userSpaceOnUse"
-       x1="271.02170"
-       y1="-441.05182"
-       x2="285.02859"
-       y2="-431.96991" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient7834">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop7836" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop7838" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient7834"
-       id="linearGradient10602"
-       gradientUnits="userSpaceOnUse"
-       x1="-156.29044"
-       y1="-100.53421"
-       x2="-153.09810"
-       y2="-96.544556" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient8397">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop8400" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop8402" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8397"
-       id="linearGradient10600"
-       gradientUnits="userSpaceOnUse"
-       x1="238.00478"
-       y1="-388.47476"
-       x2="245.65462"
-       y2="-382.64539" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient8315">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop8317" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop8319" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8315"
-       id="linearGradient10598"
-       gradientUnits="userSpaceOnUse"
-       x1="230.87598"
-       y1="-390.43951"
-       x2="235.25652"
-       y2="-386.95901" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient8381">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop8383" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop8385" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8381"
-       id="linearGradient10596"
-       gradientUnits="userSpaceOnUse"
-       x1="246.74042"
-       y1="-391.31381"
-       x2="252.69785"
-       y2="-385.35165" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient8331">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop8333" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop8335" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8331"
-       id="linearGradient10594"
-       gradientUnits="userSpaceOnUse"
-       x1="240.07379"
-       y1="-393.40720"
-       x2="245.82706"
-       y2="-388.55029" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient8302">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop8304" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop8306" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8302"
-       id="linearGradient10592"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(122.0230,102.0000)"
-       x1="228.50261"
-       y1="-392.30591"
-       x2="278.91510"
-       y2="-375.37952" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2298"
-       id="linearGradient7748"
-       gradientUnits="userSpaceOnUse"
-       x1="-27.006643"
-       y1="-37.550461"
-       x2="-34.700153"
-       y2="-4.4493785" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2527"
-       id="linearGradient7746"
-       gradientUnits="userSpaceOnUse"
-       x1="-25.137094"
-       y1="-1.2491118"
-       x2="-35.652866"
-       y2="-24.884460" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3478"
-       id="linearGradient7744"
-       gradientUnits="userSpaceOnUse"
-       x1="11.149398"
-       y1="-43.997444"
-       x2="4.9625983"
-       y2="-8.3080902" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient4829">
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="0"
-         id="stop4831" />
-      <stop
-         style="stop-color:#000000;stop-opacity:0;"
-         offset="1"
-         id="stop4833" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient3478">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop3480" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop3482" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2298">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop2300" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop2302" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient3347">
-      <stop
-         style="stop-color:#edd400;stop-opacity:1;"
-         offset="0"
-         id="stop3349" />
-      <stop
-         style="stop-color:#edd400;stop-opacity:0;"
-         offset="1"
-         id="stop3351" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2527">
-      <stop
-         style="stop-color:#fcaf3e;stop-opacity:1;"
-         offset="0"
-         id="stop2529" />
-      <stop
-         style="stop-color:#fcaf3e;stop-opacity:0;"
-         offset="1"
-         id="stop2531" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2500">
-      <stop
-         style="stop-color:#fce94f;stop-opacity:1;"
-         offset="0"
-         id="stop2502" />
-      <stop
-         style="stop-color:#fce94f;stop-opacity:0;"
-         offset="1"
-         id="stop2504" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2392">
-      <stop
-         style="stop-color:#eeeeec;stop-opacity:1;"
-         offset="0"
-         id="stop2394" />
-      <stop
-         style="stop-color:#eeeeec;stop-opacity:0;"
-         offset="1"
-         id="stop2396" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2254">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop2256" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop2258" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2263"
-       gradientUnits="userSpaceOnUse"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581"
-       gradientTransform="translate(-1.608757,3.097272)" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2267"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(3.555020,0.968578)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2271"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(9.263651,3.495228)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2275"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(8.497184,-2.330824)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2279"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(14.46340,2.014073)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2283"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2287"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2291"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2295"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2299"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2303"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(1.707748,-5.784024)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2311"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2350"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(16.14002,24.66420)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2352"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-0.932144,25.87240)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2354"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(5.356636,23.86870)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2356"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(11.19027,26.52035)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2358"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(10.30638,19.27251)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2360"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,0.229156,30.76299)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2362"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,16.67145,27.22746)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2364"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,17.05272,31.47010)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2366"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-4.010744,24.96040)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2368"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,8.185476,29.52556)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2370"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(4.207586,21.30544)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2372"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.12415,32.08882)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2392"
-       id="linearGradient2398"
-       x1="6.6651416"
-       y1="13.802798"
-       x2="41.403877"
-       y2="13.802798"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2426"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(14.46340,2.014073)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2428"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(8.497184,-2.330824)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2430"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-1.608757,3.097272)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2432"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(3.555020,0.968578)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2434"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(9.263651,3.495228)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2436"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2438"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2440"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2442"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2444"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2446"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2392"
-       id="linearGradient2448"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)"
-       x1="6.6651416"
-       y1="13.802798"
-       x2="41.403877"
-       y2="13.802798" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2392"
-       id="linearGradient2451"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,4.378541,10.65407)"
-       x1="6.6651416"
-       y1="13.802798"
-       x2="41.403877"
-       y2="13.802798" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2457"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2460"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2463"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2469"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2472"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(12.51365,8.745228)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2475"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(6.805020,6.218578)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2478"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(1.641243,8.347272)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2483"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(0.842481,-3.998086)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2500"
-       id="linearGradient2506"
-       x1="37.000000"
-       y1="-21.750000"
-       x2="53.750000"
-       y2="9.0000000"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2500"
-       id="linearGradient2509"
-       gradientUnits="userSpaceOnUse"
-       x1="37.000000"
-       y1="-21.750000"
-       x2="53.750000"
-       y2="9.0000000"
-       gradientTransform="matrix(0.889091,0.000000,0.000000,0.617886,-4.771368,39.81402)" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2500"
-       id="linearGradient2513"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.605509,0.000000,0.000000,0.710542,-0.224971,42.19500)"
-       x1="38.857941"
-       y1="-18.407482"
-       x2="53.750000"
-       y2="9.0000000" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2500"
-       id="linearGradient2517"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.414169,0.000000,0.000000,0.778853,-1.910724,36.87850)"
-       x1="37.000000"
-       y1="-21.750000"
-       x2="53.750000"
-       y2="9.0000000" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2527"
-       id="linearGradient2533"
-       x1="-25.137094"
-       y1="-1.2491118"
-       x2="-35.652866"
-       y2="-24.884460"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2537"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(17.33814,3.415985)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2541"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(13.40064,1.353485)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2555"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-7.499805,1.708617)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2563"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-0.726830,2.481141)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3347"
-       id="linearGradient3353"
-       x1="23.303862"
-       y1="29.115711"
-       x2="29.750000"
-       y2="46.092930"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3366"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(13.40064,1.353485)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3368"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(1.641243,8.347272)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3370"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(6.805020,6.218578)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3372"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(12.51365,8.745228)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3374"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3376"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3378"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3380"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3383"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3386"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3389"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3392"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3395"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(3.674812,3.088370)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3398"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-2.033818,0.561720)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3401"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-7.197595,2.690414)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3405"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(4.561802,-4.303373)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient1514"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(88.49344,-9.697877)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient1516"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,56.25514,-12.39388)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient1518"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,79.36909,-3.193747)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2527"
-       id="linearGradient1520"
-       gradientUnits="userSpaceOnUse"
-       x1="-25.137094"
-       y1="-1.2491118"
-       x2="-35.652866"
-       y2="-24.884460" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient1522"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-7.197595,2.690414)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient1524"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-2.033818,0.561720)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient1526"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(3.674812,3.088370)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient1528"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient1530"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient1532"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient1534"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient1536"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,123.1162,-5.446357)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient1538"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(57.97693,-10.56876)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2527"
-       id="linearGradient1557"
-       gradientUnits="userSpaceOnUse"
-       x1="-25.137094"
-       y1="-1.2491118"
-       x2="-35.652866"
-       y2="-24.884460" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4829"
-       id="radialGradient4835"
-       cx="-35.001785"
-       cy="-1.1439217"
-       fx="-35.001785"
-       fy="-1.1439217"
-       r="17.500893"
-       gradientTransform="matrix(1.000000,0.000000,0.000000,0.565657,-5.564992e-15,-0.496855)"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2298"
-       id="linearGradient1427"
-       gradientUnits="userSpaceOnUse"
-       x1="-27.006643"
-       y1="-37.550461"
-       x2="-34.700153"
-       y2="-4.4493785" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3478"
-       id="linearGradient1431"
-       gradientUnits="userSpaceOnUse"
-       x1="11.149398"
-       y1="-43.997444"
-       x2="4.9625983"
-       y2="-8.3080902" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3478"
-       id="linearGradient14128"
-       gradientUnits="userSpaceOnUse"
-       x1="11.149398"
-       y1="-43.997444"
-       x2="4.9625983"
-       y2="-8.3080902" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2527"
-       id="linearGradient14130"
-       gradientUnits="userSpaceOnUse"
-       x1="-25.137094"
-       y1="-1.2491118"
-       x2="-35.652866"
-       y2="-24.884460" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2298"
-       id="linearGradient14132"
-       gradientUnits="userSpaceOnUse"
-       x1="-27.006643"
-       y1="-37.550461"
-       x2="-34.700153"
-       y2="-4.4493785" />
+<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="48px" height="48px" id="svg1306">
+  <defs id="defs1308">
+    <linearGradient xlink:href="#linearGradient6538" id="linearGradient10630" gradientUnits="userSpaceOnUse" x1="284.80219" y1="-441.23294" x2="288.89954" y2="-436.83109"/>
+    <linearGradient xlink:href="#linearGradient6549" id="linearGradient10628" gradientUnits="userSpaceOnUse" x1="286.66589" y1="-439.48358" x2="289.76562" y2="-436.70703"/>
+    <linearGradient xlink:href="#linearGradient6527" id="linearGradient10626" gradientUnits="userSpaceOnUse" x1="275.94193" y1="-437.10501" x2="279.97546" y2="-431.91833"/>
+    <linearGradient xlink:href="#linearGradient6538" id="linearGradient10624" gradientUnits="userSpaceOnUse" x1="285.94086" y1="-439.93900" x2="289.39124" y2="-436.44290"/>
+    <linearGradient xlink:href="#linearGradient6513" id="linearGradient10622" gradientUnits="userSpaceOnUse" x1="286.51172" y1="-441.29074" x2="289.85379" y2="-436.14453"/>
+    <linearGradient xlink:href="#linearGradient6497" id="linearGradient10620" gradientUnits="userSpaceOnUse" x1="287.51730" y1="-439.75281" x2="289.67633" y2="-436.32199"/>
+    <linearGradient xlink:href="#linearGradient6470" id="linearGradient10618" gradientUnits="userSpaceOnUse" x1="271.02170" y1="-441.05182" x2="285.02859" y2="-431.96991"/>
+    <linearGradient xlink:href="#linearGradient6538" id="linearGradient10616" gradientUnits="userSpaceOnUse" x1="284.80219" y1="-441.23294" x2="288.89954" y2="-436.83109"/>
+    <linearGradient id="linearGradient6549">
+      <stop offset="0" id="stop6551" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop6553" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient xlink:href="#linearGradient6549" id="linearGradient10614" gradientUnits="userSpaceOnUse" x1="286.66589" y1="-439.48358" x2="289.76562" y2="-436.70703"/>
+    <linearGradient id="linearGradient6527">
+      <stop offset="0" id="stop6530" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop6532" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient xlink:href="#linearGradient6527" id="linearGradient10612" gradientUnits="userSpaceOnUse" x1="275.94193" y1="-437.10501" x2="279.97546" y2="-431.91833"/>
+    <linearGradient id="linearGradient6538">
+      <stop offset="0" id="stop6540" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop6542" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient xlink:href="#linearGradient6538" id="linearGradient10610" gradientUnits="userSpaceOnUse" x1="285.94086" y1="-439.93900" x2="289.39124" y2="-436.44290"/>
+    <linearGradient id="linearGradient6513">
+      <stop offset="0" id="stop6515" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop6517" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient xlink:href="#linearGradient6513" id="linearGradient10608" gradientUnits="userSpaceOnUse" x1="286.51172" y1="-441.29074" x2="289.85379" y2="-436.14453"/>
+    <linearGradient id="linearGradient6497">
+      <stop offset="0" id="stop6499" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop6501" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient xlink:href="#linearGradient6497" id="linearGradient10606" gradientUnits="userSpaceOnUse" x1="287.51730" y1="-439.75281" x2="289.67633" y2="-436.32199"/>
+    <linearGradient id="linearGradient6470">
+      <stop offset="0" id="stop6472" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop6474" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient xlink:href="#linearGradient6470" id="linearGradient10604" gradientUnits="userSpaceOnUse" x1="271.02170" y1="-441.05182" x2="285.02859" y2="-431.96991"/>
+    <linearGradient id="linearGradient7834">
+      <stop offset="0" id="stop7836" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop7838" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient xlink:href="#linearGradient7834" id="linearGradient10602" gradientUnits="userSpaceOnUse" x1="-156.29044" y1="-100.53421" x2="-153.09810" y2="-96.544556"/>
+    <linearGradient id="linearGradient8397">
+      <stop offset="0" id="stop8400" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop8402" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient xlink:href="#linearGradient8397" id="linearGradient10600" gradientUnits="userSpaceOnUse" x1="238.00478" y1="-388.47476" x2="245.65462" y2="-382.64539"/>
+    <linearGradient id="linearGradient8315">
+      <stop offset="0" id="stop8317" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop8319" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient xlink:href="#linearGradient8315" id="linearGradient10598" gradientUnits="userSpaceOnUse" x1="230.87598" y1="-390.43951" x2="235.25652" y2="-386.95901"/>
+    <linearGradient id="linearGradient8381">
+      <stop offset="0" id="stop8383" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop8385" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient xlink:href="#linearGradient8381" id="linearGradient10596" gradientUnits="userSpaceOnUse" x1="246.74042" y1="-391.31381" x2="252.69785" y2="-385.35165"/>
+    <linearGradient id="linearGradient8331">
+      <stop offset="0" id="stop8333" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop8335" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient xlink:href="#linearGradient8331" id="linearGradient10594" gradientUnits="userSpaceOnUse" x1="240.07379" y1="-393.40720" x2="245.82706" y2="-388.55029"/>
+    <linearGradient id="linearGradient8302">
+      <stop offset="0" id="stop8304" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop8306" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient xlink:href="#linearGradient8302" id="linearGradient10592" gradientUnits="userSpaceOnUse" gradientTransform="translate(122.0230,102.0000)" x1="228.50261" y1="-392.30591" x2="278.91510" y2="-375.37952"/>
   </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="8"
-     inkscape:cx="23.594384"
-     inkscape:cy="39.722629"
-     inkscape:current-layer="layer1"
-     showgrid="true"
-     inkscape:grid-bbox="true"
-     inkscape:document-units="px"
-     inkscape:window-width="859"
-     inkscape:window-height="818"
-     inkscape:window-x="0"
-     inkscape:window-y="30"
-     inkscape:showpageshadow="false" />
-  <metadata
-     id="metadata1311">
+  
+  <metadata id="metadata1311">
     <rdf:RDF>
-      <cc:Work
-         rdf:about="">
+      <cc:Work rdf:about="">
         <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
         <dc:title>weather-snow</dc:title>
         <dc:date>January 2006</dc:date>
         <dc:creator>
@@ -1433,542 +96,105 @@
             <rdf:li>notification</rdf:li>
           </rdf:Bag>
         </dc:subject>
-        <cc:license
-           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+        <cc:license rdf:resource="http://creativecommons.org/licenses/publicdomain/"/>
       </cc:Work>
-      <cc:License
-         rdf:about="http://creativecommons.org/licenses/publicdomain/">
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Reproduction" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Distribution" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      <cc:License rdf:about="http://creativecommons.org/licenses/publicdomain/">
+        <cc:permits rdf:resource="http://creativecommons.org/ns#Reproduction"/>
+        <cc:permits rdf:resource="http://creativecommons.org/ns#Distribution"/>
+        <cc:permits rdf:resource="http://creativecommons.org/ns#DerivativeWorks"/>
       </cc:License>
     </rdf:RDF>
   </metadata>
-  <g
-     id="layer1"
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer">
-    <g
-       id="g9947"
-       transform="translate(-340.0455,298.0001)">
-      <path
-         id="path8718"
-         d="M 364.52300,-296.00000 C 361.75058,-296.00000 359.41477,-294.42629 358.11675,-292.18750 C 357.17239,-292.66254 356.15156,-293.00000 355.02300,-293.00000 C 351.15900,-293.00000 348.02300,-289.86400 348.02300,-286.00000 C 348.02300,-282.13600 351.15900,-279.00000 355.02300,-279.00000 C 357.44267,-279.00000 359.45309,-280.31932 360.71050,-282.18750 C 361.84470,-281.49788 363.09948,-281.00000 364.52300,-281.00000 C 365.43612,-281.00000 366.27595,-281.23202 367.08550,-281.53125 C 367.59544,-280.66352 368.26462,-279.95153 369.08550,-279.37500 C 369.07826,-279.24462 369.02300,-279.13218 369.02300,-279.00000 C 369.02300,-275.13600 372.15899,-272.00000 376.02300,-272.00000 C 379.88700,-272.00000 383.02300,-275.13600 383.02300,-279.00000 C 383.02300,-281.36969 381.76402,-283.35834 379.96050,-284.62500 C 379.96774,-284.75538 380.02300,-284.86782 380.02300,-285.00000 C 380.02300,-288.86400 376.88701,-292.00000 373.02300,-292.00000 C 372.40030,-292.00000 371.84781,-291.77781 371.27300,-291.62500 C 370.07847,-294.18384 367.53166,-296.00000 364.52300,-296.00000 z "
-         style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
-      <path
-         id="path8720"
-         d="M 364.52300,-295.00000 C 361.74252,-295.00000 359.38849,-293.23815 358.46050,-290.78125 C 357.47508,-291.49069 356.32907,-292.00000 355.02300,-292.00000 C 351.71100,-292.00000 349.02300,-289.31200 349.02300,-286.00000 C 349.02300,-282.68800 351.71100,-280.00000 355.02300,-280.00000 C 357.45075,-280.00000 359.51624,-281.45558 360.46050,-283.53125 C 361.58126,-282.61369 362.96264,-282.00000 364.52300,-282.00000 C 365.59754,-282.00000 366.56728,-282.31896 367.46050,-282.78125 C 367.85890,-281.78149 368.56164,-280.99493 369.39800,-280.34375 C 369.21799,-279.74813 369.02300,-279.15410 369.02300,-278.50000 C 369.02300,-274.91200 371.93500,-272.00000 375.52300,-272.00000 C 379.11100,-272.00000 382.02300,-274.91200 382.02300,-278.50000 C 382.02300,-280.86079 380.68867,-282.83019 378.80425,-283.96875 C 378.86684,-284.31598 379.02300,-284.63483 379.02300,-285.00000 C 379.02300,-288.31200 376.33500,-291.00000 373.02300,-291.00000 C 372.17002,-291.00000 371.35170,-290.82132 370.61675,-290.50000 C 369.76298,-293.09388 367.40151,-294.99999 364.52300,-295.00000 z "
-         style="opacity:1.0000000;fill:url(#linearGradient10592);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
-      <path
-         transform="matrix(0.964447,0.000000,0.000000,0.964447,142.3115,91.52621)"
-         d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1  235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1  248.54804 -383.66660 z"
-         sodipodi:ry="6.7396116"
-         sodipodi:rx="6.7396116"
-         sodipodi:cy="-383.66660"
-         sodipodi:cx="241.80843"
-         id="path8722"
-         style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-         sodipodi:type="arc" />
-      <g
-         transform="translate(122.0230,102.0000)"
-         id="g8724">
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path8726"
-           sodipodi:cx="243.95184"
-           sodipodi:cy="-389.30136"
-           sodipodi:rx="6.2313786"
-           sodipodi:ry="6.2313786"
-           d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1  237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1  250.18322 -389.30136 z"
-           transform="matrix(0.882630,0.000000,0.000000,0.882630,27.18078,-46.89094)" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:url(#linearGradient10594);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path8728"
-           sodipodi:cx="243.95184"
-           sodipodi:cy="-389.30136"
-           sodipodi:rx="6.2313786"
-           sodipodi:ry="6.2313786"
-           d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1  237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1  250.18322 -389.30136 z"
-           transform="matrix(0.882630,0.000000,0.000000,0.882630,27.18078,-46.89094)" />
+  <g id="layer1">
+    <g transform="translate(-340.0455,298.0001)">
+      <path d="M 364.52300,-296.00000 C 361.75058,-296.00000 359.41477,-294.42629 358.11675,-292.18750 C 357.17239,-292.66254 356.15156,-293.00000 355.02300,-293.00000 C 351.15900,-293.00000 348.02300,-289.86400 348.02300,-286.00000 C 348.02300,-282.13600 351.15900,-279.00000 355.02300,-279.00000 C 357.44267,-279.00000 359.45309,-280.31932 360.71050,-282.18750 C 361.84470,-281.49788 363.09948,-281.00000 364.52300,-281.00000 C 365.43612,-281.00000 366.27595,-281.23202 367.08550,-281.53125 C 367.59544,-280.66352 368.26462,-279.95153 369.08550,-279.37500 C 369.07826,-279.24462 369.02300,-279.13218 369.02300,-279.00000 C 369.02300,-275.13600 372.15899,-272.00000 376.02300,-272.00000 C 379.88700,-272.00000 383.02300,-275.13600 383.02300,-279.00000 C 383.02300,-281.36969 381.76402,-283.35834 379.96050,-284.62500 C 379.96774,-284.75538 380.02300,-284.86782 380.02300,-285.00000 C 380.02300,-288.86400 376.88701,-292.00000 373.02300,-292.00000 C 372.40030,-292.00000 371.84781,-291.77781 371.27300,-291.62500 C 370.07847,-294.18384 367.53166,-296.00000 364.52300,-296.00000 z " opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+      <path d="M 364.52300,-295.00000 C 361.74252,-295.00000 359.38849,-293.23815 358.46050,-290.78125 C 357.47508,-291.49069 356.32907,-292.00000 355.02300,-292.00000 C 351.71100,-292.00000 349.02300,-289.31200 349.02300,-286.00000 C 349.02300,-282.68800 351.71100,-280.00000 355.02300,-280.00000 C 357.45075,-280.00000 359.51624,-281.45558 360.46050,-283.53125 C 361.58126,-282.61369 362.96264,-282.00000 364.52300,-282.00000 C 365.59754,-282.00000 366.56728,-282.31896 367.46050,-282.78125 C 367.85890,-281.78149 368.56164,-280.99493 369.39800,-280.34375 C 369.21799,-279.74813 369.02300,-279.15410 369.02300,-278.50000 C 369.02300,-274.91200 371.93500,-272.00000 375.52300,-272.00000 C 379.11100,-272.00000 382.02300,-274.91200 382.02300,-278.50000 C 382.02300,-280.86079 380.68867,-282.83019 378.80425,-283.96875 C 378.86684,-284.31598 379.02300,-284.63483 379.02300,-285.00000 C 379.02300,-288.31200 376.33500,-291.00000 373.02300,-291.00000 C 372.17002,-291.00000 371.35170,-290.82132 370.61675,-290.50000 C 369.76298,-293.09388 367.40151,-294.99999 364.52300,-295.00000 z " opacity="1.0000000" fill="url(#linearGradient10592)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+      <path transform="matrix(0.964447,0.000000,0.000000,0.964447,142.3115,91.52621)" d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1  235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1  248.54804 -383.66660 z" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+      <g transform="translate(122.0230,102.0000)">
+        <path d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1  237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1  250.18322 -389.30136 z" transform="matrix(0.882630,0.000000,0.000000,0.882630,27.18078,-46.89094)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1  237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1  250.18322 -389.30136 z" transform="matrix(0.882630,0.000000,0.000000,0.882630,27.18078,-46.89094)" opacity="1.0000000" fill="url(#linearGradient10594)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
       </g>
-      <g
-         transform="translate(122.0230,102.0000)"
-         id="g8730">
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path8732"
-           sodipodi:cx="251.22179"
-           sodipodi:cy="-385.78790"
-           sodipodi:rx="6.0325046"
-           sodipodi:ry="6.0325046"
-           d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1  245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1  257.25429 -385.78790 z"
-           transform="matrix(0.911728,0.000000,0.000000,0.911728,21.45407,-34.76637)" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:url(#linearGradient10596);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path8734"
-           sodipodi:cx="251.22179"
-           sodipodi:cy="-385.78790"
-           sodipodi:rx="6.0325046"
-           sodipodi:ry="6.0325046"
-           d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1  245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1  257.25429 -385.78790 z"
-           transform="matrix(0.911728,0.000000,0.000000,0.911728,21.45407,-34.76637)" />
+      <g transform="translate(122.0230,102.0000)">
+        <path d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1  245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1  257.25429 -385.78790 z" transform="matrix(0.911728,0.000000,0.000000,0.911728,21.45407,-34.76637)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1  245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1  257.25429 -385.78790 z" transform="matrix(0.911728,0.000000,0.000000,0.911728,21.45407,-34.76637)" opacity="1.0000000" fill="url(#linearGradient10596)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
       </g>
-      <g
-         transform="translate(122.0230,102.0000)"
-         id="g8736">
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path8738"
-           sodipodi:cx="233.43362"
-           sodipodi:cy="-387.88715"
-           sodipodi:rx="4.3752232"
-           sodipodi:ry="4.3752232"
-           d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1  229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1  237.80885 -387.88715 z"
-           transform="matrix(1.142799,0.000000,0.000000,1.142799,-33.76771,55.27704)" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:url(#linearGradient10598);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path8740"
-           sodipodi:cx="233.43362"
-           sodipodi:cy="-387.88715"
-           sodipodi:rx="4.3752232"
-           sodipodi:ry="4.3752232"
-           d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1  229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1  237.80885 -387.88715 z"
-           transform="matrix(1.142799,0.000000,0.000000,1.142799,-33.76771,55.27704)" />
+      <g transform="translate(122.0230,102.0000)">
+        <path d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1  229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1  237.80885 -387.88715 z" transform="matrix(1.142799,0.000000,0.000000,1.142799,-33.76771,55.27704)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1  229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1  237.80885 -387.88715 z" transform="matrix(1.142799,0.000000,0.000000,1.142799,-33.76771,55.27704)" opacity="1.0000000" fill="url(#linearGradient10598)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
       </g>
-      <g
-         transform="translate(122.0230,102.0000)"
-         id="g8742">
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path8744"
-           sodipodi:cx="241.80843"
-           sodipodi:cy="-383.66660"
-           sodipodi:rx="6.7396116"
-           sodipodi:ry="6.7396116"
-           d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1  235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1  248.54804 -383.66660 z"
-           transform="matrix(1.038636,0.000000,0.000000,1.038636,-9.150940,14.48994)" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:url(#linearGradient10600);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path8746"
-           sodipodi:cx="241.80843"
-           sodipodi:cy="-383.66660"
-           sodipodi:rx="6.7396116"
-           sodipodi:ry="6.7396116"
-           d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1  235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1  248.54804 -383.66660 z"
-           transform="matrix(1.038636,0.000000,0.000000,1.038636,-9.150933,14.48993)" />
+      <g transform="translate(122.0230,102.0000)">
+        <path d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1  235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1  248.54804 -383.66660 z" transform="matrix(1.038636,0.000000,0.000000,1.038636,-9.150940,14.48994)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1  235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1  248.54804 -383.66660 z" transform="matrix(1.038636,0.000000,0.000000,1.038636,-9.150933,14.48993)" opacity="1.0000000" fill="url(#linearGradient10600)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
       </g>
-      <g
-         style="stroke:none"
-         transform="matrix(0.935028,0.000000,0.000000,0.935028,499.8484,-187.6162)"
-         id="g8748">
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:0.33115697;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path8750"
-           sodipodi:cx="-155.06250"
-           sodipodi:cy="-96.937500"
-           sodipodi:rx="3.1250000"
-           sodipodi:ry="3.1250000"
-           d="M -151.93750 -96.937500 A 3.1250000 3.1250000 0 1 1  -158.18750,-96.937500 A 3.1250000 3.1250000 0 1 1  -151.93750 -96.937500 z"
-           transform="matrix(1.737733,0.000000,0.000000,1.737733,110.8322,70.07649)" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:url(#linearGradient10602);fill-opacity:1.0000000;stroke:none;stroke-width:0.45224530;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path8752"
-           sodipodi:cx="-155.06250"
-           sodipodi:cy="-96.937500"
-           sodipodi:rx="3.1250000"
-           sodipodi:ry="3.1250000"
-           d="M -151.93750 -96.937500 A 3.1250000 3.1250000 0 1 1  -158.18750,-96.937500 A 3.1250000 3.1250000 0 1 1  -151.93750 -96.937500 z"
-           transform="matrix(1.737733,0.000000,0.000000,1.737733,110.8948,70.01402)" />
+      <g transform="matrix(0.935028,0.000000,0.000000,0.935028,499.8484,-187.6162)" stroke="none">
+        <path d="M -151.93750 -96.937500 A 3.1250000 3.1250000 0 1 1  -158.18750,-96.937500 A 3.1250000 3.1250000 0 1 1  -151.93750 -96.937500 z" transform="matrix(1.737733,0.000000,0.000000,1.737733,110.8322,70.07649)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="0.33115697" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M -151.93750 -96.937500 A 3.1250000 3.1250000 0 1 1  -158.18750,-96.937500 A 3.1250000 3.1250000 0 1 1  -151.93750 -96.937500 z" transform="matrix(1.737733,0.000000,0.000000,1.737733,110.8948,70.01402)" opacity="1.0000000" fill="url(#linearGradient10602)" fill-opacity="1.0000000" stroke="none" stroke-width="0.45224530" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
       </g>
-      <g
-         transform="translate(91.02300,162.0000)"
-         id="g8798">
-        <path
-           style="fill:#c4c5c2;fill-opacity:1.0000000;stroke:#888a85;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           d="M 280.50000,-445.50000 C 278.22917,-445.50000 276.39009,-443.94972 275.78125,-441.87500 C 275.08802,-442.23883 274.33674,-442.50000 273.50000,-442.50000 C 270.74000,-442.50000 268.49999,-440.26001 268.50000,-437.50000 C 268.50000,-436.92107 268.66252,-436.39230 268.84375,-435.87500 C 267.47028,-435.10426 266.50000,-433.68600 266.50000,-432.00000 C 266.50000,-429.51600 268.51600,-427.49999 271.00000,-427.50000 C 271.17713,-427.50000 289.82287,-427.50000 290.00000,-427.50000 C 292.48399,-427.50000 294.50000,-429.51600 294.50000,-432.00000 C 294.50000,-433.68600 293.52972,-435.10426 292.15625,-435.87500 C 292.33749,-436.39229 292.50000,-436.92108 292.50000,-437.50000 C 292.50000,-440.26000 290.26000,-442.49999 287.50000,-442.50000 C 286.66326,-442.50000 285.91198,-442.23883 285.21875,-441.87500 C 284.60991,-443.94972 282.77083,-445.50000 280.50000,-445.50000 z "
-           id="path8800"
-           sodipodi:nodetypes="ccsscsssscsscc" />
-        <path
-           style="opacity:1.0000000;fill:url(#linearGradient10604);fill-opacity:1.0000000;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           d="M 280.50000,-445.00000 C 278.31028,-445.00000 276.77640,-443.66423 276.10445,-441.15648 C 275.43599,-441.50010 274.55686,-441.98983 273.75000,-441.98983 C 271.03349,-441.98983 268.99486,-440.05101 268.99487,-437.44429 C 268.99487,-436.89752 269.26208,-436.11085 269.43683,-435.62228 C 268.11240,-434.89433 267.00000,-433.73178 267.00000,-432.24973 C 267.00000,-429.90368 268.54617,-427.99964 271.33928,-427.99964 C 271.51009,-427.99964 289.48992,-427.99964 289.66072,-427.99964 C 292.43173,-427.99964 294.00000,-429.90368 294.00000,-432.24973 C 294.00000,-433.84210 292.88760,-434.91642 291.56317,-435.64437 C 291.73793,-436.13293 292.02724,-436.89753 292.02724,-437.44429 C 292.02724,-440.05100 289.91143,-442.01192 287.25001,-442.01193 C 286.44314,-442.01193 285.60820,-441.52219 284.93974,-441.17857 C 284.29089,-443.60011 282.68973,-445.00000 280.50000,-445.00000 z "
-           id="path8802"
-           sodipodi:nodetypes="ccsscsssscsscc" />
-        <g
-           id="g8804">
-          <path
-             transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)"
-             d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-             sodipodi:ry="3.3125000"
-             sodipodi:rx="3.3125000"
-             sodipodi:cy="-437.59375"
-             sodipodi:cx="288.37500"
-             id="path8806"
-             style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-             sodipodi:type="arc" />
-          <path
-             transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)"
-             d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-             sodipodi:ry="3.3125000"
-             sodipodi:rx="3.3125000"
-             sodipodi:cy="-437.59375"
-             sodipodi:cx="288.37500"
-             id="path8808"
-             style="opacity:1.0000000;fill:url(#linearGradient10606);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-             sodipodi:type="arc" />
+      <g transform="translate(91.02300,162.0000)">
+        <path d="M 280.50000,-445.50000 C 278.22917,-445.50000 276.39009,-443.94972 275.78125,-441.87500 C 275.08802,-442.23883 274.33674,-442.50000 273.50000,-442.50000 C 270.74000,-442.50000 268.49999,-440.26001 268.50000,-437.50000 C 268.50000,-436.92107 268.66252,-436.39230 268.84375,-435.87500 C 267.47028,-435.10426 266.50000,-433.68600 266.50000,-432.00000 C 266.50000,-429.51600 268.51600,-427.49999 271.00000,-427.50000 C 271.17713,-427.50000 289.82287,-427.50000 290.00000,-427.50000 C 292.48399,-427.50000 294.50000,-429.51600 294.50000,-432.00000 C 294.50000,-433.68600 293.52972,-435.10426 292.15625,-435.87500 C 292.33749,-436.39229 292.50000,-436.92108 292.50000,-437.50000 C 292.50000,-440.26000 290.26000,-442.49999 287.50000,-442.50000 C 286.66326,-442.50000 285.91198,-442.23883 285.21875,-441.87500 C 284.60991,-443.94972 282.77083,-445.50000 280.50000,-445.50000 z " fill="#c4c5c2" fill-opacity="1.0000000" stroke="#888a85" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 280.50000,-445.00000 C 278.31028,-445.00000 276.77640,-443.66423 276.10445,-441.15648 C 275.43599,-441.50010 274.55686,-441.98983 273.75000,-441.98983 C 271.03349,-441.98983 268.99486,-440.05101 268.99487,-437.44429 C 268.99487,-436.89752 269.26208,-436.11085 269.43683,-435.62228 C 268.11240,-434.89433 267.00000,-433.73178 267.00000,-432.24973 C 267.00000,-429.90368 268.54617,-427.99964 271.33928,-427.99964 C 271.51009,-427.99964 289.48992,-427.99964 289.66072,-427.99964 C 292.43173,-427.99964 294.00000,-429.90368 294.00000,-432.24973 C 294.00000,-433.84210 292.88760,-434.91642 291.56317,-435.64437 C 291.73793,-436.13293 292.02724,-436.89753 292.02724,-437.44429 C 292.02724,-440.05100 289.91143,-442.01192 287.25001,-442.01193 C 286.44314,-442.01193 285.60820,-441.52219 284.93974,-441.17857 C 284.29089,-443.60011 282.68973,-445.00000 280.50000,-445.00000 z " opacity="1.0000000" fill="url(#linearGradient10604)" fill-opacity="1.0000000" stroke="none" stroke-width="0.99999958" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <g>
+          <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+          <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="1.0000000" fill="url(#linearGradient10606)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
         </g>
-        <rect
-           style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="rect8810"
-           width="20.000000"
-           height="9.0000000"
-           x="271.00000"
-           y="-438.00000" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path8812"
-           sodipodi:cx="288.37500"
-           sodipodi:cy="-437.59375"
-           sodipodi:rx="3.3125000"
-           sodipodi:ry="3.3125000"
-           d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-           transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830195,-35.68869)" />
-        <g
-           id="g8814">
-          <path
-             transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19811,24.86321)"
-             d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-             sodipodi:ry="3.3125000"
-             sodipodi:rx="3.3125000"
-             sodipodi:cy="-437.59375"
-             sodipodi:cx="288.37500"
-             id="path8816"
-             style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-             sodipodi:type="arc" />
-          <path
-             transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19818,24.86331)"
-             d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-             sodipodi:ry="3.3125000"
-             sodipodi:rx="3.3125000"
-             sodipodi:cy="-437.59375"
-             sodipodi:cx="288.37500"
-             id="path8818"
-             style="opacity:1.0000000;fill:url(#linearGradient10608);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-             sodipodi:type="arc" />
+        <rect width="20.000000" height="9.0000000" x="271.00000" y="-438.00000" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830195,-35.68869)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <g>
+          <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19811,24.86321)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+          <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19818,24.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="1.0000000" fill="url(#linearGradient10608)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
         </g>
-        <g
-           id="g8820">
-          <path
-             transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)"
-             d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-             sodipodi:ry="3.3125000"
-             sodipodi:rx="3.3125000"
-             sodipodi:cy="-437.59375"
-             sodipodi:cx="288.37500"
-             id="path8822"
-             style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-             sodipodi:type="arc" />
-          <path
-             transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)"
-             d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-             sodipodi:ry="3.3125000"
-             sodipodi:rx="3.3125000"
-             sodipodi:cy="-437.59375"
-             sodipodi:cx="288.37500"
-             id="path8824"
-             style="opacity:1.0000000;fill:url(#linearGradient10610);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-             sodipodi:type="arc" />
+        <g>
+          <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+          <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="1.0000000" fill="url(#linearGradient10610)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
         </g>
-        <g
-           id="g8826"
-           transform="translate(-1.000000,0.000000)">
-          <path
-             id="path8828"
-             d="M 280.46875,-440.96875 C 276.88937,-440.96875 274.00000,-438.04812 274.00000,-434.46875 C 274.00000,-432.09807 275.34943,-430.13096 277.25000,-429.00000 L 283.71875,-429.00000 C 285.61932,-430.13096 286.96875,-432.12931 286.96875,-434.50000 C 286.96875,-438.07938 284.04812,-440.96875 280.46875,-440.96875 z "
-             style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
-          <path
-             id="path8830"
-             d="M 280.50000,-441.00000 C 276.91200,-441.00000 274.00000,-438.08799 274.00000,-434.50000 C 274.00000,-432.12360 275.34485,-430.13368 277.25000,-429.00000 L 283.75000,-429.00000 C 285.65515,-430.13368 287.00000,-432.12360 287.00000,-434.50000 C 287.00000,-438.08800 284.08800,-440.99999 280.50000,-441.00000 z "
-             style="opacity:1.0000000;fill:url(#linearGradient10612);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
+        <g transform="translate(-1.000000,0.000000)">
+          <path d="M 280.46875,-440.96875 C 276.88937,-440.96875 274.00000,-438.04812 274.00000,-434.46875 C 274.00000,-432.09807 275.34943,-430.13096 277.25000,-429.00000 L 283.71875,-429.00000 C 285.61932,-430.13096 286.96875,-432.12931 286.96875,-434.50000 C 286.96875,-438.07938 284.04812,-440.96875 280.46875,-440.96875 z " opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+          <path d="M 280.50000,-441.00000 C 276.91200,-441.00000 274.00000,-438.08799 274.00000,-434.50000 C 274.00000,-432.12360 275.34485,-430.13368 277.25000,-429.00000 L 283.75000,-429.00000 C 285.65515,-430.13368 287.00000,-432.12360 287.00000,-434.50000 C 287.00000,-438.08800 284.08800,-440.99999 280.50000,-441.00000 z " opacity="1.0000000" fill="url(#linearGradient10612)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
         </g>
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:url(#linearGradient10614);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path8832"
-           sodipodi:cx="288.37500"
-           sodipodi:cy="-437.59375"
-           sodipodi:rx="3.3125000"
-           sodipodi:ry="3.3125000"
-           d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-           transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830296,-35.68884)" />
-        <path
-           style="fill:#888a85;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
-           d="M 292.95640,-437.33396 C 292.95487,-434.64940 289.68714,-433.62001 289.68714,-433.62001 C 289.68714,-433.62001 292.03588,-435.24596 292.02399,-437.32502 C 292.02399,-437.32502 292.95640,-437.33396 292.95640,-437.33396 z "
-           id="path8834"
-           sodipodi:nodetypes="ccss" />
-        <g
-           id="g8836"
-           transform="matrix(1.142857,0.000000,0.000000,1.142857,-28.57139,67.00008)">
-          <path
-             transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)"
-             d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-             sodipodi:ry="3.3125000"
-             sodipodi:rx="3.3125000"
-             sodipodi:cy="-437.59375"
-             sodipodi:cx="288.37500"
-             id="path8838"
-             style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-             sodipodi:type="arc" />
-          <path
-             transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)"
-             d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-             sodipodi:ry="3.3125000"
-             sodipodi:rx="3.3125000"
-             sodipodi:cy="-437.59375"
-             sodipodi:cx="288.37500"
-             id="path8840"
-             style="opacity:1.0000000;fill:url(#linearGradient10616);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-             sodipodi:type="arc" />
+        <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830296,-35.68884)" opacity="1.0000000" fill="url(#linearGradient10614)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 292.95640,-437.33396 C 292.95487,-434.64940 289.68714,-433.62001 289.68714,-433.62001 C 289.68714,-433.62001 292.03588,-435.24596 292.02399,-437.32502 C 292.02399,-437.32502 292.95640,-437.33396 292.95640,-437.33396 z " fill="#888a85" fill-opacity="1.0000000" fill-rule="evenodd" stroke="none" stroke-width="1.0000000px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1.0000000"/>
+        <g transform="matrix(1.142857,0.000000,0.000000,1.142857,-28.57139,67.00008)">
+          <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+          <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="1.0000000" fill="url(#linearGradient10616)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
         </g>
       </g>
-      <g
-         transform="translate(76.02041,158.0000)"
-         id="g8754">
-        <path
-           style="fill:#c4c5c2;fill-opacity:1.0000000;stroke:#888a85;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           d="M 280.50000,-445.50000 C 278.22917,-445.50000 276.39009,-443.94972 275.78125,-441.87500 C 275.08802,-442.23883 274.33674,-442.50000 273.50000,-442.50000 C 270.74000,-442.50000 268.49999,-440.26001 268.50000,-437.50000 C 268.50000,-436.92107 268.66252,-436.39230 268.84375,-435.87500 C 267.47028,-435.10426 266.50000,-433.68600 266.50000,-432.00000 C 266.50000,-429.51600 268.51600,-427.49999 271.00000,-427.50000 C 271.17713,-427.50000 289.82287,-427.50000 290.00000,-427.50000 C 292.48399,-427.50000 294.50000,-429.51600 294.50000,-432.00000 C 294.50000,-433.68600 293.52972,-435.10426 292.15625,-435.87500 C 292.33749,-436.39229 292.50000,-436.92108 292.50000,-437.50000 C 292.50000,-440.26000 290.26000,-442.49999 287.50000,-442.50000 C 286.66326,-442.50000 285.91198,-442.23883 285.21875,-441.87500 C 284.60991,-443.94972 282.77083,-445.50000 280.50000,-445.50000 z "
-           id="path8756"
-           sodipodi:nodetypes="ccsscsssscsscc" />
-        <path
-           style="opacity:1.0000000;fill:url(#linearGradient10618);fill-opacity:1.0000000;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           d="M 280.50000,-445.00000 C 278.31028,-445.00000 276.77640,-443.66423 276.10445,-441.15648 C 275.43599,-441.50010 274.55686,-441.98983 273.75000,-441.98983 C 271.03349,-441.98983 268.99486,-440.05101 268.99487,-437.44429 C 268.99487,-436.89752 269.26208,-436.11085 269.43683,-435.62228 C 268.11240,-434.89433 267.00000,-433.73178 267.00000,-432.24973 C 267.00000,-429.90368 268.54617,-427.99964 271.33928,-427.99964 C 271.51009,-427.99964 289.48992,-427.99964 289.66072,-427.99964 C 292.43173,-427.99964 294.00000,-429.90368 294.00000,-432.24973 C 294.00000,-433.84210 292.88760,-434.91642 291.56317,-435.64437 C 291.73793,-436.13293 292.02724,-436.89753 292.02724,-437.44429 C 292.02724,-440.05100 289.91143,-442.01192 287.25001,-442.01193 C 286.44314,-442.01193 285.60820,-441.52219 284.93974,-441.17857 C 284.29089,-443.60011 282.68973,-445.00000 280.50000,-445.00000 z "
-           id="path8758"
-           sodipodi:nodetypes="ccsscsssscsscc" />
-        <g
-           id="g8760">
-          <path
-             transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)"
-             d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-             sodipodi:ry="3.3125000"
-             sodipodi:rx="3.3125000"
-             sodipodi:cy="-437.59375"
-             sodipodi:cx="288.37500"
-             id="path8762"
-             style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-             sodipodi:type="arc" />
-          <path
-             transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)"
-             d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-             sodipodi:ry="3.3125000"
-             sodipodi:rx="3.3125000"
-             sodipodi:cy="-437.59375"
-             sodipodi:cx="288.37500"
-             id="path8764"
-             style="opacity:1.0000000;fill:url(#linearGradient10620);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-             sodipodi:type="arc" />
+      <g transform="translate(76.02041,158.0000)">
+        <path d="M 280.50000,-445.50000 C 278.22917,-445.50000 276.39009,-443.94972 275.78125,-441.87500 C 275.08802,-442.23883 274.33674,-442.50000 273.50000,-442.50000 C 270.74000,-442.50000 268.49999,-440.26001 268.50000,-437.50000 C 268.50000,-436.92107 268.66252,-436.39230 268.84375,-435.87500 C 267.47028,-435.10426 266.50000,-433.68600 266.50000,-432.00000 C 266.50000,-429.51600 268.51600,-427.49999 271.00000,-427.50000 C 271.17713,-427.50000 289.82287,-427.50000 290.00000,-427.50000 C 292.48399,-427.50000 294.50000,-429.51600 294.50000,-432.00000 C 294.50000,-433.68600 293.52972,-435.10426 292.15625,-435.87500 C 292.33749,-436.39229 292.50000,-436.92108 292.50000,-437.50000 C 292.50000,-440.26000 290.26000,-442.49999 287.50000,-442.50000 C 286.66326,-442.50000 285.91198,-442.23883 285.21875,-441.87500 C 284.60991,-443.94972 282.77083,-445.50000 280.50000,-445.50000 z " fill="#c4c5c2" fill-opacity="1.0000000" stroke="#888a85" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 280.50000,-445.00000 C 278.31028,-445.00000 276.77640,-443.66423 276.10445,-441.15648 C 275.43599,-441.50010 274.55686,-441.98983 273.75000,-441.98983 C 271.03349,-441.98983 268.99486,-440.05101 268.99487,-437.44429 C 268.99487,-436.89752 269.26208,-436.11085 269.43683,-435.62228 C 268.11240,-434.89433 267.00000,-433.73178 267.00000,-432.24973 C 267.00000,-429.90368 268.54617,-427.99964 271.33928,-427.99964 C 271.51009,-427.99964 289.48992,-427.99964 289.66072,-427.99964 C 292.43173,-427.99964 294.00000,-429.90368 294.00000,-432.24973 C 294.00000,-433.84210 292.88760,-434.91642 291.56317,-435.64437 C 291.73793,-436.13293 292.02724,-436.89753 292.02724,-437.44429 C 292.02724,-440.05100 289.91143,-442.01192 287.25001,-442.01193 C 286.44314,-442.01193 285.60820,-441.52219 284.93974,-441.17857 C 284.29089,-443.60011 282.68973,-445.00000 280.50000,-445.00000 z " opacity="1.0000000" fill="url(#linearGradient10618)" fill-opacity="1.0000000" stroke="none" stroke-width="0.99999958" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <g>
+          <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+          <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="1.0000000" fill="url(#linearGradient10620)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
         </g>
-        <rect
-           style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="rect8766"
-           width="20.000000"
-           height="9.0000000"
-           x="271.00000"
-           y="-438.00000" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path8768"
-           sodipodi:cx="288.37500"
-           sodipodi:cy="-437.59375"
-           sodipodi:rx="3.3125000"
-           sodipodi:ry="3.3125000"
-           d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-           transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830195,-35.68869)" />
-        <g
-           id="g8770">
-          <path
-             transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19811,24.86321)"
-             d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-             sodipodi:ry="3.3125000"
-             sodipodi:rx="3.3125000"
-             sodipodi:cy="-437.59375"
-             sodipodi:cx="288.37500"
-             id="path8772"
-             style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-             sodipodi:type="arc" />
-          <path
-             transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19818,24.86331)"
-             d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-             sodipodi:ry="3.3125000"
-             sodipodi:rx="3.3125000"
-             sodipodi:cy="-437.59375"
-             sodipodi:cx="288.37500"
-             id="path8774"
-             style="opacity:1.0000000;fill:url(#linearGradient10622);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-             sodipodi:type="arc" />
+        <rect width="20.000000" height="9.0000000" x="271.00000" y="-438.00000" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830195,-35.68869)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <g>
+          <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19811,24.86321)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+          <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19818,24.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="1.0000000" fill="url(#linearGradient10622)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
         </g>
-        <g
-           id="g8776">
-          <path
-             transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)"
-             d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-             sodipodi:ry="3.3125000"
-             sodipodi:rx="3.3125000"
-             sodipodi:cy="-437.59375"
-             sodipodi:cx="288.37500"
-             id="path8778"
-             style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-             sodipodi:type="arc" />
-          <path
-             transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)"
-             d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-             sodipodi:ry="3.3125000"
-             sodipodi:rx="3.3125000"
-             sodipodi:cy="-437.59375"
-             sodipodi:cx="288.37500"
-             id="path8780"
-             style="opacity:1.0000000;fill:url(#linearGradient10624);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-             sodipodi:type="arc" />
+        <g>
+          <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+          <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="1.0000000" fill="url(#linearGradient10624)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
         </g>
-        <g
-           id="g8782"
-           transform="translate(-1.000000,0.000000)">
-          <path
-             id="path8784"
-             d="M 280.46875,-440.96875 C 276.88937,-440.96875 274.00000,-438.04812 274.00000,-434.46875 C 274.00000,-432.09807 275.34943,-430.13096 277.25000,-429.00000 L 283.71875,-429.00000 C 285.61932,-430.13096 286.96875,-432.12931 286.96875,-434.50000 C 286.96875,-438.07938 284.04812,-440.96875 280.46875,-440.96875 z "
-             style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
-          <path
-             id="path8786"
-             d="M 280.50000,-441.00000 C 276.91200,-441.00000 274.00000,-438.08799 274.00000,-434.50000 C 274.00000,-432.12360 275.34485,-430.13368 277.25000,-429.00000 L 283.75000,-429.00000 C 285.65515,-430.13368 287.00000,-432.12360 287.00000,-434.50000 C 287.00000,-438.08800 284.08800,-440.99999 280.50000,-441.00000 z "
-             style="opacity:1.0000000;fill:url(#linearGradient10626);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
+        <g transform="translate(-1.000000,0.000000)">
+          <path d="M 280.46875,-440.96875 C 276.88937,-440.96875 274.00000,-438.04812 274.00000,-434.46875 C 274.00000,-432.09807 275.34943,-430.13096 277.25000,-429.00000 L 283.71875,-429.00000 C 285.61932,-430.13096 286.96875,-432.12931 286.96875,-434.50000 C 286.96875,-438.07938 284.04812,-440.96875 280.46875,-440.96875 z " opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+          <path d="M 280.50000,-441.00000 C 276.91200,-441.00000 274.00000,-438.08799 274.00000,-434.50000 C 274.00000,-432.12360 275.34485,-430.13368 277.25000,-429.00000 L 283.75000,-429.00000 C 285.65515,-430.13368 287.00000,-432.12360 287.00000,-434.50000 C 287.00000,-438.08800 284.08800,-440.99999 280.50000,-441.00000 z " opacity="1.0000000" fill="url(#linearGradient10626)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
         </g>
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:url(#linearGradient10628);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path8788"
-           sodipodi:cx="288.37500"
-           sodipodi:cy="-437.59375"
-           sodipodi:rx="3.3125000"
-           sodipodi:ry="3.3125000"
-           d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-           transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830296,-35.68884)" />
-        <path
-           style="fill:#888a85;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
-           d="M 292.95640,-437.33396 C 292.95487,-434.64940 289.68714,-433.62001 289.68714,-433.62001 C 289.68714,-433.62001 292.03588,-435.24596 292.02399,-437.32502 C 292.02399,-437.32502 292.95640,-437.33396 292.95640,-437.33396 z "
-           id="path8790"
-           sodipodi:nodetypes="ccss" />
-        <g
-           id="g8792"
-           transform="matrix(1.142857,0.000000,0.000000,1.142857,-28.57139,67.00008)">
-          <path
-             transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)"
-             d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-             sodipodi:ry="3.3125000"
-             sodipodi:rx="3.3125000"
-             sodipodi:cy="-437.59375"
-             sodipodi:cx="288.37500"
-             id="path8794"
-             style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-             sodipodi:type="arc" />
-          <path
-             transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)"
-             d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-             sodipodi:ry="3.3125000"
-             sodipodi:rx="3.3125000"
-             sodipodi:cy="-437.59375"
-             sodipodi:cx="288.37500"
-             id="path8796"
-             style="opacity:1.0000000;fill:url(#linearGradient10630);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-             sodipodi:type="arc" />
+        <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830296,-35.68884)" opacity="1.0000000" fill="url(#linearGradient10628)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 292.95640,-437.33396 C 292.95487,-434.64940 289.68714,-433.62001 289.68714,-433.62001 C 289.68714,-433.62001 292.03588,-435.24596 292.02399,-437.32502 C 292.02399,-437.32502 292.95640,-437.33396 292.95640,-437.33396 z " fill="#888a85" fill-opacity="1.0000000" fill-rule="evenodd" stroke="none" stroke-width="1.0000000px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1.0000000"/>
+        <g transform="matrix(1.142857,0.000000,0.000000,1.142857,-28.57139,67.00008)">
+          <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+          <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="1.0000000" fill="url(#linearGradient10630)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
         </g>
       </g>
     </g>
-    <g
-       id="g12157"
-       transform="translate(-163.0077,222.0147)">
-      <path
-         transform="matrix(0.685520,0.000000,0.000000,0.685520,151.7017,27.15827)"
-         d="M 31.819805 -316.77872 A 2.2097087 2.2097087 0 1 1  27.400387,-316.77872 A 2.2097087 2.2097087 0 1 1  31.819805 -316.77872 z"
-         sodipodi:ry="2.2097087"
-         sodipodi:rx="2.2097087"
-         sodipodi:cy="-316.77872"
-         sodipodi:cx="29.610096"
-         id="path12159"
-         style="opacity:1.0000000;fill:#ffffff;fill-opacity:1.0000000;stroke:#729fcf;stroke-width:1.4587468;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-         sodipodi:type="arc" />
-      <path
-         transform="matrix(0.915572,0.000000,0.000000,0.915587,152.4091,103.5577)"
-         d="M 31.819805 -316.77872 A 2.2097087 2.2097087 0 1 1  27.400387,-316.77872 A 2.2097087 2.2097087 0 1 1  31.819805 -316.77872 z"
-         sodipodi:ry="2.2097087"
-         sodipodi:rx="2.2097087"
-         sodipodi:cy="-316.77872"
-         sodipodi:cx="29.610096"
-         id="path12161"
-         style="opacity:1.0000000;fill:#ffffff;fill-opacity:1.0000000;stroke:#729fcf;stroke-width:1.0922043;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-         sodipodi:type="arc" />
-      <path
-         transform="matrix(0.672406,0.000000,0.000000,0.683742,153.0708,34.62149)"
-         d="M 31.819805 -316.77872 A 2.2097087 2.2097087 0 1 1  27.400387,-316.77872 A 2.2097087 2.2097087 0 1 1  31.819805 -316.77872 z"
-         sodipodi:ry="2.2097087"
-         sodipodi:rx="2.2097087"
-         sodipodi:cy="-316.77872"
-         sodipodi:cx="29.610096"
-         id="path12163"
-         style="opacity:1.0000000;fill:#ffffff;fill-opacity:1.0000000;stroke:#729fcf;stroke-width:1.4748161;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-         sodipodi:type="arc" />
-      <path
-         transform="matrix(0.682300,0.000000,0.000000,0.680269,181.7970,30.49471)"
-         d="M 31.819805 -316.77872 A 2.2097087 2.2097087 0 1 1  27.400387,-316.77872 A 2.2097087 2.2097087 0 1 1  31.819805 -316.77872 z"
-         sodipodi:ry="2.2097087"
-         sodipodi:rx="2.2097087"
-         sodipodi:cy="-316.77872"
-         sodipodi:cx="29.610096"
-         id="path12165"
-         style="opacity:1.0000000;fill:#ffffff;fill-opacity:1.0000000;stroke:#729fcf;stroke-width:1.4678179;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-         sodipodi:type="arc" />
-      <path
-         transform="matrix(1.107132,0.000000,0.000000,1.117168,157.2177,164.9217)"
-         d="M 31.819805 -316.77872 A 2.2097087 2.2097087 0 1 1  27.400387,-316.77872 A 2.2097087 2.2097087 0 1 1  31.819805 -316.77872 z"
-         sodipodi:ry="2.2097087"
-         sodipodi:rx="2.2097087"
-         sodipodi:cy="-316.77872"
-         sodipodi:cx="29.610096"
-         id="path12167"
-         style="opacity:1.0000000;fill:#ffffff;fill-opacity:1.0000000;stroke:#729fcf;stroke-width:0.89916825;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-         sodipodi:type="arc" />
-      <path
-         transform="matrix(1.127592,0.000000,0.000000,1.051830,161.6119,151.3731)"
-         d="M 31.819805 -316.77872 A 2.2097087 2.2097087 0 1 1  27.400387,-316.77872 A 2.2097087 2.2097087 0 1 1  31.819805 -316.77872 z"
-         sodipodi:ry="2.2097087"
-         sodipodi:rx="2.2097087"
-         sodipodi:cy="-316.77872"
-         sodipodi:cx="29.610096"
-         id="path12169"
-         style="opacity:1.0000000;fill:#ffffff;fill-opacity:1.0000000;stroke:#729fcf;stroke-width:0.91822928;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-         sodipodi:type="arc" />
-      <path
-         transform="matrix(0.685519,0.000000,0.000000,0.680487,164.6869,34.56369)"
-         d="M 31.819805 -316.77872 A 2.2097087 2.2097087 0 1 1  27.400387,-316.77872 A 2.2097087 2.2097087 0 1 1  31.819805 -316.77872 z"
-         sodipodi:ry="2.2097087"
-         sodipodi:rx="2.2097087"
-         sodipodi:cy="-316.77872"
-         sodipodi:cx="29.610096"
-         id="path12171"
-         style="opacity:1.0000000;fill:#ffffff;fill-opacity:1.0000000;stroke:#729fcf;stroke-width:1.4641328;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-         sodipodi:type="arc" />
+    <g transform="translate(-163.0077,222.0147)">
+      <path transform="matrix(0.685520,0.000000,0.000000,0.685520,151.7017,27.15827)" d="M 31.819805 -316.77872 A 2.2097087 2.2097087 0 1 1  27.400387,-316.77872 A 2.2097087 2.2097087 0 1 1  31.819805 -316.77872 z" opacity="1.0000000" fill="#ffffff" fill-opacity="1.0000000" stroke="#729fcf" stroke-width="1.4587468" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+      <path transform="matrix(0.915572,0.000000,0.000000,0.915587,152.4091,103.5577)" d="M 31.819805 -316.77872 A 2.2097087 2.2097087 0 1 1  27.400387,-316.77872 A 2.2097087 2.2097087 0 1 1  31.819805 -316.77872 z" opacity="1.0000000" fill="#ffffff" fill-opacity="1.0000000" stroke="#729fcf" stroke-width="1.0922043" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+      <path transform="matrix(0.672406,0.000000,0.000000,0.683742,153.0708,34.62149)" d="M 31.819805 -316.77872 A 2.2097087 2.2097087 0 1 1  27.400387,-316.77872 A 2.2097087 2.2097087 0 1 1  31.819805 -316.77872 z" opacity="1.0000000" fill="#ffffff" fill-opacity="1.0000000" stroke="#729fcf" stroke-width="1.4748161" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+      <path transform="matrix(0.682300,0.000000,0.000000,0.680269,181.7970,30.49471)" d="M 31.819805 -316.77872 A 2.2097087 2.2097087 0 1 1  27.400387,-316.77872 A 2.2097087 2.2097087 0 1 1  31.819805 -316.77872 z" opacity="1.0000000" fill="#ffffff" fill-opacity="1.0000000" stroke="#729fcf" stroke-width="1.4678179" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+      <path transform="matrix(1.107132,0.000000,0.000000,1.117168,157.2177,164.9217)" d="M 31.819805 -316.77872 A 2.2097087 2.2097087 0 1 1  27.400387,-316.77872 A 2.2097087 2.2097087 0 1 1  31.819805 -316.77872 z" opacity="1.0000000" fill="#ffffff" fill-opacity="1.0000000" stroke="#729fcf" stroke-width="0.89916825" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+      <path transform="matrix(1.127592,0.000000,0.000000,1.051830,161.6119,151.3731)" d="M 31.819805 -316.77872 A 2.2097087 2.2097087 0 1 1  27.400387,-316.77872 A 2.2097087 2.2097087 0 1 1  31.819805 -316.77872 z" opacity="1.0000000" fill="#ffffff" fill-opacity="1.0000000" stroke="#729fcf" stroke-width="0.91822928" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+      <path transform="matrix(0.685519,0.000000,0.000000,0.680487,164.6869,34.56369)" d="M 31.819805 -316.77872 A 2.2097087 2.2097087 0 1 1  27.400387,-316.77872 A 2.2097087 2.2097087 0 1 1  31.819805 -316.77872 z" opacity="1.0000000" fill="#ffffff" fill-opacity="1.0000000" stroke="#729fcf" stroke-width="1.4641328" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
     </g>
   </g>
 </svg>
diff --git a/demos/embedded/weatherinfo/icons/weather-storm.svg b/demos/embedded/weatherinfo/icons/weather-storm.svg
index 4d8bfec..1ad47ab 100644
--- a/demos/embedded/weatherinfo/icons/weather-storm.svg
+++ b/demos/embedded/weatherinfo/icons/weather-storm.svg
@@ -1,3851 +1,94 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="48px"
-   height="48px"
-   id="svg1306"
-   sodipodi:version="0.32"
-   inkscape:version="0.46"
-   sodipodi:docbase="/home/rcollier/Work/Novell/Tango/weather"
-   sodipodi:docname="weather-storm.svg"
-   inkscape:output_extension="org.inkscape.output.svg.inkscape">
-  <defs
-     id="defs1308">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 24 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="48 : 24 : 1"
-       inkscape:persp3d-origin="24 : 16 : 1"
-       id="perspective488" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient8397">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop8400" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop8402" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8397"
-       id="linearGradient13503"
-       gradientUnits="userSpaceOnUse"
-       x1="238.00478"
-       y1="-388.47476"
-       x2="245.65462"
-       y2="-382.64539" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient8315">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop8317" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop8319" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8315"
-       id="linearGradient13501"
-       gradientUnits="userSpaceOnUse"
-       x1="230.87598"
-       y1="-390.43951"
-       x2="235.25652"
-       y2="-386.95901" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient8381">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop8383" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop8385" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8381"
-       id="linearGradient13499"
-       gradientUnits="userSpaceOnUse"
-       x1="246.74042"
-       y1="-391.31381"
-       x2="252.69785"
-       y2="-385.35165" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient8331">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop8333" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop8335" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8331"
-       id="linearGradient13497"
-       gradientUnits="userSpaceOnUse"
-       x1="240.07379"
-       y1="-393.40720"
-       x2="245.82706"
-       y2="-388.55029" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient8302">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop8304" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop8306" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8302"
-       id="linearGradient13495"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(69.00000,155.0000)"
-       x1="228.50261"
-       y1="-392.30591"
-       x2="266.36395"
-       y2="-379.26862" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6538"
-       id="linearGradient13143"
-       gradientUnits="userSpaceOnUse"
-       x1="284.80219"
-       y1="-441.23294"
-       x2="288.89954"
-       y2="-436.83109" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6549"
-       id="linearGradient13141"
-       gradientUnits="userSpaceOnUse"
-       x1="286.66589"
-       y1="-439.48358"
-       x2="289.76562"
-       y2="-436.70703" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6527"
-       id="linearGradient13139"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-35.00007,207.0001)"
-       x1="275.94193"
-       y1="-437.10501"
-       x2="279.97546"
-       y2="-431.91833" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6538"
-       id="linearGradient13137"
-       gradientUnits="userSpaceOnUse"
-       x1="285.94086"
-       y1="-439.93900"
-       x2="289.39124"
-       y2="-436.44290" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6513"
-       id="linearGradient13135"
-       gradientUnits="userSpaceOnUse"
-       x1="286.51172"
-       y1="-441.29074"
-       x2="289.85379"
-       y2="-436.14453" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6497"
-       id="linearGradient13133"
-       gradientUnits="userSpaceOnUse"
-       x1="287.51730"
-       y1="-439.75281"
-       x2="289.67633"
-       y2="-436.32199" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6470"
-       id="linearGradient13131"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-34.00007,207.0001)"
-       x1="271.02170"
-       y1="-441.05182"
-       x2="285.02859"
-       y2="-431.96991" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8874"
-       id="linearGradient11195"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(14.15871,7.082841)"
-       x1="-190.47688"
-       y1="-332.51181"
-       x2="-196.19046"
-       y2="-328.53433" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8904"
-       id="linearGradient11193"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(13.80516,2.840199)"
-       x1="-191.28896"
-       y1="-328.07861"
-       x2="-192.41396"
-       y2="-315.32861" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient8874">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop8876" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop8878" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8874"
-       id="linearGradient11191"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(14.15871,7.082841)"
-       x1="-190.47688"
-       y1="-332.51181"
-       x2="-196.19046"
-       y2="-328.53433" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient8904">
-      <stop
-         style="stop-color:#fcaf3e;stop-opacity:1;"
-         offset="0"
-         id="stop8906" />
-      <stop
-         style="stop-color:#fcaf3e;stop-opacity:0;"
-         offset="1"
-         id="stop8908" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8904"
-       id="linearGradient11189"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(13.80516,2.840199)"
-       x1="-191.28896"
-       y1="-328.07861"
-       x2="-192.41396"
-       y2="-315.32861" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5123"
-       id="radialGradient13211"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.930946,6.185702e-16,-2.842711e-16,0.448244,245.3644,184.9256)"
-       cx="-229.75000"
-       cy="-343.95554"
-       fx="-229.75000"
-       fy="-343.95554"
-       r="14.501380" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6538"
-       id="linearGradient13157"
-       gradientUnits="userSpaceOnUse"
-       x1="284.80219"
-       y1="-441.23294"
-       x2="288.89954"
-       y2="-436.83109" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient6549">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop6551" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop6553" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6549"
-       id="linearGradient13155"
-       gradientUnits="userSpaceOnUse"
-       x1="286.66589"
-       y1="-439.48358"
-       x2="289.76562"
-       y2="-436.70703" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient6527">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop6530" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop6532" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6527"
-       id="linearGradient13153"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-35.00007,207.0001)"
-       x1="275.94193"
-       y1="-437.10501"
-       x2="279.97546"
-       y2="-431.91833" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient6538">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop6540" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop6542" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6538"
-       id="linearGradient13151"
-       gradientUnits="userSpaceOnUse"
-       x1="285.94086"
-       y1="-439.93900"
-       x2="289.39124"
-       y2="-436.44290" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient6513">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop6515" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop6517" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6513"
-       id="linearGradient13149"
-       gradientUnits="userSpaceOnUse"
-       x1="286.51172"
-       y1="-441.29074"
-       x2="289.85379"
-       y2="-436.14453" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient6497">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop6499" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop6501" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6497"
-       id="linearGradient13147"
-       gradientUnits="userSpaceOnUse"
-       x1="287.51730"
-       y1="-439.75281"
-       x2="289.67633"
-       y2="-436.32199" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient6470">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop6472" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop6474" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6470"
-       id="linearGradient13145"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-34.00007,207.0001)"
-       x1="271.02170"
-       y1="-441.05182"
-       x2="285.02859"
-       y2="-431.96991" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient5123">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop5125" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop5127" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5123"
-       id="radialGradient13068"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.930946,6.185702e-16,-2.842711e-16,0.448244,229.9269,180.9261)"
-       cx="-229.75000"
-       cy="-343.95554"
-       fx="-229.75000"
-       fy="-343.95554"
-       r="14.501380" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient6840">
-      <stop
-         style="stop-color:#ad7fa8;stop-opacity:1;"
-         offset="0"
-         id="stop6842" />
-      <stop
-         style="stop-color:#ad7fa8;stop-opacity:0;"
-         offset="1"
-         id="stop6844" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient6828">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop6830" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop6832" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient6537">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop6539" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop6541" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2298">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop2300" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop2302" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient3347">
-      <stop
-         style="stop-color:#edd400;stop-opacity:1;"
-         offset="0"
-         id="stop3349" />
-      <stop
-         style="stop-color:#edd400;stop-opacity:0;"
-         offset="1"
-         id="stop3351" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2527">
-      <stop
-         style="stop-color:#fcaf3e;stop-opacity:1;"
-         offset="0"
-         id="stop2529" />
-      <stop
-         style="stop-color:#fcaf3e;stop-opacity:0;"
-         offset="1"
-         id="stop2531" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2500">
-      <stop
-         style="stop-color:#fce94f;stop-opacity:1;"
-         offset="0"
-         id="stop2502" />
-      <stop
-         style="stop-color:#fce94f;stop-opacity:0;"
-         offset="1"
-         id="stop2504" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2392">
-      <stop
-         style="stop-color:#eeeeec;stop-opacity:1;"
-         offset="0"
-         id="stop2394" />
-      <stop
-         style="stop-color:#eeeeec;stop-opacity:0;"
-         offset="1"
-         id="stop2396" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2254">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop2256" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop2258" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2263"
-       gradientUnits="userSpaceOnUse"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581"
-       gradientTransform="translate(-1.608757,3.097272)" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2267"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(3.555020,0.968578)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2271"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(9.263651,3.495228)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2275"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(8.497184,-2.330824)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2279"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(14.46340,2.014073)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2283"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2287"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2291"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2295"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2299"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2303"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(1.707748,-5.784024)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2311"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2350"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(16.14002,24.66420)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2352"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-0.932144,25.87240)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2354"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(5.356636,23.86870)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2356"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(11.19027,26.52035)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2358"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(10.30638,19.27251)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2360"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,0.229156,30.76299)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2362"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,16.67145,27.22746)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2364"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,17.05272,31.47010)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2366"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-4.010744,24.96040)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2368"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,8.185476,29.52556)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2370"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(4.207586,21.30544)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2372"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.12415,32.08882)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2392"
-       id="linearGradient2398"
-       x1="6.6651416"
-       y1="13.802798"
-       x2="41.403877"
-       y2="13.802798"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2426"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(14.46340,2.014073)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2428"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(8.497184,-2.330824)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2430"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-1.608757,3.097272)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2432"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(3.555020,0.968578)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2434"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(9.263651,3.495228)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2436"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2438"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2440"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2442"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2444"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2446"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2392"
-       id="linearGradient2448"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)"
-       x1="6.6651416"
-       y1="13.802798"
-       x2="41.403877"
-       y2="13.802798" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2392"
-       id="linearGradient2451"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,4.378541,10.65407)"
-       x1="6.6651416"
-       y1="13.802798"
-       x2="41.403877"
-       y2="13.802798" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2457"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2460"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2463"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2469"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2472"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(12.51365,8.745228)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2475"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(6.805020,6.218578)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2478"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(1.641243,8.347272)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2483"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(0.842481,-3.998086)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2500"
-       id="linearGradient2506"
-       x1="37.000000"
-       y1="-21.750000"
-       x2="53.750000"
-       y2="9.0000000"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2500"
-       id="linearGradient2509"
-       gradientUnits="userSpaceOnUse"
-       x1="37.000000"
-       y1="-21.750000"
-       x2="53.750000"
-       y2="9.0000000"
-       gradientTransform="matrix(0.889091,0.000000,0.000000,0.617886,-4.771368,39.81402)" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2500"
-       id="linearGradient2513"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.605509,0.000000,0.000000,0.710542,-0.224971,42.19500)"
-       x1="38.857941"
-       y1="-18.407482"
-       x2="53.750000"
-       y2="9.0000000" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2500"
-       id="linearGradient2517"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.414169,0.000000,0.000000,0.778853,-1.910724,36.87850)"
-       x1="37.000000"
-       y1="-21.750000"
-       x2="53.750000"
-       y2="9.0000000" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2527"
-       id="linearGradient2533"
-       x1="-25.137094"
-       y1="-1.2491118"
-       x2="-35.652866"
-       y2="-24.884460"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2537"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(17.33814,3.415985)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2541"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(13.40064,1.353485)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2555"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-7.499805,1.708617)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2563"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-0.726830,2.481141)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3347"
-       id="linearGradient3353"
-       x1="23.303862"
-       y1="29.115711"
-       x2="29.750000"
-       y2="46.092930"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3366"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(13.40064,1.353485)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3368"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(1.641243,8.347272)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3370"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(6.805020,6.218578)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3372"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(12.51365,8.745228)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3374"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3376"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3378"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3380"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3383"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3386"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3389"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3392"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3395"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(3.674812,3.088370)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3398"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-2.033818,0.561720)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3401"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-7.197595,2.690414)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3405"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(4.561802,-4.303373)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       gradientUnits="userSpaceOnUse"
-       y2="-4.4493785"
-       x2="-34.700153"
-       y1="-37.550461"
-       x1="-27.006643"
-       id="linearGradient2916"
-       xlink:href="#linearGradient2298"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="-24.884460"
-       x2="-35.652866"
-       y1="-1.2491118"
-       x1="-25.137094"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2914"
-       xlink:href="#linearGradient2527"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(57.97693,-10.56876)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2912"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,123.1162,-5.446357)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2910"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2908"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2906"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2904"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2902"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(3.674812,3.088370)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2900"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(-2.033818,0.561720)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2898"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(-7.197595,2.690414)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2896"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="-24.884460"
-       x2="-35.652866"
-       y1="-1.2491118"
-       x1="-25.137094"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2894"
-       xlink:href="#linearGradient2527"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,79.36909,-3.193747)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2892"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,56.25514,-12.39388)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2890"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(88.49344,-9.697877)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2888"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(4.561802,-4.303373)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2886"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(-7.197595,2.690414)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2884"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(-2.033818,0.561720)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2882"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(3.674812,3.088370)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2880"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2878"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2876"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2874"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2872"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2870"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2868"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2866"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2864"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(12.51365,8.745228)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2862"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(6.805020,6.218578)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2860"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(1.641243,8.347272)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2858"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(13.40064,1.353485)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2856"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientUnits="userSpaceOnUse"
-       y2="46.092930"
-       x2="29.750000"
-       y1="29.115711"
-       x1="23.303862"
-       id="linearGradient2854"
-       xlink:href="#linearGradient3347"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(-0.726830,2.481141)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2852"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(-7.499805,1.708617)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2850"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(13.40064,1.353485)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2848"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(17.33814,3.415985)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2846"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientUnits="userSpaceOnUse"
-       y2="-24.884460"
-       x2="-35.652866"
-       y1="-1.2491118"
-       x1="-25.137094"
-       id="linearGradient2844"
-       xlink:href="#linearGradient2527"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="9.0000000"
-       x2="53.750000"
-       y1="-21.750000"
-       x1="37.000000"
-       gradientTransform="matrix(0.414169,0.000000,0.000000,0.778853,-1.910724,36.87850)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2842"
-       xlink:href="#linearGradient2500"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="9.0000000"
-       x2="53.750000"
-       y1="-18.407482"
-       x1="38.857941"
-       gradientTransform="matrix(0.605509,0.000000,0.000000,0.710542,-0.224971,42.19500)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2840"
-       xlink:href="#linearGradient2500"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientTransform="matrix(0.889091,0.000000,0.000000,0.617886,-4.771368,39.81402)"
-       y2="9.0000000"
-       x2="53.750000"
-       y1="-21.750000"
-       x1="37.000000"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2838"
-       xlink:href="#linearGradient2500"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientUnits="userSpaceOnUse"
-       y2="9.0000000"
-       x2="53.750000"
-       y1="-21.750000"
-       x1="37.000000"
-       id="linearGradient2836"
-       xlink:href="#linearGradient2500"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(0.842481,-3.998086)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2834"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(1.641243,8.347272)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2832"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(6.805020,6.218578)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2830"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(12.51365,8.745228)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2828"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2826"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2824"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2822"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2820"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="13.802798"
-       x2="41.403877"
-       y1="13.802798"
-       x1="6.6651416"
-       gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,4.378541,10.65407)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2818"
-       xlink:href="#linearGradient2392"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="13.802798"
-       x2="41.403877"
-       y1="13.802798"
-       x1="6.6651416"
-       gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2816"
-       xlink:href="#linearGradient2392"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2814"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2812"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2810"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2808"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2806"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2804"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(9.263651,3.495228)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2802"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(3.555020,0.968578)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2800"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(-1.608757,3.097272)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2798"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(8.497184,-2.330824)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2796"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(14.46340,2.014073)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2794"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)"
-       gradientUnits="userSpaceOnUse"
-       y2="13.802798"
-       x2="41.403877"
-       y1="13.802798"
-       x1="6.6651416"
-       id="linearGradient2792"
-       xlink:href="#linearGradient2392"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.12415,32.08882)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2790"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(4.207586,21.30544)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2788"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,8.185476,29.52556)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2786"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-4.010744,24.96040)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2784"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,17.05272,31.47010)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2782"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,16.67145,27.22746)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2780"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,0.229156,30.76299)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2778"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(10.30638,19.27251)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2776"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(11.19027,26.52035)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2774"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(5.356636,23.86870)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2772"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(-0.932144,25.87240)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2770"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(16.14002,24.66420)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2768"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2766"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(1.707748,-5.784024)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2764"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2762"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2760"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2758"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2756"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2754"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(14.46340,2.014073)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2752"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(8.497184,-2.330824)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2750"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(9.263651,3.495228)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2748"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(3.555020,0.968578)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2746"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientTransform="translate(-1.608757,3.097272)"
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2744"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientUnits="userSpaceOnUse"
-       y2="-4.4493785"
-       x2="-34.700153"
-       y1="-37.550461"
-       x1="-27.006643"
-       id="linearGradient2304"
-       xlink:href="#linearGradient2298"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="-24.884460"
-       x2="-35.652866"
-       y1="-1.2491118"
-       x1="-25.137094"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient1557"
-       xlink:href="#linearGradient2527"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(57.97693,-10.56876)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient1538"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,123.1162,-5.446357)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient1536"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient1534"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient1532"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient1530"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient1528"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(3.674812,3.088370)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient1526"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(-2.033818,0.561720)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient1524"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(-7.197595,2.690414)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient1522"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="-24.884460"
-       x2="-35.652866"
-       y1="-1.2491118"
-       x1="-25.137094"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient1520"
-       xlink:href="#linearGradient2527"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,79.36909,-3.193747)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient1518"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,56.25514,-12.39388)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient1516"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(88.49344,-9.697877)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient1514"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(4.561802,-4.303373)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5957"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(-7.197595,2.690414)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5955"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(-2.033818,0.561720)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5953"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(3.674812,3.088370)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5951"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5949"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5947"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5945"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5943"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5941"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5939"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5937"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5935"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(12.51365,8.745228)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5933"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(6.805020,6.218578)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5931"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(1.641243,8.347272)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5929"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(13.40064,1.353485)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5927"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientUnits="userSpaceOnUse"
-       y2="46.092930"
-       x2="29.750000"
-       y1="29.115711"
-       x1="23.303862"
-       id="linearGradient5925"
-       xlink:href="#linearGradient3347"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(-0.726830,2.481141)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5923"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(-7.499805,1.708617)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5921"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(13.40064,1.353485)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5919"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(17.33814,3.415985)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5917"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientUnits="userSpaceOnUse"
-       y2="-24.884460"
-       x2="-35.652866"
-       y1="-1.2491118"
-       x1="-25.137094"
-       id="linearGradient5915"
-       xlink:href="#linearGradient2527"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="9.0000000"
-       x2="53.750000"
-       y1="-21.750000"
-       x1="37.000000"
-       gradientTransform="matrix(0.414169,0.000000,0.000000,0.778853,-1.910724,36.87850)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5913"
-       xlink:href="#linearGradient2500"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="9.0000000"
-       x2="53.750000"
-       y1="-18.407482"
-       x1="38.857941"
-       gradientTransform="matrix(0.605509,0.000000,0.000000,0.710542,-0.224971,42.19500)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5911"
-       xlink:href="#linearGradient2500"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientTransform="matrix(0.889091,0.000000,0.000000,0.617886,-4.771368,39.81402)"
-       y2="9.0000000"
-       x2="53.750000"
-       y1="-21.750000"
-       x1="37.000000"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5909"
-       xlink:href="#linearGradient2500"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientUnits="userSpaceOnUse"
-       y2="9.0000000"
-       x2="53.750000"
-       y1="-21.750000"
-       x1="37.000000"
-       id="linearGradient5907"
-       xlink:href="#linearGradient2500"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(0.842481,-3.998086)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5905"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(1.641243,8.347272)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5903"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(6.805020,6.218578)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5901"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(12.51365,8.745228)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5899"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5897"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5895"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5893"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5891"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="13.802798"
-       x2="41.403877"
-       y1="13.802798"
-       x1="6.6651416"
-       gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,4.378541,10.65407)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5889"
-       xlink:href="#linearGradient2392"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="13.802798"
-       x2="41.403877"
-       y1="13.802798"
-       x1="6.6651416"
-       gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5887"
-       xlink:href="#linearGradient2392"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5885"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5883"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5881"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5879"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5877"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5875"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(9.263651,3.495228)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5873"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(3.555020,0.968578)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5871"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(-1.608757,3.097272)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5869"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(8.497184,-2.330824)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5867"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(14.46340,2.014073)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5865"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)"
-       gradientUnits="userSpaceOnUse"
-       y2="13.802798"
-       x2="41.403877"
-       y1="13.802798"
-       x1="6.6651416"
-       id="linearGradient5863"
-       xlink:href="#linearGradient2392"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.12415,32.08882)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5861"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(4.207586,21.30544)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5859"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,8.185476,29.52556)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5857"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-4.010744,24.96040)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5855"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,17.05272,31.47010)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5853"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,16.67145,27.22746)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5851"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,0.229156,30.76299)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5849"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(10.30638,19.27251)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5847"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(11.19027,26.52035)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5845"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(5.356636,23.86870)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5843"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(-0.932144,25.87240)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5841"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(16.14002,24.66420)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5839"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5837"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(1.707748,-5.784024)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5835"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5833"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5831"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5829"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5827"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5825"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(14.46340,2.014073)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5823"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(8.497184,-2.330824)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5821"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(9.263651,3.495228)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5819"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(3.555020,0.968578)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5817"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientTransform="translate(-1.608757,3.097272)"
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5815"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6098"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-9.002513,11.93373)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6101"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.13675,17.05613)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6118"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,12.38965,19.30874)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6121"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-10.72430,10.10861)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6124"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(21.51400,12.80461)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6179"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-7.197595,2.690414)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6181"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-2.033818,0.561720)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6183"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(3.674812,3.088370)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6185"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6187"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6189"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6191"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2527"
-       id="linearGradient6193"
-       gradientUnits="userSpaceOnUse"
-       x1="-25.137094"
-       y1="-1.2491118"
-       x2="-35.652866"
-       y2="-24.884460" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6196"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,2.209129,10.83861)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6199"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-9.862093,6.148450)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6202"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,10.70137,12.90816)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6205"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-4.372193,11.95105)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6208"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(5.088919,7.833409)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6211"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-0.619711,5.306759)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6214"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-5.783488,7.435453)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6242"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-5.783488,7.435453)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6244"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-0.619711,5.306759)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6246"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(5.088919,7.833409)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6248"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,10.70137,12.90816)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6250"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-9.862093,6.148450)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6252"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,2.209129,10.83861)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6254"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-9.002513,11.93373)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6257"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-0.297112,4.275205)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6260"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,10.91453,3.180085)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6263"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-1.156692,-1.510075)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6266"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,19.40677,5.249635)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6269"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(13.79432,0.174884)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6272"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(8.085690,-2.351766)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6275"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(2.921913,-0.223072)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6311"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(21.51400,12.80461)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6313"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-10.72430,10.10861)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6315"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,12.38965,19.30874)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6317"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-1.156692,-1.510075)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6319"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.13675,17.05613)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6321"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-5.783488,7.435453)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6323"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-0.619711,5.306759)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6325"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(5.088919,7.833409)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6327"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,10.70137,12.90816)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6329"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-9.862093,6.148450)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6331"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,2.209129,10.83861)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6333"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-9.002513,11.93373)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6335"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(2.921913,-0.223072)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6337"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(8.085690,-2.351766)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6339"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(13.79432,0.174884)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6341"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,19.40677,5.249635)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6343"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,10.91453,3.180085)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6537"
-       id="linearGradient6543"
-       x1="27.320963"
-       y1="44.228481"
-       x2="52.328316"
-       y2="44.228481"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.526962,0.000000,-2.763717e-17,0.972572,16.13182,0.843286)" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6537"
-       id="linearGradient6547"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.526962,0.000000,-4.388782e-16,0.972572,25.91493,0.633642)"
-       x1="27.320963"
-       y1="44.228481"
-       x2="52.328316"
-       y2="44.228481" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6537"
-       id="linearGradient6551"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.526962,0.000000,-4.388782e-16,0.972572,36.25638,0.633643)"
-       x1="27.320963"
-       y1="44.228481"
-       x2="45.115814"
-       y2="44.228455" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6537"
-       id="linearGradient6559"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.526962,0.000000,-2.332577e-16,0.972572,16.13182,0.843286)"
-       x1="27.320963"
-       y1="44.228481"
-       x2="52.328316"
-       y2="44.228481" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6537"
-       id="linearGradient6561"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.526962,0.000000,-6.444987e-16,0.972572,25.91493,0.633642)"
-       x1="27.320963"
-       y1="44.228481"
-       x2="52.328316"
-       y2="44.228481" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6537"
-       id="linearGradient6563"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.526962,0.000000,-6.444987e-16,0.972572,36.25638,0.633643)"
-       x1="27.320963"
-       y1="44.228481"
-       x2="45.115814"
-       y2="44.228455" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6537"
-       id="linearGradient6566"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.577744,0.000000,-6.388715e-16,1.006703,39.04124,-0.702889)"
-       x1="27.320963"
-       y1="44.228481"
-       x2="45.115814"
-       y2="44.228455" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6537"
-       id="linearGradient6569"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.577744,0.000000,-6.388715e-16,1.006703,27.70322,-0.702890)"
-       x1="27.320963"
-       y1="44.228481"
-       x2="52.328316"
-       y2="44.228481" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6537"
-       id="linearGradient6572"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.577744,0.000000,-1.880005e-16,1.006703,16.97734,-0.485889)"
-       x1="27.320963"
-       y1="44.228481"
-       x2="52.328316"
-       y2="44.228481" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6576"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.132431,0.000000,0.000000,1.016132,10.54485,-4.728138)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6579"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.853605,0.000000,0.000000,1.016132,19.23518,-2.625202)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6582"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,13.49182,-7.781819)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6585"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,7.650036,-10.34923)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6588"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,2.365814,-8.186195)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6599"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.999079,0.000000,0.000000,1.016132,56.82188,9.371753)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6603"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.496116,0.000000,0.000000,1.282841,-1.807925,-9.493960)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6606"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.314274,0.000000,0.000000,1.016132,12.05438,11.66070)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6609"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.496116,0.000000,0.000000,1.282841,-11.59870,2.312158)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6612"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,21.39156,5.051653)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6618"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,16.09471,2.948843)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6622"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,11.32174,9.047633)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6624"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-5.783488,7.435453)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6626"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-0.619711,5.306759)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6628"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(5.088919,7.833409)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6630"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,10.70137,12.90816)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6632"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-9.862093,6.148450)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6634"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,2.209129,10.83861)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6636"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-9.002513,11.93373)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6828"
-       id="radialGradient6834"
-       cx="15.147860"
-       cy="23.822156"
-       fx="15.147860"
-       fy="23.822156"
-       r="12.852140"
-       gradientTransform="matrix(0.654874,0.000000,0.000000,0.398574,2.663540,12.14676)"
-       gradientUnits="userSpaceOnUse" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6840"
-       id="radialGradient6846"
-       cx="32.583473"
-       cy="25.240442"
-       fx="32.583473"
-       fy="25.240442"
-       r="8.4165270"
-       gradientTransform="matrix(1.000000,0.000000,0.000000,0.503823,-15.00000,6.042836)"
-       gradientUnits="userSpaceOnUse" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6828"
-       id="radialGradient6852"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.654874,0.000000,0.000000,0.398574,44.33646,16.14676)"
-       cx="15.147860"
-       cy="23.822156"
-       fx="15.147860"
-       fy="23.822156"
-       r="12.852140" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6840"
-       id="radialGradient6854"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-1.000000,0.000000,0.000000,0.503823,62.00000,10.04284)"
-       cx="32.583473"
-       cy="25.240442"
-       fx="32.583473"
-       fy="25.240442"
-       r="8.4165270" />
+<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="48px" height="48px" id="svg1306">
+  <defs id="defs1308">
+    <linearGradient id="linearGradient8397">
+      <stop offset="0" id="stop8400" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop8402" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient xlink:href="#linearGradient8397" id="linearGradient13503" gradientUnits="userSpaceOnUse" x1="238.00478" y1="-388.47476" x2="245.65462" y2="-382.64539"/>
+    <linearGradient id="linearGradient8315">
+      <stop offset="0" id="stop8317" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop8319" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient xlink:href="#linearGradient8315" id="linearGradient13501" gradientUnits="userSpaceOnUse" x1="230.87598" y1="-390.43951" x2="235.25652" y2="-386.95901"/>
+    <linearGradient id="linearGradient8381">
+      <stop offset="0" id="stop8383" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop8385" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient xlink:href="#linearGradient8381" id="linearGradient13499" gradientUnits="userSpaceOnUse" x1="246.74042" y1="-391.31381" x2="252.69785" y2="-385.35165"/>
+    <linearGradient id="linearGradient8331">
+      <stop offset="0" id="stop8333" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop8335" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient xlink:href="#linearGradient8331" id="linearGradient13497" gradientUnits="userSpaceOnUse" x1="240.07379" y1="-393.40720" x2="245.82706" y2="-388.55029"/>
+    <linearGradient id="linearGradient8302">
+      <stop offset="0" id="stop8304" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop8306" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient xlink:href="#linearGradient8302" id="linearGradient13495" gradientUnits="userSpaceOnUse" gradientTransform="translate(69.00000,155.0000)" x1="228.50261" y1="-392.30591" x2="266.36395" y2="-379.26862"/>
+    <linearGradient xlink:href="#linearGradient6538" id="linearGradient13143" gradientUnits="userSpaceOnUse" x1="284.80219" y1="-441.23294" x2="288.89954" y2="-436.83109"/>
+    <linearGradient xlink:href="#linearGradient6549" id="linearGradient13141" gradientUnits="userSpaceOnUse" x1="286.66589" y1="-439.48358" x2="289.76562" y2="-436.70703"/>
+    <linearGradient xlink:href="#linearGradient6527" id="linearGradient13139" gradientUnits="userSpaceOnUse" gradientTransform="translate(-35.00007,207.0001)" x1="275.94193" y1="-437.10501" x2="279.97546" y2="-431.91833"/>
+    <linearGradient xlink:href="#linearGradient6538" id="linearGradient13137" gradientUnits="userSpaceOnUse" x1="285.94086" y1="-439.93900" x2="289.39124" y2="-436.44290"/>
+    <linearGradient xlink:href="#linearGradient6513" id="linearGradient13135" gradientUnits="userSpaceOnUse" x1="286.51172" y1="-441.29074" x2="289.85379" y2="-436.14453"/>
+    <linearGradient xlink:href="#linearGradient6497" id="linearGradient13133" gradientUnits="userSpaceOnUse" x1="287.51730" y1="-439.75281" x2="289.67633" y2="-436.32199"/>
+    <linearGradient xlink:href="#linearGradient6470" id="linearGradient13131" gradientUnits="userSpaceOnUse" gradientTransform="translate(-34.00007,207.0001)" x1="271.02170" y1="-441.05182" x2="285.02859" y2="-431.96991"/>
+    <linearGradient xlink:href="#linearGradient8874" id="linearGradient11195" gradientUnits="userSpaceOnUse" gradientTransform="translate(14.15871,7.082841)" x1="-190.47688" y1="-332.51181" x2="-196.19046" y2="-328.53433"/>
+    <linearGradient xlink:href="#linearGradient8904" id="linearGradient11193" gradientUnits="userSpaceOnUse" gradientTransform="translate(13.80516,2.840199)" x1="-191.28896" y1="-328.07861" x2="-192.41396" y2="-315.32861"/>
+    <linearGradient id="linearGradient8874">
+      <stop offset="0" id="stop8876" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop8878" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient xlink:href="#linearGradient8874" id="linearGradient11191" gradientUnits="userSpaceOnUse" gradientTransform="translate(14.15871,7.082841)" x1="-190.47688" y1="-332.51181" x2="-196.19046" y2="-328.53433"/>
+    <linearGradient id="linearGradient8904">
+      <stop offset="0" id="stop8906" stop-color="#fcaf3e" stop-opacity="1"/>
+      <stop offset="1" id="stop8908" stop-color="#fcaf3e" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient xlink:href="#linearGradient8904" id="linearGradient11189" gradientUnits="userSpaceOnUse" gradientTransform="translate(13.80516,2.840199)" x1="-191.28896" y1="-328.07861" x2="-192.41396" y2="-315.32861"/>
+    <radialGradient xlink:href="#linearGradient5123" id="radialGradient13211" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.930946,6.185702e-16,-2.842711e-16,0.448244,245.3644,184.9256)" cx="-229.75000" cy="-343.95554" fx="-229.75000" fy="-343.95554" r="14.501380"/>
+    <linearGradient xlink:href="#linearGradient6538" id="linearGradient13157" gradientUnits="userSpaceOnUse" x1="284.80219" y1="-441.23294" x2="288.89954" y2="-436.83109"/>
+    <linearGradient id="linearGradient6549">
+      <stop offset="0" id="stop6551" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop6553" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient xlink:href="#linearGradient6549" id="linearGradient13155" gradientUnits="userSpaceOnUse" x1="286.66589" y1="-439.48358" x2="289.76562" y2="-436.70703"/>
+    <linearGradient id="linearGradient6527">
+      <stop offset="0" id="stop6530" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop6532" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient xlink:href="#linearGradient6527" id="linearGradient13153" gradientUnits="userSpaceOnUse" gradientTransform="translate(-35.00007,207.0001)" x1="275.94193" y1="-437.10501" x2="279.97546" y2="-431.91833"/>
+    <linearGradient id="linearGradient6538">
+      <stop offset="0" id="stop6540" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop6542" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient xlink:href="#linearGradient6538" id="linearGradient13151" gradientUnits="userSpaceOnUse" x1="285.94086" y1="-439.93900" x2="289.39124" y2="-436.44290"/>
+    <linearGradient id="linearGradient6513">
+      <stop offset="0" id="stop6515" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop6517" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient xlink:href="#linearGradient6513" id="linearGradient13149" gradientUnits="userSpaceOnUse" x1="286.51172" y1="-441.29074" x2="289.85379" y2="-436.14453"/>
+    <linearGradient id="linearGradient6497">
+      <stop offset="0" id="stop6499" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop6501" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient xlink:href="#linearGradient6497" id="linearGradient13147" gradientUnits="userSpaceOnUse" x1="287.51730" y1="-439.75281" x2="289.67633" y2="-436.32199"/>
+    <linearGradient id="linearGradient6470">
+      <stop offset="0" id="stop6472" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop6474" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient xlink:href="#linearGradient6470" id="linearGradient13145" gradientUnits="userSpaceOnUse" gradientTransform="translate(-34.00007,207.0001)" x1="271.02170" y1="-441.05182" x2="285.02859" y2="-431.96991"/>
+    <linearGradient id="linearGradient5123">
+      <stop offset="0" id="stop5125" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop5127" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <radialGradient xlink:href="#linearGradient5123" id="radialGradient13068" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.930946,6.185702e-16,-2.842711e-16,0.448244,229.9269,180.9261)" cx="-229.75000" cy="-343.95554" fx="-229.75000" fy="-343.95554" r="14.501380"/>
   </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="11.313708"
-     inkscape:cx="19.667589"
-     inkscape:cy="18.541776"
-     inkscape:current-layer="layer1"
-     showgrid="true"
-     inkscape:grid-bbox="true"
-     inkscape:document-units="px"
-     inkscape:window-width="1200"
-     inkscape:window-height="704"
-     inkscape:window-x="186"
-     inkscape:window-y="144"
-     inkscape:showpageshadow="false" />
-  <metadata
-     id="metadata1311">
+  
+  <metadata id="metadata1311">
     <rdf:RDF>
-      <cc:Work
-         rdf:about="">
+      <cc:Work rdf:about="">
         <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
         <dc:title>weather-storm</dc:title>
         <dc:date>January 2006</dc:date>
         <dc:creator>
@@ -3866,443 +109,82 @@
             <rdf:li>notify</rdf:li>
           </rdf:Bag>
         </dc:subject>
-        <cc:license
-           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+        <cc:license rdf:resource="http://creativecommons.org/licenses/publicdomain/"/>
       </cc:Work>
-      <cc:License
-         rdf:about="http://creativecommons.org/licenses/publicdomain/">
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Reproduction" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Distribution" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      <cc:License rdf:about="http://creativecommons.org/licenses/publicdomain/">
+        <cc:permits rdf:resource="http://creativecommons.org/ns#Reproduction"/>
+        <cc:permits rdf:resource="http://creativecommons.org/ns#Distribution"/>
+        <cc:permits rdf:resource="http://creativecommons.org/ns#DerivativeWorks"/>
       </cc:License>
     </rdf:RDF>
   </metadata>
-  <g
-     id="layer1"
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer">
-    <g
-       id="g12825"
-       transform="translate(-287.0204,244.9995)">
-      <path
-         id="path12827"
-         d="M 311.50000,-242.99998 C 308.72758,-242.99998 306.39177,-241.42627 305.09375,-239.18748 C 304.14939,-239.66252 303.12856,-239.99998 302.00000,-239.99998 C 298.13600,-239.99998 295.00000,-236.86398 295.00000,-232.99998 C 295.00000,-229.13598 298.13600,-225.99998 302.00000,-225.99998 C 304.41967,-225.99998 306.43009,-227.31930 307.68750,-229.18748 C 308.82170,-228.49786 310.07648,-227.99998 311.50000,-227.99998 C 312.41312,-227.99998 313.25295,-228.23200 314.06250,-228.53123 C 314.57244,-227.66350 315.24162,-226.95151 316.06250,-226.37498 C 316.05526,-226.24460 316.00000,-226.13216 316.00000,-225.99998 C 316.00000,-222.13598 319.13599,-218.99998 323.00000,-218.99998 C 326.86400,-218.99998 330.00000,-222.13598 330.00000,-225.99998 C 330.00000,-228.36967 328.74102,-230.35832 326.93750,-231.62498 C 326.94474,-231.75536 327.00000,-231.86780 327.00000,-231.99998 C 327.00000,-235.86398 323.86401,-238.99998 320.00000,-238.99998 C 319.37730,-238.99998 318.82481,-238.77779 318.25000,-238.62498 C 317.05547,-241.18382 314.50866,-242.99998 311.50000,-242.99998 z "
-         style="opacity:1.0000000;fill:#555753;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
-      <path
-         id="path12829"
-         d="M 311.50000,-241.99998 C 308.71952,-241.99998 306.36549,-240.23813 305.43750,-237.78123 C 304.45208,-238.49067 303.30607,-238.99998 302.00000,-238.99998 C 298.68800,-238.99998 296.00000,-236.31198 296.00000,-232.99998 C 296.00000,-229.68798 298.68800,-226.99998 302.00000,-226.99998 C 304.42775,-226.99998 306.49324,-228.45556 307.43750,-230.53123 C 308.55826,-229.61367 309.93964,-228.99998 311.50000,-228.99998 C 312.57454,-228.99998 313.54428,-229.31894 314.43750,-229.78123 C 314.83590,-228.78147 315.53864,-227.99491 316.37500,-227.34373 C 316.19499,-226.74811 316.00000,-226.15408 316.00000,-225.49998 C 316.00000,-221.91198 318.91200,-218.99998 322.50000,-218.99998 C 326.08800,-218.99998 329.00000,-221.91198 329.00000,-225.49998 C 329.00000,-227.86077 327.66567,-229.83017 325.78125,-230.96873 C 325.84384,-231.31596 326.00000,-231.63481 326.00000,-231.99998 C 326.00000,-235.31198 323.31200,-237.99998 320.00000,-237.99998 C 319.14702,-237.99998 318.32870,-237.82130 317.59375,-237.49998 C 316.73998,-240.09386 314.37851,-241.99997 311.50000,-241.99998 z "
-         style="opacity:1.0000000;fill:url(#linearGradient13495);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
-      <path
-         transform="matrix(0.964447,0.000000,0.000000,0.964447,89.28852,144.5262)"
-         d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1  235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1  248.54804 -383.66660 z"
-         sodipodi:ry="6.7396116"
-         sodipodi:rx="6.7396116"
-         sodipodi:cy="-383.66660"
-         sodipodi:cx="241.80843"
-         id="path12831"
-         style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-         sodipodi:type="arc" />
-      <g
-         id="g12833">
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path12835"
-           sodipodi:cx="243.95184"
-           sodipodi:cy="-389.30136"
-           sodipodi:rx="6.2313786"
-           sodipodi:ry="6.2313786"
-           d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1  237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1  250.18322 -389.30136 z"
-           transform="matrix(0.882630,0.000000,0.000000,0.882630,96.18078,108.1091)" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:0.49444440;fill:url(#linearGradient13497);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path12837"
-           sodipodi:cx="243.95184"
-           sodipodi:cy="-389.30136"
-           sodipodi:rx="6.2313786"
-           sodipodi:ry="6.2313786"
-           d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1  237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1  250.18322 -389.30136 z"
-           transform="matrix(0.882630,0.000000,0.000000,0.882630,96.18078,108.1091)" />
+  <g id="layer1">
+    <g transform="translate(-287.0204,244.9995)">
+      <path d="M 311.50000,-242.99998 C 308.72758,-242.99998 306.39177,-241.42627 305.09375,-239.18748 C 304.14939,-239.66252 303.12856,-239.99998 302.00000,-239.99998 C 298.13600,-239.99998 295.00000,-236.86398 295.00000,-232.99998 C 295.00000,-229.13598 298.13600,-225.99998 302.00000,-225.99998 C 304.41967,-225.99998 306.43009,-227.31930 307.68750,-229.18748 C 308.82170,-228.49786 310.07648,-227.99998 311.50000,-227.99998 C 312.41312,-227.99998 313.25295,-228.23200 314.06250,-228.53123 C 314.57244,-227.66350 315.24162,-226.95151 316.06250,-226.37498 C 316.05526,-226.24460 316.00000,-226.13216 316.00000,-225.99998 C 316.00000,-222.13598 319.13599,-218.99998 323.00000,-218.99998 C 326.86400,-218.99998 330.00000,-222.13598 330.00000,-225.99998 C 330.00000,-228.36967 328.74102,-230.35832 326.93750,-231.62498 C 326.94474,-231.75536 327.00000,-231.86780 327.00000,-231.99998 C 327.00000,-235.86398 323.86401,-238.99998 320.00000,-238.99998 C 319.37730,-238.99998 318.82481,-238.77779 318.25000,-238.62498 C 317.05547,-241.18382 314.50866,-242.99998 311.50000,-242.99998 z " opacity="1.0000000" fill="#555753" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+      <path d="M 311.50000,-241.99998 C 308.71952,-241.99998 306.36549,-240.23813 305.43750,-237.78123 C 304.45208,-238.49067 303.30607,-238.99998 302.00000,-238.99998 C 298.68800,-238.99998 296.00000,-236.31198 296.00000,-232.99998 C 296.00000,-229.68798 298.68800,-226.99998 302.00000,-226.99998 C 304.42775,-226.99998 306.49324,-228.45556 307.43750,-230.53123 C 308.55826,-229.61367 309.93964,-228.99998 311.50000,-228.99998 C 312.57454,-228.99998 313.54428,-229.31894 314.43750,-229.78123 C 314.83590,-228.78147 315.53864,-227.99491 316.37500,-227.34373 C 316.19499,-226.74811 316.00000,-226.15408 316.00000,-225.49998 C 316.00000,-221.91198 318.91200,-218.99998 322.50000,-218.99998 C 326.08800,-218.99998 329.00000,-221.91198 329.00000,-225.49998 C 329.00000,-227.86077 327.66567,-229.83017 325.78125,-230.96873 C 325.84384,-231.31596 326.00000,-231.63481 326.00000,-231.99998 C 326.00000,-235.31198 323.31200,-237.99998 320.00000,-237.99998 C 319.14702,-237.99998 318.32870,-237.82130 317.59375,-237.49998 C 316.73998,-240.09386 314.37851,-241.99997 311.50000,-241.99998 z " opacity="1.0000000" fill="url(#linearGradient13495)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+      <path transform="matrix(0.964447,0.000000,0.000000,0.964447,89.28852,144.5262)" d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1  235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1  248.54804 -383.66660 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+      <g>
+        <path d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1  237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1  250.18322 -389.30136 z" transform="matrix(0.882630,0.000000,0.000000,0.882630,96.18078,108.1091)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1  237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1  250.18322 -389.30136 z" transform="matrix(0.882630,0.000000,0.000000,0.882630,96.18078,108.1091)" opacity="0.49444440" fill="url(#linearGradient13497)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
       </g>
-      <g
-         id="g12839">
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path12841"
-           sodipodi:cx="251.22179"
-           sodipodi:cy="-385.78790"
-           sodipodi:rx="6.0325046"
-           sodipodi:ry="6.0325046"
-           d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1  245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1  257.25429 -385.78790 z"
-           transform="matrix(0.911728,0.000000,0.000000,0.911728,90.45407,120.2336)" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:0.49444440;fill:url(#linearGradient13499);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path12843"
-           sodipodi:cx="251.22179"
-           sodipodi:cy="-385.78790"
-           sodipodi:rx="6.0325046"
-           sodipodi:ry="6.0325046"
-           d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1  245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1  257.25429 -385.78790 z"
-           transform="matrix(0.911728,0.000000,0.000000,0.911728,90.45407,120.2336)" />
+      <g>
+        <path d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1  245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1  257.25429 -385.78790 z" transform="matrix(0.911728,0.000000,0.000000,0.911728,90.45407,120.2336)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1  245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1  257.25429 -385.78790 z" transform="matrix(0.911728,0.000000,0.000000,0.911728,90.45407,120.2336)" opacity="0.49444440" fill="url(#linearGradient13499)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
       </g>
-      <g
-         id="g12845">
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path12847"
-           sodipodi:cx="233.43362"
-           sodipodi:cy="-387.88715"
-           sodipodi:rx="4.3752232"
-           sodipodi:ry="4.3752232"
-           d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1  229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1  237.80885 -387.88715 z"
-           transform="matrix(1.142799,0.000000,0.000000,1.142799,35.23229,210.2770)" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:0.49444440;fill:url(#linearGradient13501);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path12849"
-           sodipodi:cx="233.43362"
-           sodipodi:cy="-387.88715"
-           sodipodi:rx="4.3752232"
-           sodipodi:ry="4.3752232"
-           d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1  229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1  237.80885 -387.88715 z"
-           transform="matrix(1.142799,0.000000,0.000000,1.142799,35.23229,210.2770)" />
+      <g>
+        <path d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1  229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1  237.80885 -387.88715 z" transform="matrix(1.142799,0.000000,0.000000,1.142799,35.23229,210.2770)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1  229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1  237.80885 -387.88715 z" transform="matrix(1.142799,0.000000,0.000000,1.142799,35.23229,210.2770)" opacity="0.49444440" fill="url(#linearGradient13501)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
       </g>
-      <g
-         id="g12851">
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path12853"
-           sodipodi:cx="241.80843"
-           sodipodi:cy="-383.66660"
-           sodipodi:rx="6.7396116"
-           sodipodi:ry="6.7396116"
-           d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1  235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1  248.54804 -383.66660 z"
-           transform="matrix(1.038636,0.000000,0.000000,1.038636,59.84906,169.4899)" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:0.49444440;fill:url(#linearGradient13503);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path12855"
-           sodipodi:cx="241.80843"
-           sodipodi:cy="-383.66660"
-           sodipodi:rx="6.7396116"
-           sodipodi:ry="6.7396116"
-           d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1  235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1  248.54804 -383.66660 z"
-           transform="matrix(1.038636,0.000000,0.000000,1.038636,59.84907,169.4899)" />
+      <g>
+        <path d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1  235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1  248.54804 -383.66660 z" transform="matrix(1.038636,0.000000,0.000000,1.038636,59.84906,169.4899)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1  235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1  248.54804 -383.66660 z" transform="matrix(1.038636,0.000000,0.000000,1.038636,59.84907,169.4899)" opacity="0.49444440" fill="url(#linearGradient13503)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
       </g>
     </g>
-    <g
-       id="g11177"
-       transform="translate(208.8564,357.8851)">
-      <path
-         sodipodi:nodetypes="cccccccc"
-         id="path11179"
-         d="M -173.24571,-327.59122 L -176.37021,-323.31202 L -172.59078,-323.31202 C -172.59078,-323.31202 -175.29396,-318.78622 -180.16632,-310.38562 C -178.07014,-318.33294 -177.21353,-321.35581 -177.21353,-321.35581 L -182.37682,-321.35581 L -178.33401,-327.59122 L -173.24571,-327.59122 z "
-         style="fill:#edd400;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient11189);stroke-width:1.0000006px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" />
-      <path
-         sodipodi:nodetypes="cccccccc"
-         id="path11181"
-         d="M -173.75946,-327.84461 L -177.50268,-322.68152 L -173.54648,-322.85830 C -173.54648,-322.85830 -173.68639,-322.39837 -178.55875,-313.99777 C -176.46257,-321.94509 -176.48985,-321.96275 -176.48985,-321.96275 L -181.38797,-321.87436 L -177.69871,-327.57944 L -173.75946,-327.84461 z "
-         style="opacity:1.0000000;fill:url(#linearGradient11191);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000006px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" />
+    <g transform="translate(208.8564,357.8851)">
+      <path d="M -173.24571,-327.59122 L -176.37021,-323.31202 L -172.59078,-323.31202 C -172.59078,-323.31202 -175.29396,-318.78622 -180.16632,-310.38562 C -178.07014,-318.33294 -177.21353,-321.35581 -177.21353,-321.35581 L -182.37682,-321.35581 L -178.33401,-327.59122 L -173.24571,-327.59122 z " fill="#edd400" fill-opacity="1.0000000" fill-rule="evenodd" stroke="url(#linearGradient11189)" stroke-width="1.0000006px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1.0000000"/>
+      <path d="M -173.75946,-327.84461 L -177.50268,-322.68152 L -173.54648,-322.85830 C -173.54648,-322.85830 -173.68639,-322.39837 -178.55875,-313.99777 C -176.46257,-321.94509 -176.48985,-321.96275 -176.48985,-321.96275 L -181.38797,-321.87436 L -177.69871,-327.57944 L -173.75946,-327.84461 z " opacity="1.0000000" fill="url(#linearGradient11191)" fill-opacity="1.0000000" fill-rule="evenodd" stroke="none" stroke-width="1.0000006px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1.0000000"/>
     </g>
-    <g
-       id="g12857"
-       transform="translate(-215.0060,252.9994)">
-      <path
-         sodipodi:nodetypes="ccsscsssscsscc"
-         id="path12859"
-         d="M 246.49993,-238.49993 C 244.22910,-238.49993 242.39002,-236.94965 241.78118,-234.87493 C 241.08795,-235.23876 240.33667,-235.49993 239.49993,-235.49993 C 236.73993,-235.49993 234.49992,-233.25994 234.49993,-230.49993 C 234.49993,-229.92100 234.66245,-229.39223 234.84368,-228.87493 C 233.47021,-228.10419 232.49993,-226.68593 232.49993,-224.99993 C 232.49993,-222.51593 234.51593,-220.49992 236.99993,-220.49993 C 237.17706,-220.49993 255.82280,-220.49993 255.99993,-220.49993 C 258.48392,-220.49993 260.49993,-222.51593 260.49993,-224.99993 C 260.49993,-226.68593 259.52965,-228.10419 258.15618,-228.87493 C 258.33742,-229.39222 258.49993,-229.92101 258.49993,-230.49993 C 258.49993,-233.25993 256.25993,-235.49992 253.49993,-235.49993 C 252.66319,-235.49993 251.91191,-235.23876 251.21868,-234.87493 C 250.60984,-236.94965 248.77076,-238.49993 246.49993,-238.49993 z "
-         style="fill:#888a85;fill-opacity:1.0000000;stroke:#555753;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
-      <path
-         sodipodi:nodetypes="ccsscsssscsscc"
-         id="path12861"
-         d="M 246.49993,-237.99993 C 244.31021,-237.99993 242.77633,-236.66416 242.10438,-234.15641 C 241.43592,-234.50003 240.55679,-234.98976 239.74993,-234.98976 C 237.03342,-234.98976 234.99479,-233.05094 234.99480,-230.44422 C 234.99480,-229.89745 235.26201,-229.11078 235.43676,-228.62221 C 234.11233,-227.89426 232.99993,-226.73171 232.99993,-225.24966 C 232.99993,-222.90361 234.54610,-220.99957 237.33921,-220.99957 C 237.51002,-220.99957 255.48985,-220.99957 255.66065,-220.99957 C 258.43166,-220.99957 259.99993,-222.90361 259.99993,-225.24966 C 259.99993,-226.84203 258.88753,-227.91635 257.56310,-228.64430 C 257.73786,-229.13286 258.02717,-229.89746 258.02717,-230.44422 C 258.02717,-233.05093 255.91136,-235.01185 253.24994,-235.01186 C 252.44307,-235.01186 251.60813,-234.52212 250.93967,-234.17850 C 250.29082,-236.60004 248.68966,-237.99993 246.49993,-237.99993 z "
-         style="opacity:1.0000000;fill:url(#linearGradient13131);fill-opacity:1.0000000;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
-      <path
-         transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)"
-         d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-         sodipodi:ry="3.3125000"
-         sodipodi:rx="3.3125000"
-         sodipodi:cy="-437.59375"
-         sodipodi:cx="288.37500"
-         id="path12863"
-         style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-         sodipodi:type="arc" />
-      <path
-         transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)"
-         d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-         sodipodi:ry="3.3125000"
-         sodipodi:rx="3.3125000"
-         sodipodi:cy="-437.59375"
-         sodipodi:cx="288.37500"
-         id="path12865"
-         style="opacity:0.47777775;fill:url(#linearGradient13133);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-         sodipodi:type="arc" />
-      <rect
-         y="-230.99992"
-         x="236.99994"
-         height="9.0000000"
-         width="20.000000"
-         id="rect12867"
-         style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
-      <path
-         transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16987,171.3114)"
-         d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-         sodipodi:ry="3.3125000"
-         sodipodi:rx="3.3125000"
-         sodipodi:cy="-437.59375"
-         sodipodi:cx="288.37500"
-         id="path12869"
-         style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-         sodipodi:type="arc" />
-      <path
-         transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19818,231.8633)"
-         d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-         sodipodi:ry="3.3125000"
-         sodipodi:rx="3.3125000"
-         sodipodi:cy="-437.59375"
-         sodipodi:cx="288.37500"
-         id="path12871"
-         style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-         sodipodi:type="arc" />
-      <path
-         transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19825,231.8634)"
-         d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-         sodipodi:ry="3.3125000"
-         sodipodi:rx="3.3125000"
-         sodipodi:cy="-437.59375"
-         sodipodi:cx="288.37500"
-         id="path12873"
-         style="opacity:0.47777775;fill:url(#linearGradient13135);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-         sodipodi:type="arc" />
-      <path
-         transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)"
-         d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-         sodipodi:ry="3.3125000"
-         sodipodi:rx="3.3125000"
-         sodipodi:cy="-437.59375"
-         sodipodi:cx="288.37500"
-         id="path12875"
-         style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-         sodipodi:type="arc" />
-      <path
-         transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)"
-         d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-         sodipodi:ry="3.3125000"
-         sodipodi:rx="3.3125000"
-         sodipodi:cy="-437.59375"
-         sodipodi:cx="288.37500"
-         id="path12877"
-         style="opacity:0.47777775;fill:url(#linearGradient13137);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-         sodipodi:type="arc" />
-      <path
-         id="path12879"
-         d="M 245.46868,-233.96868 C 241.88930,-233.96868 238.99993,-231.04805 238.99993,-227.46868 C 238.99993,-225.09800 240.34936,-223.13089 242.24993,-221.99993 L 248.71868,-221.99993 C 250.61925,-223.13089 251.96868,-225.12924 251.96868,-227.49993 C 251.96868,-231.07931 249.04805,-233.96868 245.46868,-233.96868 z "
-         style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
-      <path
-         id="path12881"
-         d="M 245.49993,-233.99993 C 241.91193,-233.99993 238.99993,-231.08792 238.99993,-227.49993 C 238.99993,-225.12353 240.34478,-223.13361 242.24993,-221.99993 L 248.74993,-221.99993 C 250.65508,-223.13361 251.99993,-225.12353 251.99993,-227.49993 C 251.99993,-231.08793 249.08793,-233.99992 245.49993,-233.99993 z "
-         style="opacity:0.47777775;fill:url(#linearGradient13139);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
-      <path
-         transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16977,171.3113)"
-         d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-         sodipodi:ry="3.3125000"
-         sodipodi:rx="3.3125000"
-         sodipodi:cy="-437.59375"
-         sodipodi:cx="288.37500"
-         id="path12883"
-         style="opacity:0.47777775;fill:url(#linearGradient13141);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-         sodipodi:type="arc" />
-      <path
-         sodipodi:nodetypes="ccss"
-         id="path12885"
-         d="M 258.95633,-230.33389 C 258.95480,-227.64933 255.68707,-226.61994 255.68707,-226.61994 C 255.68707,-226.61994 258.03581,-228.24589 258.02392,-230.32495 C 258.02392,-230.32495 258.95633,-230.33389 258.95633,-230.33389 z "
-         style="fill:#555753;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" />
-      <path
-         transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)"
-         d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-         sodipodi:ry="3.3125000"
-         sodipodi:rx="3.3125000"
-         sodipodi:cy="-437.59375"
-         sodipodi:cx="288.37500"
-         id="path12887"
-         style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-         sodipodi:type="arc" />
-      <path
-         transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)"
-         d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-         sodipodi:ry="3.3125000"
-         sodipodi:rx="3.3125000"
-         sodipodi:cy="-437.59375"
-         sodipodi:cx="288.37500"
-         id="path12889"
-         style="opacity:0.47777775;fill:url(#linearGradient13143);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-         sodipodi:type="arc" />
+    <g transform="translate(-215.0060,252.9994)">
+      <path d="M 246.49993,-238.49993 C 244.22910,-238.49993 242.39002,-236.94965 241.78118,-234.87493 C 241.08795,-235.23876 240.33667,-235.49993 239.49993,-235.49993 C 236.73993,-235.49993 234.49992,-233.25994 234.49993,-230.49993 C 234.49993,-229.92100 234.66245,-229.39223 234.84368,-228.87493 C 233.47021,-228.10419 232.49993,-226.68593 232.49993,-224.99993 C 232.49993,-222.51593 234.51593,-220.49992 236.99993,-220.49993 C 237.17706,-220.49993 255.82280,-220.49993 255.99993,-220.49993 C 258.48392,-220.49993 260.49993,-222.51593 260.49993,-224.99993 C 260.49993,-226.68593 259.52965,-228.10419 258.15618,-228.87493 C 258.33742,-229.39222 258.49993,-229.92101 258.49993,-230.49993 C 258.49993,-233.25993 256.25993,-235.49992 253.49993,-235.49993 C 252.66319,-235.49993 251.91191,-235.23876 251.21868,-234.87493 C 250.60984,-236.94965 248.77076,-238.49993 246.49993,-238.49993 z " fill="#888a85" fill-opacity="1.0000000" stroke="#555753" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+      <path d="M 246.49993,-237.99993 C 244.31021,-237.99993 242.77633,-236.66416 242.10438,-234.15641 C 241.43592,-234.50003 240.55679,-234.98976 239.74993,-234.98976 C 237.03342,-234.98976 234.99479,-233.05094 234.99480,-230.44422 C 234.99480,-229.89745 235.26201,-229.11078 235.43676,-228.62221 C 234.11233,-227.89426 232.99993,-226.73171 232.99993,-225.24966 C 232.99993,-222.90361 234.54610,-220.99957 237.33921,-220.99957 C 237.51002,-220.99957 255.48985,-220.99957 255.66065,-220.99957 C 258.43166,-220.99957 259.99993,-222.90361 259.99993,-225.24966 C 259.99993,-226.84203 258.88753,-227.91635 257.56310,-228.64430 C 257.73786,-229.13286 258.02717,-229.89746 258.02717,-230.44422 C 258.02717,-233.05093 255.91136,-235.01185 253.24994,-235.01186 C 252.44307,-235.01186 251.60813,-234.52212 250.93967,-234.17850 C 250.29082,-236.60004 248.68966,-237.99993 246.49993,-237.99993 z " opacity="1.0000000" fill="url(#linearGradient13131)" fill-opacity="1.0000000" stroke="none" stroke-width="0.99999958" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+      <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+      <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="0.47777775" fill="url(#linearGradient13133)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+      <rect y="-230.99992" x="236.99994" height="9.0000000" width="20.000000" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+      <path transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16987,171.3114)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+      <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19818,231.8633)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+      <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19825,231.8634)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="0.47777775" fill="url(#linearGradient13135)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+      <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+      <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="0.47777775" fill="url(#linearGradient13137)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+      <path d="M 245.46868,-233.96868 C 241.88930,-233.96868 238.99993,-231.04805 238.99993,-227.46868 C 238.99993,-225.09800 240.34936,-223.13089 242.24993,-221.99993 L 248.71868,-221.99993 C 250.61925,-223.13089 251.96868,-225.12924 251.96868,-227.49993 C 251.96868,-231.07931 249.04805,-233.96868 245.46868,-233.96868 z " opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+      <path d="M 245.49993,-233.99993 C 241.91193,-233.99993 238.99993,-231.08792 238.99993,-227.49993 C 238.99993,-225.12353 240.34478,-223.13361 242.24993,-221.99993 L 248.74993,-221.99993 C 250.65508,-223.13361 251.99993,-225.12353 251.99993,-227.49993 C 251.99993,-231.08793 249.08793,-233.99992 245.49993,-233.99993 z " opacity="0.47777775" fill="url(#linearGradient13139)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+      <path transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16977,171.3113)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="0.47777775" fill="url(#linearGradient13141)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+      <path d="M 258.95633,-230.33389 C 258.95480,-227.64933 255.68707,-226.61994 255.68707,-226.61994 C 255.68707,-226.61994 258.03581,-228.24589 258.02392,-230.32495 C 258.02392,-230.32495 258.95633,-230.33389 258.95633,-230.33389 z " fill="#555753" fill-opacity="1.0000000" fill-rule="evenodd" stroke="none" stroke-width="1.0000000px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1.0000000"/>
+      <path transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+      <path transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="0.47777775" fill="url(#linearGradient13143)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
     </g>
-    <g
-       id="g11183"
-       transform="translate(192.8564,354.8851)">
-      <path
-         sodipodi:nodetypes="cccccccc"
-         id="path11185"
-         d="M -173.24571,-327.59122 L -176.37021,-323.31202 L -172.59078,-323.31202 C -172.59078,-323.31202 -175.29396,-318.78622 -180.16632,-310.38562 C -178.07014,-318.33294 -177.21353,-321.35581 -177.21353,-321.35581 L -182.37682,-321.35581 L -178.33401,-327.59122 L -173.24571,-327.59122 z "
-         style="fill:#edd400;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient11193);stroke-width:1.0000006px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" />
-      <path
-         sodipodi:nodetypes="cccccccc"
-         id="path11187"
-         d="M -173.75946,-327.84461 L -177.50268,-322.68152 L -173.54648,-322.85830 C -173.54648,-322.85830 -173.68639,-322.39837 -178.55875,-313.99777 C -176.46257,-321.94509 -176.48985,-321.96275 -176.48985,-321.96275 L -181.38797,-321.87436 L -177.69871,-327.57944 L -173.75946,-327.84461 z "
-         style="opacity:1.0000000;fill:url(#linearGradient11195);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000006px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" />
+    <g transform="translate(192.8564,354.8851)">
+      <path d="M -173.24571,-327.59122 L -176.37021,-323.31202 L -172.59078,-323.31202 C -172.59078,-323.31202 -175.29396,-318.78622 -180.16632,-310.38562 C -178.07014,-318.33294 -177.21353,-321.35581 -177.21353,-321.35581 L -182.37682,-321.35581 L -178.33401,-327.59122 L -173.24571,-327.59122 z " fill="#edd400" fill-opacity="1.0000000" fill-rule="evenodd" stroke="url(#linearGradient11193)" stroke-width="1.0000006px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1.0000000"/>
+      <path d="M -173.75946,-327.84461 L -177.50268,-322.68152 L -173.54648,-322.85830 C -173.54648,-322.85830 -173.68639,-322.39837 -178.55875,-313.99777 C -176.46257,-321.94509 -176.48985,-321.96275 -176.48985,-321.96275 L -181.38797,-321.87436 L -177.69871,-327.57944 L -173.75946,-327.84461 z " opacity="1.0000000" fill="url(#linearGradient11195)" fill-opacity="1.0000000" fill-rule="evenodd" stroke="none" stroke-width="1.0000006px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1.0000000"/>
     </g>
-    <path
-       style="opacity:1.0000000;fill:url(#radialGradient13211);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000004;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
-       d="M 31.626355,14.999520 C 29.626255,14.999520 27.940775,16.079020 27.095785,17.614460 C 26.500875,17.392550 25.851145,17.261090 25.169835,17.261090 C 22.339625,17.261090 20.052305,19.379260 20.052305,21.978590 C 20.052305,22.432340 20.196835,22.835420 20.327445,23.250720 C 18.945125,24.115990 17.979615,25.504290 17.979615,27.155450 C 17.979615,29.808280 18.631235,32.148800 23.207195,31.961300 C 23.252315,31.959450 40.658675,32.058280 40.907605,31.943270 C 43.992815,32.169220 44.979615,29.497540 44.979615,27.243810 C 44.979615,25.543300 44.142675,24.193960 42.670345,23.366220 C 42.718305,23.107660 42.631785,22.815030 42.631785,22.543970 C 42.631785,19.944650 40.326135,17.826480 37.495915,17.826480 C 37.102425,17.826480 36.763515,17.961300 36.395375,18.038500 C 35.656915,16.270380 33.810365,14.999520 31.626355,14.999520 z "
-       id="path13209"
-       sodipodi:nodetypes="ccsscsscscsscc" />
-    <g
-       id="g12891"
-       transform="translate(-230.0203,248.9834)">
-      <path
-         sodipodi:nodetypes="ccsscsssscsscc"
-         id="path12893"
-         d="M 246.49993,-238.49993 C 244.22910,-238.49993 242.39002,-236.94965 241.78118,-234.87493 C 241.08795,-235.23876 240.33667,-235.49993 239.49993,-235.49993 C 236.73993,-235.49993 234.49992,-233.25994 234.49993,-230.49993 C 234.49993,-229.92100 234.66245,-229.39223 234.84368,-228.87493 C 233.47021,-228.10419 232.49993,-226.68593 232.49993,-224.99993 C 232.49993,-222.51593 234.51593,-220.49992 236.99993,-220.49993 C 237.17706,-220.49993 255.82280,-220.49993 255.99993,-220.49993 C 258.48392,-220.49993 260.49993,-222.51593 260.49993,-224.99993 C 260.49993,-226.68593 259.52965,-228.10419 258.15618,-228.87493 C 258.33742,-229.39222 258.49993,-229.92101 258.49993,-230.49993 C 258.49993,-233.25993 256.25993,-235.49992 253.49993,-235.49993 C 252.66319,-235.49993 251.91191,-235.23876 251.21868,-234.87493 C 250.60984,-236.94965 248.77076,-238.49993 246.49993,-238.49993 z "
-         style="fill:#888a85;fill-opacity:1.0000000;stroke:#555753;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
-      <path
-         sodipodi:nodetypes="ccsscsssscsscc"
-         id="path12895"
-         d="M 246.49993,-237.99993 C 244.31021,-237.99993 242.77633,-236.66416 242.10438,-234.15641 C 241.43592,-234.50003 240.55679,-234.98976 239.74993,-234.98976 C 237.03342,-234.98976 234.99479,-233.05094 234.99480,-230.44422 C 234.99480,-229.89745 235.26201,-229.11078 235.43676,-228.62221 C 234.11233,-227.89426 232.99993,-226.73171 232.99993,-225.24966 C 232.99993,-222.90361 234.54610,-220.99957 237.33921,-220.99957 C 237.51002,-220.99957 255.48985,-220.99957 255.66065,-220.99957 C 258.43166,-220.99957 259.99993,-222.90361 259.99993,-225.24966 C 259.99993,-226.84203 258.88753,-227.91635 257.56310,-228.64430 C 257.73786,-229.13286 258.02717,-229.89746 258.02717,-230.44422 C 258.02717,-233.05093 255.91136,-235.01185 253.24994,-235.01186 C 252.44307,-235.01186 251.60813,-234.52212 250.93967,-234.17850 C 250.29082,-236.60004 248.68966,-237.99993 246.49993,-237.99993 z "
-         style="opacity:1.0000000;fill:url(#linearGradient13145);fill-opacity:1.0000000;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
-      <path
-         transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)"
-         d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-         sodipodi:ry="3.3125000"
-         sodipodi:rx="3.3125000"
-         sodipodi:cy="-437.59375"
-         sodipodi:cx="288.37500"
-         id="path12897"
-         style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-         sodipodi:type="arc" />
-      <path
-         transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)"
-         d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-         sodipodi:ry="3.3125000"
-         sodipodi:rx="3.3125000"
-         sodipodi:cy="-437.59375"
-         sodipodi:cx="288.37500"
-         id="path12899"
-         style="opacity:0.47777775;fill:url(#linearGradient13147);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-         sodipodi:type="arc" />
-      <rect
-         y="-230.99992"
-         x="236.99994"
-         height="9.0000000"
-         width="20.000000"
-         id="rect12901"
-         style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
-      <path
-         transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16987,171.3114)"
-         d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-         sodipodi:ry="3.3125000"
-         sodipodi:rx="3.3125000"
-         sodipodi:cy="-437.59375"
-         sodipodi:cx="288.37500"
-         id="path12903"
-         style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-         sodipodi:type="arc" />
-      <path
-         transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19818,231.8633)"
-         d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-         sodipodi:ry="3.3125000"
-         sodipodi:rx="3.3125000"
-         sodipodi:cy="-437.59375"
-         sodipodi:cx="288.37500"
-         id="path12905"
-         style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-         sodipodi:type="arc" />
-      <path
-         transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19825,231.8634)"
-         d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-         sodipodi:ry="3.3125000"
-         sodipodi:rx="3.3125000"
-         sodipodi:cy="-437.59375"
-         sodipodi:cx="288.37500"
-         id="path12907"
-         style="opacity:0.47777775;fill:url(#linearGradient13149);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-         sodipodi:type="arc" />
-      <path
-         transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)"
-         d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-         sodipodi:ry="3.3125000"
-         sodipodi:rx="3.3125000"
-         sodipodi:cy="-437.59375"
-         sodipodi:cx="288.37500"
-         id="path12909"
-         style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-         sodipodi:type="arc" />
-      <path
-         transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)"
-         d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-         sodipodi:ry="3.3125000"
-         sodipodi:rx="3.3125000"
-         sodipodi:cy="-437.59375"
-         sodipodi:cx="288.37500"
-         id="path12911"
-         style="opacity:0.47777775;fill:url(#linearGradient13151);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-         sodipodi:type="arc" />
-      <path
-         id="path12913"
-         d="M 245.46868,-233.96868 C 241.88930,-233.96868 238.99993,-231.04805 238.99993,-227.46868 C 238.99993,-225.09800 240.34936,-223.13089 242.24993,-221.99993 L 248.71868,-221.99993 C 250.61925,-223.13089 251.96868,-225.12924 251.96868,-227.49993 C 251.96868,-231.07931 249.04805,-233.96868 245.46868,-233.96868 z "
-         style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
-      <path
-         id="path12915"
-         d="M 245.49993,-233.99993 C 241.91193,-233.99993 238.99993,-231.08792 238.99993,-227.49993 C 238.99993,-225.12353 240.34478,-223.13361 242.24993,-221.99993 L 248.74993,-221.99993 C 250.65508,-223.13361 251.99993,-225.12353 251.99993,-227.49993 C 251.99993,-231.08793 249.08793,-233.99992 245.49993,-233.99993 z "
-         style="opacity:0.47777775;fill:url(#linearGradient13153);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
-      <path
-         transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16977,171.3113)"
-         d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-         sodipodi:ry="3.3125000"
-         sodipodi:rx="3.3125000"
-         sodipodi:cy="-437.59375"
-         sodipodi:cx="288.37500"
-         id="path12917"
-         style="opacity:0.47777775;fill:url(#linearGradient13155);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-         sodipodi:type="arc" />
-      <path
-         sodipodi:nodetypes="ccss"
-         id="path12919"
-         d="M 258.95633,-230.33389 C 258.95480,-227.64933 255.68707,-226.61994 255.68707,-226.61994 C 255.68707,-226.61994 258.03581,-228.24589 258.02392,-230.32495 C 258.02392,-230.32495 258.95633,-230.33389 258.95633,-230.33389 z "
-         style="fill:#555753;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" />
-      <path
-         transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)"
-         d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-         sodipodi:ry="3.3125000"
-         sodipodi:rx="3.3125000"
-         sodipodi:cy="-437.59375"
-         sodipodi:cx="288.37500"
-         id="path12921"
-         style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-         sodipodi:type="arc" />
-      <path
-         transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)"
-         d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-         sodipodi:ry="3.3125000"
-         sodipodi:rx="3.3125000"
-         sodipodi:cy="-437.59375"
-         sodipodi:cx="288.37500"
-         id="path12923"
-         style="opacity:0.47777775;fill:url(#linearGradient13157);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-         sodipodi:type="arc" />
+    <path d="M 31.626355,14.999520 C 29.626255,14.999520 27.940775,16.079020 27.095785,17.614460 C 26.500875,17.392550 25.851145,17.261090 25.169835,17.261090 C 22.339625,17.261090 20.052305,19.379260 20.052305,21.978590 C 20.052305,22.432340 20.196835,22.835420 20.327445,23.250720 C 18.945125,24.115990 17.979615,25.504290 17.979615,27.155450 C 17.979615,29.808280 18.631235,32.148800 23.207195,31.961300 C 23.252315,31.959450 40.658675,32.058280 40.907605,31.943270 C 43.992815,32.169220 44.979615,29.497540 44.979615,27.243810 C 44.979615,25.543300 44.142675,24.193960 42.670345,23.366220 C 42.718305,23.107660 42.631785,22.815030 42.631785,22.543970 C 42.631785,19.944650 40.326135,17.826480 37.495915,17.826480 C 37.102425,17.826480 36.763515,17.961300 36.395375,18.038500 C 35.656915,16.270380 33.810365,14.999520 31.626355,14.999520 z " opacity="1.0000000" fill="url(#radialGradient13211)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000004" stroke-linejoin="round" stroke-miterlimit="4.0000000" stroke-dasharray="none" stroke-opacity="1.0000000"/>
+    <g transform="translate(-230.0203,248.9834)">
+      <path d="M 246.49993,-238.49993 C 244.22910,-238.49993 242.39002,-236.94965 241.78118,-234.87493 C 241.08795,-235.23876 240.33667,-235.49993 239.49993,-235.49993 C 236.73993,-235.49993 234.49992,-233.25994 234.49993,-230.49993 C 234.49993,-229.92100 234.66245,-229.39223 234.84368,-228.87493 C 233.47021,-228.10419 232.49993,-226.68593 232.49993,-224.99993 C 232.49993,-222.51593 234.51593,-220.49992 236.99993,-220.49993 C 237.17706,-220.49993 255.82280,-220.49993 255.99993,-220.49993 C 258.48392,-220.49993 260.49993,-222.51593 260.49993,-224.99993 C 260.49993,-226.68593 259.52965,-228.10419 258.15618,-228.87493 C 258.33742,-229.39222 258.49993,-229.92101 258.49993,-230.49993 C 258.49993,-233.25993 256.25993,-235.49992 253.49993,-235.49993 C 252.66319,-235.49993 251.91191,-235.23876 251.21868,-234.87493 C 250.60984,-236.94965 248.77076,-238.49993 246.49993,-238.49993 z " fill="#888a85" fill-opacity="1.0000000" stroke="#555753" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+      <path d="M 246.49993,-237.99993 C 244.31021,-237.99993 242.77633,-236.66416 242.10438,-234.15641 C 241.43592,-234.50003 240.55679,-234.98976 239.74993,-234.98976 C 237.03342,-234.98976 234.99479,-233.05094 234.99480,-230.44422 C 234.99480,-229.89745 235.26201,-229.11078 235.43676,-228.62221 C 234.11233,-227.89426 232.99993,-226.73171 232.99993,-225.24966 C 232.99993,-222.90361 234.54610,-220.99957 237.33921,-220.99957 C 237.51002,-220.99957 255.48985,-220.99957 255.66065,-220.99957 C 258.43166,-220.99957 259.99993,-222.90361 259.99993,-225.24966 C 259.99993,-226.84203 258.88753,-227.91635 257.56310,-228.64430 C 257.73786,-229.13286 258.02717,-229.89746 258.02717,-230.44422 C 258.02717,-233.05093 255.91136,-235.01185 253.24994,-235.01186 C 252.44307,-235.01186 251.60813,-234.52212 250.93967,-234.17850 C 250.29082,-236.60004 248.68966,-237.99993 246.49993,-237.99993 z " opacity="1.0000000" fill="url(#linearGradient13145)" fill-opacity="1.0000000" stroke="none" stroke-width="0.99999958" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+      <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+      <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="0.47777775" fill="url(#linearGradient13147)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+      <rect y="-230.99992" x="236.99994" height="9.0000000" width="20.000000" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+      <path transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16987,171.3114)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+      <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19818,231.8633)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+      <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19825,231.8634)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="0.47777775" fill="url(#linearGradient13149)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+      <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+      <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="0.47777775" fill="url(#linearGradient13151)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+      <path d="M 245.46868,-233.96868 C 241.88930,-233.96868 238.99993,-231.04805 238.99993,-227.46868 C 238.99993,-225.09800 240.34936,-223.13089 242.24993,-221.99993 L 248.71868,-221.99993 C 250.61925,-223.13089 251.96868,-225.12924 251.96868,-227.49993 C 251.96868,-231.07931 249.04805,-233.96868 245.46868,-233.96868 z " opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+      <path d="M 245.49993,-233.99993 C 241.91193,-233.99993 238.99993,-231.08792 238.99993,-227.49993 C 238.99993,-225.12353 240.34478,-223.13361 242.24993,-221.99993 L 248.74993,-221.99993 C 250.65508,-223.13361 251.99993,-225.12353 251.99993,-227.49993 C 251.99993,-231.08793 249.08793,-233.99992 245.49993,-233.99993 z " opacity="0.47777775" fill="url(#linearGradient13153)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+      <path transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16977,171.3113)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="0.47777775" fill="url(#linearGradient13155)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+      <path d="M 258.95633,-230.33389 C 258.95480,-227.64933 255.68707,-226.61994 255.68707,-226.61994 C 255.68707,-226.61994 258.03581,-228.24589 258.02392,-230.32495 C 258.02392,-230.32495 258.95633,-230.33389 258.95633,-230.33389 z " fill="#555753" fill-opacity="1.0000000" fill-rule="evenodd" stroke="none" stroke-width="1.0000000px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1.0000000"/>
+      <path transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+      <path transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="0.47777775" fill="url(#linearGradient13157)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
     </g>
-    <path
-       style="opacity:1.0000000;fill:url(#radialGradient13068);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000004;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
-       d="M 16.188855,11.000000 C 14.188755,11.000000 12.503275,12.079500 11.658285,13.614940 C 11.063375,13.393030 10.413645,13.261570 9.7323346,13.261570 C 6.9021246,13.261570 4.6148046,15.379740 4.6148046,17.979070 C 4.6148046,18.432820 4.7593346,18.835900 4.8899446,19.251200 C 3.5076246,20.116470 2.5421146,21.504770 2.5421146,23.155930 C 2.5421146,25.808760 3.1937346,28.149280 7.7696946,27.961780 C 7.8148146,27.959930 25.221175,28.058760 25.470105,27.943750 C 28.555315,28.169700 29.542115,25.498020 29.542115,23.244290 C 29.542115,21.543780 28.705175,20.194440 27.232845,19.366700 C 27.280805,19.108140 27.194285,18.815510 27.194285,18.544450 C 27.194285,15.945130 24.888635,13.826960 22.058415,13.826960 C 21.664925,13.826960 21.326015,13.961780 20.957875,14.038980 C 20.219415,12.270860 18.372865,11.000000 16.188855,11.000000 z "
-       id="path11418"
-       sodipodi:nodetypes="ccsscsscscsscc" />
+    <path d="M 16.188855,11.000000 C 14.188755,11.000000 12.503275,12.079500 11.658285,13.614940 C 11.063375,13.393030 10.413645,13.261570 9.7323346,13.261570 C 6.9021246,13.261570 4.6148046,15.379740 4.6148046,17.979070 C 4.6148046,18.432820 4.7593346,18.835900 4.8899446,19.251200 C 3.5076246,20.116470 2.5421146,21.504770 2.5421146,23.155930 C 2.5421146,25.808760 3.1937346,28.149280 7.7696946,27.961780 C 7.8148146,27.959930 25.221175,28.058760 25.470105,27.943750 C 28.555315,28.169700 29.542115,25.498020 29.542115,23.244290 C 29.542115,21.543780 28.705175,20.194440 27.232845,19.366700 C 27.280805,19.108140 27.194285,18.815510 27.194285,18.544450 C 27.194285,15.945130 24.888635,13.826960 22.058415,13.826960 C 21.664925,13.826960 21.326015,13.961780 20.957875,14.038980 C 20.219415,12.270860 18.372865,11.000000 16.188855,11.000000 z " opacity="1.0000000" fill="url(#radialGradient13068)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000004" stroke-linejoin="round" stroke-miterlimit="4.0000000" stroke-dasharray="none" stroke-opacity="1.0000000"/>
   </g>
 </svg>
diff --git a/demos/embedded/weatherinfo/icons/weather-sunny-very-few-clouds.svg b/demos/embedded/weatherinfo/icons/weather-sunny-very-few-clouds.svg
index 93b0009..a27d30a 100644
--- a/demos/embedded/weatherinfo/icons/weather-sunny-very-few-clouds.svg
+++ b/demos/embedded/weatherinfo/icons/weather-sunny-very-few-clouds.svg
@@ -1,337 +1,63 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="48px"
-   height="48px"
-   id="svg1306"
-   sodipodi:version="0.32"
-   inkscape:version="0.46"
-   sodipodi:docbase="/home/garrett/Source/tango-icon-theme/scalable/status"
-   sodipodi:docname="weather-sunny-very-few-clouds.svg"
-   inkscape:output_extension="org.inkscape.output.svg.inkscape">
-  <defs
-     id="defs1308">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 24 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="48 : 24 : 1"
-       inkscape:persp3d-origin="24 : 16 : 1"
-       id="perspective27908" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6538"
-       id="linearGradient6724"
-       gradientUnits="userSpaceOnUse"
-       x1="284.80219"
-       y1="-441.23294"
-       x2="288.89954"
-       y2="-436.83109" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6549"
-       id="linearGradient6722"
-       gradientUnits="userSpaceOnUse"
-       x1="286.66589"
-       y1="-439.48358"
-       x2="289.76562"
-       y2="-436.70703" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6527"
-       id="linearGradient6720"
-       gradientUnits="userSpaceOnUse"
-       x1="275.94193"
-       y1="-437.10501"
-       x2="279.97546"
-       y2="-431.91833" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6538"
-       id="linearGradient6718"
-       gradientUnits="userSpaceOnUse"
-       x1="285.94086"
-       y1="-439.93900"
-       x2="289.39124"
-       y2="-436.44290" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6513"
-       id="linearGradient6716"
-       gradientUnits="userSpaceOnUse"
-       x1="286.51172"
-       y1="-441.29074"
-       x2="289.85379"
-       y2="-436.14453" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6497"
-       id="linearGradient6714"
-       gradientUnits="userSpaceOnUse"
-       x1="287.51730"
-       y1="-439.75281"
-       x2="289.67633"
-       y2="-436.32199" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6470"
-       id="linearGradient6712"
-       gradientUnits="userSpaceOnUse"
-       x1="271.02170"
-       y1="-441.05182"
-       x2="285.02859"
-       y2="-431.96991" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6538"
-       id="linearGradient6839"
-       gradientUnits="userSpaceOnUse"
-       x1="284.80219"
-       y1="-441.23294"
-       x2="288.89954"
-       y2="-436.83109" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient6549">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop6551" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop6553" />
+<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="48px" height="48px" id="svg1306">
+  <defs id="defs1308">
+    <linearGradient xlink:href="#linearGradient6538" id="linearGradient6839" gradientUnits="userSpaceOnUse" x1="284.80219" y1="-441.23294" x2="288.89954" y2="-436.83109"/>
+    <linearGradient id="linearGradient6549">
+      <stop offset="0" id="stop6551" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop6553" stop-color="#ffffff" stop-opacity="0"/>
     </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6549"
-       id="linearGradient6837"
-       gradientUnits="userSpaceOnUse"
-       x1="286.66589"
-       y1="-439.48358"
-       x2="289.76562"
-       y2="-436.70703" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient6527">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop6530" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop6532" />
+    <linearGradient xlink:href="#linearGradient6549" id="linearGradient6837" gradientUnits="userSpaceOnUse" x1="286.66589" y1="-439.48358" x2="289.76562" y2="-436.70703"/>
+    <linearGradient id="linearGradient6527">
+      <stop offset="0" id="stop6530" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop6532" stop-color="#ffffff" stop-opacity="0"/>
     </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6527"
-       id="linearGradient6835"
-       gradientUnits="userSpaceOnUse"
-       x1="275.94193"
-       y1="-437.10501"
-       x2="279.97546"
-       y2="-431.91833" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient6538">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop6540" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop6542" />
+    <linearGradient xlink:href="#linearGradient6527" id="linearGradient6835" gradientUnits="userSpaceOnUse" x1="275.94193" y1="-437.10501" x2="279.97546" y2="-431.91833"/>
+    <linearGradient id="linearGradient6538">
+      <stop offset="0" id="stop6540" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop6542" stop-color="#ffffff" stop-opacity="0"/>
     </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6538"
-       id="linearGradient6833"
-       gradientUnits="userSpaceOnUse"
-       x1="285.94086"
-       y1="-439.93900"
-       x2="289.39124"
-       y2="-436.44290" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient6513">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop6515" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop6517" />
+    <linearGradient xlink:href="#linearGradient6538" id="linearGradient6833" gradientUnits="userSpaceOnUse" x1="285.94086" y1="-439.93900" x2="289.39124" y2="-436.44290"/>
+    <linearGradient id="linearGradient6513">
+      <stop offset="0" id="stop6515" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop6517" stop-color="#ffffff" stop-opacity="0"/>
     </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6513"
-       id="linearGradient6831"
-       gradientUnits="userSpaceOnUse"
-       x1="286.51172"
-       y1="-441.29074"
-       x2="289.85379"
-       y2="-436.14453" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient6497">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop6499" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop6501" />
+    <linearGradient xlink:href="#linearGradient6513" id="linearGradient6831" gradientUnits="userSpaceOnUse" x1="286.51172" y1="-441.29074" x2="289.85379" y2="-436.14453"/>
+    <linearGradient id="linearGradient6497">
+      <stop offset="0" id="stop6499" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop6501" stop-color="#ffffff" stop-opacity="0"/>
     </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6497"
-       id="linearGradient6829"
-       gradientUnits="userSpaceOnUse"
-       x1="287.51730"
-       y1="-439.75281"
-       x2="289.67633"
-       y2="-436.32199" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient6470">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop6472" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop6474" />
+    <linearGradient xlink:href="#linearGradient6497" id="linearGradient6829" gradientUnits="userSpaceOnUse" x1="287.51730" y1="-439.75281" x2="289.67633" y2="-436.32199"/>
+    <linearGradient id="linearGradient6470">
+      <stop offset="0" id="stop6472" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop6474" stop-color="#ffffff" stop-opacity="0"/>
     </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6470"
-       id="linearGradient6827"
-       gradientUnits="userSpaceOnUse"
-       x1="271.02170"
-       y1="-441.05182"
-       x2="285.02859"
-       y2="-431.96991" />
-    <linearGradient
-       id="linearGradient4083">
-      <stop
-         id="stop4085"
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:0;" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="0.75"
-         id="stop4089" />
-      <stop
-         id="stop4087"
-         offset="1"
-         style="stop-color:#ffffff;stop-opacity:1;" />
+    <linearGradient xlink:href="#linearGradient6470" id="linearGradient6827" gradientUnits="userSpaceOnUse" x1="271.02170" y1="-441.05182" x2="285.02859" y2="-431.96991"/>
+    <linearGradient id="linearGradient4083">
+      <stop id="stop4085" offset="0" stop-color="#ffffff" stop-opacity="0"/>
+      <stop offset="0.75" id="stop4089" stop-color="#ffffff" stop-opacity="0"/>
+      <stop id="stop4087" offset="1" stop-color="#ffffff" stop-opacity="1"/>
     </linearGradient>
-    <linearGradient
-       id="linearGradient4032">
-      <stop
-         id="stop4034"
-         offset="0"
-         style="stop-color:#fff7c2;stop-opacity:0.63829786" />
-      <stop
-         style="stop-color:#fcaf3e;stop-opacity:0.18348624;"
-         offset="0.59394139"
-         id="stop4036" />
-      <stop
-         id="stop4038"
-         offset="0.83850551"
-         style="stop-color:#fcaf3e;stop-opacity:0.50458717;" />
-      <stop
-         id="stop4040"
-         offset="1"
-         style="stop-color:#fcaf3e;stop-opacity:1;" />
+    <linearGradient id="linearGradient4032">
+      <stop id="stop4034" offset="0" stop-color="#fff7c2" stop-opacity="0.63829786"/>
+      <stop offset="0.59394139" id="stop4036" stop-color="#fcaf3e" stop-opacity="0.18348624"/>
+      <stop id="stop4038" offset="0.83850551" stop-color="#fcaf3e" stop-opacity="0.50458717"/>
+      <stop id="stop4040" offset="1" stop-color="#fcaf3e" stop-opacity="1"/>
     </linearGradient>
-    <linearGradient
-       id="linearGradient4026">
-      <stop
-         id="stop4028"
-         offset="0"
-         style="stop-color:#fff9c6;stop-opacity:1" />
-      <stop
-         style="stop-color:#fff28c;stop-opacity:1;"
-         offset="0.54166669"
-         id="stop4042" />
-      <stop
-         id="stop4030"
-         offset="1"
-         style="stop-color:#ffea85;stop-opacity:1;" />
+    <linearGradient id="linearGradient4026">
+      <stop id="stop4028" offset="0" stop-color="#fff9c6" stop-opacity="1"/>
+      <stop offset="0.54166669" id="stop4042" stop-color="#fff28c" stop-opacity="1"/>
+      <stop id="stop4030" offset="1" stop-color="#ffea85" stop-opacity="1"/>
     </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4026"
-       id="linearGradient3168"
-       gradientUnits="userSpaceOnUse"
-       x1="-28.968945"
-       y1="-25.326815"
-       x2="-37.19698"
-       y2="-9.5590506" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4032"
-       id="radialGradient4020"
-       cx="-33.519073"
-       cy="-22.113297"
-       fx="-33.519073"
-       fy="-22.113297"
-       r="9.5"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.487739,1.292402,-1.10267,0.497242,-41.77393,32.41492)" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4083"
-       id="radialGradient4081"
-       cx="23.99999"
-       cy="23.381506"
-       fx="23.99999"
-       fy="23.381506"
-       r="19.141981"
-       gradientTransform="matrix(1.006701,2.235326e-16,-2.23715e-16,1.007522,-0.160816,0.426981)"
-       gradientUnits="userSpaceOnUse" />
+    <linearGradient xlink:href="#linearGradient4026" id="linearGradient3168" gradientUnits="userSpaceOnUse" x1="-28.968945" y1="-25.326815" x2="-37.19698" y2="-9.5590506"/>
+    <radialGradient xlink:href="#linearGradient4032" id="radialGradient4020" cx="-33.519073" cy="-22.113297" fx="-33.519073" fy="-22.113297" r="9.5" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.487739,1.292402,-1.10267,0.497242,-41.77393,32.41492)"/>
+    <radialGradient xlink:href="#linearGradient4083" id="radialGradient4081" cx="23.99999" cy="23.381506" fx="23.99999" fy="23.381506" r="19.141981" gradientTransform="matrix(1.006701,2.235326e-16,-2.23715e-16,1.007522,-0.160816,0.426981)" gradientUnits="userSpaceOnUse"/>
   </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="16.270833"
-     inkscape:cx="24"
-     inkscape:cy="24"
-     inkscape:current-layer="layer1"
-     showgrid="true"
-     inkscape:grid-bbox="true"
-     inkscape:document-units="px"
-     inkscape:window-width="982"
-     inkscape:window-height="965"
-     inkscape:window-x="1280"
-     inkscape:window-y="28"
-     inkscape:showpageshadow="false" />
-  <metadata
-     id="metadata1311">
+  
+  <metadata id="metadata1311">
     <rdf:RDF>
-      <cc:Work
-         rdf:about="">
+      <cc:Work rdf:about="">
         <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
         <dc:title>weather-clear</dc:title>
         <dc:date>January 2006</dc:date>
         <dc:creator>
@@ -352,241 +78,63 @@
             <rdf:li>notification</rdf:li>
           </rdf:Bag>
         </dc:subject>
-        <cc:license
-           rdf:resource="http://creativecommons.org/licenses/by-sa/2.0/" />
+        <cc:license rdf:resource="http://creativecommons.org/licenses/by-sa/2.0/"/>
         <dc:contributor>
           <cc:Agent>
             <dc:title>Garrett LeSage</dc:title>
           </cc:Agent>
         </dc:contributor>
       </cc:Work>
-      <cc:License
-         rdf:about="http://creativecommons.org/licenses/by-sa/2.0/">
-        <cc:permits
-           rdf:resource="http://web.resource.org/cc/Reproduction" />
-        <cc:permits
-           rdf:resource="http://web.resource.org/cc/Distribution" />
-        <cc:requires
-           rdf:resource="http://web.resource.org/cc/Notice" />
-        <cc:requires
-           rdf:resource="http://web.resource.org/cc/Attribution" />
-        <cc:permits
-           rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
-        <cc:requires
-           rdf:resource="http://web.resource.org/cc/ShareAlike" />
+      <cc:License rdf:about="http://creativecommons.org/licenses/by-sa/2.0/">
+        <cc:permits rdf:resource="http://web.resource.org/cc/Reproduction"/>
+        <cc:permits rdf:resource="http://web.resource.org/cc/Distribution"/>
+        <cc:requires rdf:resource="http://web.resource.org/cc/Notice"/>
+        <cc:requires rdf:resource="http://web.resource.org/cc/Attribution"/>
+        <cc:permits rdf:resource="http://web.resource.org/cc/DerivativeWorks"/>
+        <cc:requires rdf:resource="http://web.resource.org/cc/ShareAlike"/>
       </cc:License>
     </rdf:RDF>
   </metadata>
-  <g
-     id="layer1"
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer">
-    <g
-       id="g3936">
-      <g
-         style="opacity:0.7"
-         id="g4091">
-        <path
-           style="fill:#fce94f;fill-opacity:1;stroke:#fcaf3e;stroke-width:0.73732895;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-           d="M 24 2.5 L 21.625 9.1875 C 22.399034 9.0641318 23.191406 9 24 9 C 24.808594 9 25.600966 9.0641317 26.375 9.1875 L 24 2.5 z M 8.8125 8.78125 L 11.84375 15.21875 C 12.779034 13.928569 13.928569 12.779034 15.21875 11.84375 L 8.8125 8.78125 z M 39.21875 8.78125 L 32.78125 11.84375 C 34.071431 12.779034 35.220966 13.928569 36.15625 15.21875 L 39.21875 8.78125 z M 9.1875 21.59375 L 2.5 23.96875 L 9.1875 26.34375 C 9.0673373 25.57952 9 24.797813 9 24 C 9 23.180625 9.0608858 22.377571 9.1875 21.59375 z M 38.8125 21.625 C 38.935868 22.399034 39 23.191406 39 24 C 39 24.808594 38.935868 25.600966 38.8125 26.375 L 45.5 24 L 38.8125 21.625 z M 11.84375 32.78125 L 8.8125 39.1875 L 15.21875 36.15625 C 13.928569 35.220966 12.779034 34.071431 11.84375 32.78125 z M 36.15625 32.78125 C 35.229789 34.05926 34.087617 35.194799 32.8125 36.125 L 39.21875 39.1875 L 36.15625 32.78125 z M 21.625 38.8125 L 24 45.5 L 26.375 38.8125 C 25.600966 38.935868 24.808594 39 24 39 C 23.191406 39 22.399034 38.935868 21.625 38.8125 z "
-           id="path7492" />
-        <path
-           style="fill:none;fill-opacity:1;stroke:url(#radialGradient4081);stroke-width:0.84646249;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-           d="M 24 5.25 L 22.65625 9.0625 C 23.098888 9.0231486 23.547187 9 24 9 C 24.452813 9 24.901112 9.0231486 25.34375 9.0625 L 24 5.25 z M 10.78125 10.75 L 12.5 14.375 C 13.071538 13.694089 13.724004 13.038745 14.40625 12.46875 L 10.78125 10.75 z M 37.25 10.75 L 33.625 12.46875 C 34.304675 13.038189 34.961811 13.695325 35.53125 14.375 L 37.25 10.75 z M 9.0625 22.625 L 5.28125 23.96875 L 9.0625 25.3125 C 9.024981 24.880146 9 24.442031 9 24 C 9 23.536406 9.0212735 23.077908 9.0625 22.625 z M 38.9375 22.65625 C 38.976851 23.098888 39 23.547187 39 24 C 39 24.452813 38.976851 24.901112 38.9375 25.34375 L 42.71875 24 L 38.9375 22.65625 z M 35.53125 33.59375 C 34.958293 34.27954 34.309985 34.957363 33.625 35.53125 L 37.25 37.25 L 35.53125 33.59375 z M 12.5 33.625 L 10.78125 37.21875 L 14.375 35.5 C 13.702932 34.935884 13.064116 34.297068 12.5 33.625 z M 22.65625 38.9375 L 24 42.71875 L 25.34375 38.9375 C 24.901112 38.976851 24.452813 39 24 39 C 23.547187 39 23.098888 38.976851 22.65625 38.9375 z "
-           id="path7494" />
+  <g id="layer1">
+    <g>
+      <g opacity="0.7">
+        <path d="M 24 2.5 L 21.625 9.1875 C 22.399034 9.0641318 23.191406 9 24 9 C 24.808594 9 25.600966 9.0641317 26.375 9.1875 L 24 2.5 z M 8.8125 8.78125 L 11.84375 15.21875 C 12.779034 13.928569 13.928569 12.779034 15.21875 11.84375 L 8.8125 8.78125 z M 39.21875 8.78125 L 32.78125 11.84375 C 34.071431 12.779034 35.220966 13.928569 36.15625 15.21875 L 39.21875 8.78125 z M 9.1875 21.59375 L 2.5 23.96875 L 9.1875 26.34375 C 9.0673373 25.57952 9 24.797813 9 24 C 9 23.180625 9.0608858 22.377571 9.1875 21.59375 z M 38.8125 21.625 C 38.935868 22.399034 39 23.191406 39 24 C 39 24.808594 38.935868 25.600966 38.8125 26.375 L 45.5 24 L 38.8125 21.625 z M 11.84375 32.78125 L 8.8125 39.1875 L 15.21875 36.15625 C 13.928569 35.220966 12.779034 34.071431 11.84375 32.78125 z M 36.15625 32.78125 C 35.229789 34.05926 34.087617 35.194799 32.8125 36.125 L 39.21875 39.1875 L 36.15625 32.78125 z M 21.625 38.8125 L 24 45.5 L 26.375 38.8125 C 25.600966 38.935868 24.808594 39 24 39 C 23.191406 39 22.399034 38.935868 21.625 38.8125 z " fill="#fce94f" fill-opacity="1" stroke="#fcaf3e" stroke-width="0.73732895" stroke-linecap="square" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-opacity="1"/>
+        <path d="M 24 5.25 L 22.65625 9.0625 C 23.098888 9.0231486 23.547187 9 24 9 C 24.452813 9 24.901112 9.0231486 25.34375 9.0625 L 24 5.25 z M 10.78125 10.75 L 12.5 14.375 C 13.071538 13.694089 13.724004 13.038745 14.40625 12.46875 L 10.78125 10.75 z M 37.25 10.75 L 33.625 12.46875 C 34.304675 13.038189 34.961811 13.695325 35.53125 14.375 L 37.25 10.75 z M 9.0625 22.625 L 5.28125 23.96875 L 9.0625 25.3125 C 9.024981 24.880146 9 24.442031 9 24 C 9 23.536406 9.0212735 23.077908 9.0625 22.625 z M 38.9375 22.65625 C 38.976851 23.098888 39 23.547187 39 24 C 39 24.452813 38.976851 24.901112 38.9375 25.34375 L 42.71875 24 L 38.9375 22.65625 z M 35.53125 33.59375 C 34.958293 34.27954 34.309985 34.957363 33.625 35.53125 L 37.25 37.25 L 35.53125 33.59375 z M 12.5 33.625 L 10.78125 37.21875 L 14.375 35.5 C 13.702932 34.935884 13.064116 34.297068 12.5 33.625 z M 22.65625 38.9375 L 24 42.71875 L 25.34375 38.9375 C 24.901112 38.976851 24.452813 39 24 39 C 23.547187 39 23.098888 38.976851 22.65625 38.9375 z " fill="none" fill-opacity="1" stroke="url(#radialGradient4081)" stroke-width="0.84646249" stroke-linecap="square" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-opacity="1"/>
       </g>
-      <g
-         id="g4046">
-        <g
-           id="g3931">
-          <path
-             inkscape:r_cy="true"
-             inkscape:r_cx="true"
-             transform="matrix(0.778062,-1.061285,1.061287,0.778062,67.47952,3.641324)"
-             d="M -22.5 -17.5 A 9.5 9.5 0 1 1  -41.5,-17.5 A 9.5 9.5 0 1 1  -22.5 -17.5 z"
-             sodipodi:ry="9.5"
-             sodipodi:rx="9.5"
-             sodipodi:cy="-17.5"
-             sodipodi:cx="-32"
-             id="path7498"
-             style="fill:#ffee54;fill-opacity:1;stroke:#fcaf3e;stroke-width:0.75991178;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-             sodipodi:type="arc" />
-          <path
-             inkscape:r_cy="true"
-             inkscape:r_cx="true"
-             transform="matrix(1.244257,-0.167707,0.216642,1.251844,67.61648,40.527)"
-             d="M -22.5 -17.5 A 9.5 9.5 0 1 1  -41.5,-17.5 A 9.5 9.5 0 1 1  -22.5 -17.5 z"
-             sodipodi:ry="9.5"
-             sodipodi:rx="9.5"
-             sodipodi:cy="-17.5"
-             sodipodi:cx="-32"
-             id="path7500"
-             style="fill:url(#radialGradient4020);fill-opacity:1;stroke:none;stroke-width:1.01737845;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-             sodipodi:type="arc" />
-          <path
-             inkscape:r_cy="true"
-             inkscape:r_cx="true"
-             transform="matrix(0.715791,-0.976349,0.97635,0.715792,64.00044,5.269544)"
-             d="M -22.5 -17.5 A 9.5 9.5 0 1 1  -41.5,-17.5 A 9.5 9.5 0 1 1  -22.5 -17.5 z"
-             sodipodi:ry="9.5"
-             sodipodi:rx="9.5"
-             sodipodi:cy="-17.5"
-             sodipodi:cx="-32"
-             id="path7502"
-             style="fill:none;fill-opacity:1;stroke:url(#linearGradient3168);stroke-width:0.82601947;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-             sodipodi:type="arc" />
+      <g>
+        <g>
+          <path transform="matrix(0.778062,-1.061285,1.061287,0.778062,67.47952,3.641324)" d="M -22.5 -17.5 A 9.5 9.5 0 1 1  -41.5,-17.5 A 9.5 9.5 0 1 1  -22.5 -17.5 z" fill="#ffee54" fill-opacity="1" stroke="#fcaf3e" stroke-width="0.75991178" stroke-linecap="square" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-opacity="1"/>
+          <path transform="matrix(1.244257,-0.167707,0.216642,1.251844,67.61648,40.527)" d="M -22.5 -17.5 A 9.5 9.5 0 1 1  -41.5,-17.5 A 9.5 9.5 0 1 1  -22.5 -17.5 z" fill="url(#radialGradient4020)" fill-opacity="1" stroke="none" stroke-width="1.01737845" stroke-linecap="square" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-opacity="1"/>
+          <path transform="matrix(0.715791,-0.976349,0.97635,0.715792,64.00044,5.269544)" d="M -22.5 -17.5 A 9.5 9.5 0 1 1  -41.5,-17.5 A 9.5 9.5 0 1 1  -22.5 -17.5 z" fill="none" fill-opacity="1" stroke="url(#linearGradient3168)" stroke-width="0.82601947" stroke-linecap="square" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-opacity="1"/>
         </g>
       </g>
     </g>
-    <g
-       id="g6783"
-       transform="translate(-263.99,459.9855)">
-      <path
-         sodipodi:nodetypes="ccsscsssscsscc"
-         id="path6785"
-         d="M 280.50000,-445.50000 C 278.22917,-445.50000 276.39009,-443.94972 275.78125,-441.87500 C 275.08802,-442.23883 274.33674,-442.50000 273.50000,-442.50000 C 270.74000,-442.50000 268.49999,-440.26001 268.50000,-437.50000 C 268.50000,-436.92107 268.66252,-436.39230 268.84375,-435.87500 C 267.47028,-435.10426 266.50000,-433.68600 266.50000,-432.00000 C 266.50000,-429.51600 268.51600,-427.49999 271.00000,-427.50000 C 271.17713,-427.50000 289.82287,-427.50000 290.00000,-427.50000 C 292.48399,-427.50000 294.50000,-429.51600 294.50000,-432.00000 C 294.50000,-433.68600 293.52972,-435.10426 292.15625,-435.87500 C 292.33749,-436.39229 292.50000,-436.92108 292.50000,-437.50000 C 292.50000,-440.26000 290.26000,-442.49999 287.50000,-442.50000 C 286.66326,-442.50000 285.91198,-442.23883 285.21875,-441.87500 C 284.60991,-443.94972 282.77083,-445.50000 280.50000,-445.50000 z "
-         style="fill:#c4c5c2;fill-opacity:1.0000000;stroke:#888a85;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
-      <path
-         sodipodi:nodetypes="ccsscsssscsscc"
-         id="path6787"
-         d="M 280.50000,-445.00000 C 278.31028,-445.00000 276.77640,-443.66423 276.10445,-441.15648 C 275.43599,-441.50010 274.55686,-441.98983 273.75000,-441.98983 C 271.03349,-441.98983 268.99486,-440.05101 268.99487,-437.44429 C 268.99487,-436.89752 269.26208,-436.11085 269.43683,-435.62228 C 268.11240,-434.89433 267.00000,-433.73178 267.00000,-432.24973 C 267.00000,-429.90368 268.54617,-427.99964 271.33928,-427.99964 C 271.51009,-427.99964 289.48992,-427.99964 289.66072,-427.99964 C 292.43173,-427.99964 294.00000,-429.90368 294.00000,-432.24973 C 294.00000,-433.84210 292.88760,-434.91642 291.56317,-435.64437 C 291.73793,-436.13293 292.02724,-436.89753 292.02724,-437.44429 C 292.02724,-440.05100 289.91143,-442.01192 287.25001,-442.01193 C 286.44314,-442.01193 285.60820,-441.52219 284.93974,-441.17857 C 284.29089,-443.60011 282.68973,-445.00000 280.50000,-445.00000 z "
-         style="opacity:1.0000000;fill:url(#linearGradient6827);fill-opacity:1.0000000;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
-      <g
-         id="g6789">
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path6791"
-           sodipodi:cx="288.37500"
-           sodipodi:cy="-437.59375"
-           sodipodi:rx="3.3125000"
-           sodipodi:ry="3.3125000"
-           d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-           transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:url(#linearGradient6829);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path6793"
-           sodipodi:cx="288.37500"
-           sodipodi:cy="-437.59375"
-           sodipodi:rx="3.3125000"
-           sodipodi:ry="3.3125000"
-           d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-           transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" />
+    <g transform="translate(-263.99,459.9855)">
+      <path d="M 280.50000,-445.50000 C 278.22917,-445.50000 276.39009,-443.94972 275.78125,-441.87500 C 275.08802,-442.23883 274.33674,-442.50000 273.50000,-442.50000 C 270.74000,-442.50000 268.49999,-440.26001 268.50000,-437.50000 C 268.50000,-436.92107 268.66252,-436.39230 268.84375,-435.87500 C 267.47028,-435.10426 266.50000,-433.68600 266.50000,-432.00000 C 266.50000,-429.51600 268.51600,-427.49999 271.00000,-427.50000 C 271.17713,-427.50000 289.82287,-427.50000 290.00000,-427.50000 C 292.48399,-427.50000 294.50000,-429.51600 294.50000,-432.00000 C 294.50000,-433.68600 293.52972,-435.10426 292.15625,-435.87500 C 292.33749,-436.39229 292.50000,-436.92108 292.50000,-437.50000 C 292.50000,-440.26000 290.26000,-442.49999 287.50000,-442.50000 C 286.66326,-442.50000 285.91198,-442.23883 285.21875,-441.87500 C 284.60991,-443.94972 282.77083,-445.50000 280.50000,-445.50000 z " fill="#c4c5c2" fill-opacity="1.0000000" stroke="#888a85" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+      <path d="M 280.50000,-445.00000 C 278.31028,-445.00000 276.77640,-443.66423 276.10445,-441.15648 C 275.43599,-441.50010 274.55686,-441.98983 273.75000,-441.98983 C 271.03349,-441.98983 268.99486,-440.05101 268.99487,-437.44429 C 268.99487,-436.89752 269.26208,-436.11085 269.43683,-435.62228 C 268.11240,-434.89433 267.00000,-433.73178 267.00000,-432.24973 C 267.00000,-429.90368 268.54617,-427.99964 271.33928,-427.99964 C 271.51009,-427.99964 289.48992,-427.99964 289.66072,-427.99964 C 292.43173,-427.99964 294.00000,-429.90368 294.00000,-432.24973 C 294.00000,-433.84210 292.88760,-434.91642 291.56317,-435.64437 C 291.73793,-436.13293 292.02724,-436.89753 292.02724,-437.44429 C 292.02724,-440.05100 289.91143,-442.01192 287.25001,-442.01193 C 286.44314,-442.01193 285.60820,-441.52219 284.93974,-441.17857 C 284.29089,-443.60011 282.68973,-445.00000 280.50000,-445.00000 z " opacity="1.0000000" fill="url(#linearGradient6827)" fill-opacity="1.0000000" stroke="none" stroke-width="0.99999958" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+      <g>
+        <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" opacity="1.0000000" fill="url(#linearGradient6829)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
       </g>
-      <rect
-         y="-438.00000"
-         x="271.00000"
-         height="9.0000000"
-         width="20.000000"
-         id="rect6795"
-         style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
-      <path
-         transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830195,-35.68869)"
-         d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-         sodipodi:ry="3.3125000"
-         sodipodi:rx="3.3125000"
-         sodipodi:cy="-437.59375"
-         sodipodi:cx="288.37500"
-         id="path6797"
-         style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-         sodipodi:type="arc" />
-      <g
-         id="g6799">
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path6801"
-           sodipodi:cx="288.37500"
-           sodipodi:cy="-437.59375"
-           sodipodi:rx="3.3125000"
-           sodipodi:ry="3.3125000"
-           d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-           transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19811,24.86321)" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:url(#linearGradient6831);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path6803"
-           sodipodi:cx="288.37500"
-           sodipodi:cy="-437.59375"
-           sodipodi:rx="3.3125000"
-           sodipodi:ry="3.3125000"
-           d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-           transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19818,24.86331)" />
+      <rect y="-438.00000" x="271.00000" height="9.0000000" width="20.000000" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+      <path transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830195,-35.68869)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+      <g>
+        <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19811,24.86321)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19818,24.86331)" opacity="1.0000000" fill="url(#linearGradient6831)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
       </g>
-      <g
-         id="g6805">
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path6807"
-           sodipodi:cx="288.37500"
-           sodipodi:cy="-437.59375"
-           sodipodi:rx="3.3125000"
-           sodipodi:ry="3.3125000"
-           d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-           transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:url(#linearGradient6833);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path6809"
-           sodipodi:cx="288.37500"
-           sodipodi:cy="-437.59375"
-           sodipodi:rx="3.3125000"
-           sodipodi:ry="3.3125000"
-           d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-           transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" />
+      <g>
+        <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" opacity="1.0000000" fill="url(#linearGradient6833)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
       </g>
-      <g
-         transform="translate(-1.000000,0.000000)"
-         id="g6811">
-        <path
-           style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           d="M 280.46875,-440.96875 C 276.88937,-440.96875 274.00000,-438.04812 274.00000,-434.46875 C 274.00000,-432.09807 275.34943,-430.13096 277.25000,-429.00000 L 283.71875,-429.00000 C 285.61932,-430.13096 286.96875,-432.12931 286.96875,-434.50000 C 286.96875,-438.07938 284.04812,-440.96875 280.46875,-440.96875 z "
-           id="path6813" />
-        <path
-           style="opacity:1.0000000;fill:url(#linearGradient6835);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           d="M 280.50000,-441.00000 C 276.91200,-441.00000 274.00000,-438.08799 274.00000,-434.50000 C 274.00000,-432.12360 275.34485,-430.13368 277.25000,-429.00000 L 283.75000,-429.00000 C 285.65515,-430.13368 287.00000,-432.12360 287.00000,-434.50000 C 287.00000,-438.08800 284.08800,-440.99999 280.50000,-441.00000 z "
-           id="path6815" />
+      <g transform="translate(-1.000000,0.000000)">
+        <path d="M 280.46875,-440.96875 C 276.88937,-440.96875 274.00000,-438.04812 274.00000,-434.46875 C 274.00000,-432.09807 275.34943,-430.13096 277.25000,-429.00000 L 283.71875,-429.00000 C 285.61932,-430.13096 286.96875,-432.12931 286.96875,-434.50000 C 286.96875,-438.07938 284.04812,-440.96875 280.46875,-440.96875 z " opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 280.50000,-441.00000 C 276.91200,-441.00000 274.00000,-438.08799 274.00000,-434.50000 C 274.00000,-432.12360 275.34485,-430.13368 277.25000,-429.00000 L 283.75000,-429.00000 C 285.65515,-430.13368 287.00000,-432.12360 287.00000,-434.50000 C 287.00000,-438.08800 284.08800,-440.99999 280.50000,-441.00000 z " opacity="1.0000000" fill="url(#linearGradient6835)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
       </g>
-      <path
-         transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830296,-35.68884)"
-         d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-         sodipodi:ry="3.3125000"
-         sodipodi:rx="3.3125000"
-         sodipodi:cy="-437.59375"
-         sodipodi:cx="288.37500"
-         id="path6817"
-         style="opacity:1.0000000;fill:url(#linearGradient6837);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-         sodipodi:type="arc" />
-      <path
-         sodipodi:nodetypes="ccss"
-         id="path6819"
-         d="M 292.95640,-437.33396 C 292.95487,-434.64940 289.68714,-433.62001 289.68714,-433.62001 C 289.68714,-433.62001 292.03588,-435.24596 292.02399,-437.32502 C 292.02399,-437.32502 292.95640,-437.33396 292.95640,-437.33396 z "
-         style="fill:#888a85;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" />
-      <g
-         transform="matrix(1.142857,0.000000,0.000000,1.142857,-28.57139,67.00008)"
-         id="g6821">
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path6823"
-           sodipodi:cx="288.37500"
-           sodipodi:cy="-437.59375"
-           sodipodi:rx="3.3125000"
-           sodipodi:ry="3.3125000"
-           d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-           transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:url(#linearGradient6839);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path6825"
-           sodipodi:cx="288.37500"
-           sodipodi:cy="-437.59375"
-           sodipodi:rx="3.3125000"
-           sodipodi:ry="3.3125000"
-           d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-           transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" />
+      <path transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830296,-35.68884)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" opacity="1.0000000" fill="url(#linearGradient6837)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+      <path d="M 292.95640,-437.33396 C 292.95487,-434.64940 289.68714,-433.62001 289.68714,-433.62001 C 289.68714,-433.62001 292.03588,-435.24596 292.02399,-437.32502 C 292.02399,-437.32502 292.95640,-437.33396 292.95640,-437.33396 z " fill="#888a85" fill-opacity="1.0000000" fill-rule="evenodd" stroke="none" stroke-width="1.0000000px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1.0000000"/>
+      <g transform="matrix(1.142857,0.000000,0.000000,1.142857,-28.57139,67.00008)">
+        <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" opacity="1.0000000" fill="url(#linearGradient6839)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
       </g>
     </g>
   </g>
diff --git a/demos/embedded/weatherinfo/icons/weather-sunny.svg b/demos/embedded/weatherinfo/icons/weather-sunny.svg
index 0360ac7..248199c 100644
--- a/demos/embedded/weatherinfo/icons/weather-sunny.svg
+++ b/demos/embedded/weatherinfo/icons/weather-sunny.svg
@@ -1,1225 +1,32 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="48px"
-   height="48px"
-   id="svg1306"
-   sodipodi:version="0.32"
-   inkscape:version="0.46"
-   sodipodi:docbase="/home/garrett/Source/tango-icon-theme/scalable/status"
-   sodipodi:docname="weather-sunny.svg"
-   inkscape:output_extension="org.inkscape.output.svg.inkscape">
-  <defs
-     id="defs1308">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 24 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="48 : 24 : 1"
-       inkscape:persp3d-origin="24 : 16 : 1"
-       id="perspective37214" />
-    <linearGradient
-       id="linearGradient4083">
-      <stop
-         id="stop4085"
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:0;" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="0.75"
-         id="stop4089" />
-      <stop
-         id="stop4087"
-         offset="1"
-         style="stop-color:#ffffff;stop-opacity:1;" />
+<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="48px" height="48px" id="svg1306">
+  <defs id="defs1308">
+    <linearGradient id="linearGradient4083">
+      <stop id="stop4085" offset="0" stop-color="#ffffff" stop-opacity="0"/>
+      <stop offset="0.75" id="stop4089" stop-color="#ffffff" stop-opacity="0"/>
+      <stop id="stop4087" offset="1" stop-color="#ffffff" stop-opacity="1"/>
     </linearGradient>
-    <linearGradient
-       id="linearGradient4032">
-      <stop
-         id="stop4034"
-         offset="0"
-         style="stop-color:#fff7c2;stop-opacity:0.63829786" />
-      <stop
-         style="stop-color:#fcaf3e;stop-opacity:0.18348624;"
-         offset="0.59394139"
-         id="stop4036" />
-      <stop
-         id="stop4038"
-         offset="0.83850551"
-         style="stop-color:#fcaf3e;stop-opacity:0.50458717;" />
-      <stop
-         id="stop4040"
-         offset="1"
-         style="stop-color:#fcaf3e;stop-opacity:1;" />
+    <linearGradient id="linearGradient4032">
+      <stop id="stop4034" offset="0" stop-color="#fff7c2" stop-opacity="0.63829786"/>
+      <stop offset="0.59394139" id="stop4036" stop-color="#fcaf3e" stop-opacity="0.18348624"/>
+      <stop id="stop4038" offset="0.83850551" stop-color="#fcaf3e" stop-opacity="0.50458717"/>
+      <stop id="stop4040" offset="1" stop-color="#fcaf3e" stop-opacity="1"/>
     </linearGradient>
-    <linearGradient
-       id="linearGradient4026">
-      <stop
-         id="stop4028"
-         offset="0"
-         style="stop-color:#fff9c6;stop-opacity:1" />
-      <stop
-         style="stop-color:#fff28c;stop-opacity:1;"
-         offset="0.54166669"
-         id="stop4042" />
-      <stop
-         id="stop4030"
-         offset="1"
-         style="stop-color:#ffea85;stop-opacity:1;" />
+    <linearGradient id="linearGradient4026">
+      <stop id="stop4028" offset="0" stop-color="#fff9c6" stop-opacity="1"/>
+      <stop offset="0.54166669" id="stop4042" stop-color="#fff28c" stop-opacity="1"/>
+      <stop id="stop4030" offset="1" stop-color="#ffea85" stop-opacity="1"/>
     </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2298"
-       id="linearGradient7748"
-       gradientUnits="userSpaceOnUse"
-       x1="-27.006643"
-       y1="-37.550461"
-       x2="-34.700153"
-       y2="-4.4493785" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2527"
-       id="linearGradient7746"
-       gradientUnits="userSpaceOnUse"
-       x1="-25.137094"
-       y1="-1.2491118"
-       x2="-35.652866"
-       y2="-24.884460" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3478"
-       id="linearGradient7744"
-       gradientUnits="userSpaceOnUse"
-       x1="11.149398"
-       y1="-43.997444"
-       x2="4.9625983"
-       y2="-8.3080902" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient4829">
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="0"
-         id="stop4831" />
-      <stop
-         style="stop-color:#000000;stop-opacity:0;"
-         offset="1"
-         id="stop4833" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient3478">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop3480" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop3482" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2298">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop2300" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop2302" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient3347">
-      <stop
-         style="stop-color:#edd400;stop-opacity:1;"
-         offset="0"
-         id="stop3349" />
-      <stop
-         style="stop-color:#edd400;stop-opacity:0;"
-         offset="1"
-         id="stop3351" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2527">
-      <stop
-         style="stop-color:#fcaf3e;stop-opacity:0;"
-         offset="0"
-         id="stop2529" />
-      <stop
-         id="stop4022"
-         offset="0.66644967"
-         style="stop-color:#fcaf3e;stop-opacity:0.17431192;" />
-      <stop
-         style="stop-color:#fcaf3e;stop-opacity:0.55963302;"
-         offset="0.86458337"
-         id="stop4024" />
-      <stop
-         style="stop-color:#fcaf3e;stop-opacity:1;"
-         offset="1"
-         id="stop2531" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2500">
-      <stop
-         style="stop-color:#fce94f;stop-opacity:1;"
-         offset="0"
-         id="stop2502" />
-      <stop
-         style="stop-color:#fce94f;stop-opacity:0;"
-         offset="1"
-         id="stop2504" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2392">
-      <stop
-         style="stop-color:#eeeeec;stop-opacity:1;"
-         offset="0"
-         id="stop2394" />
-      <stop
-         style="stop-color:#eeeeec;stop-opacity:0;"
-         offset="1"
-         id="stop2396" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2254">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop2256" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop2258" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2263"
-       gradientUnits="userSpaceOnUse"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581"
-       gradientTransform="translate(-1.608757,3.097272)" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2267"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(3.555020,0.968578)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2271"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(9.263651,3.495228)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2275"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(8.497184,-2.330824)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2279"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(14.46340,2.014073)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2283"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2287"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2291"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2295"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2299"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2303"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(1.707748,-5.784024)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2311"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2350"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(16.14002,24.66420)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2352"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-0.932144,25.87240)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2354"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(5.356636,23.86870)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2356"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(11.19027,26.52035)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2358"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(10.30638,19.27251)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2360"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,0.229156,30.76299)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2362"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,16.67145,27.22746)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2364"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,17.05272,31.47010)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2366"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-4.010744,24.96040)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2368"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,8.185476,29.52556)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2370"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(4.207586,21.30544)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2372"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.12415,32.08882)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2392"
-       id="linearGradient2398"
-       x1="6.6651416"
-       y1="13.802798"
-       x2="41.403877"
-       y2="13.802798"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2426"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(14.46340,2.014073)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2428"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(8.497184,-2.330824)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2430"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-1.608757,3.097272)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2432"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(3.555020,0.968578)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2434"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(9.263651,3.495228)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2436"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2438"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2440"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2442"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2444"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2446"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2392"
-       id="linearGradient2448"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)"
-       x1="6.6651416"
-       y1="13.802798"
-       x2="41.403877"
-       y2="13.802798" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2392"
-       id="linearGradient2451"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,4.378541,10.65407)"
-       x1="6.6651416"
-       y1="13.802798"
-       x2="41.403877"
-       y2="13.802798" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2457"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2460"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2463"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2469"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2472"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(12.51365,8.745228)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2475"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(6.805020,6.218578)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2478"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(1.641243,8.347272)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2483"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(0.842481,-3.998086)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2500"
-       id="linearGradient2506"
-       x1="37.000000"
-       y1="-21.750000"
-       x2="53.750000"
-       y2="9.0000000"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2500"
-       id="linearGradient2509"
-       gradientUnits="userSpaceOnUse"
-       x1="37.000000"
-       y1="-21.750000"
-       x2="53.750000"
-       y2="9.0000000"
-       gradientTransform="matrix(0.889091,0.000000,0.000000,0.617886,-4.771368,39.81402)" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2500"
-       id="linearGradient2513"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.605509,0.000000,0.000000,0.710542,-0.224971,42.19500)"
-       x1="38.857941"
-       y1="-18.407482"
-       x2="53.750000"
-       y2="9.0000000" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2500"
-       id="linearGradient2517"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.414169,0.000000,0.000000,0.778853,-1.910724,36.87850)"
-       x1="37.000000"
-       y1="-21.750000"
-       x2="53.750000"
-       y2="9.0000000" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2527"
-       id="linearGradient2533"
-       x1="-25.137094"
-       y1="-1.2491118"
-       x2="-35.652866"
-       y2="-24.884460"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2537"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(17.33814,3.415985)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2541"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(13.40064,1.353485)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2555"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-7.499805,1.708617)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2563"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-0.726830,2.481141)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3347"
-       id="linearGradient3353"
-       x1="23.303862"
-       y1="29.115711"
-       x2="29.750000"
-       y2="46.092930"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3366"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(13.40064,1.353485)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3368"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(1.641243,8.347272)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3370"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(6.805020,6.218578)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3372"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(12.51365,8.745228)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3374"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3376"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3378"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3380"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3383"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3386"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3389"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3392"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3395"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(3.674812,3.088370)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3398"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-2.033818,0.561720)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3401"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-7.197595,2.690414)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3405"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(4.561802,-4.303373)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient1514"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(88.49344,-9.697877)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient1516"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,56.25514,-12.39388)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient1518"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,79.36909,-3.193747)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2527"
-       id="linearGradient1520"
-       gradientUnits="userSpaceOnUse"
-       x1="-25.137094"
-       y1="-1.2491118"
-       x2="-35.652866"
-       y2="-24.884460" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient1522"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-7.197595,2.690414)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient1524"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-2.033818,0.561720)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient1526"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(3.674812,3.088370)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient1528"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient1530"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient1532"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient1534"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient1536"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,123.1162,-5.446357)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient1538"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(57.97693,-10.56876)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2527"
-       id="linearGradient1557"
-       gradientUnits="userSpaceOnUse"
-       x1="-25.137094"
-       y1="-1.2491118"
-       x2="-35.652866"
-       y2="-24.884460" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4829"
-       id="radialGradient4835"
-       cx="-35.001785"
-       cy="-1.1439217"
-       fx="-35.001785"
-       fy="-1.1439217"
-       r="17.500893"
-       gradientTransform="matrix(1.000000,0.000000,0.000000,0.565657,-5.564992e-15,-0.496855)"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2298"
-       id="linearGradient1427"
-       gradientUnits="userSpaceOnUse"
-       x1="-27.006643"
-       y1="-37.550461"
-       x2="-34.700153"
-       y2="-4.4493785" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3478"
-       id="linearGradient1431"
-       gradientUnits="userSpaceOnUse"
-       x1="11.149398"
-       y1="-43.997444"
-       x2="4.9625983"
-       y2="-8.3080902" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3478"
-       id="linearGradient14128"
-       gradientUnits="userSpaceOnUse"
-       x1="11.149398"
-       y1="-43.997444"
-       x2="4.9625983"
-       y2="-8.3080902" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2527"
-       id="linearGradient14130"
-       gradientUnits="userSpaceOnUse"
-       x1="-25.137094"
-       y1="-1.2491118"
-       x2="-35.652866"
-       y2="-24.884460" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2298"
-       id="linearGradient14132"
-       gradientUnits="userSpaceOnUse"
-       x1="-27.006643"
-       y1="-37.550461"
-       x2="-34.700153"
-       y2="-4.4493785" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2527"
-       id="linearGradient3151"
-       gradientUnits="userSpaceOnUse"
-       x1="-25.137094"
-       y1="-1.2491118"
-       x2="-35.652866"
-       y2="-24.884460" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2298"
-       id="linearGradient3153"
-       gradientUnits="userSpaceOnUse"
-       x1="-27.006643"
-       y1="-37.550461"
-       x2="-34.700153"
-       y2="-4.4493785" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3478"
-       id="linearGradient3155"
-       gradientUnits="userSpaceOnUse"
-       x1="11.149398"
-       y1="-43.997444"
-       x2="4.9625983"
-       y2="-8.3080902" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3478"
-       id="linearGradient3161"
-       gradientUnits="userSpaceOnUse"
-       x1="11.149398"
-       y1="-43.997444"
-       x2="4.9625983"
-       y2="-8.3080902" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4026"
-       id="linearGradient3168"
-       gradientUnits="userSpaceOnUse"
-       x1="-28.968945"
-       y1="-25.326815"
-       x2="-37.19698"
-       y2="-9.5590506" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4032"
-       id="radialGradient4020"
-       cx="-33.519073"
-       cy="-22.113297"
-       fx="-33.519073"
-       fy="-22.113297"
-       r="9.5"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.487739,1.292402,-1.10267,0.497242,-41.77393,32.41492)" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3478"
-       id="linearGradient4057"
-       gradientUnits="userSpaceOnUse"
-       x1="11.149398"
-       y1="-43.997444"
-       x2="4.9625983"
-       y2="-8.3080902" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4083"
-       id="radialGradient4081"
-       cx="23.99999"
-       cy="23.381506"
-       fx="23.99999"
-       fy="23.381506"
-       r="19.141981"
-       gradientTransform="matrix(1.006701,2.235326e-16,-2.23715e-16,1.007522,-0.160816,0.426981)"
-       gradientUnits="userSpaceOnUse" />
+    <linearGradient xlink:href="#linearGradient4026" id="linearGradient3168" gradientUnits="userSpaceOnUse" x1="-28.968945" y1="-25.326815" x2="-37.19698" y2="-9.5590506"/>
+    <radialGradient xlink:href="#linearGradient4032" id="radialGradient4020" cx="-33.519073" cy="-22.113297" fx="-33.519073" fy="-22.113297" r="9.5" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.487739,1.292402,-1.10267,0.497242,-41.77393,32.41492)"/>
+    <radialGradient xlink:href="#linearGradient4083" id="radialGradient4081" cx="23.99999" cy="23.381506" fx="23.99999" fy="23.381506" r="19.141981" gradientTransform="matrix(1.006701,2.235326e-16,-2.23715e-16,1.007522,-0.160816,0.426981)" gradientUnits="userSpaceOnUse"/>
   </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="10.54135"
-     inkscape:cx="23.386176"
-     inkscape:cy="24.950603"
-     inkscape:current-layer="layer1"
-     showgrid="true"
-     inkscape:grid-bbox="true"
-     inkscape:document-units="px"
-     inkscape:window-width="1013"
-     inkscape:window-height="965"
-     inkscape:window-x="0"
-     inkscape:window-y="0"
-     inkscape:showpageshadow="false" />
-  <metadata
-     id="metadata1311">
+  
+  <metadata id="metadata1311">
     <rdf:RDF>
-      <cc:Work
-         rdf:about="">
+      <cc:Work rdf:about="">
         <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
         <dc:title>weather-clear</dc:title>
         <dc:date>January 2006</dc:date>
         <dc:creator>
@@ -1240,89 +47,34 @@
             <rdf:li>notification</rdf:li>
           </rdf:Bag>
         </dc:subject>
-        <cc:license
-           rdf:resource="http://creativecommons.org/licenses/by-sa/2.0/" />
+        <cc:license rdf:resource="http://creativecommons.org/licenses/by-sa/2.0/"/>
         <dc:contributor>
           <cc:Agent>
             <dc:title>Garrett LeSage</dc:title>
           </cc:Agent>
         </dc:contributor>
       </cc:Work>
-      <cc:License
-         rdf:about="http://creativecommons.org/licenses/by-sa/2.0/">
-        <cc:permits
-           rdf:resource="http://web.resource.org/cc/Reproduction" />
-        <cc:permits
-           rdf:resource="http://web.resource.org/cc/Distribution" />
-        <cc:requires
-           rdf:resource="http://web.resource.org/cc/Notice" />
-        <cc:requires
-           rdf:resource="http://web.resource.org/cc/Attribution" />
-        <cc:permits
-           rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
-        <cc:requires
-           rdf:resource="http://web.resource.org/cc/ShareAlike" />
+      <cc:License rdf:about="http://creativecommons.org/licenses/by-sa/2.0/">
+        <cc:permits rdf:resource="http://web.resource.org/cc/Reproduction"/>
+        <cc:permits rdf:resource="http://web.resource.org/cc/Distribution"/>
+        <cc:requires rdf:resource="http://web.resource.org/cc/Notice"/>
+        <cc:requires rdf:resource="http://web.resource.org/cc/Attribution"/>
+        <cc:permits rdf:resource="http://web.resource.org/cc/DerivativeWorks"/>
+        <cc:requires rdf:resource="http://web.resource.org/cc/ShareAlike"/>
       </cc:License>
     </rdf:RDF>
   </metadata>
-  <g
-     id="layer1"
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer">
-    <g
-       id="g3936">
-      <g
-         style="opacity:0.7"
-         id="g4091">
-        <path
-           style="fill:#fce94f;fill-opacity:1;stroke:#fcaf3e;stroke-width:0.73732895;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-           d="M 24 2.5 L 21.625 9.1875 C 22.399034 9.0641318 23.191406 9 24 9 C 24.808594 9 25.600966 9.0641317 26.375 9.1875 L 24 2.5 z M 8.8125 8.78125 L 11.84375 15.21875 C 12.779034 13.928569 13.928569 12.779034 15.21875 11.84375 L 8.8125 8.78125 z M 39.21875 8.78125 L 32.78125 11.84375 C 34.071431 12.779034 35.220966 13.928569 36.15625 15.21875 L 39.21875 8.78125 z M 9.1875 21.59375 L 2.5 23.96875 L 9.1875 26.34375 C 9.0673373 25.57952 9 24.797813 9 24 C 9 23.180625 9.0608858 22.377571 9.1875 21.59375 z M 38.8125 21.625 C 38.935868 22.399034 39 23.191406 39 24 C 39 24.808594 38.935868 25.600966 38.8125 26.375 L 45.5 24 L 38.8125 21.625 z M 11.84375 32.78125 L 8.8125 39.1875 L 15.21875 36.15625 C 13.928569 35.220966 12.779034 34.071431 11.84375 32.78125 z M 36.15625 32.78125 C 35.229789 34.05926 34.087617 35.194799 32.8125 36.125 L 39.21875 39.1875 L 36.15625 32.78125 z M 21.625 38.8125 L 24 45.5 L 26.375 38.8125 C 25.600966 38.935868 24.808594 39 24 39 C 23.191406 39 22.399034 38.935868 21.625 38.8125 z "
-           id="path7492" />
-        <path
-           style="fill:none;fill-opacity:1;stroke:url(#radialGradient4081);stroke-width:0.84646249;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-           d="M 24 5.25 L 22.65625 9.0625 C 23.098888 9.0231486 23.547187 9 24 9 C 24.452813 9 24.901112 9.0231486 25.34375 9.0625 L 24 5.25 z M 10.78125 10.75 L 12.5 14.375 C 13.071538 13.694089 13.724004 13.038745 14.40625 12.46875 L 10.78125 10.75 z M 37.25 10.75 L 33.625 12.46875 C 34.304675 13.038189 34.961811 13.695325 35.53125 14.375 L 37.25 10.75 z M 9.0625 22.625 L 5.28125 23.96875 L 9.0625 25.3125 C 9.024981 24.880146 9 24.442031 9 24 C 9 23.536406 9.0212735 23.077908 9.0625 22.625 z M 38.9375 22.65625 C 38.976851 23.098888 39 23.547187 39 24 C 39 24.452813 38.976851 24.901112 38.9375 25.34375 L 42.71875 24 L 38.9375 22.65625 z M 35.53125 33.59375 C 34.958293 34.27954 34.309985 34.957363 33.625 35.53125 L 37.25 37.25 L 35.53125 33.59375 z M 12.5 33.625 L 10.78125 37.21875 L 14.375 35.5 C 13.702932 34.935884 13.064116 34.297068 12.5 33.625 z M 22.65625 38.9375 L 24 42.71875 L 25.34375 38.9375 C 24.901112 38.976851 24.452813 39 24 39 C 23.547187 39 23.098888 38.976851 22.65625 38.9375 z "
-           id="path7494" />
+  <g id="layer1">
+    <g>
+      <g opacity="0.7">
+        <path d="M 24 2.5 L 21.625 9.1875 C 22.399034 9.0641318 23.191406 9 24 9 C 24.808594 9 25.600966 9.0641317 26.375 9.1875 L 24 2.5 z M 8.8125 8.78125 L 11.84375 15.21875 C 12.779034 13.928569 13.928569 12.779034 15.21875 11.84375 L 8.8125 8.78125 z M 39.21875 8.78125 L 32.78125 11.84375 C 34.071431 12.779034 35.220966 13.928569 36.15625 15.21875 L 39.21875 8.78125 z M 9.1875 21.59375 L 2.5 23.96875 L 9.1875 26.34375 C 9.0673373 25.57952 9 24.797813 9 24 C 9 23.180625 9.0608858 22.377571 9.1875 21.59375 z M 38.8125 21.625 C 38.935868 22.399034 39 23.191406 39 24 C 39 24.808594 38.935868 25.600966 38.8125 26.375 L 45.5 24 L 38.8125 21.625 z M 11.84375 32.78125 L 8.8125 39.1875 L 15.21875 36.15625 C 13.928569 35.220966 12.779034 34.071431 11.84375 32.78125 z M 36.15625 32.78125 C 35.229789 34.05926 34.087617 35.194799 32.8125 36.125 L 39.21875 39.1875 L 36.15625 32.78125 z M 21.625 38.8125 L 24 45.5 L 26.375 38.8125 C 25.600966 38.935868 24.808594 39 24 39 C 23.191406 39 22.399034 38.935868 21.625 38.8125 z " fill="#fce94f" fill-opacity="1" stroke="#fcaf3e" stroke-width="0.73732895" stroke-linecap="square" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-opacity="1"/>
+        <path d="M 24 5.25 L 22.65625 9.0625 C 23.098888 9.0231486 23.547187 9 24 9 C 24.452813 9 24.901112 9.0231486 25.34375 9.0625 L 24 5.25 z M 10.78125 10.75 L 12.5 14.375 C 13.071538 13.694089 13.724004 13.038745 14.40625 12.46875 L 10.78125 10.75 z M 37.25 10.75 L 33.625 12.46875 C 34.304675 13.038189 34.961811 13.695325 35.53125 14.375 L 37.25 10.75 z M 9.0625 22.625 L 5.28125 23.96875 L 9.0625 25.3125 C 9.024981 24.880146 9 24.442031 9 24 C 9 23.536406 9.0212735 23.077908 9.0625 22.625 z M 38.9375 22.65625 C 38.976851 23.098888 39 23.547187 39 24 C 39 24.452813 38.976851 24.901112 38.9375 25.34375 L 42.71875 24 L 38.9375 22.65625 z M 35.53125 33.59375 C 34.958293 34.27954 34.309985 34.957363 33.625 35.53125 L 37.25 37.25 L 35.53125 33.59375 z M 12.5 33.625 L 10.78125 37.21875 L 14.375 35.5 C 13.702932 34.935884 13.064116 34.297068 12.5 33.625 z M 22.65625 38.9375 L 24 42.71875 L 25.34375 38.9375 C 24.901112 38.976851 24.452813 39 24 39 C 23.547187 39 23.098888 38.976851 22.65625 38.9375 z " fill="none" fill-opacity="1" stroke="url(#radialGradient4081)" stroke-width="0.84646249" stroke-linecap="square" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-opacity="1"/>
       </g>
-      <g
-         id="g4046">
-        <g
-           id="g3931">
-          <path
-             inkscape:r_cy="true"
-             inkscape:r_cx="true"
-             transform="matrix(0.778062,-1.061285,1.061287,0.778062,67.47952,3.641324)"
-             d="M -22.5 -17.5 A 9.5 9.5 0 1 1  -41.5,-17.5 A 9.5 9.5 0 1 1  -22.5 -17.5 z"
-             sodipodi:ry="9.5"
-             sodipodi:rx="9.5"
-             sodipodi:cy="-17.5"
-             sodipodi:cx="-32"
-             id="path7498"
-             style="fill:#ffee54;fill-opacity:1;stroke:#fcaf3e;stroke-width:0.75991178;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-             sodipodi:type="arc" />
-          <path
-             inkscape:r_cy="true"
-             inkscape:r_cx="true"
-             transform="matrix(1.244257,-0.167707,0.216642,1.251844,67.61648,40.527)"
-             d="M -22.5 -17.5 A 9.5 9.5 0 1 1  -41.5,-17.5 A 9.5 9.5 0 1 1  -22.5 -17.5 z"
-             sodipodi:ry="9.5"
-             sodipodi:rx="9.5"
-             sodipodi:cy="-17.5"
-             sodipodi:cx="-32"
-             id="path7500"
-             style="fill:url(#radialGradient4020);fill-opacity:1;stroke:none;stroke-width:1.01737845;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-             sodipodi:type="arc" />
-          <path
-             inkscape:r_cy="true"
-             inkscape:r_cx="true"
-             transform="matrix(0.715791,-0.976349,0.97635,0.715792,64.00044,5.269544)"
-             d="M -22.5 -17.5 A 9.5 9.5 0 1 1  -41.5,-17.5 A 9.5 9.5 0 1 1  -22.5 -17.5 z"
-             sodipodi:ry="9.5"
-             sodipodi:rx="9.5"
-             sodipodi:cy="-17.5"
-             sodipodi:cx="-32"
-             id="path7502"
-             style="fill:none;fill-opacity:1;stroke:url(#linearGradient3168);stroke-width:0.82601947;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-             sodipodi:type="arc" />
+      <g>
+        <g>
+          <path transform="matrix(0.778062,-1.061285,1.061287,0.778062,67.47952,3.641324)" d="M -22.5 -17.5 A 9.5 9.5 0 1 1  -41.5,-17.5 A 9.5 9.5 0 1 1  -22.5 -17.5 z" fill="#ffee54" fill-opacity="1" stroke="#fcaf3e" stroke-width="0.75991178" stroke-linecap="square" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-opacity="1"/>
+          <path transform="matrix(1.244257,-0.167707,0.216642,1.251844,67.61648,40.527)" d="M -22.5 -17.5 A 9.5 9.5 0 1 1  -41.5,-17.5 A 9.5 9.5 0 1 1  -22.5 -17.5 z" fill="url(#radialGradient4020)" fill-opacity="1" stroke="none" stroke-width="1.01737845" stroke-linecap="square" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-opacity="1"/>
+          <path transform="matrix(0.715791,-0.976349,0.97635,0.715792,64.00044,5.269544)" d="M -22.5 -17.5 A 9.5 9.5 0 1 1  -41.5,-17.5 A 9.5 9.5 0 1 1  -22.5 -17.5 z" fill="none" fill-opacity="1" stroke="url(#linearGradient3168)" stroke-width="0.82601947" stroke-linecap="square" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-opacity="1"/>
         </g>
       </g>
     </g>
diff --git a/demos/embedded/weatherinfo/icons/weather-thundershower.svg b/demos/embedded/weatherinfo/icons/weather-thundershower.svg
index 406abfa..e1c2286 100644
--- a/demos/embedded/weatherinfo/icons/weather-thundershower.svg
+++ b/demos/embedded/weatherinfo/icons/weather-thundershower.svg
@@ -1,4064 +1,108 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="48px"
-   height="48px"
-   id="svg1306"
-   sodipodi:version="0.32"
-   inkscape:version="0.46"
-   sodipodi:docbase="/home/rcollier/Work/Novell/Tango/weather"
-   sodipodi:docname="weather-thundershower.svg"
-   inkscape:output_extension="org.inkscape.output.svg.inkscape">
-  <defs
-     id="defs1308">
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5358"
-       id="linearGradient12225"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)"
-       x1="6.8942904"
-       y1="-359.82382"
-       x2="27.400387"
-       y2="-381.30222" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5346"
-       id="radialGradient12223"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)"
-       cx="21.920311"
-       cy="-382.96454"
-       fx="21.920311"
-       fy="-382.96454"
-       r="21.743534" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5358"
-       id="linearGradient12213"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)"
-       x1="6.8942904"
-       y1="-359.82382"
-       x2="27.400387"
-       y2="-381.30222" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5346"
-       id="radialGradient12211"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)"
-       cx="21.920311"
-       cy="-382.96454"
-       fx="21.920311"
-       fy="-382.96454"
-       r="21.743534" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5358"
-       id="linearGradient12253"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)"
-       x1="6.8942904"
-       y1="-359.82382"
-       x2="27.400387"
-       y2="-381.30222" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5346"
-       id="radialGradient12251"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)"
-       cx="21.920311"
-       cy="-382.96454"
-       fx="21.920311"
-       fy="-382.96454"
-       r="21.743534" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5358"
-       id="linearGradient12249"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)"
-       x1="6.8942904"
-       y1="-359.82382"
-       x2="27.400387"
-       y2="-381.30222" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5346"
-       id="radialGradient12247"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)"
-       cx="21.920311"
-       cy="-382.96454"
-       fx="21.920311"
-       fy="-382.96454"
-       r="21.743534" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5358"
-       id="linearGradient12201"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)"
-       x1="6.8942904"
-       y1="-359.82382"
-       x2="27.400387"
-       y2="-381.30222" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5346"
-       id="radialGradient12199"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)"
-       cx="21.920311"
-       cy="-382.96454"
-       fx="21.920311"
-       fy="-382.96454"
-       r="21.743534" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient5358">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop5360" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop5362" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5358"
-       id="linearGradient12237"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)"
-       x1="6.8942904"
-       y1="-359.82382"
-       x2="27.400387"
-       y2="-381.30222" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient5346">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop5348" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop5350" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5346"
-       id="radialGradient12235"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)"
-       cx="21.920311"
-       cy="-382.96454"
-       fx="21.920311"
-       fy="-382.96454"
-       r="21.743534" />
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 24 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="48 : 24 : 1"
-       inkscape:persp3d-origin="24 : 16 : 1"
-       id="perspective22454" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient8397">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop8400" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop8402" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8397"
-       id="linearGradient13503"
-       gradientUnits="userSpaceOnUse"
-       x1="238.00478"
-       y1="-388.47476"
-       x2="245.65462"
-       y2="-382.64539" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient8315">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop8317" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop8319" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8315"
-       id="linearGradient13501"
-       gradientUnits="userSpaceOnUse"
-       x1="230.87598"
-       y1="-390.43951"
-       x2="235.25652"
-       y2="-386.95901" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient8381">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop8383" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop8385" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8381"
-       id="linearGradient13499"
-       gradientUnits="userSpaceOnUse"
-       x1="246.74042"
-       y1="-391.31381"
-       x2="252.69785"
-       y2="-385.35165" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient8331">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop8333" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop8335" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8331"
-       id="linearGradient13497"
-       gradientUnits="userSpaceOnUse"
-       x1="240.07379"
-       y1="-393.40720"
-       x2="245.82706"
-       y2="-388.55029" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient8302">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop8304" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop8306" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8302"
-       id="linearGradient13495"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(69.00000,155.0000)"
-       x1="228.50261"
-       y1="-392.30591"
-       x2="266.36395"
-       y2="-379.26862" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6538"
-       id="linearGradient13143"
-       gradientUnits="userSpaceOnUse"
-       x1="284.80219"
-       y1="-441.23294"
-       x2="288.89954"
-       y2="-436.83109" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6549"
-       id="linearGradient13141"
-       gradientUnits="userSpaceOnUse"
-       x1="286.66589"
-       y1="-439.48358"
-       x2="289.76562"
-       y2="-436.70703" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6527"
-       id="linearGradient13139"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-35.00007,207.0001)"
-       x1="275.94193"
-       y1="-437.10501"
-       x2="279.97546"
-       y2="-431.91833" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6538"
-       id="linearGradient13137"
-       gradientUnits="userSpaceOnUse"
-       x1="285.94086"
-       y1="-439.93900"
-       x2="289.39124"
-       y2="-436.44290" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6513"
-       id="linearGradient13135"
-       gradientUnits="userSpaceOnUse"
-       x1="286.51172"
-       y1="-441.29074"
-       x2="289.85379"
-       y2="-436.14453" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6497"
-       id="linearGradient13133"
-       gradientUnits="userSpaceOnUse"
-       x1="287.51730"
-       y1="-439.75281"
-       x2="289.67633"
-       y2="-436.32199" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6470"
-       id="linearGradient13131"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-34.00007,207.0001)"
-       x1="271.02170"
-       y1="-441.05182"
-       x2="285.02859"
-       y2="-431.96991" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8874"
-       id="linearGradient11195"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(14.15871,7.082841)"
-       x1="-190.47688"
-       y1="-332.51181"
-       x2="-196.19046"
-       y2="-328.53433" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8904"
-       id="linearGradient11193"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(13.80516,2.840199)"
-       x1="-191.28896"
-       y1="-328.07861"
-       x2="-192.41396"
-       y2="-315.32861" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient8874">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop8876" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop8878" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8874"
-       id="linearGradient11191"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(14.15871,7.082841)"
-       x1="-190.47688"
-       y1="-332.51181"
-       x2="-196.19046"
-       y2="-328.53433" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient8904">
-      <stop
-         style="stop-color:#fcaf3e;stop-opacity:1;"
-         offset="0"
-         id="stop8906" />
-      <stop
-         style="stop-color:#fcaf3e;stop-opacity:0;"
-         offset="1"
-         id="stop8908" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8904"
-       id="linearGradient11189"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(13.80516,2.840199)"
-       x1="-191.28896"
-       y1="-328.07861"
-       x2="-192.41396"
-       y2="-315.32861" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5123"
-       id="radialGradient13211"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.930946,6.185702e-16,-2.842711e-16,0.448244,245.3644,184.9256)"
-       cx="-229.75000"
-       cy="-343.95554"
-       fx="-229.75000"
-       fy="-343.95554"
-       r="14.501380" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6538"
-       id="linearGradient13157"
-       gradientUnits="userSpaceOnUse"
-       x1="284.80219"
-       y1="-441.23294"
-       x2="288.89954"
-       y2="-436.83109" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient6549">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop6551" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop6553" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6549"
-       id="linearGradient13155"
-       gradientUnits="userSpaceOnUse"
-       x1="286.66589"
-       y1="-439.48358"
-       x2="289.76562"
-       y2="-436.70703" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient6527">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop6530" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop6532" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6527"
-       id="linearGradient13153"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-35.00007,207.0001)"
-       x1="275.94193"
-       y1="-437.10501"
-       x2="279.97546"
-       y2="-431.91833" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient6538">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop6540" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop6542" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6538"
-       id="linearGradient13151"
-       gradientUnits="userSpaceOnUse"
-       x1="285.94086"
-       y1="-439.93900"
-       x2="289.39124"
-       y2="-436.44290" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient6513">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop6515" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop6517" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6513"
-       id="linearGradient13149"
-       gradientUnits="userSpaceOnUse"
-       x1="286.51172"
-       y1="-441.29074"
-       x2="289.85379"
-       y2="-436.14453" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient6497">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop6499" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop6501" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6497"
-       id="linearGradient13147"
-       gradientUnits="userSpaceOnUse"
-       x1="287.51730"
-       y1="-439.75281"
-       x2="289.67633"
-       y2="-436.32199" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient6470">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop6472" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop6474" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6470"
-       id="linearGradient13145"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-34.00007,207.0001)"
-       x1="271.02170"
-       y1="-441.05182"
-       x2="285.02859"
-       y2="-431.96991" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient5123">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop5125" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop5127" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5123"
-       id="radialGradient13068"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.930946,6.185702e-16,-2.842711e-16,0.448244,229.9269,180.9261)"
-       cx="-229.75000"
-       cy="-343.95554"
-       fx="-229.75000"
-       fy="-343.95554"
-       r="14.501380" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient6840">
-      <stop
-         style="stop-color:#ad7fa8;stop-opacity:1;"
-         offset="0"
-         id="stop6842" />
-      <stop
-         style="stop-color:#ad7fa8;stop-opacity:0;"
-         offset="1"
-         id="stop6844" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient6828">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop6830" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop6832" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient6537">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop6539" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop6541" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2298">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop2300" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop2302" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient3347">
-      <stop
-         style="stop-color:#edd400;stop-opacity:1;"
-         offset="0"
-         id="stop3349" />
-      <stop
-         style="stop-color:#edd400;stop-opacity:0;"
-         offset="1"
-         id="stop3351" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2527">
-      <stop
-         style="stop-color:#fcaf3e;stop-opacity:1;"
-         offset="0"
-         id="stop2529" />
-      <stop
-         style="stop-color:#fcaf3e;stop-opacity:0;"
-         offset="1"
-         id="stop2531" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2500">
-      <stop
-         style="stop-color:#fce94f;stop-opacity:1;"
-         offset="0"
-         id="stop2502" />
-      <stop
-         style="stop-color:#fce94f;stop-opacity:0;"
-         offset="1"
-         id="stop2504" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2392">
-      <stop
-         style="stop-color:#eeeeec;stop-opacity:1;"
-         offset="0"
-         id="stop2394" />
-      <stop
-         style="stop-color:#eeeeec;stop-opacity:0;"
-         offset="1"
-         id="stop2396" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2254">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop2256" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop2258" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2263"
-       gradientUnits="userSpaceOnUse"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581"
-       gradientTransform="translate(-1.608757,3.097272)" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2267"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(3.555020,0.968578)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2271"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(9.263651,3.495228)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2275"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(8.497184,-2.330824)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2279"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(14.46340,2.014073)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2283"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2287"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2291"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2295"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2299"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2303"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(1.707748,-5.784024)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2311"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2350"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(16.14002,24.66420)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2352"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-0.932144,25.87240)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2354"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(5.356636,23.86870)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2356"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(11.19027,26.52035)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2358"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(10.30638,19.27251)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2360"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,0.229156,30.76299)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2362"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,16.67145,27.22746)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2364"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,17.05272,31.47010)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2366"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-4.010744,24.96040)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2368"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,8.185476,29.52556)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2370"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(4.207586,21.30544)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2372"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.12415,32.08882)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2392"
-       id="linearGradient2398"
-       x1="6.6651416"
-       y1="13.802798"
-       x2="41.403877"
-       y2="13.802798"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2426"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(14.46340,2.014073)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2428"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(8.497184,-2.330824)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2430"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-1.608757,3.097272)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2432"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(3.555020,0.968578)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2434"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(9.263651,3.495228)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2436"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2438"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2440"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2442"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2444"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2446"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2392"
-       id="linearGradient2448"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)"
-       x1="6.6651416"
-       y1="13.802798"
-       x2="41.403877"
-       y2="13.802798" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2392"
-       id="linearGradient2451"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,4.378541,10.65407)"
-       x1="6.6651416"
-       y1="13.802798"
-       x2="41.403877"
-       y2="13.802798" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2457"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2460"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2463"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2469"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2472"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(12.51365,8.745228)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2475"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(6.805020,6.218578)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2478"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(1.641243,8.347272)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2483"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(0.842481,-3.998086)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2500"
-       id="linearGradient2506"
-       x1="37.000000"
-       y1="-21.750000"
-       x2="53.750000"
-       y2="9.0000000"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2500"
-       id="linearGradient2509"
-       gradientUnits="userSpaceOnUse"
-       x1="37.000000"
-       y1="-21.750000"
-       x2="53.750000"
-       y2="9.0000000"
-       gradientTransform="matrix(0.889091,0.000000,0.000000,0.617886,-4.771368,39.81402)" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2500"
-       id="linearGradient2513"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.605509,0.000000,0.000000,0.710542,-0.224971,42.19500)"
-       x1="38.857941"
-       y1="-18.407482"
-       x2="53.750000"
-       y2="9.0000000" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2500"
-       id="linearGradient2517"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.414169,0.000000,0.000000,0.778853,-1.910724,36.87850)"
-       x1="37.000000"
-       y1="-21.750000"
-       x2="53.750000"
-       y2="9.0000000" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2527"
-       id="linearGradient2533"
-       x1="-25.137094"
-       y1="-1.2491118"
-       x2="-35.652866"
-       y2="-24.884460"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2537"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(17.33814,3.415985)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2541"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(13.40064,1.353485)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2555"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-7.499805,1.708617)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient2563"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-0.726830,2.481141)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3347"
-       id="linearGradient3353"
-       x1="23.303862"
-       y1="29.115711"
-       x2="29.750000"
-       y2="46.092930"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3366"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(13.40064,1.353485)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3368"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(1.641243,8.347272)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3370"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(6.805020,6.218578)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3372"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(12.51365,8.745228)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3374"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3376"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3378"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3380"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3383"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3386"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3389"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3392"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3395"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(3.674812,3.088370)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3398"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-2.033818,0.561720)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3401"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-7.197595,2.690414)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient3405"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(4.561802,-4.303373)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       gradientUnits="userSpaceOnUse"
-       y2="-4.4493785"
-       x2="-34.700153"
-       y1="-37.550461"
-       x1="-27.006643"
-       id="linearGradient2916"
-       xlink:href="#linearGradient2298"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="-24.884460"
-       x2="-35.652866"
-       y1="-1.2491118"
-       x1="-25.137094"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2914"
-       xlink:href="#linearGradient2527"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(57.97693,-10.56876)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2912"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,123.1162,-5.446357)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2910"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2908"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2906"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2904"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2902"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(3.674812,3.088370)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2900"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(-2.033818,0.561720)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2898"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(-7.197595,2.690414)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2896"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="-24.884460"
-       x2="-35.652866"
-       y1="-1.2491118"
-       x1="-25.137094"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2894"
-       xlink:href="#linearGradient2527"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,79.36909,-3.193747)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2892"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,56.25514,-12.39388)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2890"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(88.49344,-9.697877)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2888"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(4.561802,-4.303373)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2886"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(-7.197595,2.690414)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2884"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(-2.033818,0.561720)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2882"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(3.674812,3.088370)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2880"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2878"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2876"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2874"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2872"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2870"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2868"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2866"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2864"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(12.51365,8.745228)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2862"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(6.805020,6.218578)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2860"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(1.641243,8.347272)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2858"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(13.40064,1.353485)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2856"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientUnits="userSpaceOnUse"
-       y2="46.092930"
-       x2="29.750000"
-       y1="29.115711"
-       x1="23.303862"
-       id="linearGradient2854"
-       xlink:href="#linearGradient3347"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(-0.726830,2.481141)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2852"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(-7.499805,1.708617)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2850"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(13.40064,1.353485)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2848"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(17.33814,3.415985)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2846"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientUnits="userSpaceOnUse"
-       y2="-24.884460"
-       x2="-35.652866"
-       y1="-1.2491118"
-       x1="-25.137094"
-       id="linearGradient2844"
-       xlink:href="#linearGradient2527"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="9.0000000"
-       x2="53.750000"
-       y1="-21.750000"
-       x1="37.000000"
-       gradientTransform="matrix(0.414169,0.000000,0.000000,0.778853,-1.910724,36.87850)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2842"
-       xlink:href="#linearGradient2500"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="9.0000000"
-       x2="53.750000"
-       y1="-18.407482"
-       x1="38.857941"
-       gradientTransform="matrix(0.605509,0.000000,0.000000,0.710542,-0.224971,42.19500)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2840"
-       xlink:href="#linearGradient2500"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientTransform="matrix(0.889091,0.000000,0.000000,0.617886,-4.771368,39.81402)"
-       y2="9.0000000"
-       x2="53.750000"
-       y1="-21.750000"
-       x1="37.000000"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2838"
-       xlink:href="#linearGradient2500"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientUnits="userSpaceOnUse"
-       y2="9.0000000"
-       x2="53.750000"
-       y1="-21.750000"
-       x1="37.000000"
-       id="linearGradient2836"
-       xlink:href="#linearGradient2500"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(0.842481,-3.998086)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2834"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(1.641243,8.347272)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2832"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(6.805020,6.218578)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2830"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(12.51365,8.745228)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2828"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2826"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2824"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2822"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2820"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="13.802798"
-       x2="41.403877"
-       y1="13.802798"
-       x1="6.6651416"
-       gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,4.378541,10.65407)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2818"
-       xlink:href="#linearGradient2392"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="13.802798"
-       x2="41.403877"
-       y1="13.802798"
-       x1="6.6651416"
-       gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2816"
-       xlink:href="#linearGradient2392"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2814"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2812"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2810"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2808"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2806"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2804"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(9.263651,3.495228)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2802"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(3.555020,0.968578)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2800"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(-1.608757,3.097272)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2798"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(8.497184,-2.330824)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2796"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(14.46340,2.014073)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2794"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)"
-       gradientUnits="userSpaceOnUse"
-       y2="13.802798"
-       x2="41.403877"
-       y1="13.802798"
-       x1="6.6651416"
-       id="linearGradient2792"
-       xlink:href="#linearGradient2392"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.12415,32.08882)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2790"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(4.207586,21.30544)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2788"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,8.185476,29.52556)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2786"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-4.010744,24.96040)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2784"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,17.05272,31.47010)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2782"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,16.67145,27.22746)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2780"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,0.229156,30.76299)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2778"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(10.30638,19.27251)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2776"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(11.19027,26.52035)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2774"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(5.356636,23.86870)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2772"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(-0.932144,25.87240)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2770"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(16.14002,24.66420)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2768"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2766"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(1.707748,-5.784024)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2764"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2762"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2760"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2758"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2756"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2754"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(14.46340,2.014073)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2752"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(8.497184,-2.330824)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2750"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(9.263651,3.495228)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2748"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(3.555020,0.968578)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2746"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientTransform="translate(-1.608757,3.097272)"
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2744"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientUnits="userSpaceOnUse"
-       y2="-4.4493785"
-       x2="-34.700153"
-       y1="-37.550461"
-       x1="-27.006643"
-       id="linearGradient2304"
-       xlink:href="#linearGradient2298"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="-24.884460"
-       x2="-35.652866"
-       y1="-1.2491118"
-       x1="-25.137094"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient1557"
-       xlink:href="#linearGradient2527"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(57.97693,-10.56876)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient1538"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,123.1162,-5.446357)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient1536"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient1534"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient1532"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient1530"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient1528"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(3.674812,3.088370)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient1526"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(-2.033818,0.561720)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient1524"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(-7.197595,2.690414)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient1522"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="-24.884460"
-       x2="-35.652866"
-       y1="-1.2491118"
-       x1="-25.137094"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient1520"
-       xlink:href="#linearGradient2527"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,79.36909,-3.193747)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient1518"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,56.25514,-12.39388)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient1516"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(88.49344,-9.697877)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient1514"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(4.561802,-4.303373)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5957"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(-7.197595,2.690414)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5955"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(-2.033818,0.561720)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5953"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(3.674812,3.088370)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5951"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5949"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5947"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5945"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5943"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5941"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5939"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5937"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5935"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(12.51365,8.745228)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5933"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(6.805020,6.218578)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5931"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(1.641243,8.347272)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5929"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(13.40064,1.353485)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5927"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientUnits="userSpaceOnUse"
-       y2="46.092930"
-       x2="29.750000"
-       y1="29.115711"
-       x1="23.303862"
-       id="linearGradient5925"
-       xlink:href="#linearGradient3347"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(-0.726830,2.481141)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5923"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(-7.499805,1.708617)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5921"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(13.40064,1.353485)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5919"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(17.33814,3.415985)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5917"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientUnits="userSpaceOnUse"
-       y2="-24.884460"
-       x2="-35.652866"
-       y1="-1.2491118"
-       x1="-25.137094"
-       id="linearGradient5915"
-       xlink:href="#linearGradient2527"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="9.0000000"
-       x2="53.750000"
-       y1="-21.750000"
-       x1="37.000000"
-       gradientTransform="matrix(0.414169,0.000000,0.000000,0.778853,-1.910724,36.87850)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5913"
-       xlink:href="#linearGradient2500"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="9.0000000"
-       x2="53.750000"
-       y1="-18.407482"
-       x1="38.857941"
-       gradientTransform="matrix(0.605509,0.000000,0.000000,0.710542,-0.224971,42.19500)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5911"
-       xlink:href="#linearGradient2500"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientTransform="matrix(0.889091,0.000000,0.000000,0.617886,-4.771368,39.81402)"
-       y2="9.0000000"
-       x2="53.750000"
-       y1="-21.750000"
-       x1="37.000000"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5909"
-       xlink:href="#linearGradient2500"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientUnits="userSpaceOnUse"
-       y2="9.0000000"
-       x2="53.750000"
-       y1="-21.750000"
-       x1="37.000000"
-       id="linearGradient5907"
-       xlink:href="#linearGradient2500"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(0.842481,-3.998086)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5905"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(1.641243,8.347272)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5903"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(6.805020,6.218578)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5901"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(12.51365,8.745228)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5899"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5897"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5895"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5893"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5891"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="13.802798"
-       x2="41.403877"
-       y1="13.802798"
-       x1="6.6651416"
-       gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,4.378541,10.65407)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5889"
-       xlink:href="#linearGradient2392"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="13.802798"
-       x2="41.403877"
-       y1="13.802798"
-       x1="6.6651416"
-       gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5887"
-       xlink:href="#linearGradient2392"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5885"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5883"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5881"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5879"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5877"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5875"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(9.263651,3.495228)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5873"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(3.555020,0.968578)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5871"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(-1.608757,3.097272)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5869"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(8.497184,-2.330824)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5867"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(14.46340,2.014073)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5865"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)"
-       gradientUnits="userSpaceOnUse"
-       y2="13.802798"
-       x2="41.403877"
-       y1="13.802798"
-       x1="6.6651416"
-       id="linearGradient5863"
-       xlink:href="#linearGradient2392"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.12415,32.08882)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5861"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(4.207586,21.30544)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5859"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,8.185476,29.52556)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5857"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-4.010744,24.96040)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5855"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,17.05272,31.47010)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5853"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,16.67145,27.22746)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5851"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,0.229156,30.76299)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5849"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(10.30638,19.27251)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5847"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(11.19027,26.52035)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5845"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(5.356636,23.86870)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5843"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(-0.932144,25.87240)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5841"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(16.14002,24.66420)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5839"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5837"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(1.707748,-5.784024)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5835"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5833"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5831"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5829"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5827"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5825"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(14.46340,2.014073)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5823"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(8.497184,-2.330824)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5821"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(9.263651,3.495228)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5819"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientTransform="translate(3.555020,0.968578)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5817"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientTransform="translate(-1.608757,3.097272)"
-       y2="16.268581"
-       x2="16.851845"
-       y1="9.2859020"
-       x1="14.260854"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient5815"
-       xlink:href="#linearGradient2254"
-       inkscape:collect="always" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6098"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-9.002513,11.93373)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6101"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.13675,17.05613)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6118"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,12.38965,19.30874)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6121"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-10.72430,10.10861)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6124"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(21.51400,12.80461)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6179"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-7.197595,2.690414)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6181"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-2.033818,0.561720)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6183"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(3.674812,3.088370)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6185"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6187"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6189"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6191"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2527"
-       id="linearGradient6193"
-       gradientUnits="userSpaceOnUse"
-       x1="-25.137094"
-       y1="-1.2491118"
-       x2="-35.652866"
-       y2="-24.884460" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6196"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,2.209129,10.83861)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6199"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-9.862093,6.148450)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6202"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,10.70137,12.90816)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6205"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-4.372193,11.95105)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6208"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(5.088919,7.833409)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6211"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-0.619711,5.306759)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6214"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-5.783488,7.435453)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6242"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-5.783488,7.435453)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6244"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-0.619711,5.306759)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6246"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(5.088919,7.833409)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6248"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,10.70137,12.90816)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6250"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-9.862093,6.148450)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6252"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,2.209129,10.83861)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6254"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-9.002513,11.93373)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6257"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-0.297112,4.275205)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6260"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,10.91453,3.180085)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6263"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-1.156692,-1.510075)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6266"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,19.40677,5.249635)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6269"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(13.79432,0.174884)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6272"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(8.085690,-2.351766)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6275"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(2.921913,-0.223072)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6311"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(21.51400,12.80461)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6313"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-10.72430,10.10861)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6315"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,12.38965,19.30874)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6317"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-1.156692,-1.510075)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6319"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.13675,17.05613)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6321"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-5.783488,7.435453)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6323"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-0.619711,5.306759)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6325"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(5.088919,7.833409)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6327"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,10.70137,12.90816)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6329"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-9.862093,6.148450)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6331"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,2.209129,10.83861)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6333"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-9.002513,11.93373)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6335"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(2.921913,-0.223072)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6337"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(8.085690,-2.351766)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6339"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(13.79432,0.174884)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6341"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,19.40677,5.249635)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6343"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,10.91453,3.180085)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6537"
-       id="linearGradient6543"
-       x1="27.320963"
-       y1="44.228481"
-       x2="52.328316"
-       y2="44.228481"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.526962,0.000000,-2.763717e-17,0.972572,16.13182,0.843286)" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6537"
-       id="linearGradient6547"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.526962,0.000000,-4.388782e-16,0.972572,25.91493,0.633642)"
-       x1="27.320963"
-       y1="44.228481"
-       x2="52.328316"
-       y2="44.228481" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6537"
-       id="linearGradient6551"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.526962,0.000000,-4.388782e-16,0.972572,36.25638,0.633643)"
-       x1="27.320963"
-       y1="44.228481"
-       x2="45.115814"
-       y2="44.228455" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6537"
-       id="linearGradient6559"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.526962,0.000000,-2.332577e-16,0.972572,16.13182,0.843286)"
-       x1="27.320963"
-       y1="44.228481"
-       x2="52.328316"
-       y2="44.228481" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6537"
-       id="linearGradient6561"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.526962,0.000000,-6.444987e-16,0.972572,25.91493,0.633642)"
-       x1="27.320963"
-       y1="44.228481"
-       x2="52.328316"
-       y2="44.228481" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6537"
-       id="linearGradient6563"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.526962,0.000000,-6.444987e-16,0.972572,36.25638,0.633643)"
-       x1="27.320963"
-       y1="44.228481"
-       x2="45.115814"
-       y2="44.228455" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6537"
-       id="linearGradient6566"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.577744,0.000000,-6.388715e-16,1.006703,39.04124,-0.702889)"
-       x1="27.320963"
-       y1="44.228481"
-       x2="45.115814"
-       y2="44.228455" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6537"
-       id="linearGradient6569"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.577744,0.000000,-6.388715e-16,1.006703,27.70322,-0.702890)"
-       x1="27.320963"
-       y1="44.228481"
-       x2="52.328316"
-       y2="44.228481" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6537"
-       id="linearGradient6572"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.577744,0.000000,-1.880005e-16,1.006703,16.97734,-0.485889)"
-       x1="27.320963"
-       y1="44.228481"
-       x2="52.328316"
-       y2="44.228481" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6576"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.132431,0.000000,0.000000,1.016132,10.54485,-4.728138)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6579"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.853605,0.000000,0.000000,1.016132,19.23518,-2.625202)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6582"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,13.49182,-7.781819)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6585"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,7.650036,-10.34923)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6588"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,2.365814,-8.186195)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6599"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.999079,0.000000,0.000000,1.016132,56.82188,9.371753)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6603"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.496116,0.000000,0.000000,1.282841,-1.807925,-9.493960)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6606"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.314274,0.000000,0.000000,1.016132,12.05438,11.66070)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6609"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.496116,0.000000,0.000000,1.282841,-11.59870,2.312158)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6612"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,21.39156,5.051653)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6618"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,16.09471,2.948843)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6622"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,11.32174,9.047633)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6624"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-5.783488,7.435453)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6626"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-0.619711,5.306759)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6628"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(5.088919,7.833409)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6630"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,10.70137,12.90816)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6632"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-9.862093,6.148450)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6634"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,2.209129,10.83861)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2254"
-       id="linearGradient6636"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-9.002513,11.93373)"
-       x1="14.260854"
-       y1="9.2859020"
-       x2="16.851845"
-       y2="16.268581" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6828"
-       id="radialGradient6834"
-       cx="15.147860"
-       cy="23.822156"
-       fx="15.147860"
-       fy="23.822156"
-       r="12.852140"
-       gradientTransform="matrix(0.654874,0.000000,0.000000,0.398574,2.663540,12.14676)"
-       gradientUnits="userSpaceOnUse" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6840"
-       id="radialGradient6846"
-       cx="32.583473"
-       cy="25.240442"
-       fx="32.583473"
-       fy="25.240442"
-       r="8.4165270"
-       gradientTransform="matrix(1.000000,0.000000,0.000000,0.503823,-15.00000,6.042836)"
-       gradientUnits="userSpaceOnUse" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6828"
-       id="radialGradient6852"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.654874,0.000000,0.000000,0.398574,44.33646,16.14676)"
-       cx="15.147860"
-       cy="23.822156"
-       fx="15.147860"
-       fy="23.822156"
-       r="12.852140" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6840"
-       id="radialGradient6854"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-1.000000,0.000000,0.000000,0.503823,62.00000,10.04284)"
-       cx="32.583473"
-       cy="25.240442"
-       fx="32.583473"
-       fy="25.240442"
-       r="8.4165270" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5346"
-       id="radialGradient23739"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)"
-       cx="21.920311"
-       cy="-382.96454"
-       fx="21.920311"
-       fy="-382.96454"
-       r="21.743534" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5358"
-       id="linearGradient23741"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)"
-       x1="6.8942904"
-       y1="-359.82382"
-       x2="27.400387"
-       y2="-381.30222" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5346"
-       id="radialGradient23743"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)"
-       cx="21.920311"
-       cy="-382.96454"
-       fx="21.920311"
-       fy="-382.96454"
-       r="21.743534" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5358"
-       id="linearGradient23745"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)"
-       x1="6.8942904"
-       y1="-359.82382"
-       x2="27.400387"
-       y2="-381.30222" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5346"
-       id="radialGradient23747"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)"
-       cx="21.920311"
-       cy="-382.96454"
-       fx="21.920311"
-       fy="-382.96454"
-       r="21.743534" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5358"
-       id="linearGradient23749"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)"
-       x1="6.8942904"
-       y1="-359.82382"
-       x2="27.400387"
-       y2="-381.30222" />
+<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="48px" height="48px" id="svg1306">
+  <defs id="defs1308">
+    <linearGradient id="linearGradient5358">
+      <stop offset="0" id="stop5360" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop5362" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient id="linearGradient5346">
+      <stop offset="0" id="stop5348" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop5350" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient id="linearGradient8397">
+      <stop offset="0" id="stop8400" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop8402" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient xlink:href="#linearGradient8397" id="linearGradient13503" gradientUnits="userSpaceOnUse" x1="238.00478" y1="-388.47476" x2="245.65462" y2="-382.64539"/>
+    <linearGradient id="linearGradient8315">
+      <stop offset="0" id="stop8317" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop8319" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient xlink:href="#linearGradient8315" id="linearGradient13501" gradientUnits="userSpaceOnUse" x1="230.87598" y1="-390.43951" x2="235.25652" y2="-386.95901"/>
+    <linearGradient id="linearGradient8381">
+      <stop offset="0" id="stop8383" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop8385" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient xlink:href="#linearGradient8381" id="linearGradient13499" gradientUnits="userSpaceOnUse" x1="246.74042" y1="-391.31381" x2="252.69785" y2="-385.35165"/>
+    <linearGradient id="linearGradient8331">
+      <stop offset="0" id="stop8333" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop8335" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient xlink:href="#linearGradient8331" id="linearGradient13497" gradientUnits="userSpaceOnUse" x1="240.07379" y1="-393.40720" x2="245.82706" y2="-388.55029"/>
+    <linearGradient id="linearGradient8302">
+      <stop offset="0" id="stop8304" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop8306" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient xlink:href="#linearGradient8302" id="linearGradient13495" gradientUnits="userSpaceOnUse" gradientTransform="translate(69.00000,155.0000)" x1="228.50261" y1="-392.30591" x2="266.36395" y2="-379.26862"/>
+    <linearGradient xlink:href="#linearGradient6538" id="linearGradient13143" gradientUnits="userSpaceOnUse" x1="284.80219" y1="-441.23294" x2="288.89954" y2="-436.83109"/>
+    <linearGradient xlink:href="#linearGradient6549" id="linearGradient13141" gradientUnits="userSpaceOnUse" x1="286.66589" y1="-439.48358" x2="289.76562" y2="-436.70703"/>
+    <linearGradient xlink:href="#linearGradient6527" id="linearGradient13139" gradientUnits="userSpaceOnUse" gradientTransform="translate(-35.00007,207.0001)" x1="275.94193" y1="-437.10501" x2="279.97546" y2="-431.91833"/>
+    <linearGradient xlink:href="#linearGradient6538" id="linearGradient13137" gradientUnits="userSpaceOnUse" x1="285.94086" y1="-439.93900" x2="289.39124" y2="-436.44290"/>
+    <linearGradient xlink:href="#linearGradient6513" id="linearGradient13135" gradientUnits="userSpaceOnUse" x1="286.51172" y1="-441.29074" x2="289.85379" y2="-436.14453"/>
+    <linearGradient xlink:href="#linearGradient6497" id="linearGradient13133" gradientUnits="userSpaceOnUse" x1="287.51730" y1="-439.75281" x2="289.67633" y2="-436.32199"/>
+    <linearGradient xlink:href="#linearGradient6470" id="linearGradient13131" gradientUnits="userSpaceOnUse" gradientTransform="translate(-34.00007,207.0001)" x1="271.02170" y1="-441.05182" x2="285.02859" y2="-431.96991"/>
+    <linearGradient xlink:href="#linearGradient8874" id="linearGradient11195" gradientUnits="userSpaceOnUse" gradientTransform="translate(14.15871,7.082841)" x1="-190.47688" y1="-332.51181" x2="-196.19046" y2="-328.53433"/>
+    <linearGradient xlink:href="#linearGradient8904" id="linearGradient11193" gradientUnits="userSpaceOnUse" gradientTransform="translate(13.80516,2.840199)" x1="-191.28896" y1="-328.07861" x2="-192.41396" y2="-315.32861"/>
+    <linearGradient id="linearGradient8874">
+      <stop offset="0" id="stop8876" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop8878" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient xlink:href="#linearGradient8874" id="linearGradient11191" gradientUnits="userSpaceOnUse" gradientTransform="translate(14.15871,7.082841)" x1="-190.47688" y1="-332.51181" x2="-196.19046" y2="-328.53433"/>
+    <linearGradient id="linearGradient8904">
+      <stop offset="0" id="stop8906" stop-color="#fcaf3e" stop-opacity="1"/>
+      <stop offset="1" id="stop8908" stop-color="#fcaf3e" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient xlink:href="#linearGradient8904" id="linearGradient11189" gradientUnits="userSpaceOnUse" gradientTransform="translate(13.80516,2.840199)" x1="-191.28896" y1="-328.07861" x2="-192.41396" y2="-315.32861"/>
+    <radialGradient xlink:href="#linearGradient5123" id="radialGradient13211" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.930946,6.185702e-16,-2.842711e-16,0.448244,245.3644,184.9256)" cx="-229.75000" cy="-343.95554" fx="-229.75000" fy="-343.95554" r="14.501380"/>
+    <linearGradient xlink:href="#linearGradient6538" id="linearGradient13157" gradientUnits="userSpaceOnUse" x1="284.80219" y1="-441.23294" x2="288.89954" y2="-436.83109"/>
+    <linearGradient id="linearGradient6549">
+      <stop offset="0" id="stop6551" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop6553" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient xlink:href="#linearGradient6549" id="linearGradient13155" gradientUnits="userSpaceOnUse" x1="286.66589" y1="-439.48358" x2="289.76562" y2="-436.70703"/>
+    <linearGradient id="linearGradient6527">
+      <stop offset="0" id="stop6530" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop6532" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient xlink:href="#linearGradient6527" id="linearGradient13153" gradientUnits="userSpaceOnUse" gradientTransform="translate(-35.00007,207.0001)" x1="275.94193" y1="-437.10501" x2="279.97546" y2="-431.91833"/>
+    <linearGradient id="linearGradient6538">
+      <stop offset="0" id="stop6540" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop6542" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient xlink:href="#linearGradient6538" id="linearGradient13151" gradientUnits="userSpaceOnUse" x1="285.94086" y1="-439.93900" x2="289.39124" y2="-436.44290"/>
+    <linearGradient id="linearGradient6513">
+      <stop offset="0" id="stop6515" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop6517" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient xlink:href="#linearGradient6513" id="linearGradient13149" gradientUnits="userSpaceOnUse" x1="286.51172" y1="-441.29074" x2="289.85379" y2="-436.14453"/>
+    <linearGradient id="linearGradient6497">
+      <stop offset="0" id="stop6499" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop6501" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient xlink:href="#linearGradient6497" id="linearGradient13147" gradientUnits="userSpaceOnUse" x1="287.51730" y1="-439.75281" x2="289.67633" y2="-436.32199"/>
+    <linearGradient id="linearGradient6470">
+      <stop offset="0" id="stop6472" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop6474" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient xlink:href="#linearGradient6470" id="linearGradient13145" gradientUnits="userSpaceOnUse" gradientTransform="translate(-34.00007,207.0001)" x1="271.02170" y1="-441.05182" x2="285.02859" y2="-431.96991"/>
+    <linearGradient id="linearGradient5123">
+      <stop offset="0" id="stop5125" stop-color="#ffffff" stop-opacity="1"/>
+      <stop offset="1" id="stop5127" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <radialGradient xlink:href="#linearGradient5123" id="radialGradient13068" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.930946,6.185702e-16,-2.842711e-16,0.448244,229.9269,180.9261)" cx="-229.75000" cy="-343.95554" fx="-229.75000" fy="-343.95554" r="14.501380"/>
+    <radialGradient xlink:href="#linearGradient5346" id="radialGradient23739" gradientUnits="userSpaceOnUse" gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)" cx="21.920311" cy="-382.96454" fx="21.920311" fy="-382.96454" r="21.743534"/>
+    <linearGradient xlink:href="#linearGradient5358" id="linearGradient23741" gradientUnits="userSpaceOnUse" gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)" x1="6.8942904" y1="-359.82382" x2="27.400387" y2="-381.30222"/>
+    <radialGradient xlink:href="#linearGradient5346" id="radialGradient23743" gradientUnits="userSpaceOnUse" gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)" cx="21.920311" cy="-382.96454" fx="21.920311" fy="-382.96454" r="21.743534"/>
+    <linearGradient xlink:href="#linearGradient5358" id="linearGradient23745" gradientUnits="userSpaceOnUse" gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)" x1="6.8942904" y1="-359.82382" x2="27.400387" y2="-381.30222"/>
+    <radialGradient xlink:href="#linearGradient5346" id="radialGradient23747" gradientUnits="userSpaceOnUse" gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)" cx="21.920311" cy="-382.96454" fx="21.920311" fy="-382.96454" r="21.743534"/>
+    <linearGradient xlink:href="#linearGradient5358" id="linearGradient23749" gradientUnits="userSpaceOnUse" gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)" x1="6.8942904" y1="-359.82382" x2="27.400387" y2="-381.30222"/>
   </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="1"
-     inkscape:cx="24"
-     inkscape:cy="24"
-     inkscape:current-layer="layer1"
-     showgrid="true"
-     inkscape:grid-bbox="true"
-     inkscape:document-units="px"
-     inkscape:window-width="982"
-     inkscape:window-height="965"
-     inkscape:window-x="1280"
-     inkscape:window-y="28"
-     inkscape:showpageshadow="false" />
-  <metadata
-     id="metadata1311">
+  
+  <metadata id="metadata1311">
     <rdf:RDF>
-      <cc:Work
-         rdf:about="">
+      <cc:Work rdf:about="">
         <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
         <dc:title>weather-storm</dc:title>
         <dc:date>January 2006</dc:date>
         <dc:creator>
@@ -4079,508 +123,101 @@
             <rdf:li>notify</rdf:li>
           </rdf:Bag>
         </dc:subject>
-        <cc:license
-           rdf:resource="http://creativecommons.org/licenses/by-sa/2.0/" />
+        <cc:license rdf:resource="http://creativecommons.org/licenses/by-sa/2.0/"/>
       </cc:Work>
-      <cc:License
-         rdf:about="http://creativecommons.org/licenses/by-sa/2.0/">
-        <cc:permits
-           rdf:resource="http://web.resource.org/cc/Reproduction" />
-        <cc:permits
-           rdf:resource="http://web.resource.org/cc/Distribution" />
-        <cc:requires
-           rdf:resource="http://web.resource.org/cc/Notice" />
-        <cc:requires
-           rdf:resource="http://web.resource.org/cc/Attribution" />
-        <cc:permits
-           rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
-        <cc:requires
-           rdf:resource="http://web.resource.org/cc/ShareAlike" />
+      <cc:License rdf:about="http://creativecommons.org/licenses/by-sa/2.0/">
+        <cc:permits rdf:resource="http://web.resource.org/cc/Reproduction"/>
+        <cc:permits rdf:resource="http://web.resource.org/cc/Distribution"/>
+        <cc:requires rdf:resource="http://web.resource.org/cc/Notice"/>
+        <cc:requires rdf:resource="http://web.resource.org/cc/Attribution"/>
+        <cc:permits rdf:resource="http://web.resource.org/cc/DerivativeWorks"/>
+        <cc:requires rdf:resource="http://web.resource.org/cc/ShareAlike"/>
       </cc:License>
     </rdf:RDF>
   </metadata>
-  <g
-     id="layer1"
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer">
-    <g
-       id="g15505">
-      <g
-         transform="translate(-287.0204,244.9995)"
-         id="g12825">
-        <path
-           style="opacity:1.0000000;fill:#555753;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           d="M 311.50000,-242.99998 C 308.72758,-242.99998 306.39177,-241.42627 305.09375,-239.18748 C 304.14939,-239.66252 303.12856,-239.99998 302.00000,-239.99998 C 298.13600,-239.99998 295.00000,-236.86398 295.00000,-232.99998 C 295.00000,-229.13598 298.13600,-225.99998 302.00000,-225.99998 C 304.41967,-225.99998 306.43009,-227.31930 307.68750,-229.18748 C 308.82170,-228.49786 310.07648,-227.99998 311.50000,-227.99998 C 312.41312,-227.99998 313.25295,-228.23200 314.06250,-228.53123 C 314.57244,-227.66350 315.24162,-226.95151 316.06250,-226.37498 C 316.05526,-226.24460 316.00000,-226.13216 316.00000,-225.99998 C 316.00000,-222.13598 319.13599,-218.99998 323.00000,-218.99998 C 326.86400,-218.99998 330.00000,-222.13598 330.00000,-225.99998 C 330.00000,-228.36967 328.74102,-230.35832 326.93750,-231.62498 C 326.94474,-231.75536 327.00000,-231.86780 327.00000,-231.99998 C 327.00000,-235.86398 323.86401,-238.99998 320.00000,-238.99998 C 319.37730,-238.99998 318.82481,-238.77779 318.25000,-238.62498 C 317.05547,-241.18382 314.50866,-242.99998 311.50000,-242.99998 z "
-           id="path12827" />
-        <path
-           style="opacity:1.0000000;fill:url(#linearGradient13495);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           d="M 311.50000,-241.99998 C 308.71952,-241.99998 306.36549,-240.23813 305.43750,-237.78123 C 304.45208,-238.49067 303.30607,-238.99998 302.00000,-238.99998 C 298.68800,-238.99998 296.00000,-236.31198 296.00000,-232.99998 C 296.00000,-229.68798 298.68800,-226.99998 302.00000,-226.99998 C 304.42775,-226.99998 306.49324,-228.45556 307.43750,-230.53123 C 308.55826,-229.61367 309.93964,-228.99998 311.50000,-228.99998 C 312.57454,-228.99998 313.54428,-229.31894 314.43750,-229.78123 C 314.83590,-228.78147 315.53864,-227.99491 316.37500,-227.34373 C 316.19499,-226.74811 316.00000,-226.15408 316.00000,-225.49998 C 316.00000,-221.91198 318.91200,-218.99998 322.50000,-218.99998 C 326.08800,-218.99998 329.00000,-221.91198 329.00000,-225.49998 C 329.00000,-227.86077 327.66567,-229.83017 325.78125,-230.96873 C 325.84384,-231.31596 326.00000,-231.63481 326.00000,-231.99998 C 326.00000,-235.31198 323.31200,-237.99998 320.00000,-237.99998 C 319.14702,-237.99998 318.32870,-237.82130 317.59375,-237.49998 C 316.73998,-240.09386 314.37851,-241.99997 311.50000,-241.99998 z "
-           id="path12829" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path12831"
-           sodipodi:cx="241.80843"
-           sodipodi:cy="-383.66660"
-           sodipodi:rx="6.7396116"
-           sodipodi:ry="6.7396116"
-           d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1  235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1  248.54804 -383.66660 z"
-           transform="matrix(0.964447,0.000000,0.000000,0.964447,89.28852,144.5262)" />
-        <g
-           id="g12833">
-          <path
-             transform="matrix(0.882630,0.000000,0.000000,0.882630,96.18078,108.1091)"
-             d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1  237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1  250.18322 -389.30136 z"
-             sodipodi:ry="6.2313786"
-             sodipodi:rx="6.2313786"
-             sodipodi:cy="-389.30136"
-             sodipodi:cx="243.95184"
-             id="path12835"
-             style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-             sodipodi:type="arc" />
-          <path
-             transform="matrix(0.882630,0.000000,0.000000,0.882630,96.18078,108.1091)"
-             d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1  237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1  250.18322 -389.30136 z"
-             sodipodi:ry="6.2313786"
-             sodipodi:rx="6.2313786"
-             sodipodi:cy="-389.30136"
-             sodipodi:cx="243.95184"
-             id="path12837"
-             style="opacity:0.49444440;fill:url(#linearGradient13497);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-             sodipodi:type="arc" />
+  <g id="layer1">
+    <g>
+      <g transform="translate(-287.0204,244.9995)">
+        <path d="M 311.50000,-242.99998 C 308.72758,-242.99998 306.39177,-241.42627 305.09375,-239.18748 C 304.14939,-239.66252 303.12856,-239.99998 302.00000,-239.99998 C 298.13600,-239.99998 295.00000,-236.86398 295.00000,-232.99998 C 295.00000,-229.13598 298.13600,-225.99998 302.00000,-225.99998 C 304.41967,-225.99998 306.43009,-227.31930 307.68750,-229.18748 C 308.82170,-228.49786 310.07648,-227.99998 311.50000,-227.99998 C 312.41312,-227.99998 313.25295,-228.23200 314.06250,-228.53123 C 314.57244,-227.66350 315.24162,-226.95151 316.06250,-226.37498 C 316.05526,-226.24460 316.00000,-226.13216 316.00000,-225.99998 C 316.00000,-222.13598 319.13599,-218.99998 323.00000,-218.99998 C 326.86400,-218.99998 330.00000,-222.13598 330.00000,-225.99998 C 330.00000,-228.36967 328.74102,-230.35832 326.93750,-231.62498 C 326.94474,-231.75536 327.00000,-231.86780 327.00000,-231.99998 C 327.00000,-235.86398 323.86401,-238.99998 320.00000,-238.99998 C 319.37730,-238.99998 318.82481,-238.77779 318.25000,-238.62498 C 317.05547,-241.18382 314.50866,-242.99998 311.50000,-242.99998 z " opacity="1.0000000" fill="#555753" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 311.50000,-241.99998 C 308.71952,-241.99998 306.36549,-240.23813 305.43750,-237.78123 C 304.45208,-238.49067 303.30607,-238.99998 302.00000,-238.99998 C 298.68800,-238.99998 296.00000,-236.31198 296.00000,-232.99998 C 296.00000,-229.68798 298.68800,-226.99998 302.00000,-226.99998 C 304.42775,-226.99998 306.49324,-228.45556 307.43750,-230.53123 C 308.55826,-229.61367 309.93964,-228.99998 311.50000,-228.99998 C 312.57454,-228.99998 313.54428,-229.31894 314.43750,-229.78123 C 314.83590,-228.78147 315.53864,-227.99491 316.37500,-227.34373 C 316.19499,-226.74811 316.00000,-226.15408 316.00000,-225.49998 C 316.00000,-221.91198 318.91200,-218.99998 322.50000,-218.99998 C 326.08800,-218.99998 329.00000,-221.91198 329.00000,-225.49998 C 329.00000,-227.86077 327.66567,-229.83017 325.78125,-230.96873 C 325.84384,-231.31596 326.00000,-231.63481 326.00000,-231.99998 C 326.00000,-235.31198 323.31200,-237.99998 320.00000,-237.99998 C 319.14702,-237.99998 318.32870,-237.82130 317.59375,-237.49998 C 316.73998,-240.09386 314.37851,-241.99997 311.50000,-241.99998 z " opacity="1.0000000" fill="url(#linearGradient13495)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1  235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1  248.54804 -383.66660 z" transform="matrix(0.964447,0.000000,0.000000,0.964447,89.28852,144.5262)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <g>
+          <path transform="matrix(0.882630,0.000000,0.000000,0.882630,96.18078,108.1091)" d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1  237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1  250.18322 -389.30136 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+          <path transform="matrix(0.882630,0.000000,0.000000,0.882630,96.18078,108.1091)" d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1  237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1  250.18322 -389.30136 z" opacity="0.49444440" fill="url(#linearGradient13497)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
         </g>
-        <g
-           id="g12839">
-          <path
-             transform="matrix(0.911728,0.000000,0.000000,0.911728,90.45407,120.2336)"
-             d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1  245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1  257.25429 -385.78790 z"
-             sodipodi:ry="6.0325046"
-             sodipodi:rx="6.0325046"
-             sodipodi:cy="-385.78790"
-             sodipodi:cx="251.22179"
-             id="path12841"
-             style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-             sodipodi:type="arc" />
-          <path
-             transform="matrix(0.911728,0.000000,0.000000,0.911728,90.45407,120.2336)"
-             d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1  245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1  257.25429 -385.78790 z"
-             sodipodi:ry="6.0325046"
-             sodipodi:rx="6.0325046"
-             sodipodi:cy="-385.78790"
-             sodipodi:cx="251.22179"
-             id="path12843"
-             style="opacity:0.49444440;fill:url(#linearGradient13499);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-             sodipodi:type="arc" />
+        <g>
+          <path transform="matrix(0.911728,0.000000,0.000000,0.911728,90.45407,120.2336)" d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1  245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1  257.25429 -385.78790 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+          <path transform="matrix(0.911728,0.000000,0.000000,0.911728,90.45407,120.2336)" d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1  245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1  257.25429 -385.78790 z" opacity="0.49444440" fill="url(#linearGradient13499)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
         </g>
-        <g
-           id="g12845">
-          <path
-             transform="matrix(1.142799,0.000000,0.000000,1.142799,35.23229,210.2770)"
-             d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1  229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1  237.80885 -387.88715 z"
-             sodipodi:ry="4.3752232"
-             sodipodi:rx="4.3752232"
-             sodipodi:cy="-387.88715"
-             sodipodi:cx="233.43362"
-             id="path12847"
-             style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-             sodipodi:type="arc" />
-          <path
-             transform="matrix(1.142799,0.000000,0.000000,1.142799,35.23229,210.2770)"
-             d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1  229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1  237.80885 -387.88715 z"
-             sodipodi:ry="4.3752232"
-             sodipodi:rx="4.3752232"
-             sodipodi:cy="-387.88715"
-             sodipodi:cx="233.43362"
-             id="path12849"
-             style="opacity:0.49444440;fill:url(#linearGradient13501);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-             sodipodi:type="arc" />
+        <g>
+          <path transform="matrix(1.142799,0.000000,0.000000,1.142799,35.23229,210.2770)" d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1  229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1  237.80885 -387.88715 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+          <path transform="matrix(1.142799,0.000000,0.000000,1.142799,35.23229,210.2770)" d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1  229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1  237.80885 -387.88715 z" opacity="0.49444440" fill="url(#linearGradient13501)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
         </g>
-        <g
-           id="g12851">
-          <path
-             transform="matrix(1.038636,0.000000,0.000000,1.038636,59.84906,169.4899)"
-             d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1  235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1  248.54804 -383.66660 z"
-             sodipodi:ry="6.7396116"
-             sodipodi:rx="6.7396116"
-             sodipodi:cy="-383.66660"
-             sodipodi:cx="241.80843"
-             id="path12853"
-             style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-             sodipodi:type="arc" />
-          <path
-             transform="matrix(1.038636,0.000000,0.000000,1.038636,59.84907,169.4899)"
-             d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1  235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1  248.54804 -383.66660 z"
-             sodipodi:ry="6.7396116"
-             sodipodi:rx="6.7396116"
-             sodipodi:cy="-383.66660"
-             sodipodi:cx="241.80843"
-             id="path12855"
-             style="opacity:0.49444440;fill:url(#linearGradient13503);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-             sodipodi:type="arc" />
+        <g>
+          <path transform="matrix(1.038636,0.000000,0.000000,1.038636,59.84906,169.4899)" d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1  235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1  248.54804 -383.66660 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+          <path transform="matrix(1.038636,0.000000,0.000000,1.038636,59.84907,169.4899)" d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1  235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1  248.54804 -383.66660 z" opacity="0.49444440" fill="url(#linearGradient13503)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
         </g>
       </g>
-      <g
-         transform="translate(208.8564,357.8851)"
-         id="g11177">
-        <path
-           style="fill:#edd400;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient11189);stroke-width:1.0000006px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
-           d="M -173.24571,-327.59122 L -176.37021,-323.31202 L -172.59078,-323.31202 C -172.59078,-323.31202 -175.29396,-318.78622 -180.16632,-310.38562 C -178.07014,-318.33294 -177.21353,-321.35581 -177.21353,-321.35581 L -182.37682,-321.35581 L -178.33401,-327.59122 L -173.24571,-327.59122 z "
-           id="path11179"
-           sodipodi:nodetypes="cccccccc" />
-        <path
-           style="opacity:1.0000000;fill:url(#linearGradient11191);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000006px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
-           d="M -173.75946,-327.84461 L -177.50268,-322.68152 L -173.54648,-322.85830 C -173.54648,-322.85830 -173.68639,-322.39837 -178.55875,-313.99777 C -176.46257,-321.94509 -176.48985,-321.96275 -176.48985,-321.96275 L -181.38797,-321.87436 L -177.69871,-327.57944 L -173.75946,-327.84461 z "
-           id="path11181"
-           sodipodi:nodetypes="cccccccc" />
+      <g transform="translate(208.8564,357.8851)">
+        <path d="M -173.24571,-327.59122 L -176.37021,-323.31202 L -172.59078,-323.31202 C -172.59078,-323.31202 -175.29396,-318.78622 -180.16632,-310.38562 C -178.07014,-318.33294 -177.21353,-321.35581 -177.21353,-321.35581 L -182.37682,-321.35581 L -178.33401,-327.59122 L -173.24571,-327.59122 z " fill="#edd400" fill-opacity="1.0000000" fill-rule="evenodd" stroke="url(#linearGradient11189)" stroke-width="1.0000006px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1.0000000"/>
+        <path d="M -173.75946,-327.84461 L -177.50268,-322.68152 L -173.54648,-322.85830 C -173.54648,-322.85830 -173.68639,-322.39837 -178.55875,-313.99777 C -176.46257,-321.94509 -176.48985,-321.96275 -176.48985,-321.96275 L -181.38797,-321.87436 L -177.69871,-327.57944 L -173.75946,-327.84461 z " opacity="1.0000000" fill="url(#linearGradient11191)" fill-opacity="1.0000000" fill-rule="evenodd" stroke="none" stroke-width="1.0000006px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1.0000000"/>
       </g>
-      <g
-         transform="translate(-215.0060,252.9994)"
-         id="g12857">
-        <path
-           style="fill:#888a85;fill-opacity:1.0000000;stroke:#555753;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           d="M 246.49993,-238.49993 C 244.22910,-238.49993 242.39002,-236.94965 241.78118,-234.87493 C 241.08795,-235.23876 240.33667,-235.49993 239.49993,-235.49993 C 236.73993,-235.49993 234.49992,-233.25994 234.49993,-230.49993 C 234.49993,-229.92100 234.66245,-229.39223 234.84368,-228.87493 C 233.47021,-228.10419 232.49993,-226.68593 232.49993,-224.99993 C 232.49993,-222.51593 234.51593,-220.49992 236.99993,-220.49993 C 237.17706,-220.49993 255.82280,-220.49993 255.99993,-220.49993 C 258.48392,-220.49993 260.49993,-222.51593 260.49993,-224.99993 C 260.49993,-226.68593 259.52965,-228.10419 258.15618,-228.87493 C 258.33742,-229.39222 258.49993,-229.92101 258.49993,-230.49993 C 258.49993,-233.25993 256.25993,-235.49992 253.49993,-235.49993 C 252.66319,-235.49993 251.91191,-235.23876 251.21868,-234.87493 C 250.60984,-236.94965 248.77076,-238.49993 246.49993,-238.49993 z "
-           id="path12859"
-           sodipodi:nodetypes="ccsscsssscsscc" />
-        <path
-           style="opacity:1.0000000;fill:url(#linearGradient13131);fill-opacity:1.0000000;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           d="M 246.49993,-237.99993 C 244.31021,-237.99993 242.77633,-236.66416 242.10438,-234.15641 C 241.43592,-234.50003 240.55679,-234.98976 239.74993,-234.98976 C 237.03342,-234.98976 234.99479,-233.05094 234.99480,-230.44422 C 234.99480,-229.89745 235.26201,-229.11078 235.43676,-228.62221 C 234.11233,-227.89426 232.99993,-226.73171 232.99993,-225.24966 C 232.99993,-222.90361 234.54610,-220.99957 237.33921,-220.99957 C 237.51002,-220.99957 255.48985,-220.99957 255.66065,-220.99957 C 258.43166,-220.99957 259.99993,-222.90361 259.99993,-225.24966 C 259.99993,-226.84203 258.88753,-227.91635 257.56310,-228.64430 C 257.73786,-229.13286 258.02717,-229.89746 258.02717,-230.44422 C 258.02717,-233.05093 255.91136,-235.01185 253.24994,-235.01186 C 252.44307,-235.01186 251.60813,-234.52212 250.93967,-234.17850 C 250.29082,-236.60004 248.68966,-237.99993 246.49993,-237.99993 z "
-           id="path12861"
-           sodipodi:nodetypes="ccsscsssscsscc" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path12863"
-           sodipodi:cx="288.37500"
-           sodipodi:cy="-437.59375"
-           sodipodi:rx="3.3125000"
-           sodipodi:ry="3.3125000"
-           d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-           transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:0.47777775;fill:url(#linearGradient13133);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path12865"
-           sodipodi:cx="288.37500"
-           sodipodi:cy="-437.59375"
-           sodipodi:rx="3.3125000"
-           sodipodi:ry="3.3125000"
-           d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-           transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" />
-        <rect
-           style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="rect12867"
-           width="20.000000"
-           height="9.0000000"
-           x="236.99994"
-           y="-230.99992" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path12869"
-           sodipodi:cx="288.37500"
-           sodipodi:cy="-437.59375"
-           sodipodi:rx="3.3125000"
-           sodipodi:ry="3.3125000"
-           d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-           transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16987,171.3114)" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path12871"
-           sodipodi:cx="288.37500"
-           sodipodi:cy="-437.59375"
-           sodipodi:rx="3.3125000"
-           sodipodi:ry="3.3125000"
-           d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-           transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19818,231.8633)" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:0.47777775;fill:url(#linearGradient13135);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path12873"
-           sodipodi:cx="288.37500"
-           sodipodi:cy="-437.59375"
-           sodipodi:rx="3.3125000"
-           sodipodi:ry="3.3125000"
-           d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-           transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19825,231.8634)" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path12875"
-           sodipodi:cx="288.37500"
-           sodipodi:cy="-437.59375"
-           sodipodi:rx="3.3125000"
-           sodipodi:ry="3.3125000"
-           d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-           transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:0.47777775;fill:url(#linearGradient13137);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path12877"
-           sodipodi:cx="288.37500"
-           sodipodi:cy="-437.59375"
-           sodipodi:rx="3.3125000"
-           sodipodi:ry="3.3125000"
-           d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-           transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" />
-        <path
-           style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           d="M 245.46868,-233.96868 C 241.88930,-233.96868 238.99993,-231.04805 238.99993,-227.46868 C 238.99993,-225.09800 240.34936,-223.13089 242.24993,-221.99993 L 248.71868,-221.99993 C 250.61925,-223.13089 251.96868,-225.12924 251.96868,-227.49993 C 251.96868,-231.07931 249.04805,-233.96868 245.46868,-233.96868 z "
-           id="path12879" />
-        <path
-           style="opacity:0.47777775;fill:url(#linearGradient13139);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           d="M 245.49993,-233.99993 C 241.91193,-233.99993 238.99993,-231.08792 238.99993,-227.49993 C 238.99993,-225.12353 240.34478,-223.13361 242.24993,-221.99993 L 248.74993,-221.99993 C 250.65508,-223.13361 251.99993,-225.12353 251.99993,-227.49993 C 251.99993,-231.08793 249.08793,-233.99992 245.49993,-233.99993 z "
-           id="path12881" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:0.47777775;fill:url(#linearGradient13141);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path12883"
-           sodipodi:cx="288.37500"
-           sodipodi:cy="-437.59375"
-           sodipodi:rx="3.3125000"
-           sodipodi:ry="3.3125000"
-           d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-           transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16977,171.3113)" />
-        <path
-           style="fill:#555753;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
-           d="M 258.95633,-230.33389 C 258.95480,-227.64933 255.68707,-226.61994 255.68707,-226.61994 C 255.68707,-226.61994 258.03581,-228.24589 258.02392,-230.32495 C 258.02392,-230.32495 258.95633,-230.33389 258.95633,-230.33389 z "
-           id="path12885"
-           sodipodi:nodetypes="ccss" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path12887"
-           sodipodi:cx="288.37500"
-           sodipodi:cy="-437.59375"
-           sodipodi:rx="3.3125000"
-           sodipodi:ry="3.3125000"
-           d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-           transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:0.47777775;fill:url(#linearGradient13143);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path12889"
-           sodipodi:cx="288.37500"
-           sodipodi:cy="-437.59375"
-           sodipodi:rx="3.3125000"
-           sodipodi:ry="3.3125000"
-           d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-           transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" />
+      <g transform="translate(-215.0060,252.9994)">
+        <path d="M 246.49993,-238.49993 C 244.22910,-238.49993 242.39002,-236.94965 241.78118,-234.87493 C 241.08795,-235.23876 240.33667,-235.49993 239.49993,-235.49993 C 236.73993,-235.49993 234.49992,-233.25994 234.49993,-230.49993 C 234.49993,-229.92100 234.66245,-229.39223 234.84368,-228.87493 C 233.47021,-228.10419 232.49993,-226.68593 232.49993,-224.99993 C 232.49993,-222.51593 234.51593,-220.49992 236.99993,-220.49993 C 237.17706,-220.49993 255.82280,-220.49993 255.99993,-220.49993 C 258.48392,-220.49993 260.49993,-222.51593 260.49993,-224.99993 C 260.49993,-226.68593 259.52965,-228.10419 258.15618,-228.87493 C 258.33742,-229.39222 258.49993,-229.92101 258.49993,-230.49993 C 258.49993,-233.25993 256.25993,-235.49992 253.49993,-235.49993 C 252.66319,-235.49993 251.91191,-235.23876 251.21868,-234.87493 C 250.60984,-236.94965 248.77076,-238.49993 246.49993,-238.49993 z " fill="#888a85" fill-opacity="1.0000000" stroke="#555753" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 246.49993,-237.99993 C 244.31021,-237.99993 242.77633,-236.66416 242.10438,-234.15641 C 241.43592,-234.50003 240.55679,-234.98976 239.74993,-234.98976 C 237.03342,-234.98976 234.99479,-233.05094 234.99480,-230.44422 C 234.99480,-229.89745 235.26201,-229.11078 235.43676,-228.62221 C 234.11233,-227.89426 232.99993,-226.73171 232.99993,-225.24966 C 232.99993,-222.90361 234.54610,-220.99957 237.33921,-220.99957 C 237.51002,-220.99957 255.48985,-220.99957 255.66065,-220.99957 C 258.43166,-220.99957 259.99993,-222.90361 259.99993,-225.24966 C 259.99993,-226.84203 258.88753,-227.91635 257.56310,-228.64430 C 257.73786,-229.13286 258.02717,-229.89746 258.02717,-230.44422 C 258.02717,-233.05093 255.91136,-235.01185 253.24994,-235.01186 C 252.44307,-235.01186 251.60813,-234.52212 250.93967,-234.17850 C 250.29082,-236.60004 248.68966,-237.99993 246.49993,-237.99993 z " opacity="1.0000000" fill="url(#linearGradient13131)" fill-opacity="1.0000000" stroke="none" stroke-width="0.99999958" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" opacity="0.47777775" fill="url(#linearGradient13133)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <rect width="20.000000" height="9.0000000" x="236.99994" y="-230.99992" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16987,171.3114)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19818,231.8633)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19825,231.8634)" opacity="0.47777775" fill="url(#linearGradient13135)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" opacity="0.47777775" fill="url(#linearGradient13137)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 245.46868,-233.96868 C 241.88930,-233.96868 238.99993,-231.04805 238.99993,-227.46868 C 238.99993,-225.09800 240.34936,-223.13089 242.24993,-221.99993 L 248.71868,-221.99993 C 250.61925,-223.13089 251.96868,-225.12924 251.96868,-227.49993 C 251.96868,-231.07931 249.04805,-233.96868 245.46868,-233.96868 z " opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 245.49993,-233.99993 C 241.91193,-233.99993 238.99993,-231.08792 238.99993,-227.49993 C 238.99993,-225.12353 240.34478,-223.13361 242.24993,-221.99993 L 248.74993,-221.99993 C 250.65508,-223.13361 251.99993,-225.12353 251.99993,-227.49993 C 251.99993,-231.08793 249.08793,-233.99992 245.49993,-233.99993 z " opacity="0.47777775" fill="url(#linearGradient13139)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16977,171.3113)" opacity="0.47777775" fill="url(#linearGradient13141)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 258.95633,-230.33389 C 258.95480,-227.64933 255.68707,-226.61994 255.68707,-226.61994 C 255.68707,-226.61994 258.03581,-228.24589 258.02392,-230.32495 C 258.02392,-230.32495 258.95633,-230.33389 258.95633,-230.33389 z " fill="#555753" fill-opacity="1.0000000" fill-rule="evenodd" stroke="none" stroke-width="1.0000000px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1.0000000"/>
+        <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" opacity="0.47777775" fill="url(#linearGradient13143)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
       </g>
-      <g
-         transform="translate(192.8564,354.8851)"
-         id="g11183">
-        <path
-           style="fill:#edd400;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient11193);stroke-width:1.0000006px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
-           d="M -173.24571,-327.59122 L -176.37021,-323.31202 L -172.59078,-323.31202 C -172.59078,-323.31202 -175.29396,-318.78622 -180.16632,-310.38562 C -178.07014,-318.33294 -177.21353,-321.35581 -177.21353,-321.35581 L -182.37682,-321.35581 L -178.33401,-327.59122 L -173.24571,-327.59122 z "
-           id="path11185"
-           sodipodi:nodetypes="cccccccc" />
-        <path
-           style="opacity:1.0000000;fill:url(#linearGradient11195);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000006px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
-           d="M -173.75946,-327.84461 L -177.50268,-322.68152 L -173.54648,-322.85830 C -173.54648,-322.85830 -173.68639,-322.39837 -178.55875,-313.99777 C -176.46257,-321.94509 -176.48985,-321.96275 -176.48985,-321.96275 L -181.38797,-321.87436 L -177.69871,-327.57944 L -173.75946,-327.84461 z "
-           id="path11187"
-           sodipodi:nodetypes="cccccccc" />
+      <g transform="translate(192.8564,354.8851)">
+        <path d="M -173.24571,-327.59122 L -176.37021,-323.31202 L -172.59078,-323.31202 C -172.59078,-323.31202 -175.29396,-318.78622 -180.16632,-310.38562 C -178.07014,-318.33294 -177.21353,-321.35581 -177.21353,-321.35581 L -182.37682,-321.35581 L -178.33401,-327.59122 L -173.24571,-327.59122 z " fill="#edd400" fill-opacity="1.0000000" fill-rule="evenodd" stroke="url(#linearGradient11193)" stroke-width="1.0000006px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1.0000000"/>
+        <path d="M -173.75946,-327.84461 L -177.50268,-322.68152 L -173.54648,-322.85830 C -173.54648,-322.85830 -173.68639,-322.39837 -178.55875,-313.99777 C -176.46257,-321.94509 -176.48985,-321.96275 -176.48985,-321.96275 L -181.38797,-321.87436 L -177.69871,-327.57944 L -173.75946,-327.84461 z " opacity="1.0000000" fill="url(#linearGradient11195)" fill-opacity="1.0000000" fill-rule="evenodd" stroke="none" stroke-width="1.0000006px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1.0000000"/>
       </g>
-      <path
-         sodipodi:nodetypes="ccsscsscscsscc"
-         id="path13209"
-         d="M 31.626355,14.999520 C 29.626255,14.999520 27.940775,16.079020 27.095785,17.614460 C 26.500875,17.392550 25.851145,17.261090 25.169835,17.261090 C 22.339625,17.261090 20.052305,19.379260 20.052305,21.978590 C 20.052305,22.432340 20.196835,22.835420 20.327445,23.250720 C 18.945125,24.115990 17.979615,25.504290 17.979615,27.155450 C 17.979615,29.808280 18.631235,32.148800 23.207195,31.961300 C 23.252315,31.959450 40.658675,32.058280 40.907605,31.943270 C 43.992815,32.169220 44.979615,29.497540 44.979615,27.243810 C 44.979615,25.543300 44.142675,24.193960 42.670345,23.366220 C 42.718305,23.107660 42.631785,22.815030 42.631785,22.543970 C 42.631785,19.944650 40.326135,17.826480 37.495915,17.826480 C 37.102425,17.826480 36.763515,17.961300 36.395375,18.038500 C 35.656915,16.270380 33.810365,14.999520 31.626355,14.999520 z "
-         style="opacity:1.0000000;fill:url(#radialGradient13211);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000004;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000" />
-      <g
-         transform="translate(-230.0203,248.9834)"
-         id="g12891">
-        <path
-           style="fill:#888a85;fill-opacity:1.0000000;stroke:#555753;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           d="M 246.49993,-238.49993 C 244.22910,-238.49993 242.39002,-236.94965 241.78118,-234.87493 C 241.08795,-235.23876 240.33667,-235.49993 239.49993,-235.49993 C 236.73993,-235.49993 234.49992,-233.25994 234.49993,-230.49993 C 234.49993,-229.92100 234.66245,-229.39223 234.84368,-228.87493 C 233.47021,-228.10419 232.49993,-226.68593 232.49993,-224.99993 C 232.49993,-222.51593 234.51593,-220.49992 236.99993,-220.49993 C 237.17706,-220.49993 255.82280,-220.49993 255.99993,-220.49993 C 258.48392,-220.49993 260.49993,-222.51593 260.49993,-224.99993 C 260.49993,-226.68593 259.52965,-228.10419 258.15618,-228.87493 C 258.33742,-229.39222 258.49993,-229.92101 258.49993,-230.49993 C 258.49993,-233.25993 256.25993,-235.49992 253.49993,-235.49993 C 252.66319,-235.49993 251.91191,-235.23876 251.21868,-234.87493 C 250.60984,-236.94965 248.77076,-238.49993 246.49993,-238.49993 z "
-           id="path12893"
-           sodipodi:nodetypes="ccsscsssscsscc" />
-        <path
-           style="opacity:1.0000000;fill:url(#linearGradient13145);fill-opacity:1.0000000;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           d="M 246.49993,-237.99993 C 244.31021,-237.99993 242.77633,-236.66416 242.10438,-234.15641 C 241.43592,-234.50003 240.55679,-234.98976 239.74993,-234.98976 C 237.03342,-234.98976 234.99479,-233.05094 234.99480,-230.44422 C 234.99480,-229.89745 235.26201,-229.11078 235.43676,-228.62221 C 234.11233,-227.89426 232.99993,-226.73171 232.99993,-225.24966 C 232.99993,-222.90361 234.54610,-220.99957 237.33921,-220.99957 C 237.51002,-220.99957 255.48985,-220.99957 255.66065,-220.99957 C 258.43166,-220.99957 259.99993,-222.90361 259.99993,-225.24966 C 259.99993,-226.84203 258.88753,-227.91635 257.56310,-228.64430 C 257.73786,-229.13286 258.02717,-229.89746 258.02717,-230.44422 C 258.02717,-233.05093 255.91136,-235.01185 253.24994,-235.01186 C 252.44307,-235.01186 251.60813,-234.52212 250.93967,-234.17850 C 250.29082,-236.60004 248.68966,-237.99993 246.49993,-237.99993 z "
-           id="path12895"
-           sodipodi:nodetypes="ccsscsssscsscc" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path12897"
-           sodipodi:cx="288.37500"
-           sodipodi:cy="-437.59375"
-           sodipodi:rx="3.3125000"
-           sodipodi:ry="3.3125000"
-           d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-           transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:0.47777775;fill:url(#linearGradient13147);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path12899"
-           sodipodi:cx="288.37500"
-           sodipodi:cy="-437.59375"
-           sodipodi:rx="3.3125000"
-           sodipodi:ry="3.3125000"
-           d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-           transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" />
-        <rect
-           style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="rect12901"
-           width="20.000000"
-           height="9.0000000"
-           x="236.99994"
-           y="-230.99992" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path12903"
-           sodipodi:cx="288.37500"
-           sodipodi:cy="-437.59375"
-           sodipodi:rx="3.3125000"
-           sodipodi:ry="3.3125000"
-           d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-           transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16987,171.3114)" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path12905"
-           sodipodi:cx="288.37500"
-           sodipodi:cy="-437.59375"
-           sodipodi:rx="3.3125000"
-           sodipodi:ry="3.3125000"
-           d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-           transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19818,231.8633)" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:0.47777775;fill:url(#linearGradient13149);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path12907"
-           sodipodi:cx="288.37500"
-           sodipodi:cy="-437.59375"
-           sodipodi:rx="3.3125000"
-           sodipodi:ry="3.3125000"
-           d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-           transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19825,231.8634)" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path12909"
-           sodipodi:cx="288.37500"
-           sodipodi:cy="-437.59375"
-           sodipodi:rx="3.3125000"
-           sodipodi:ry="3.3125000"
-           d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-           transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:0.47777775;fill:url(#linearGradient13151);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path12911"
-           sodipodi:cx="288.37500"
-           sodipodi:cy="-437.59375"
-           sodipodi:rx="3.3125000"
-           sodipodi:ry="3.3125000"
-           d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-           transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" />
-        <path
-           style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           d="M 245.46868,-233.96868 C 241.88930,-233.96868 238.99993,-231.04805 238.99993,-227.46868 C 238.99993,-225.09800 240.34936,-223.13089 242.24993,-221.99993 L 248.71868,-221.99993 C 250.61925,-223.13089 251.96868,-225.12924 251.96868,-227.49993 C 251.96868,-231.07931 249.04805,-233.96868 245.46868,-233.96868 z "
-           id="path12913" />
-        <path
-           style="opacity:0.47777775;fill:url(#linearGradient13153);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           d="M 245.49993,-233.99993 C 241.91193,-233.99993 238.99993,-231.08792 238.99993,-227.49993 C 238.99993,-225.12353 240.34478,-223.13361 242.24993,-221.99993 L 248.74993,-221.99993 C 250.65508,-223.13361 251.99993,-225.12353 251.99993,-227.49993 C 251.99993,-231.08793 249.08793,-233.99992 245.49993,-233.99993 z "
-           id="path12915" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:0.47777775;fill:url(#linearGradient13155);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path12917"
-           sodipodi:cx="288.37500"
-           sodipodi:cy="-437.59375"
-           sodipodi:rx="3.3125000"
-           sodipodi:ry="3.3125000"
-           d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-           transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16977,171.3113)" />
-        <path
-           style="fill:#555753;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
-           d="M 258.95633,-230.33389 C 258.95480,-227.64933 255.68707,-226.61994 255.68707,-226.61994 C 255.68707,-226.61994 258.03581,-228.24589 258.02392,-230.32495 C 258.02392,-230.32495 258.95633,-230.33389 258.95633,-230.33389 z "
-           id="path12919"
-           sodipodi:nodetypes="ccss" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path12921"
-           sodipodi:cx="288.37500"
-           sodipodi:cy="-437.59375"
-           sodipodi:rx="3.3125000"
-           sodipodi:ry="3.3125000"
-           d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-           transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" />
-        <path
-           sodipodi:type="arc"
-           style="opacity:0.47777775;fill:url(#linearGradient13157);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-           id="path12923"
-           sodipodi:cx="288.37500"
-           sodipodi:cy="-437.59375"
-           sodipodi:rx="3.3125000"
-           sodipodi:ry="3.3125000"
-           d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z"
-           transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" />
+      <path d="M 31.626355,14.999520 C 29.626255,14.999520 27.940775,16.079020 27.095785,17.614460 C 26.500875,17.392550 25.851145,17.261090 25.169835,17.261090 C 22.339625,17.261090 20.052305,19.379260 20.052305,21.978590 C 20.052305,22.432340 20.196835,22.835420 20.327445,23.250720 C 18.945125,24.115990 17.979615,25.504290 17.979615,27.155450 C 17.979615,29.808280 18.631235,32.148800 23.207195,31.961300 C 23.252315,31.959450 40.658675,32.058280 40.907605,31.943270 C 43.992815,32.169220 44.979615,29.497540 44.979615,27.243810 C 44.979615,25.543300 44.142675,24.193960 42.670345,23.366220 C 42.718305,23.107660 42.631785,22.815030 42.631785,22.543970 C 42.631785,19.944650 40.326135,17.826480 37.495915,17.826480 C 37.102425,17.826480 36.763515,17.961300 36.395375,18.038500 C 35.656915,16.270380 33.810365,14.999520 31.626355,14.999520 z " opacity="1.0000000" fill="url(#radialGradient13211)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000004" stroke-linejoin="round" stroke-miterlimit="4.0000000" stroke-dasharray="none" stroke-opacity="1.0000000"/>
+      <g transform="translate(-230.0203,248.9834)">
+        <path d="M 246.49993,-238.49993 C 244.22910,-238.49993 242.39002,-236.94965 241.78118,-234.87493 C 241.08795,-235.23876 240.33667,-235.49993 239.49993,-235.49993 C 236.73993,-235.49993 234.49992,-233.25994 234.49993,-230.49993 C 234.49993,-229.92100 234.66245,-229.39223 234.84368,-228.87493 C 233.47021,-228.10419 232.49993,-226.68593 232.49993,-224.99993 C 232.49993,-222.51593 234.51593,-220.49992 236.99993,-220.49993 C 237.17706,-220.49993 255.82280,-220.49993 255.99993,-220.49993 C 258.48392,-220.49993 260.49993,-222.51593 260.49993,-224.99993 C 260.49993,-226.68593 259.52965,-228.10419 258.15618,-228.87493 C 258.33742,-229.39222 258.49993,-229.92101 258.49993,-230.49993 C 258.49993,-233.25993 256.25993,-235.49992 253.49993,-235.49993 C 252.66319,-235.49993 251.91191,-235.23876 251.21868,-234.87493 C 250.60984,-236.94965 248.77076,-238.49993 246.49993,-238.49993 z " fill="#888a85" fill-opacity="1.0000000" stroke="#555753" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 246.49993,-237.99993 C 244.31021,-237.99993 242.77633,-236.66416 242.10438,-234.15641 C 241.43592,-234.50003 240.55679,-234.98976 239.74993,-234.98976 C 237.03342,-234.98976 234.99479,-233.05094 234.99480,-230.44422 C 234.99480,-229.89745 235.26201,-229.11078 235.43676,-228.62221 C 234.11233,-227.89426 232.99993,-226.73171 232.99993,-225.24966 C 232.99993,-222.90361 234.54610,-220.99957 237.33921,-220.99957 C 237.51002,-220.99957 255.48985,-220.99957 255.66065,-220.99957 C 258.43166,-220.99957 259.99993,-222.90361 259.99993,-225.24966 C 259.99993,-226.84203 258.88753,-227.91635 257.56310,-228.64430 C 257.73786,-229.13286 258.02717,-229.89746 258.02717,-230.44422 C 258.02717,-233.05093 255.91136,-235.01185 253.24994,-235.01186 C 252.44307,-235.01186 251.60813,-234.52212 250.93967,-234.17850 C 250.29082,-236.60004 248.68966,-237.99993 246.49993,-237.99993 z " opacity="1.0000000" fill="url(#linearGradient13145)" fill-opacity="1.0000000" stroke="none" stroke-width="0.99999958" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" opacity="0.47777775" fill="url(#linearGradient13147)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <rect width="20.000000" height="9.0000000" x="236.99994" y="-230.99992" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16987,171.3114)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19818,231.8633)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19825,231.8634)" opacity="0.47777775" fill="url(#linearGradient13149)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" opacity="0.47777775" fill="url(#linearGradient13151)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 245.46868,-233.96868 C 241.88930,-233.96868 238.99993,-231.04805 238.99993,-227.46868 C 238.99993,-225.09800 240.34936,-223.13089 242.24993,-221.99993 L 248.71868,-221.99993 C 250.61925,-223.13089 251.96868,-225.12924 251.96868,-227.49993 C 251.96868,-231.07931 249.04805,-233.96868 245.46868,-233.96868 z " opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 245.49993,-233.99993 C 241.91193,-233.99993 238.99993,-231.08792 238.99993,-227.49993 C 238.99993,-225.12353 240.34478,-223.13361 242.24993,-221.99993 L 248.74993,-221.99993 C 250.65508,-223.13361 251.99993,-225.12353 251.99993,-227.49993 C 251.99993,-231.08793 249.08793,-233.99992 245.49993,-233.99993 z " opacity="0.47777775" fill="url(#linearGradient13153)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16977,171.3113)" opacity="0.47777775" fill="url(#linearGradient13155)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 258.95633,-230.33389 C 258.95480,-227.64933 255.68707,-226.61994 255.68707,-226.61994 C 255.68707,-226.61994 258.03581,-228.24589 258.02392,-230.32495 C 258.02392,-230.32495 258.95633,-230.33389 258.95633,-230.33389 z " fill="#555753" fill-opacity="1.0000000" fill-rule="evenodd" stroke="none" stroke-width="1.0000000px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1.0000000"/>
+        <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
+        <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1  285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1  291.68750 -437.59375 z" transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" opacity="0.47777775" fill="url(#linearGradient13157)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/>
       </g>
-      <path
-         sodipodi:nodetypes="ccsscsscscsscc"
-         id="path11418"
-         d="M 16.188855,11.000000 C 14.188755,11.000000 12.503275,12.079500 11.658285,13.614940 C 11.063375,13.393030 10.413645,13.261570 9.7323346,13.261570 C 6.9021246,13.261570 4.6148046,15.379740 4.6148046,17.979070 C 4.6148046,18.432820 4.7593346,18.835900 4.8899446,19.251200 C 3.5076246,20.116470 2.5421146,21.504770 2.5421146,23.155930 C 2.5421146,25.808760 3.1937346,28.149280 7.7696946,27.961780 C 7.8148146,27.959930 25.221175,28.058760 25.470105,27.943750 C 28.555315,28.169700 29.542115,25.498020 29.542115,23.244290 C 29.542115,21.543780 28.705175,20.194440 27.232845,19.366700 C 27.280805,19.108140 27.194285,18.815510 27.194285,18.544450 C 27.194285,15.945130 24.888635,13.826960 22.058415,13.826960 C 21.664925,13.826960 21.326015,13.961780 20.957875,14.038980 C 20.219415,12.270860 18.372865,11.000000 16.188855,11.000000 z "
-         style="opacity:1.0000000;fill:url(#radialGradient13068);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000004;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000" />
-      <g
-         transform="translate(-212.91035,271.43)"
-         id="g12227">
-        <path
-           style="fill:#729fcf;fill-opacity:1;stroke:#204a87;stroke-width:1.07456863;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-           d="M 231.62587,-228.77086 C 230.58662,-229.36665 230.23015,-230.68774 230.83016,-231.71967 C 232.16166,-233.80243 233.93524,-233.26584 234.84231,-235.46138 C 236.10323,-234.12777 235.63545,-227.21367 231.62587,-228.77086 z"
-           id="path12229"
-           sodipodi:nodetypes="cccc" />
-        <path
-           style="opacity:0.46111109;fill:url(#radialGradient23739);fill-opacity:1;stroke:none;stroke-width:1.07457018;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1"
-           d="M 234.31017,-229.9035 C 233.82059,-229.03976 232.73502,-228.74348 231.88703,-229.24216 C 231.03903,-229.74084 230.74816,-230.84657 231.23774,-231.71031 C 231.72733,-232.57405 233.84374,-232.16235 234.58388,-234 C 235.43187,-233.50133 234.79976,-230.76724 234.31017,-229.9035 z"
-           id="path12231"
-           sodipodi:nodetypes="csscc" />
-        <path
-           style="opacity:1;fill:url(#linearGradient23741);fill-opacity:1;stroke:none;stroke-width:1.07457018;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1"
-           d="M 233.02237,-229 C 228.40776,-230.07384 233.25985,-233.71939 234,-232.92154 C 230.4176,-231.55118 233.02237,-229 233.02237,-229 z"
-           id="path12233"
-           sodipodi:nodetypes="ccc" />
+      <path d="M 16.188855,11.000000 C 14.188755,11.000000 12.503275,12.079500 11.658285,13.614940 C 11.063375,13.393030 10.413645,13.261570 9.7323346,13.261570 C 6.9021246,13.261570 4.6148046,15.379740 4.6148046,17.979070 C 4.6148046,18.432820 4.7593346,18.835900 4.8899446,19.251200 C 3.5076246,20.116470 2.5421146,21.504770 2.5421146,23.155930 C 2.5421146,25.808760 3.1937346,28.149280 7.7696946,27.961780 C 7.8148146,27.959930 25.221175,28.058760 25.470105,27.943750 C 28.555315,28.169700 29.542115,25.498020 29.542115,23.244290 C 29.542115,21.543780 28.705175,20.194440 27.232845,19.366700 C 27.280805,19.108140 27.194285,18.815510 27.194285,18.544450 C 27.194285,15.945130 24.888635,13.826960 22.058415,13.826960 C 21.664925,13.826960 21.326015,13.961780 20.957875,14.038980 C 20.219415,12.270860 18.372865,11.000000 16.188855,11.000000 z " opacity="1.0000000" fill="url(#radialGradient13068)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000004" stroke-linejoin="round" stroke-miterlimit="4.0000000" stroke-dasharray="none" stroke-opacity="1.0000000"/>
+      <g transform="translate(-212.91035,271.43)">
+        <path d="M 231.62587,-228.77086 C 230.58662,-229.36665 230.23015,-230.68774 230.83016,-231.71967 C 232.16166,-233.80243 233.93524,-233.26584 234.84231,-235.46138 C 236.10323,-234.12777 235.63545,-227.21367 231.62587,-228.77086 z" fill="#729fcf" fill-opacity="1" stroke="#204a87" stroke-width="1.07456863" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/>
+        <path d="M 234.31017,-229.9035 C 233.82059,-229.03976 232.73502,-228.74348 231.88703,-229.24216 C 231.03903,-229.74084 230.74816,-230.84657 231.23774,-231.71031 C 231.72733,-232.57405 233.84374,-232.16235 234.58388,-234 C 235.43187,-233.50133 234.79976,-230.76724 234.31017,-229.9035 z" opacity="0.46111109" fill="url(#radialGradient23739)" fill-opacity="1" stroke="none" stroke-width="1.07457018" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0" stroke-dashoffset="0" stroke-opacity="1"/>
+        <path d="M 233.02237,-229 C 228.40776,-230.07384 233.25985,-233.71939 234,-232.92154 C 230.4176,-231.55118 233.02237,-229 233.02237,-229 z" opacity="1" fill="url(#linearGradient23741)" fill-opacity="1" stroke="none" stroke-width="1.07457018" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0" stroke-dashoffset="0" stroke-opacity="1"/>
       </g>
-      <g
-         transform="translate(-193.78094,269.3383)"
-         id="g12239">
-        <path
-           style="fill:#729fcf;fill-opacity:1;stroke:#204a87;stroke-width:1.07456863;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-           d="M 231.62587,-228.77086 C 230.58662,-229.36665 230.23015,-230.68774 230.83016,-231.71967 C 232.16166,-233.80243 233.93524,-233.26584 234.84231,-235.46138 C 236.10323,-234.12777 235.63545,-227.21367 231.62587,-228.77086 z"
-           id="path12241"
-           sodipodi:nodetypes="cccc" />
-        <path
-           style="opacity:0.46111109;fill:url(#radialGradient23743);fill-opacity:1;stroke:none;stroke-width:1.07457018;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1"
-           d="M 234.31017,-229.9035 C 233.82059,-229.03976 232.73502,-228.74348 231.88703,-229.24216 C 231.03903,-229.74084 230.74816,-230.84657 231.23774,-231.71031 C 231.72733,-232.57405 233.84374,-232.16235 234.58388,-234 C 235.43187,-233.50133 234.79976,-230.76724 234.31017,-229.9035 z"
-           id="path12243"
-           sodipodi:nodetypes="csscc" />
-        <path
-           style="opacity:1;fill:url(#linearGradient23745);fill-opacity:1;stroke:none;stroke-width:1.07457018;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1"
-           d="M 233.02237,-229 C 228.40776,-230.07384 233.25985,-233.71939 234,-232.92154 C 230.4176,-231.55118 233.02237,-229 233.02237,-229 z"
-           id="path12245"
-           sodipodi:nodetypes="ccc" />
+      <g transform="translate(-193.78094,269.3383)">
+        <path d="M 231.62587,-228.77086 C 230.58662,-229.36665 230.23015,-230.68774 230.83016,-231.71967 C 232.16166,-233.80243 233.93524,-233.26584 234.84231,-235.46138 C 236.10323,-234.12777 235.63545,-227.21367 231.62587,-228.77086 z" fill="#729fcf" fill-opacity="1" stroke="#204a87" stroke-width="1.07456863" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/>
+        <path d="M 234.31017,-229.9035 C 233.82059,-229.03976 232.73502,-228.74348 231.88703,-229.24216 C 231.03903,-229.74084 230.74816,-230.84657 231.23774,-231.71031 C 231.72733,-232.57405 233.84374,-232.16235 234.58388,-234 C 235.43187,-233.50133 234.79976,-230.76724 234.31017,-229.9035 z" opacity="0.46111109" fill="url(#radialGradient23743)" fill-opacity="1" stroke="none" stroke-width="1.07457018" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0" stroke-dashoffset="0" stroke-opacity="1"/>
+        <path d="M 233.02237,-229 C 228.40776,-230.07384 233.25985,-233.71939 234,-232.92154 C 230.4176,-231.55118 233.02237,-229 233.02237,-229 z" opacity="1" fill="url(#linearGradient23745)" fill-opacity="1" stroke="none" stroke-width="1.07457018" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0" stroke-dashoffset="0" stroke-opacity="1"/>
       </g>
-      <g
-         transform="translate(-225.96722,264.58414)"
-         id="g12186">
-        <path
-           style="fill:#729fcf;fill-opacity:1;stroke:#204a87;stroke-width:1.07456863;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-           d="M 231.62587,-228.77086 C 230.58662,-229.36665 230.23015,-230.68774 230.83016,-231.71967 C 232.16166,-233.80243 233.93524,-233.26584 234.84231,-235.46138 C 236.10323,-234.12777 235.63545,-227.21367 231.62587,-228.77086 z"
-           id="path6059"
-           sodipodi:nodetypes="cccc" />
-        <path
-           style="opacity:0.46111109;fill:url(#radialGradient23747);fill-opacity:1;stroke:none;stroke-width:1.07457018;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1"
-           d="M 234.31017,-229.9035 C 233.82059,-229.03976 232.73502,-228.74348 231.88703,-229.24216 C 231.03903,-229.74084 230.74816,-230.84657 231.23774,-231.71031 C 231.72733,-232.57405 233.84374,-232.16235 234.58388,-234 C 235.43187,-233.50133 234.79976,-230.76724 234.31017,-229.9035 z"
-           id="path6061"
-           sodipodi:nodetypes="csscc" />
-        <path
-           style="opacity:1;fill:url(#linearGradient23749);fill-opacity:1;stroke:none;stroke-width:1.07457018;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1"
-           d="M 233.02237,-229 C 228.40776,-230.07384 233.25985,-233.71939 234,-232.92154 C 230.4176,-231.55118 233.02237,-229 233.02237,-229 z"
-           id="path6063"
-           sodipodi:nodetypes="ccc" />
+      <g transform="translate(-225.96722,264.58414)">
+        <path d="M 231.62587,-228.77086 C 230.58662,-229.36665 230.23015,-230.68774 230.83016,-231.71967 C 232.16166,-233.80243 233.93524,-233.26584 234.84231,-235.46138 C 236.10323,-234.12777 235.63545,-227.21367 231.62587,-228.77086 z" fill="#729fcf" fill-opacity="1" stroke="#204a87" stroke-width="1.07456863" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/>
+        <path d="M 234.31017,-229.9035 C 233.82059,-229.03976 232.73502,-228.74348 231.88703,-229.24216 C 231.03903,-229.74084 230.74816,-230.84657 231.23774,-231.71031 C 231.72733,-232.57405 233.84374,-232.16235 234.58388,-234 C 235.43187,-233.50133 234.79976,-230.76724 234.31017,-229.9035 z" opacity="0.46111109" fill="url(#radialGradient23747)" fill-opacity="1" stroke="none" stroke-width="1.07457018" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0" stroke-dashoffset="0" stroke-opacity="1"/>
+        <path d="M 233.02237,-229 C 228.40776,-230.07384 233.25985,-233.71939 234,-232.92154 C 230.4176,-231.55118 233.02237,-229 233.02237,-229 z" opacity="1" fill="url(#linearGradient23749)" fill-opacity="1" stroke="none" stroke-width="1.07457018" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0" stroke-dashoffset="0" stroke-opacity="1"/>
       </g>
     </g>
   </g>
-- 
cgit v0.12


From d5254dde567ef493d4df079a709b54c85e604a18 Mon Sep 17 00:00:00 2001
From: Alessandro Portale <alessandro.portale@nokia.com>
Date: Fri, 30 Oct 2009 17:18:02 +0100
Subject: Reducing file sizes.

Using pngout to make the fluidlauncher a bit lighter.

Reviewed-by: trustme
---
 .../fluidlauncher/screenshots/context2d_s60.png    | Bin 39405 -> 39185 bytes
 .../screenshots/desktopservices_s60.png            | Bin 31757 -> 31504 bytes
 .../fluidlauncher/screenshots/digiflip.png         | Bin 3508 -> 2039 bytes
 .../fluidlauncher/screenshots/flickable.png        | Bin 21107 -> 14141 bytes
 .../fluidlauncher/screenshots/flightinfo_s60.png   | Bin 24473 -> 20482 bytes
 .../fluidlauncher/screenshots/lightmaps.png        | Bin 114178 -> 79501 bytes
 .../fluidlauncher/screenshots/mediaplayer.png      | Bin 98092 -> 80411 bytes
 .../fluidlauncher/screenshots/raycasting.png       | Bin 43006 -> 11984 bytes
 .../fluidlauncher/screenshots/weatherinfo.png      | Bin 38521 -> 34472 bytes
 demos/embedded/fluidlauncher/slides/demo_1.png     | Bin 23539 -> 20560 bytes
 demos/embedded/fluidlauncher/slides/demo_2.png     | Bin 11745 -> 5209 bytes
 demos/embedded/fluidlauncher/slides/demo_5.png     | Bin 15890 -> 6130 bytes
 demos/embedded/fluidlauncher/slides/demo_6.png     | Bin 14992 -> 5826 bytes
 13 files changed, 0 insertions(+), 0 deletions(-)

diff --git a/demos/embedded/fluidlauncher/screenshots/context2d_s60.png b/demos/embedded/fluidlauncher/screenshots/context2d_s60.png
index c7225c7..9c288c9 100644
Binary files a/demos/embedded/fluidlauncher/screenshots/context2d_s60.png and b/demos/embedded/fluidlauncher/screenshots/context2d_s60.png differ
diff --git a/demos/embedded/fluidlauncher/screenshots/desktopservices_s60.png b/demos/embedded/fluidlauncher/screenshots/desktopservices_s60.png
index a429be3..64018f4 100644
Binary files a/demos/embedded/fluidlauncher/screenshots/desktopservices_s60.png and b/demos/embedded/fluidlauncher/screenshots/desktopservices_s60.png differ
diff --git a/demos/embedded/fluidlauncher/screenshots/digiflip.png b/demos/embedded/fluidlauncher/screenshots/digiflip.png
index 117b61b..c31a6f8 100644
Binary files a/demos/embedded/fluidlauncher/screenshots/digiflip.png and b/demos/embedded/fluidlauncher/screenshots/digiflip.png differ
diff --git a/demos/embedded/fluidlauncher/screenshots/flickable.png b/demos/embedded/fluidlauncher/screenshots/flickable.png
index 7080fc1..bad14bf 100644
Binary files a/demos/embedded/fluidlauncher/screenshots/flickable.png and b/demos/embedded/fluidlauncher/screenshots/flickable.png differ
diff --git a/demos/embedded/fluidlauncher/screenshots/flightinfo_s60.png b/demos/embedded/fluidlauncher/screenshots/flightinfo_s60.png
index 8a304eb..8e74d77 100644
Binary files a/demos/embedded/fluidlauncher/screenshots/flightinfo_s60.png and b/demos/embedded/fluidlauncher/screenshots/flightinfo_s60.png differ
diff --git a/demos/embedded/fluidlauncher/screenshots/lightmaps.png b/demos/embedded/fluidlauncher/screenshots/lightmaps.png
index 7cbe2e4..18aa74d 100644
Binary files a/demos/embedded/fluidlauncher/screenshots/lightmaps.png and b/demos/embedded/fluidlauncher/screenshots/lightmaps.png differ
diff --git a/demos/embedded/fluidlauncher/screenshots/mediaplayer.png b/demos/embedded/fluidlauncher/screenshots/mediaplayer.png
index 2d8a637..c9fd43c 100644
Binary files a/demos/embedded/fluidlauncher/screenshots/mediaplayer.png and b/demos/embedded/fluidlauncher/screenshots/mediaplayer.png differ
diff --git a/demos/embedded/fluidlauncher/screenshots/raycasting.png b/demos/embedded/fluidlauncher/screenshots/raycasting.png
index d3c86e9..b6b738a 100644
Binary files a/demos/embedded/fluidlauncher/screenshots/raycasting.png and b/demos/embedded/fluidlauncher/screenshots/raycasting.png differ
diff --git a/demos/embedded/fluidlauncher/screenshots/weatherinfo.png b/demos/embedded/fluidlauncher/screenshots/weatherinfo.png
index b18608d..7e23891 100644
Binary files a/demos/embedded/fluidlauncher/screenshots/weatherinfo.png and b/demos/embedded/fluidlauncher/screenshots/weatherinfo.png differ
diff --git a/demos/embedded/fluidlauncher/slides/demo_1.png b/demos/embedded/fluidlauncher/slides/demo_1.png
index d2952e5..d53d19d 100644
Binary files a/demos/embedded/fluidlauncher/slides/demo_1.png and b/demos/embedded/fluidlauncher/slides/demo_1.png differ
diff --git a/demos/embedded/fluidlauncher/slides/demo_2.png b/demos/embedded/fluidlauncher/slides/demo_2.png
index 1899825..f137de0 100644
Binary files a/demos/embedded/fluidlauncher/slides/demo_2.png and b/demos/embedded/fluidlauncher/slides/demo_2.png differ
diff --git a/demos/embedded/fluidlauncher/slides/demo_5.png b/demos/embedded/fluidlauncher/slides/demo_5.png
index 239f08a..0bb1781 100644
Binary files a/demos/embedded/fluidlauncher/slides/demo_5.png and b/demos/embedded/fluidlauncher/slides/demo_5.png differ
diff --git a/demos/embedded/fluidlauncher/slides/demo_6.png b/demos/embedded/fluidlauncher/slides/demo_6.png
index 0addf37..9daba67 100644
Binary files a/demos/embedded/fluidlauncher/slides/demo_6.png and b/demos/embedded/fluidlauncher/slides/demo_6.png differ
-- 
cgit v0.12


From 9fd3e4746d9b65fa049664ce6d075f1027443fef Mon Sep 17 00:00:00 2001
From: Alessandro Portale <alessandro.portale@nokia.com>
Date: Fri, 30 Oct 2009 17:19:34 +0100
Subject: Reducing file sizes.

Using pngout to make the fluidlauncher a bit lighter.
And to reduce Anomalies memory footprint.

Reviewed-by: trustme
---
 demos/embedded/anomaly/src/images/edit-find.png   | Bin 1636 -> 1495 bytes
 demos/embedded/anomaly/src/images/go-next.png     | Bin 1219 -> 1150 bytes
 demos/embedded/anomaly/src/images/go-previous.png | Bin 1200 -> 1135 bytes
 3 files changed, 0 insertions(+), 0 deletions(-)

diff --git a/demos/embedded/anomaly/src/images/edit-find.png b/demos/embedded/anomaly/src/images/edit-find.png
index 5594785..b84b1e2 100644
Binary files a/demos/embedded/anomaly/src/images/edit-find.png and b/demos/embedded/anomaly/src/images/edit-find.png differ
diff --git a/demos/embedded/anomaly/src/images/go-next.png b/demos/embedded/anomaly/src/images/go-next.png
index a68e2db..ed89a36 100644
Binary files a/demos/embedded/anomaly/src/images/go-next.png and b/demos/embedded/anomaly/src/images/go-next.png differ
diff --git a/demos/embedded/anomaly/src/images/go-previous.png b/demos/embedded/anomaly/src/images/go-previous.png
index c37bc04..44e803d 100644
Binary files a/demos/embedded/anomaly/src/images/go-previous.png and b/demos/embedded/anomaly/src/images/go-previous.png differ
-- 
cgit v0.12


From 9b2d899499c60535a1c9af6dcc48dfa5184dd363 Mon Sep 17 00:00:00 2001
From: Alessandro Portale <alessandro.portale@nokia.com>
Date: Fri, 30 Oct 2009 17:19:57 +0100
Subject: Reducing file sizes.

Using pngout to make the fluidlauncher a bit lighter.

Reviewed-by: trustme
---
 demos/embedded/desktopservices/data/designer.png     | Bin 4205 -> 2529 bytes
 demos/embedded/desktopservices/resources/browser.png | Bin 2739 -> 2525 bytes
 demos/embedded/desktopservices/resources/message.png | Bin 2234 -> 1989 bytes
 demos/embedded/desktopservices/resources/music.png   | Bin 2322 -> 2123 bytes
 demos/embedded/desktopservices/resources/photo.png   | Bin 2430 -> 2233 bytes
 5 files changed, 0 insertions(+), 0 deletions(-)

diff --git a/demos/embedded/desktopservices/data/designer.png b/demos/embedded/desktopservices/data/designer.png
index 0988fce..1485efa 100644
Binary files a/demos/embedded/desktopservices/data/designer.png and b/demos/embedded/desktopservices/data/designer.png differ
diff --git a/demos/embedded/desktopservices/resources/browser.png b/demos/embedded/desktopservices/resources/browser.png
index 28561e1..9ecda6b 100644
Binary files a/demos/embedded/desktopservices/resources/browser.png and b/demos/embedded/desktopservices/resources/browser.png differ
diff --git a/demos/embedded/desktopservices/resources/message.png b/demos/embedded/desktopservices/resources/message.png
index e30052b..78917c7 100644
Binary files a/demos/embedded/desktopservices/resources/message.png and b/demos/embedded/desktopservices/resources/message.png differ
diff --git a/demos/embedded/desktopservices/resources/music.png b/demos/embedded/desktopservices/resources/music.png
index 11a57bb..cc569cb 100644
Binary files a/demos/embedded/desktopservices/resources/music.png and b/demos/embedded/desktopservices/resources/music.png differ
diff --git a/demos/embedded/desktopservices/resources/photo.png b/demos/embedded/desktopservices/resources/photo.png
index 5ba15c1..ac81cf3 100644
Binary files a/demos/embedded/desktopservices/resources/photo.png and b/demos/embedded/desktopservices/resources/photo.png differ
-- 
cgit v0.12


From 9440e6a1b3ce4da0a832afeef23e69d9fc55bb47 Mon Sep 17 00:00:00 2001
From: Alessandro Portale <alessandro.portale@nokia.com>
Date: Fri, 30 Oct 2009 17:20:08 +0100
Subject: Reducing file sizes.

Using pngout to make the fluidlauncher a bit lighter.

Reviewed-by: trustme
---
 demos/embedded/flightinfo/aircraft.png | Bin 28713 -> 20200 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)

diff --git a/demos/embedded/flightinfo/aircraft.png b/demos/embedded/flightinfo/aircraft.png
index 0845cb4..2312bcc 100644
Binary files a/demos/embedded/flightinfo/aircraft.png and b/demos/embedded/flightinfo/aircraft.png differ
-- 
cgit v0.12


From a647abd3d108eb6ce45642713b5786240659816f Mon Sep 17 00:00:00 2001
From: Alessandro Portale <alessandro.portale@nokia.com>
Date: Fri, 30 Oct 2009 17:20:17 +0100
Subject: Reducing file sizes.

Using pngout to make the fluidlauncher a bit lighter.

Reviewed-by: trustme
---
 demos/embedded/raycasting/textures.png | Bin 42319 -> 17669 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)

diff --git a/demos/embedded/raycasting/textures.png b/demos/embedded/raycasting/textures.png
index 839488b..2eb1ba7 100644
Binary files a/demos/embedded/raycasting/textures.png and b/demos/embedded/raycasting/textures.png differ
-- 
cgit v0.12


From fd0b91269e1cb46961414d689615ea3f17f6a524 Mon Sep 17 00:00:00 2001
From: Alessandro Portale <alessandro.portale@nokia.com>
Date: Fri, 30 Oct 2009 17:40:53 +0100
Subject: Reducing file size.

Stripping 350k off by reencoding the mp3.
32 Kbps, mono, 22.05 KHz.

Reviewed-by: trustme
---
 demos/embedded/desktopservices/data/sax.mp3 | Bin 417844 -> 104104 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)

diff --git a/demos/embedded/desktopservices/data/sax.mp3 b/demos/embedded/desktopservices/data/sax.mp3
index 0a078b1..d77c817 100644
Binary files a/demos/embedded/desktopservices/data/sax.mp3 and b/demos/embedded/desktopservices/data/sax.mp3 differ
-- 
cgit v0.12


From 243bd8c8f47f37b7a066a99bad180310dba2edcb Mon Sep 17 00:00:00 2001
From: Alessandro Portale <alessandro.portale@nokia.com>
Date: Fri, 30 Oct 2009 18:36:37 +0100
Subject: Added manual text performance test.

Small application that simulates different text rendering
scenarios and displays the Fps.

Reviewed-by: trustme
---
 .../manual/textrendering/textperformance/main.cpp  | 231 +++++++++++++++++++++
 .../textperformance/textperformance.pro            |   1 +
 2 files changed, 232 insertions(+)
 create mode 100644 tests/manual/textrendering/textperformance/main.cpp
 create mode 100644 tests/manual/textrendering/textperformance/textperformance.pro

diff --git a/tests/manual/textrendering/textperformance/main.cpp b/tests/manual/textrendering/textperformance/main.cpp
new file mode 100644
index 0000000..3019ebf
--- /dev/null
+++ b/tests/manual/textrendering/textperformance/main.cpp
@@ -0,0 +1,231 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file.  Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights.  These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtGui>
+
+static const int lastMeasurementsCount = 50;
+
+class FontBlaster: public QWidget
+{
+    Q_OBJECT
+
+public:
+    FontBlaster(QWidget *parent = 0)
+        : QWidget(parent)
+        , m_currentMode(0)
+    {
+        setFocusPolicy(Qt::StrongFocus);
+    }
+
+    void paintEvent(QPaintEvent *event)
+    {
+        Q_UNUSED(event);
+        QPainter p(this);
+
+        if (!m_timer.isNull())
+            m_lastMeasurements.append(m_timer.elapsed());
+        m_timer.start();
+
+        p.save();
+        m_modes[m_currentMode].function(p, size());
+        p.restore();
+
+        const QFontMetrics fm = p.fontMetrics();
+        p.setOpacity(0.7);
+        p.fillRect(0, 0, width(), fm.height(), Qt::gray);
+        p.fillRect(0, height() - fm.height(), width(), height(), Qt::gray);
+        p.setOpacity(1);
+        p.setPen(palette().color(QPalette::Text));
+        p.drawText(2, fm.ascent(), m_modes[m_currentMode].name);
+
+        if (m_lastMeasurements.count() == lastMeasurementsCount) {
+            m_lastMeasurements.removeFirst();
+            int lastMsecsSum = 0;
+            foreach(const int measurement, m_lastMeasurements)
+                lastMsecsSum += measurement;
+
+            p.drawText(2, height() - fm.descent(),
+                QLatin1String("Fps: ") +
+                QString::number(1000 / (qreal)(lastMsecsSum / lastMeasurementsCount), 'f', 1)
+            );
+        }
+
+        QTimer::singleShot(0, this, SLOT(repaint()));
+    }
+
+    /*
+      Creating all kinds of size/weight/italic combinations, stress testing
+      the glyph cache.
+      Also: painting with different opacities, stress testing blitting.
+    */
+    static void paintDifferentFontStyles(QPainter &p, const QSize &size)
+    {
+        static const QString text = QLatin1String("Qt rocks!!!");
+        static const int textsPerPaint = 30;
+        for (int i = 0; i < textsPerPaint; i++) {
+            const int fontSize = 4 + (qrand() % 5);
+            const int fontWeight = (qrand() % 2) == 1 ? QFont::Normal : QFont::Bold;
+            const bool fontItalic = (qrand() % 2) == 1;
+            const QFont font("Default", fontSize, fontWeight, fontItalic);
+            p.setFont(font);
+            p.setPen(QColor::fromHsv(qrand() % 359, 155 + qrand() % 100,
+                                     155 + qrand() % 100, 100 + qrand() % 155));
+            const QSize textSize(p.fontMetrics().boundingRect(text).size());
+            const QPoint position(
+                -textSize.width() / 2 + (qrand() % size.width()),
+                textSize.height() / 2 + (qrand() % size.height()));
+            p.drawText(position, text);
+        }
+    }
+
+    /*
+      Drawing a multiline latin text, stress testing the text layout system.
+    */
+    static void paintLongLatinText(QPainter &p, const QSize &size)
+    {
+        static const char* const pieces[] = {
+            "lorem ipsum",
+            "dolor sit amet",
+            "consectetuer",
+            "sed diam nonumy",
+            "eos et accusam",
+            "sea takimata sanctus"
+        };
+        static const int piecesCount = (int)(sizeof pieces / sizeof pieces[0]);
+        static const int piecesPerPaint = 30;
+
+        QString text;
+        for (int i = 0; i < piecesPerPaint; ++i) {
+            QString piece = QLatin1String(pieces[qrand() % piecesCount]);
+            if (i == 0 || qrand() % 2) {
+                // Make this piece the beginning of a new sentence.
+                piece[0] = piece[0].toUpper();
+                if (i > 0)
+                    piece.prepend(QLatin1String(". "));
+            } else {
+                piece.prepend(QLatin1String(", "));
+            }
+            text.append(piece);
+        }
+        text.append(QLatin1Char('.'));
+
+        p.drawText(QRectF(QPointF(0, 0), QSizeF(size)),
+                   Qt::AlignTop | Qt::AlignAbsolute | Qt::TextWordWrap, text);
+    }
+
+    /*
+      Drawing one text with several snippets of different writingSystems, stress
+      testing the font merging in the font database.
+    */
+    static void paintInternationalText(QPainter &p, const QSize &size)
+    {
+        static QStringList samples;
+        if (samples.isEmpty()) {
+            foreach (const QFontDatabase::WritingSystem system, QFontDatabase().writingSystems())
+                if (system != QFontDatabase::Ogham && system != QFontDatabase::Runic)
+                    samples.append(QFontDatabase::writingSystemSample(system));
+        }
+        static const int systemsPerPaint = 65;
+        QString text;
+        for (int i = 0; i < systemsPerPaint; i++) {
+            if (i > 0)
+                text.append(QLatin1Char(' '));
+            text.append(samples.at(qrand() % samples.count()));
+        }
+        p.drawText(QRectF(QPointF(0, 0), QSizeF(size)),
+                   Qt::AlignTop | Qt::AlignAbsolute | Qt::TextWordWrap, text);
+    }
+
+protected:
+    void nextMode()
+    {
+        m_currentMode = (m_currentMode + 1) % m_modesCount;
+        m_lastMeasurements.clear();
+    }
+
+    void keyPressEvent(QKeyEvent *event)
+    {
+        Q_UNUSED(event);
+        nextMode();
+    }
+
+    void mousePressEvent(QMouseEvent *event)
+    {
+        Q_UNUSED(event);
+        nextMode();
+    }
+
+private:
+    static const struct mode {
+        QString name;
+        void (*function)(QPainter &, const QSize&);
+    } m_modes[];
+    static const int m_modesCount;
+
+    int m_currentMode;
+    QList<int> m_lastMeasurements;
+    QTime m_timer;
+};
+
+const struct FontBlaster::mode FontBlaster::m_modes[] = {
+    { QLatin1String("Qt rocks!!!"), FontBlaster::paintDifferentFontStyles },
+    { QLatin1String("Latin"), FontBlaster::paintLongLatinText },
+    { QLatin1String("International"), FontBlaster::paintInternationalText }
+};
+
+const int FontBlaster::m_modesCount =
+    (int)(sizeof m_modes / sizeof m_modes[0]);
+
+int main(int argc, char *argv[])
+{
+    QApplication a(argc, argv);
+
+    FontBlaster dlg;
+#ifdef Q_OS_SYMBIAN
+    dlg.showFullScreen();
+#else
+    dlg.show();
+#endif
+
+    return a.exec();
+}
+
+#include "main.moc"
diff --git a/tests/manual/textrendering/textperformance/textperformance.pro b/tests/manual/textrendering/textperformance/textperformance.pro
new file mode 100644
index 0000000..bba41b9
--- /dev/null
+++ b/tests/manual/textrendering/textperformance/textperformance.pro
@@ -0,0 +1 @@
+SOURCES = main.cpp
-- 
cgit v0.12


From d6254cb596a8e320959a8bbc0310cf43f16657ba Mon Sep 17 00:00:00 2001
From: Alessandro Portale <alessandro.portale@nokia.com>
Date: Fri, 30 Oct 2009 18:57:16 +0100
Subject: Fix a rounding error.

Reviewed-by: trustme
---
 tests/manual/textrendering/textperformance/main.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tests/manual/textrendering/textperformance/main.cpp b/tests/manual/textrendering/textperformance/main.cpp
index 3019ebf..47e0a88 100644
--- a/tests/manual/textrendering/textperformance/main.cpp
+++ b/tests/manual/textrendering/textperformance/main.cpp
@@ -84,7 +84,7 @@ public:
 
             p.drawText(2, height() - fm.descent(),
                 QLatin1String("Fps: ") +
-                QString::number(1000 / (qreal)(lastMsecsSum / lastMeasurementsCount), 'f', 1)
+                QString::number(1000 / ((qreal)lastMsecsSum / lastMeasurementsCount), 'f', 1)
             );
         }
 
-- 
cgit v0.12


From f914536c1c472cd7e0e21252c83447da7618c2cb Mon Sep 17 00:00:00 2001
From: Benjamin Poulain <benjamin.poulain@nokia.com>
Date: Fri, 30 Oct 2009 19:41:48 +0100
Subject: Add a French translation to Assistant. Update the phrase book.

Reviewed-by: Pierre Rossi
---
 tools/assistant/translations/translations.pro |    1 +
 tools/linguist/phrasebooks/french.qph         |   20 +
 translations/assistant_fr.ts                  | 1080 +++++++++++++++++++++++++
 3 files changed, 1101 insertions(+)
 create mode 100644 translations/assistant_fr.ts

diff --git a/tools/assistant/translations/translations.pro b/tools/assistant/translations/translations.pro
index 6ff1fc9..95501ab 100644
--- a/tools/assistant/translations/translations.pro
+++ b/tools/assistant/translations/translations.pro
@@ -44,6 +44,7 @@ TR_DIR = $$PWD/../../../translations
 TRANSLATIONS = \
     $$TR_DIR/assistant_da.ts \
     $$TR_DIR/assistant_de.ts \
+    $$TR_DIR/assistant_fr.ts \
     $$TR_DIR/assistant_ja.ts \
     $$TR_DIR/assistant_pl.ts \
     $$TR_DIR/assistant_ru.ts \
diff --git a/tools/linguist/phrasebooks/french.qph b/tools/linguist/phrasebooks/french.qph
index d38da5a..9440345 100644
--- a/tools/linguist/phrasebooks/french.qph
+++ b/tools/linguist/phrasebooks/french.qph
@@ -1326,4 +1326,24 @@
     <source>Close All Except %1</source>
     <target>Fermer tout sauf %1</target>
 </phrase>
+<phrase>
+    <source>Remove</source>
+    <target>Suppression</target>
+</phrase>
+<phrase>
+    <source>About...</source>
+    <target>À propos…</target>
+</phrase>
+<phrase>
+    <source>Minimize</source>
+    <target>Minimiser</target>
+</phrase>
+<phrase>
+    <source>Remove</source>
+    <target>Supprimer</target>
+</phrase>
+<phrase>
+    <source>Select All</source>
+    <target>Sélectionner tout</target>
+</phrase>
 </QPH>
diff --git a/translations/assistant_fr.ts b/translations/assistant_fr.ts
new file mode 100644
index 0000000..91fcc1a
--- /dev/null
+++ b/translations/assistant_fr.ts
@@ -0,0 +1,1080 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="fr_FR">
+<context>
+    <name>AboutDialog</name>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/aboutdialog.cpp" line="110"/>
+        <source>&amp;Close</source>
+        <translation>&amp;Fermer</translation>
+    </message>
+</context>
+<context>
+    <name>AboutLabel</name>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/aboutdialog.cpp" line="96"/>
+        <source>Warning</source>
+        <translation>Avertissement</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/aboutdialog.cpp" line="97"/>
+        <source>Unable to launch external application.
+</source>
+        <translation>Impossible d&apos;ouvrir l&apos;application externe.
+</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/aboutdialog.cpp" line="98"/>
+        <source>OK</source>
+        <translation>OK</translation>
+    </message>
+</context>
+<context>
+    <name>BookmarkDialog</name>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/bookmarkdialog.ui" line="19"/>
+        <source>Add Bookmark</source>
+        <translation>Ajouter un signet</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/bookmarkdialog.ui" line="29"/>
+        <source>Bookmark:</source>
+        <translation>Signet :</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/bookmarkdialog.ui" line="36"/>
+        <source>Add in Folder:</source>
+        <translation>Ajouter dans le dossier :</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/bookmarkdialog.ui" line="65"/>
+        <source>+</source>
+        <translation>+</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/bookmarkdialog.ui" line="93"/>
+        <source>New Folder</source>
+        <translation>Nouveau dossier</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="184"/>
+        <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="202"/>
+        <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="241"/>
+        <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="259"/>
+        <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="289"/>
+        <source>Bookmarks</source>
+        <translation>Signets</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="228"/>
+        <source>Delete Folder</source>
+        <translation>Supprimer le dossier</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="229"/>
+        <source>Rename Folder</source>
+        <translation>Renommer le dossier</translation>
+    </message>
+</context>
+<context>
+    <name>BookmarkManager</name>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="663"/>
+        <source>Bookmarks</source>
+        <translation>Signets</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="700"/>
+        <source>Remove</source>
+        <translation>Suppression</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="701"/>
+        <source>You are going to delete a Folder, this will also&lt;br&gt;remove it&apos;s content. Are you sure to continue?</source>
+        <translation>Vous allez supprimer un dossier, ceci va aussi&lt;br&gt;supprimer son contenu. Voulez-vous continuer?</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="844"/>
+        <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="853"/>
+        <source>New Folder</source>
+        <translation>Nouveau dossier</translation>
+    </message>
+</context>
+<context>
+    <name>BookmarkWidget</name>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="391"/>
+        <source>Delete Folder</source>
+        <translation>Supprimer le dossier</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="392"/>
+        <source>Rename Folder</source>
+        <translation>Renommer le dossier</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="394"/>
+        <source>Show Bookmark</source>
+        <translation>Afficher le signet</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="395"/>
+        <source>Show Bookmark in New Tab</source>
+        <translation>Afficher le signet dans un nouvel onglet</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="398"/>
+        <source>Delete Bookmark</source>
+        <translation>Supprimer le signet</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="399"/>
+        <source>Rename Bookmark</source>
+        <translation>Renommer le signet</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="437"/>
+        <source>Filter:</source>
+        <translation>Filtre :</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="461"/>
+        <source>Add</source>
+        <translation>Ajouter</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="470"/>
+        <source>Remove</source>
+        <translation>Retirer</translation>
+    </message>
+</context>
+<context>
+    <name>CentralWidget</name>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="238"/>
+        <source>Add new page</source>
+        <translation>Créer une nouvelle page</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="247"/>
+        <source>Close current page</source>
+        <translation>Fermer la page courante</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="559"/>
+        <source>Print Document</source>
+        <translation>Imprimer le document</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="707"/>
+        <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="709"/>
+        <source>unknown</source>
+        <translation>inconnu</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="802"/>
+        <source>Add New Page</source>
+        <translation>Créer une nouvelle page</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="805"/>
+        <source>Close This Page</source>
+        <translation>Fermer cette page</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="808"/>
+        <source>Close Other Pages</source>
+        <translation>Fermer les autres pages</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="813"/>
+        <source>Add Bookmark for this Page...</source>
+        <translation>Ajouter un signet pour cette page...</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="1068"/>
+        <source>Search</source>
+        <translation>Recherche</translation>
+    </message>
+</context>
+<context>
+    <name>ContentWindow</name>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/contentwindow.cpp" line="158"/>
+        <source>Open Link</source>
+        <translation>Ouvrir le lien</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/contentwindow.cpp" line="159"/>
+        <source>Open Link in New Tab</source>
+        <translation>Ouvrir le lien dans un nouvel onglet</translation>
+    </message>
+</context>
+<context>
+    <name>FilterNameDialogClass</name>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/filternamedialog.ui" line="13"/>
+        <source>Add Filter Name</source>
+        <translation>Ajouter un filtre</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/filternamedialog.ui" line="25"/>
+        <source>Filter Name:</source>
+        <translation>Nom du filtre :</translation>
+    </message>
+</context>
+<context>
+    <name>FindWidget</name>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="113"/>
+        <source>Previous</source>
+        <translation>Précédent</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="117"/>
+        <source>Next</source>
+        <translation>Suivant</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="121"/>
+        <source>Case Sensitive</source>
+        <translation>Sensible à la casse</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="124"/>
+        <source>Whole words</source>
+        <translation>Mots complets</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="136"/>
+        <source>&lt;img src=&quot;:/trolltech/assistant/images/wrap.png&quot;&gt;&amp;nbsp;Search wrapped</source>
+        <translation>&lt;img src=&quot;:/trolltech/assistant/images/wrap.png&quot;&gt;&amp;nbsp;Recherche à partir du début</translation>
+    </message>
+</context>
+<context>
+    <name>FontPanel</name>
+    <message>
+        <location filename="../tools/shared/fontpanel/fontpanel.cpp" line="63"/>
+        <source>Font</source>
+        <translation>Police</translation>
+    </message>
+    <message>
+        <location filename="../tools/shared/fontpanel/fontpanel.cpp" line="74"/>
+        <source>&amp;Writing system</source>
+        <translation>&amp;Système d&apos;écriture</translation>
+    </message>
+    <message>
+        <location filename="../tools/shared/fontpanel/fontpanel.cpp" line="77"/>
+        <source>&amp;Family</source>
+        <translation>&amp;Famille</translation>
+    </message>
+    <message>
+        <location filename="../tools/shared/fontpanel/fontpanel.cpp" line="81"/>
+        <source>&amp;Style</source>
+        <translation>&amp;Style</translation>
+    </message>
+    <message>
+        <location filename="../tools/shared/fontpanel/fontpanel.cpp" line="85"/>
+        <source>&amp;Point size</source>
+        <translation>&amp;Taille en points</translation>
+    </message>
+</context>
+<context>
+    <name>HelpViewer</name>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/helpviewer.cpp" line="284"/>
+        <source>Open Link in New Tab</source>
+        <translation>Ouvrir le lien dans un nouvel onglet</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/helpviewer.cpp" line="431"/>
+        <source>&lt;title&gt;Error 404...&lt;/title&gt;&lt;div align=&quot;center&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;h1&gt;The page could not be found&lt;/h1&gt;&lt;br&gt;&lt;h3&gt;&apos;%1&apos;&lt;/h3&gt;&lt;/div&gt;</source>
+        <translation>&lt;title&gt;Erreur 404...&lt;/title&gt;&lt;div align=&quot;center&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;h1&gt;La page n&apos;a pas pu être trouvée&lt;/h1&gt;&lt;br&gt;&lt;h3&gt;&apos;%1&apos;&lt;/h3&gt;&lt;/div&gt;</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/helpviewer.cpp" line="492"/>
+        <source>Help</source>
+        <translation>Aide</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/helpviewer.cpp" line="493"/>
+        <source>Unable to launch external application.
+</source>
+        <translation>Impossible de lancer l&apos;application externe.
+</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/helpviewer.cpp" line="493"/>
+        <source>OK</source>
+        <translation>OK</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/helpviewer.cpp" line="556"/>
+        <source>Copy &amp;Link Location</source>
+        <translation>Copier l&apos;&amp;adresse cible</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/helpviewer.cpp" line="559"/>
+        <source>Open Link in New Tab	Ctrl+LMB</source>
+        <translatorcomment>LMB? ← ouais exactement pareil...</translatorcomment>
+        <translation>Ouvrir dans un nouvel onglet	Ctrl+clic gauche</translation>
+    </message>
+</context>
+<context>
+    <name>IndexWindow</name>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/indexwindow.cpp" line="66"/>
+        <source>&amp;Look for:</source>
+        <translation>&amp;Rechercher :</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/indexwindow.cpp" line="134"/>
+        <source>Open Link</source>
+        <translation>Ouvrir le lien</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/indexwindow.cpp" line="135"/>
+        <source>Open Link in New Tab</source>
+        <translation>Ouvrir le lien dans un nouvel onglet</translation>
+    </message>
+</context>
+<context>
+    <name>InstallDialog</name>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/installdialog.ui" line="13"/>
+        <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="76"/>
+        <source>Install Documentation</source>
+        <translation>Installer la documentation</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/installdialog.ui" line="19"/>
+        <source>Available Documentation:</source>
+        <translation>Documentation disponible :</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/installdialog.ui" line="29"/>
+        <source>Install</source>
+        <translation>Installer</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/installdialog.ui" line="36"/>
+        <source>Cancel</source>
+        <translation>Annuler</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/installdialog.ui" line="43"/>
+        <source>Close</source>
+        <translation>Fermer</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/installdialog.ui" line="63"/>
+        <source>Installation Path:</source>
+        <translation>Chemin d&apos;installation :</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/installdialog.ui" line="73"/>
+        <source>...</source>
+        <translation>…</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="106"/>
+        <source>Downloading documentation info...</source>
+        <translation>Téléchargement des informations de la documentation…</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="154"/>
+        <source>Download canceled.</source>
+        <translation>Téléchargement annulé.</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="180"/>
+        <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="258"/>
+        <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="285"/>
+        <source>Done.</source>
+        <translation>Terminé.</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="195"/>
+        <source>The file %1 already exists. Do you want to overwrite it?</source>
+        <translation>Le fichier %1 existe déjà. Voulez-vous l&apos;écraser?</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="206"/>
+        <source>Unable to save the file %1: %2.</source>
+        <translation>Impossible de sauver le fichier %1 : %2.</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="214"/>
+        <source>Downloading %1...</source>
+        <translation>Téléchargement de %1 en cours…</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="233"/>
+        <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="275"/>
+        <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="313"/>
+        <source>Download failed: %1.</source>
+        <translation>Échec du téléchargement : %1.</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="243"/>
+        <source>Documentation info file is corrupt!</source>
+        <translation>Le fichier d&apos;information de documentation est corrompu!</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="280"/>
+        <source>Download failed: Downloaded file is corrupted.</source>
+        <translation>Échec du téléchargement : le fichier téléchargé est corrompu.</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="282"/>
+        <source>Installing documentation %1...</source>
+        <translation>Installation de la documentation %1…</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="304"/>
+        <source>Error while installing documentation:
+%1</source>
+        <translation>Erreur durant l&apos;installation de la documentation :
+%1</translation>
+    </message>
+</context>
+<context>
+    <name>MainWindow</name>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="110"/>
+        <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="501"/>
+        <source>Index</source>
+        <translation>Index</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="116"/>
+        <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="499"/>
+        <source>Contents</source>
+        <translation>Sommaire</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="121"/>
+        <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="503"/>
+        <source>Bookmarks</source>
+        <translation>Signets</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="133"/>
+        <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="348"/>
+        <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="860"/>
+        <source>Qt Assistant</source>
+        <translation>Qt Assistant</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="316"/>
+        <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="321"/>
+        <source>Unfiltered</source>
+        <translation>Non-filtré</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="342"/>
+        <source>Looking for Qt Documentation...</source>
+        <translation>Recherche la documentation de Qt…</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="426"/>
+        <source>&amp;File</source>
+        <translation>&amp;Fichier</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="428"/>
+        <source>Page Set&amp;up...</source>
+        <translation>&amp;Mise en page…</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="430"/>
+        <source>Print Preview...</source>
+        <translation>Aperçu avant impression…</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="433"/>
+        <source>&amp;Print...</source>
+        <translation>&amp;Imprimer…</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="440"/>
+        <source>New &amp;Tab</source>
+        <translation>Nouvel ongle&amp;t</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="443"/>
+        <source>&amp;Close Tab</source>
+        <translation>&amp;Fermer l&apos;onglet</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="447"/>
+        <source>&amp;Quit</source>
+        <translation>&amp;Quitter</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="451"/>
+        <source>&amp;Edit</source>
+        <translation>&amp;Édition</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="452"/>
+        <source>&amp;Copy selected Text</source>
+        <translation>&amp;Copier le texte selectionné</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="460"/>
+        <source>&amp;Find in Text...</source>
+        <translation>&amp;Trouver dans le texte…</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="466"/>
+        <source>Find &amp;Next</source>
+        <translation>Rechercher le suiva&amp;nt</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="470"/>
+        <source>Find &amp;Previous</source>
+        <translation>Rechercher le &amp;précédent</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="475"/>
+        <source>Preferences...</source>
+        <translation>Préférences…</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="478"/>
+        <source>&amp;View</source>
+        <translation>&amp;Affichage</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="479"/>
+        <source>Zoom &amp;in</source>
+        <translation>Zoom &amp;avant</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="485"/>
+        <source>Zoom &amp;out</source>
+        <translation>Zoom a&amp;rrière</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="491"/>
+        <source>Normal &amp;Size</source>
+        <translation>&amp;Taille normale</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="495"/>
+        <source>Ctrl+0</source>
+        <translation>Ctrl+0</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="500"/>
+        <source>ALT+C</source>
+        <translation>ALT+C</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="502"/>
+        <source>ALT+I</source>
+        <translation>ALT+I</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="504"/>
+        <source>ALT+O</source>
+        <translation>ALT+O</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="505"/>
+        <source>Search</source>
+        <translation>Recherche</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="506"/>
+        <source>ALT+S</source>
+        <translation>ALT+S</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="508"/>
+        <source>&amp;Go</source>
+        <translation>&amp;Aller</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="509"/>
+        <source>&amp;Home</source>
+        <translation>&amp;Accueil</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="510"/>
+        <source>ALT+Home</source>
+        <translation>ALT+Home</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="513"/>
+        <source>&amp;Back</source>
+        <translation>&amp;Précédent</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="518"/>
+        <source>&amp;Forward</source>
+        <translation>&amp;Suivant</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="524"/>
+        <source>Sync with Table of Contents</source>
+        <translation>Synchroniser la table des matières</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="531"/>
+        <source>Next Page</source>
+        <translation>Page suivante</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="532"/>
+        <source>Ctrl+Alt+Right</source>
+        <translation>Ctrl+Alt+Right</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="535"/>
+        <source>Previous Page</source>
+        <translation>Page précédente</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="536"/>
+        <source>Ctrl+Alt+Left</source>
+        <translation>Ctrl+Alt+Left</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="539"/>
+        <source>&amp;Bookmarks</source>
+        <translation>&amp;Signets</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="540"/>
+        <source>Add Bookmark...</source>
+        <translation>Ajouter un signet…</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="542"/>
+        <source>CTRL+D</source>
+        <translation>CTRL+D</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="544"/>
+        <source>&amp;Help</source>
+        <translation>&amp;Aide</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="545"/>
+        <source>About...</source>
+        <translation>À propos…</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="561"/>
+        <source>Navigation Toolbar</source>
+        <translation>Barre d&apos;outils de navigation</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="583"/>
+        <source>&amp;Window</source>
+        <translation>&amp;Fenêtre</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="585"/>
+        <source>Zoom</source>
+        <translation>Zoom</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="586"/>
+        <source>Minimize</source>
+        <translation>Minimiser</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="587"/>
+        <source>Ctrl+M</source>
+        <translation>Ctrl+M</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="637"/>
+        <source>Toolbars</source>
+        <translation>Barres d&apos;outils</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="652"/>
+        <source>Filter Toolbar</source>
+        <translation>Barre d&apos;outils de filtrage</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="654"/>
+        <source>Filtered by:</source>
+        <translation>Filtré par :</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="677"/>
+        <source>Address Toolbar</source>
+        <translation>Barre d&apos;outils d&apos;adresse</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="681"/>
+        <source>Address:</source>
+        <translation>Adresse :</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="795"/>
+        <source>Could not find the associated content item.</source>
+        <translatorcomment>what is item in this context? ← same question here</translatorcomment>
+        <translation>Impossible de trouver l&apos;élément de contenu associé.</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="866"/>
+        <source>About %1</source>
+        <translation>À propos de %1</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="980"/>
+        <source>Updating search index</source>
+        <translation>Mise à jour de l&apos;index de recherche</translation>
+    </message>
+</context>
+<context>
+    <name>PreferencesDialog</name>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/preferencesdialog.cpp" line="259"/>
+        <location filename="../tools/assistant/tools/assistant/preferencesdialog.cpp" line="302"/>
+        <source>Add Documentation</source>
+        <translation>Ajouter de la documentation</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/preferencesdialog.cpp" line="259"/>
+        <source>Qt Compressed Help Files (*.qch)</source>
+        <translation>Fichiers d&apos;aide Qt compressés (*.qch)</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/preferencesdialog.cpp" line="288"/>
+        <source>The namespace %1 is already registered!</source>
+        <translation>L&apos;espace de nom %1 existe déjà!</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/preferencesdialog.cpp" line="296"/>
+        <source>The specified file is not a valid Qt Help File!</source>
+        <translation>Le fichier spécifié n&apos;est pas un fichier d&apos;aide Qt valide!</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/preferencesdialog.cpp" line="319"/>
+        <source>Remove Documentation</source>
+        <translation>Supprimer la documentation</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/preferencesdialog.cpp" line="320"/>
+        <source>Some documents currently opened in Assistant reference the documentation you are attempting to remove. Removing the documentation will close those documents.</source>
+        <translation>Certains documents ouverts dans Assistant ont des références vers la documentation que vous allez supprimer. Supprimer la documentation fermera ces documents.</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/preferencesdialog.cpp" line="322"/>
+        <source>Cancel</source>
+        <translation>Annuler</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/preferencesdialog.cpp" line="323"/>
+        <source>OK</source>
+        <translation>OK</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/preferencesdialog.cpp" line="411"/>
+        <source>Use custom settings</source>
+        <translation>Utiliser des paramètres personnalisés</translation>
+    </message>
+</context>
+<context>
+    <name>PreferencesDialogClass</name>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui" line="14"/>
+        <source>Preferences</source>
+        <translation>Préférences</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui" line="24"/>
+        <source>Fonts</source>
+        <translation>Polices</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui" line="38"/>
+        <source>Font settings:</source>
+        <translation>Configuration des polices :</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui" line="46"/>
+        <source>Browser</source>
+        <translation>Navigateur</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui" line="51"/>
+        <source>Application</source>
+        <translation>Application</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui" line="70"/>
+        <source>Filters</source>
+        <translation>Filtres</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui" line="76"/>
+        <source>Filter:</source>
+        <translation>Filtre :</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui" line="86"/>
+        <source>Attributes:</source>
+        <translation>Attributs :</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui" line="97"/>
+        <source>1</source>
+        <translation>1</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui" line="105"/>
+        <source>Add</source>
+        <translation>Ajouter</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui" line="112"/>
+        <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui" line="163"/>
+        <source>Remove</source>
+        <translation>Supprimer</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui" line="120"/>
+        <source>Documentation</source>
+        <translation>Documentation</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui" line="126"/>
+        <source>Registered Documentation:</source>
+        <translatorcomment>documentation enregistrée ? ← je préfère référencée pour les deux...</translatorcomment>
+        <translation>Documentation référencée :</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui" line="156"/>
+        <source>Add...</source>
+        <translation>Ajouter…</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui" line="188"/>
+        <source>Options</source>
+        <translation>Options</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui" line="206"/>
+        <source>On help start:</source>
+        <translation>Au démarrage :</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui" line="220"/>
+        <source>Show my home page</source>
+        <translation>Afficher ma page d&apos;accueil</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui" line="225"/>
+        <source>Show a blank page</source>
+        <translation>Afficher une page blanche</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui" line="230"/>
+        <source>Show my tabs from last session</source>
+        <translation>Afficher mes onglets de la dernière session</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui" line="262"/>
+        <source>Homepage</source>
+        <translation>Page d&apos;accueil</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui" line="289"/>
+        <source>Current Page</source>
+        <translation>Page courante</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui" line="296"/>
+        <source>Blank Page</source>
+        <translation>Page blanche</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui" line="303"/>
+        <source>Restore to default</source>
+        <translation>Restaurer les valeurs par défaut</translation>
+    </message>
+</context>
+<context>
+    <name>QObject</name>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="112"/>
+        <source>The specified collection file does not exist!</source>
+        <translation>Le fichier de collection spécifié n&apos;existe pas!</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="116"/>
+        <source>Missing collection file!</source>
+        <translation>Fichier de collection manquant!</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="125"/>
+        <source>Invalid URL!</source>
+        <translation>URL invalide!</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="129"/>
+        <source>Missing URL!</source>
+        <translation>URL manquante!</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="146"/>
+        <location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="165"/>
+        <location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="184"/>
+        <source>Unknown widget: %1</source>
+        <translation>Widget inconnu : %1</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="150"/>
+        <location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="169"/>
+        <location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="188"/>
+        <source>Missing widget!</source>
+        <translation>Widget manquant!</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="195"/>
+        <location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="207"/>
+        <source>The specified Qt help file does not exist!</source>
+        <translation>Le fichier d&apos;aide Qt spécifié n&apos;existe pas!</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="200"/>
+        <location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="212"/>
+        <source>Missing help file!</source>
+        <translation>Fichier d&apos;aide manquant!</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="219"/>
+        <source>Missing filter argument!</source>
+        <translation>Argument de filtre manquant!</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="231"/>
+        <source>Unknown option: %1</source>
+        <translation>Option inconnue : %1</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="261"/>
+        <location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="263"/>
+        <source>Qt Assistant</source>
+        <translation>Qt Assistant</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/main.cpp" line="217"/>
+        <source>Could not register documentation file
+%1
+
+Reason:
+%2</source>
+        <translation>Impossible d&apos;enregistrer le fichier de documentation
+%1
+
+Raison :
+%2</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/main.cpp" line="221"/>
+        <source>Documentation successfully registered.</source>
+        <translation>Documentation enregistrée avec succès.</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/main.cpp" line="229"/>
+        <source>Documentation successfully unregistered.</source>
+        <translation>Documentation retirée avec succès.</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/main.cpp" line="232"/>
+        <source>Could not unregister documentation file
+%1
+
+Reason:
+%2</source>
+        <translation>Impossible d&apos;enregistrer le fichier de documentation
+%1
+
+Raison :
+%2</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/main.cpp" line="269"/>
+        <source>Cannot load sqlite database driver!</source>
+        <translation>Impossible de charger le driver de la base de données sqlite!</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/main.cpp" line="278"/>
+        <source>The specified collection file could not be read!</source>
+        <translation>Le fichier de collection spécifié ne peut pas être lu!</translation>
+    </message>
+</context>
+<context>
+    <name>RemoteControl</name>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/remotecontrol.cpp" line="163"/>
+        <source>Debugging Remote Control</source>
+        <translation>Débogage du contrôle à distance</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/remotecontrol.cpp" line="164"/>
+        <source>Received Command: %1 %2</source>
+        <translation>Commande reçue : %1 %2</translation>
+    </message>
+</context>
+<context>
+    <name>SearchWidget</name>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/searchwidget.cpp" line="195"/>
+        <source>&amp;Copy</source>
+        <translation>&amp;Copier</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/searchwidget.cpp" line="199"/>
+        <source>Copy &amp;Link Location</source>
+        <translation>Copier &amp;l&apos;adresse du lien</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/searchwidget.cpp" line="203"/>
+        <source>Open Link in New Tab</source>
+        <translation>Ouvrir le lien dans un nouvel onglet</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/searchwidget.cpp" line="211"/>
+        <source>Select All</source>
+        <translation>Sélectionner tout</translation>
+    </message>
+</context>
+<context>
+    <name>TopicChooser</name>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/topicchooser.ui" line="16"/>
+        <source>Choose Topic</source>
+        <translation>Choisir le domaine</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/topicchooser.ui" line="37"/>
+        <source>&amp;Topics</source>
+        <translation>&amp;Domaines</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/topicchooser.ui" line="88"/>
+        <source>&amp;Display</source>
+        <translation>&amp;Afficher</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/topicchooser.ui" line="104"/>
+        <source>&amp;Close</source>
+        <translation>&amp;Fermer</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/topicchooser.cpp" line="54"/>
+        <source>Choose a topic for &lt;b&gt;%1&lt;/b&gt;:</source>
+        <translation>Choisir le domaine pour &lt;b&gt;%1&lt;/b&gt; :</translation>
+    </message>
+</context>
+</TS>
-- 
cgit v0.12


From 6991cf4fe678427aec370f1abb217591987d3a7e Mon Sep 17 00:00:00 2001
From: Warwick Allison <warwick.allison@nokia.com>
Date: Mon, 2 Nov 2009 11:31:42 +1000
Subject: Add missing QENUM declarations (needed by declarative).

---
 src/corelib/animation/qabstractanimation.h | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/corelib/animation/qabstractanimation.h b/src/corelib/animation/qabstractanimation.h
index 50b07d7..3d608b6 100644
--- a/src/corelib/animation/qabstractanimation.h
+++ b/src/corelib/animation/qabstractanimation.h
@@ -59,6 +59,8 @@ class QAbstractAnimationPrivate;
 class Q_CORE_EXPORT QAbstractAnimation : public QObject
 {
     Q_OBJECT
+    Q_ENUMS(State)
+    Q_ENUMS(Direction)
     Q_PROPERTY(State state READ state NOTIFY stateChanged)
     Q_PROPERTY(int loopCount READ loopCount WRITE setLoopCount)
     Q_PROPERTY(int currentTime READ currentTime WRITE setCurrentTime)
-- 
cgit v0.12


From debc67d6183631339b910c52261a6bc7b7a7ae50 Mon Sep 17 00:00:00 2001
From: Warwick Allison <warwick.allison@nokia.com>
Date: Mon, 2 Nov 2009 11:33:09 +1000
Subject: Track declarative changes

---
 src/gui/graphicsview/qgraphicsitem_p.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/gui/graphicsview/qgraphicsitem_p.h b/src/gui/graphicsview/qgraphicsitem_p.h
index 183e95b..ca56c18 100644
--- a/src/gui/graphicsview/qgraphicsitem_p.h
+++ b/src/gui/graphicsview/qgraphicsitem_p.h
@@ -607,7 +607,7 @@ public:
         return item->type() == QGraphicsPixmapItem::Type
                && !(item->flags() & QGraphicsItem::ItemIsSelectable)
                && item->d_ptr->children.size() == 0;
-            //|| (item->d_ptr->isObject && qobject_cast<QFxImage *>(q_func()));
+            //|| (item->d_ptr->isObject && qobject_cast<QmlGraphicsImage *>(q_func()));
     }
 
     inline const QStyleOption *styleOption() const
-- 
cgit v0.12


From ae576ea123d0625eceb9904e2039b2183cb82a0b Mon Sep 17 00:00:00 2001
From: Bill King <bill.king@nokia.com>
Date: Mon, 2 Nov 2009 12:41:25 +1000
Subject: Fixes Floating point number truncation in qsqlpsql plugin under linux

replaces strtod call with locale aware QString::toDouble()

Task-number: QTBUG-5179
Reviewed-by: Justin McPherson
---
 src/sql/drivers/psql/qsql_psql.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/sql/drivers/psql/qsql_psql.cpp b/src/sql/drivers/psql/qsql_psql.cpp
index 4b7c2b5..1e41571 100644
--- a/src/sql/drivers/psql/qsql_psql.cpp
+++ b/src/sql/drivers/psql/qsql_psql.cpp
@@ -357,7 +357,7 @@ QVariant QPSQLResult::data(int i)
             }
             return QString::fromAscii(val);
         }
-        return strtod(val, 0);
+        return QString::fromAscii(val).toDouble();
     case QVariant::Date:
         if (val[0] == '\0') {
             return QVariant(QDate());
-- 
cgit v0.12


From 55dcc5551e338ba16c0db8c7d6593554d3d019b8 Mon Sep 17 00:00:00 2001
From: Keith Isdale <keith.isdale@nokia.com>
Date: Mon, 2 Nov 2009 14:29:05 +1000
Subject: Compilation error qegl_p.h not found for OpenGL ES enabled build of
 Qt for WindowsCE
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Be more consistant in the usage of <private/foo_p.h> vs "foo_p.h"

Task-number: QTBUG-5149
Reviewed-by: Trond Kjernåsen
---
 src/opengl/qgl_wince.cpp | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/opengl/qgl_wince.cpp b/src/opengl/qgl_wince.cpp
index 53b9e27..fea2d3a 100644
--- a/src/opengl/qgl_wince.cpp
+++ b/src/opengl/qgl_wince.cpp
@@ -54,9 +54,9 @@
 
 #include <windows.h>
 
-#include "qegl_p.h"
-#include "qgl_egl_p.h"
-#include "qgl_cl_p.h"
+#include <private/qegl_p.h>
+#include <private/qgl_egl_p.h>
+#include <private/qgl_cl_p.h>
 
 
 QT_BEGIN_NAMESPACE
-- 
cgit v0.12


From 504ac5668c7308dc67233ed8589eeadcd23e7cdd Mon Sep 17 00:00:00 2001
From: Keith Isdale <keith.isdale@nokia.com>
Date: Mon, 2 Nov 2009 14:59:24 +1000
Subject: Compilation failure QtOpenGL when Opengl ES is used on Qt for Windows
 CE
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Enable building egl/qegl_wince.cpp when a wince* mkspec is used
Add "egl" to QT_CONFIG when any of the OpenGL ES variants is used

Task-number: QTBUG-5073
Reviewed-by: Trond Kjernåsen
---
 src/gui/egl/egl.pri              | 2 +-
 tools/configure/configureapp.cpp | 3 +++
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/gui/egl/egl.pri b/src/gui/egl/egl.pri
index ba991bd..627d511 100644
--- a/src/gui/egl/egl.pri
+++ b/src/gui/egl/egl.pri
@@ -6,7 +6,7 @@ SOURCES += \
     egl/qegl.cpp \
     egl/qeglproperties.cpp
 
-contains(QT_CONFIG, wince*): SOURCES += egl/qegl_wince.cpp
+wince*: SOURCES += egl/qegl_wince.cpp
 
 unix {
     embedded {
diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp
index 6d46c18..dd3823b 100644
--- a/tools/configure/configureapp.cpp
+++ b/tools/configure/configureapp.cpp
@@ -2438,14 +2438,17 @@ void Configure::generateOutputVars()
 
     if ( dictionary["OPENGL_ES_CM"] == "yes" ) {
         qtConfig += "opengles1";
+        qtConfig += "egl";
     }
 
     if ( dictionary["OPENGL_ES_2"] == "yes" ) {
         qtConfig += "opengles2";
+        qtConfig += "egl";
     }
 
     if ( dictionary["OPENGL_ES_CL"] == "yes" ) {
         qtConfig += "opengles1cl";
+        qtConfig += "egl";
     }
 
     if ( dictionary["OPENVG"] == "yes" ) {
-- 
cgit v0.12


From d26bc43093cc6ed8d387abedcde0952ec24c0e0b Mon Sep 17 00:00:00 2001
From: Keith Isdale <keith.isdale@nokia.com>
Date: Mon, 2 Nov 2009 15:17:12 +1000
Subject: Compilation failure for OpenGL and OpenVG  graphic system plugins
 when Opengl ES is used on Qt for Windows CE
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

For WindowsCE plugins do not support version 1.x of OpenGL ES

Task-number : QTBUG-5080
Reviewed-by : Trond Kjernåsen
---
 src/plugins/graphicssystems/graphicssystems.pro | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/src/plugins/graphicssystems/graphicssystems.pro b/src/plugins/graphicssystems/graphicssystems.pro
index 14e3cfc..ca87b98 100644
--- a/src/plugins/graphicssystems/graphicssystems.pro
+++ b/src/plugins/graphicssystems/graphicssystems.pro
@@ -1,7 +1,13 @@
 TEMPLATE = subdirs
 SUBDIRS += trace
-contains(QT_CONFIG, opengl):SUBDIRS += opengl
-contains(QT_CONFIG, openvg):contains(QT_CONFIG, egl):SUBDIRS += openvg
+!wince*{
+    contains(QT_CONFIG, opengl):SUBDIRS += opengl
+    contains(QT_CONFIG, openvg):contains(QT_CONFIG, egl):SUBDIRS += openvg
+}else {
+    # For WindowsCE only 2.x of OpenGL ES is supported by these plugins at this time
+    contains(QT_CONFIG, opengl):!contains(QT_CONFIG, opengles1):!contains(QT_CONFIG, opengles1cl):SUBDIRS += opengl
+    contains(QT_CONFIG, openvg):!contains(QT_CONFIG, opengles1):!contains(QT_CONFIG, opengles1cl):contains(QT_CONFIG, egl):SUBDIRS += openvg
+}
 
 contains(QT_CONFIG, shivavg) {
     # Only works under X11 at present
-- 
cgit v0.12


From 2c99050cbf88325f0316159ac35bd34010035bf9 Mon Sep 17 00:00:00 2001
From: Yuecel Ahi <y.ahi@tms-bonn.de>
Date: Mon, 2 Nov 2009 15:49:55 +1000
Subject: Fixed handling of database level precision policy for sqlite driver.

Reviewed-by: Bill King <bill.king@nokia.com>
---
 src/sql/drivers/sqlite/qsql_sqlite.cpp | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

diff --git a/src/sql/drivers/sqlite/qsql_sqlite.cpp b/src/sql/drivers/sqlite/qsql_sqlite.cpp
index 2766cca..8355de2 100644
--- a/src/sql/drivers/sqlite/qsql_sqlite.cpp
+++ b/src/sql/drivers/sqlite/qsql_sqlite.cpp
@@ -228,13 +228,9 @@ bool QSQLiteResultPrivate::fetchNext(QSqlCachedResult::ValueCache &values, int i
                         values[i + idx] = sqlite3_column_int64(stmt, i);
                         break;
                     case QSql::LowPrecisionDouble:
-                        values[i + idx] = sqlite3_column_double(stmt, i);
-                        break;
                     case QSql::HighPrecision:
                     default:
-                        values[i + idx] = QString::fromUtf16(static_cast<const ushort *>(
-                                            sqlite3_column_text16(stmt, i)),
-                                            sqlite3_column_bytes16(stmt, i) / sizeof(ushort));
+                        values[i + idx] = sqlite3_column_double(stmt, i);
                         break;
                 };
                 break;
-- 
cgit v0.12


From 2f97ddf87f817ce8ae42095d96644ff5fca131e6 Mon Sep 17 00:00:00 2001
From: Bill King <bill.king@nokia.com>
Date: Mon, 2 Nov 2009 16:06:05 +1000
Subject: Fixes testing of sqlite against the real(floating pt) datatype

---
 tests/auto/qsqldatabase/tst_qsqldatabase.cpp | 1 +
 1 file changed, 1 insertion(+)

diff --git a/tests/auto/qsqldatabase/tst_qsqldatabase.cpp b/tests/auto/qsqldatabase/tst_qsqldatabase.cpp
index 82b6066..fe7c3ea 100644
--- a/tests/auto/qsqldatabase/tst_qsqldatabase.cpp
+++ b/tests/auto/qsqldatabase/tst_qsqldatabase.cpp
@@ -1234,6 +1234,7 @@ void tst_QSqlDatabase::recordSQLite()
 
         FieldDef("integer", QVariant::Int,              QVariant(13)),
         FieldDef("int", QVariant::Int,                  QVariant(12)),
+        FieldDef("real", QVariant::String,              QVariant(1.234567890123456)),
 
         FieldDef()
     };
-- 
cgit v0.12


From d47bc05931004c7384e77ff358d67feddb84d501 Mon Sep 17 00:00:00 2001
From: Keith Isdale <keith.isdale@nokia.com>
Date: Mon, 2 Nov 2009 17:11:28 +1000
Subject: Compilation failure for OpenGL and OpenVG  graphic system plugins
 when Opengl ES is used on Qt for Windows CE

Simplify logic as OpenGL graphic system is not supported for WindowsCE

Task-number: QTBUG-5080
Reviewed-by: Rhys Weatherley
---
 src/plugins/graphicssystems/graphicssystems.pro | 10 ++--------
 1 file changed, 2 insertions(+), 8 deletions(-)

diff --git a/src/plugins/graphicssystems/graphicssystems.pro b/src/plugins/graphicssystems/graphicssystems.pro
index ca87b98..0788933 100644
--- a/src/plugins/graphicssystems/graphicssystems.pro
+++ b/src/plugins/graphicssystems/graphicssystems.pro
@@ -1,13 +1,7 @@
 TEMPLATE = subdirs
 SUBDIRS += trace
-!wince*{
-    contains(QT_CONFIG, opengl):SUBDIRS += opengl
-    contains(QT_CONFIG, openvg):contains(QT_CONFIG, egl):SUBDIRS += openvg
-}else {
-    # For WindowsCE only 2.x of OpenGL ES is supported by these plugins at this time
-    contains(QT_CONFIG, opengl):!contains(QT_CONFIG, opengles1):!contains(QT_CONFIG, opengles1cl):SUBDIRS += opengl
-    contains(QT_CONFIG, openvg):!contains(QT_CONFIG, opengles1):!contains(QT_CONFIG, opengles1cl):contains(QT_CONFIG, egl):SUBDIRS += openvg
-}
+!wince*:contains(QT_CONFIG, opengl):SUBDIRS += opengl
+contains(QT_CONFIG, openvg):contains(QT_CONFIG, egl):SUBDIRS += openvg
 
 contains(QT_CONFIG, shivavg) {
     # Only works under X11 at present
-- 
cgit v0.12


From 5d7e254583551659df42e59fab4756994d4211ed Mon Sep 17 00:00:00 2001
From: Keith Isdale <keith.isdale@nokia.com>
Date: Mon, 2 Nov 2009 18:03:28 +1000
Subject: Compilation error due to undefined EGL_BIND_TO_TEXTURE_RGB for OpenGL
 ES enabled build of Qt for Windows CE
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Add #ifdef guards around EGL_BIND_TO_TEXTURE_RGB useage

Task-number: QTBUG-5152
Reviewed-by: Trond Kjernåsen
---
 src/gui/egl/qeglproperties.cpp | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/src/gui/egl/qeglproperties.cpp b/src/gui/egl/qeglproperties.cpp
index c61e1d3..2d37edb 100644
--- a/src/gui/egl/qeglproperties.cpp
+++ b/src/gui/egl/qeglproperties.cpp
@@ -88,8 +88,12 @@ int QEglProperties::value(int name) const
 #if defined(EGL_ALPHA_MASK_SIZE)
     case EGL_ALPHA_MASK_SIZE: return 0;
 #endif
+#if defined(EGL_BIND_TO_TEXTURE_RGB)
     case EGL_BIND_TO_TEXTURE_RGB: return EGL_DONT_CARE;
+#endif
+#if defined(EGL_BIND_TO_TEXTURE_RGBA)
     case EGL_BIND_TO_TEXTURE_RGBA: return EGL_DONT_CARE;
+#endif
 #if defined(EGL_COLOR_BUFFER_TYPE)
     case EGL_COLOR_BUFFER_TYPE: return EGL_RGB_BUFFER;
 #endif
-- 
cgit v0.12


From 016c06f8988c50f0f8309b1b5054ea99ecd1bc6c Mon Sep 17 00:00:00 2001
From: Alessandro Portale <alessandro.portale@nokia.com>
Date: Mon, 2 Nov 2009 12:05:03 +0100
Subject: Manual glyph shaping test.

It tests the glyph shaper in Qt by rendering a couple
of glyph combinations that are known to be strongly
shaped.
For now, this test is manual and simply generates
an html report for a visual test. It can, however also be
implemented as auto test.
The test data contains Vietnamese and Tamil data sets,
more will follow.

Reviewed-by: trustme
---
 .../textrendering/glyphshaping/glyphshaping.pro    |   5 +
 .../glyphshaping/glyphshaping_data.xml             | 251 +++++++++++++++++++
 tests/manual/textrendering/glyphshaping/main.cpp   | 269 +++++++++++++++++++++
 3 files changed, 525 insertions(+)
 create mode 100644 tests/manual/textrendering/glyphshaping/glyphshaping.pro
 create mode 100644 tests/manual/textrendering/glyphshaping/glyphshaping_data.xml
 create mode 100644 tests/manual/textrendering/glyphshaping/main.cpp

diff --git a/tests/manual/textrendering/glyphshaping/glyphshaping.pro b/tests/manual/textrendering/glyphshaping/glyphshaping.pro
new file mode 100644
index 0000000..caa9028
--- /dev/null
+++ b/tests/manual/textrendering/glyphshaping/glyphshaping.pro
@@ -0,0 +1,5 @@
+SOURCES = main.cpp
+OTHER_FILES = glyphshaping_data.xml
+glyphshaping_data.path = .
+glyphshaping_data.sources = $$PWD/glyphshaping_data.xml
+DEPLOYMENT += glyphshaping_data
diff --git a/tests/manual/textrendering/glyphshaping/glyphshaping_data.xml b/tests/manual/textrendering/glyphshaping/glyphshaping_data.xml
new file mode 100644
index 0000000..040804e
--- /dev/null
+++ b/tests/manual/textrendering/glyphshaping/glyphshaping_data.xml
@@ -0,0 +1,251 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<shapingtests>
+
+    <language name="Vietnamese">
+        <test
+            name="capital U, combining horn"
+            inpututf16="0x0055, 0x031B"
+            outpututf16="0x01AF"
+        />
+        <test
+            name="capital U, apostrophe"
+            inpututf16="0x0055, 0x0027"
+            outpututf16="0x0055"
+        />
+        <test
+            name="capital U, modifier prime"
+            inpututf16="0x0055, 0x02B9"
+            outpututf16="0x0055"
+        />
+        <test
+            name="capital U, modifier apostrophe"
+            inpututf16="0x0055, 0x02BC"
+            outpututf16="0x0055"
+        />
+        <test
+            name="capital U, combining comma above right"
+            inpututf16="0x0055, 0x0315"
+            outpututf16="0x0055, 0x0315"
+        />
+        <test
+            name="capital U, right single quote mark"
+            inpututf16="0x0055, 0x2019"
+            outpututf16="0x0055"
+        />
+        <test
+            name="capital U with horn, space"
+            inpututf16="0x01AF, 0x0020"
+            outpututf16="0x01AF"
+        />
+        <test
+            name="capital E, combining horn"
+            inpututf16="0x0045, 0x031B"
+            outpututf16="0x0045, 0x031B"
+        />
+        <test
+            name="capital A, combining breve, combining acute"
+            inpututf16="0x0041, 0x0306, 0x0301"
+            outpututf16="0x1EAE"
+        />
+        <test
+            name="capital A with breve, combining acute"
+            inpututf16="0x0102, 0x0301"
+            outpututf16="0x1EAE"
+        />
+        <test
+            name="capital A, combining acute, combining breve"
+            inpututf16="0x0041, 0x0301, 0x0306"
+            outpututf16="0x0041, 0x0301, 0x0306"
+        />
+        <test
+            name="capital A, combining dot below, combining breve"
+            inpututf16="0x0041, 0x0323"
+            outpututf16="0x0306"
+        />
+        <test
+            name="capital A with dot below, combining breve"
+            inpututf16="0x1EA0, 0x0306"
+            outpututf16="0x1EB6"
+        />
+        <test
+            name="capital A with breve, combining dot below"
+            inpututf16="0x0102, 0x0323"
+            outpututf16="0x0102, 0x0323"
+        />
+        <test
+            name="capital E, combining circumflex, combining acute"
+            inpututf16="0x0045, 0x0302, 0x0301"
+            outpututf16="0x1EBE"
+        />
+        <test
+            name="capital E with circumflex, combining acute"
+            inpututf16="0x00CA, 0x0301"
+            outpututf16="0x1EBE"
+        />
+        <test
+            name="capital O, combining horn, combining hook above"
+            inpututf16="0x004F, 0x031B, 0x0309"
+            outpututf16="0x1EDE"
+        />
+        <test
+            name="capital O with horn, combining hook above"
+            inpututf16="0x01A0, 0x0309"
+            outpututf16="0x1EDE"
+        />
+    </language>
+
+    <language name="Tamil">
+        <test
+            name="Tamil Ka"
+            inpututf16="0x0B95"
+            outputglyphids="0x0bf6"
+        />
+        <test
+            name="Tamil e"
+            inpututf16="0x0B8E"
+            outputglyphids="0x0bf0"
+        />
+        <test
+            name="Latin A"
+            inpututf16="0x0061"
+            outpututf16="0x0061"
+        />
+        <test
+            name="Hindi Ka"
+            inpututf16="0x0905"
+            outputglyphids="0x0528"
+        />
+        <test
+            name="03 - 1: Latin 06"
+            inpututf16="0x0036"
+            outputglyphids="0x077A"
+        />
+        <test
+            name="03 - 2: Tamil 06"
+            inpututf16="0x0BEC"
+            outputglyphids="0x0c20"
+        />
+        <test
+            name="10 1.3.6 - 1: Pa, Virama, Ka, Virama, Tta, -e"
+            inpututf16="0x0BAA, 0x0BCD, 0x0B95, 0x0BCD, 0x0B9F, 0x0BC7"
+            outputglyphids="0x0c3a, 0x0c30, 0x0c13, 0x0bfb"
+        />
+        <test
+            name="10 1.3.6 - 2: Pa, Virama, Ka, AU"
+            inpututf16="0x0BAA, 0x0BCD, 0x0B95, 0x0BCC"
+            outputglyphids="0x0c3a, 0x0c12, 0x0bf6, 0x0c19"
+        />
+        <test
+            name="10 1.3.6 - 3: Ka, Virama, Ssa, OO"
+            inpututf16="0x0B95, 0x0BCD, 0x0BB7, 0x0BCB"
+            outputglyphids="0x0c13, 0x0c2f, 0x0c0d"
+        />
+        <test
+            name="11: Ka, -e"
+            inpututf16="0x0B95, 0x0BC7"
+            outputglyphids="0x0c13, 0x0bf6"
+        />
+        <test
+            name="12 1.3.5.2: Ka, O"
+            inpututf16="0x0B95, 0x0BCA"
+            outputglyphids="0x0c12, 0x0bf6, 0x0c0d"
+        />
+        <test
+            name="13 - 1: Ka"
+            inpututf16="0x0B95"
+            outputglyphids="0x0bf6"
+        />
+        <test
+            name="13 - 2: Aythem, A"
+            inpututf16="0x0B83, 0x0B85"
+        />
+        <test
+            name="14 - 1: Ka, Anusvara"
+            inpututf16="0x0B95, 0x0B82"
+            outputglyphids="0x0bf6, 0x0be8"
+        />
+        <test
+            name="14 - 2: Ka"
+            inpututf16="0x0B95"
+            outputglyphids="0x0bf6"
+        />
+        <test
+            name="15 - 1: Ra, Virama"
+            inpututf16="0x0BB0, 0x0BCD"
+            outputglyphids="0x0c03"
+        />
+        <test
+            name="15 - 2: ZWJ"
+            inpututf16="0x8205"
+        />
+        <test
+            name="16: Ka, Anusvara"
+            inpututf16="0x0B95, 0x0B82"
+            outputglyphids="0x0bf6"
+        />
+        <test
+            name="17 1.3.11 - 1: Tta, I"
+            inpututf16="0x0B9F, 0x0BBF"
+            outputglyphids="0x0c51"
+        />
+        <test
+            name="17 1.3.11 - 2: Tta, Ii"
+            inpututf16="0x0B9F, 0x0BC0"
+            outputglyphids="0x0c52"
+        />
+        <test
+            name="18 - 1: Ra, I"
+            inpututf16="0x0BB0, 0x0BBF"
+            outputglyphids="0x0c0d, 0x0c0e"
+        />
+        <test
+            name="18 - 2: Ra, Ii"
+            inpututf16="0x0BB0, 0x0BC0"
+            outputglyphids="0x0c0d, 0x0c0f"
+        />
+        <test
+            name="19 - 1: Nga, I"
+            inpututf16="0x0B99, 0x0BBF"
+            outputglyphids="0x0bf7, 0x0c0e"
+        />
+        <test
+            name="19 - 2: Nga, Ii"
+            inpututf16="0x0B99, 0x0BC0"
+            outputglyphids="0x0c4a"
+        />
+        <test
+            name="20 - 1: Ja, U"
+            inpututf16="0x0B9C, 0x0BC1"
+            outputglyphids="0x0bf9, 0x0c10"
+        />
+        <test
+            name="20 - 2: Ja, Uu"
+            inpututf16="0x0B9C, 0x0BC2"
+            outputglyphids="0x0bf9, 0x0c11"
+        />
+        <test
+            name="21 1.3.15: Ka, Ai"
+            inpututf16="0x0B95, 0x0BC8"
+            outputglyphids="0x0c14, 0x0bf6"
+        />
+        <test
+            name="22: Ka, Virama, Ssa"
+            inpututf16="0x0B95, 0x0BCD, 0x0BB7"
+            outputglyphids="0x0c2f"
+        />
+        <test
+            name="23 1.3.17: Sa, Virama, Ra, Matra I"
+            inpututf16="0x0BB8, 0x0BCD, 0x0BB0, 0x0BC0"
+            outputglyphids="0x0c79"
+        />
+        <test
+            name="24 1.3.18 - 1: Ka"
+            inpututf16="0x0B95"
+            outputglyphids="0x0bf6"
+        />
+        <test
+            name="24 1.3.18 - 2: Virama, ZWJ"
+            inpututf16="0x0BCD, 0x8205"
+        />
+    </language>
+</shapingtests>
diff --git a/tests/manual/textrendering/glyphshaping/main.cpp b/tests/manual/textrendering/glyphshaping/main.cpp
new file mode 100644
index 0000000..d2b53a0
--- /dev/null
+++ b/tests/manual/textrendering/glyphshaping/main.cpp
@@ -0,0 +1,269 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file.  Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights.  These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtGui>
+
+static const int fontPixelSize = 25;
+static const QLatin1String fontFamily("Series 60 Sans");
+
+struct testDataSet
+{
+    QString language;
+    QString name;
+    QString input;
+    QString inputOriginal;
+    QString output;
+    QString outputOriginal;
+    QVector<uint> outputGlyphIDs;
+    QString outputGlyphIDsOriginal;
+};
+
+QString charHexCsv2String(const QString &csv)
+{
+    QString result;
+    foreach (const QString &charString, csv.split(QLatin1Char(','), QString::SkipEmptyParts)) {
+        bool isOk;
+        const uint charUInt = charString.toUInt(&isOk, 16);
+        Q_ASSERT(isOk);
+        const int size = charUInt >= SHRT_MAX ? 2:1;
+        result.append(QString::fromUtf16((const ushort*)&charUInt, size));
+    }
+    return result;
+}
+
+QList<testDataSet> testDataSetList()
+{
+    QList<testDataSet> result;
+    QFile file("glyphshaping_data.xml");
+    const bool success = file.open(QIODevice::ReadOnly);
+    Q_ASSERT(success);
+
+    const QLatin1String language("language");
+    const QLatin1String test("test");
+    const QLatin1String inputUtf16("inpututf16");
+    const QLatin1String outputUtf16("outpututf16");
+    const QLatin1String outputGlyphIDs("outputglyphids");
+    const QLatin1String name("name");
+
+    QString languageName;
+
+    QXmlStreamReader reader(&file);
+    while (!reader.atEnd()) {
+        const QXmlStreamReader::TokenType token = reader.readNext();
+        switch (token) {
+        case QXmlStreamReader::StartElement:
+            if (reader.name() == language) {
+                Q_ASSERT(reader.attributes().hasAttribute(name));
+                languageName = reader.attributes().value(name).toString();
+            } else if (reader.name() == test) {
+                if (!reader.attributes().hasAttribute(outputUtf16)
+                    && !reader.attributes().hasAttribute(outputGlyphIDs))
+                    continue;
+                Q_ASSERT(!languageName.isEmpty());
+                Q_ASSERT(reader.attributes().hasAttribute(name));
+                Q_ASSERT(reader.attributes().hasAttribute(inputUtf16));
+                testDataSet set;
+                set.language = languageName;
+                set.name = reader.attributes().value(name).toString();
+                set.inputOriginal = reader.attributes().value(inputUtf16).toString();
+                set.input = charHexCsv2String(set.inputOriginal);
+                set.outputOriginal = reader.attributes().value(outputUtf16).toString();
+                set.output = charHexCsv2String(set.outputOriginal);
+                set.outputGlyphIDsOriginal = reader.attributes().value(outputGlyphIDs).toString();
+                result.append(set);
+            }
+            break;
+        default:
+            break;
+        }
+    }
+    return result;
+}
+
+QImage renderedText(const QString &text, const QFont &font)
+{
+    const QFontMetrics metrics(font);
+    const QRect boundingRect = metrics.boundingRect(text);
+    QImage result(boundingRect.size(), QImage::Format_ARGB32);
+    result.fill(0);
+
+    QPainter p(&result);
+    p.setFont(font);
+    p.drawText(boundingRect.translated(-boundingRect.topLeft()), text);
+
+    return result;
+}
+
+QString dumpImageHtml(const QString &text, const QString &pathName)
+{
+    if (text.isEmpty())
+        return QLatin1String("<td/>");
+    QFont font(fontFamily);
+    font.setPixelSize(fontPixelSize);
+    const QImage textImage = renderedText(text, font);
+    const QString imageFileName =
+            (pathName + QDir::separator() + QLatin1String("%1.png"))
+            .arg(textImage.cacheKey());
+    const bool success = textImage.save(imageFileName);
+    Q_ASSERT(success);
+    return
+        QString::fromLatin1("<td title=\"%2\"><img src=\"%1\" alt=\"%2\" width=\"%3\" height=\"%4\"/></td>")
+        .arg(QDir::cleanPath(imageFileName)).arg(text).arg(textImage.width()).arg(textImage.height());
+}
+
+QString dlItem(const QString &dt, const QString &dd)
+{
+    if (!dd.trimmed().isEmpty())
+        return QString::fromLatin1("\t\t\t\t\t\t<dt>%1</dt><dd>%2</dd>\n").arg(dt).arg(dd);
+    return QString();
+}
+
+bool dumpHtml(const QString &pathName)
+{
+    QFile htmlPage(pathName + QDir::separator() + QLatin1String("index.html"));
+    if (!htmlPage.open(QFile::WriteOnly))
+        return false;
+
+    QString platformName = QString::fromLatin1(
+#if defined(Q_OS_WIN)
+            "Win32"
+#elif defined(Q_WS_X11)
+            "X11"
+#elif defined(Q_OS_SYMBIAN)
+            "Symbian"
+#else
+            ""
+#endif
+    );
+
+    QString result = QString::fromLatin1(
+            "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"\n"
+            " \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n\n"
+            "<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n"
+            "\t<head>\n"
+            "\t\t<title>Qt on %1 glyph shaping (%2)</title>\n"
+            "\t\t<meta http-equiv=\"content-type\" content=\"text/html;charset=utf-8\" />\n"
+            "\t\t<style type=\"text/css\" media=\"screen\">\n"
+            "\t\t\ttable { font-family: Arial; background-color: #ccccff; font-size: 12pt; }\n"
+            "\t\t\ttd { font-family:\"%2\"; background-color: #eeeeee; font-size: %3px; }\n"
+            "\t\t\tth { font-weight:normal; }\n"
+            "\t\t\tdl { font-family: Arial; font-size: 8pt; margin: 3px; }\n"
+            "\t\t\tdt { font-weight: bold; float: left; }\n"
+            "\t\t\ttr:hover { background-color: #ddddff; }\n"
+            "\t\t\ttd:hover { background-color: #ddddff; }\n"
+            "\t\t</style>\n"
+            "\t</head>\n"
+            "\t<body>\n"
+            "\t\t<h1>Qt on %1 glyph shaping (%2)</h1>\n"
+            "\t\t<dl>\n"
+            "\t\t\t<dt>I</dt><dd>Input Utf-16 to shaper</dd>\n"
+            "\t\t\t<dt>O-Utf</dt><dd>expected output Utf-16</dd>\n"
+            "\t\t\t<dt>O-ID</dt><dd>expected output Glyph IDs for \"Series 60 Sans\"</dd>\n"
+            "\t\t</dl>\n"
+            "\t\t<table>\n"
+            ).arg(platformName).arg(fontFamily).arg(fontPixelSize);
+
+    QString languageName;
+    foreach (const testDataSet &dataSet, testDataSetList()) {
+        if (languageName != dataSet.language) {
+            result.append(QString::fromLatin1(
+                    "\t\t\t<tr>\n"
+                    "\t\t\t\t<th rowspan=\"2\"><h2>%1</h2></th>\n"
+                    "\t\t\t\t<th colspan=\"2\">Qt/%2</th>\n"
+                    "\t\t\t\t<th rowspan=\"2\">Glyphs</th>\n"
+                    "\t\t\t\t<th colspan=\"2\">Browser</th>\n"
+                    "\t\t\t</tr>\n"
+                    "\t\t\t<tr>\n"
+                    "\t\t\t\t<th>In</th>\n"
+                    "\t\t\t\t<th>Out</th>\n"
+                    "\t\t\t\t<th>In</th>\n"
+                    "\t\t\t\t<th>Out</th>\n"
+                    "\t\t\t</tr>\n"
+                    ).arg(dataSet.language).arg(platformName));
+            languageName = dataSet.language;
+        }
+        QString glyphsData;
+        if (!dataSet.inputOriginal.isEmpty())
+            glyphsData.append(dlItem(QLatin1String("I"), dataSet.inputOriginal));
+        if (!dataSet.outputOriginal.isEmpty())
+            glyphsData.append(dlItem(QLatin1String("O-Utf"), dataSet.outputOriginal));
+        if (!dataSet.outputGlyphIDsOriginal.isEmpty())
+            glyphsData.append(dlItem(QLatin1String("O-ID"), dataSet.outputGlyphIDsOriginal));
+        if (!glyphsData.isEmpty()) {
+            glyphsData.prepend(QLatin1String("\t\t\t\t\t<dl>\n"));
+            glyphsData.append(QLatin1String("\t\t\t\t\t</dl>\n"));
+        }
+        result.append(QString::fromLatin1(
+                "\t\t\t<tr>\n"
+                "\t\t\t\t<th>%1</th>\n"
+                "\t\t\t\t%2\n"
+                "\t\t\t\t%3\n"
+                "\t\t\t\t<td>\n"
+                "%4"
+                "\t\t\t\t</td>\n"
+                "\t\t\t\t<td>%5</td>\n"
+                "\t\t\t\t<td>%6</td>\n"
+                "\t\t\t</tr>\n"
+                ).arg(dataSet.name)
+                .arg(dumpImageHtml(dataSet.input, pathName))
+                .arg(dumpImageHtml(dataSet.output, pathName))
+                .arg(glyphsData)
+                .arg(dataSet.input)
+                .arg(dataSet.output)
+        );
+    }
+
+    result.append(QString::fromLatin1(
+            "\t\t</table>\n"
+            "\t</body>\n"
+            "</html>")
+    );
+
+    htmlPage.write(result.toUtf8());
+
+    return true;
+}
+
+int main(int argc, char *argv[])
+{
+    QApplication a(argc, argv);
+    return dumpHtml(QLatin1String(".")) ? 0 : 1;
+}
-- 
cgit v0.12


From cf800465369fb1ef84e8bddbbbfa7128d95afd27 Mon Sep 17 00:00:00 2001
From: Harald Fernengel <harald.fernengel@nokia.com>
Date: Mon, 2 Nov 2009 15:34:27 +0100
Subject: Sanitize building Qt with OpenGL ES support
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

introduce QMAKE_LIBS_OPENGL_ES1, QMAKE_LIBS_OPENGL_ES1CL and
QMAKE_LIBS_OPENGL_ES2 so we do not have to force users to copy/paste
around entire mkspecs just to change the OpenGL backend.

This should make the "-opengl es2" (and friends) configure option
work out of the box with any mkspec on Linux+WinCE.
Also removes a WinCE specific hack that is not required anymore.

Reviewed-by: Tom Cooksey
Reviewed-by: Trond Kjernåsen
Approved-by: Lars Knoll
---
 config.tests/unix/opengles1/opengles1.pro     |  6 +++---
 config.tests/unix/opengles1cl/opengles1cl.pro |  6 +++---
 config.tests/unix/opengles2/opengles2.pro     |  6 +++---
 doc/src/development/qmake-manual.qdoc         | 23 +++++++++++++++++++++++
 mkspecs/common/linux.conf                     |  9 +++++++++
 mkspecs/common/wince/qmake.conf               |  4 ++++
 mkspecs/features/unix/opengl.prf              | 26 ++++++++++++++++++++++----
 src/opengl/opengl.pro                         | 22 ++++++++++------------
 8 files changed, 77 insertions(+), 25 deletions(-)

diff --git a/config.tests/unix/opengles1/opengles1.pro b/config.tests/unix/opengles1/opengles1.pro
index ad8dd31..1469aa9 100644
--- a/config.tests/unix/opengles1/opengles1.pro
+++ b/config.tests/unix/opengles1/opengles1.pro
@@ -1,9 +1,9 @@
 SOURCES = opengles1.cpp
-INCLUDEPATH += $$QMAKE_INCDIR_OPENGL
+INCLUDEPATH += $$QMAKE_INCDIR_OPENGL_ES1
 
-for(p, QMAKE_LIBDIR_OPENGL) {
+for(p, QMAKE_LIBDIR_OPENGL_ES1) {
     exists($$p):LIBS += -L$$p
 }
 
 CONFIG -= qt
-LIBS += $$QMAKE_LIBS_OPENGL_QT
+LIBS += $$QMAKE_LIBS_OPENGL_ES1
diff --git a/config.tests/unix/opengles1cl/opengles1cl.pro b/config.tests/unix/opengles1cl/opengles1cl.pro
index 415cdbb..c4c069e 100644
--- a/config.tests/unix/opengles1cl/opengles1cl.pro
+++ b/config.tests/unix/opengles1cl/opengles1cl.pro
@@ -1,9 +1,9 @@
 SOURCES = opengles1cl.cpp
-INCLUDEPATH += $$QMAKE_INCDIR_OPENGL
+INCLUDEPATH += $$QMAKE_INCDIR_OPENGL_ES1CL
 
-for(p, QMAKE_LIBDIR_OPENGL) {
+for(p, QMAKE_LIBDIR_OPENGL_ES1CL) {
     exists($$p):LIBS += -L$$p
 }
 
 CONFIG -= qt
-LIBS += $$QMAKE_LIBS_OPENGL_QT
+LIBS += $$QMAKE_LIBS_OPENGL_ES1CL
diff --git a/config.tests/unix/opengles2/opengles2.pro b/config.tests/unix/opengles2/opengles2.pro
index 0dfae42..c383fd0 100644
--- a/config.tests/unix/opengles2/opengles2.pro
+++ b/config.tests/unix/opengles2/opengles2.pro
@@ -1,9 +1,9 @@
 SOURCES = opengles2.cpp
-INCLUDEPATH += $$QMAKE_INCDIR_OPENGL
+INCLUDEPATH += $$QMAKE_INCDIR_OPENGL_ES2
 
-for(p, QMAKE_LIBDIR_OPENGL) {
+for(p, QMAKE_LIBDIR_OPENGL_ES2) {
     exists($$p):LIBS += -L$$p
 }
 
 CONFIG -= qt
-LIBS += $$QMAKE_LIBS_OPENGL_QT
+LIBS += $$QMAKE_LIBS_OPENGL_ES2
diff --git a/doc/src/development/qmake-manual.qdoc b/doc/src/development/qmake-manual.qdoc
index 6c53242..09f1b9b 100644
--- a/doc/src/development/qmake-manual.qdoc
+++ b/doc/src/development/qmake-manual.qdoc
@@ -2252,6 +2252,18 @@ For example:
     If the OpenGL implementation uses EGL (most OpenGL/ES systems),
     then QMAKE_INCDIR_EGL may also need to be set.
 
+    \section1 QMAKE_INCDIR_OPENGL_ES1, QMAKE_INCDIR_OPENGL_ES1CL, QMAKE_INCDIR_OPENGL_ES2
+
+    These variables contain the location of OpenGL headers files to be added
+    to INCLUDEPATH when building an application with OpenGL ES 1, OpenGL ES 1 Common
+    Lite or OpenGL ES 2 support respectively.
+
+    The value of this variable is typically handled by \c qmake or
+    \l{#QMAKESPEC}{qmake.conf} and rarely needs to be modified.
+
+    If the OpenGL implementation uses EGL (most OpenGL/ES systems),
+    then QMAKE_INCDIR_EGL may also need to be set.
+
     \target QMAKE_INCDIR_OPENVG
     \section1 QMAKE_INCDIR_OPENVG
 
@@ -2496,6 +2508,17 @@ For example:
     variable is typically handled by \c qmake or
      \l{#QMAKESPEC}{qmake.conf} and rarely needs to be modified.
 
+    \section1 QMAKE_LIBS_OPENGL_ES1, QMAKE_LIBS_OPENGL_ES1CL, QMAKE_LIBS_OPENGL_ES2
+
+    These variables contain all the OpenGL libraries for OpenGL ES 1,
+    OpenGL ES 1 Common Lite profile and OpenGL ES 2.
+
+    The value of these variables is typically handled by \c qmake or
+    \l{#QMAKESPEC}{qmake.conf} and rarely needs to be modified.
+
+    If the OpenGL implementation uses EGL (most OpenGL/ES systems),
+    then QMAKE_LIBS_EGL may also need to be set.
+
     \section1 QMAKE_LIBS_OPENVG
 
     This variable contains all OpenVG libraries.  The value of this
diff --git a/mkspecs/common/linux.conf b/mkspecs/common/linux.conf
index cc5c38b..1ae5608 100644
--- a/mkspecs/common/linux.conf
+++ b/mkspecs/common/linux.conf
@@ -13,6 +13,12 @@ QMAKE_INCDIR_QT       = $$[QT_INSTALL_HEADERS]
 QMAKE_LIBDIR_QT       = $$[QT_INSTALL_LIBS]
 QMAKE_INCDIR_OPENGL   = /usr/X11R6/include
 QMAKE_LIBDIR_OPENGL   = /usr/X11R6/lib
+QMAKE_INCDIR_OPENGL_ES1 = $$QMAKE_INCDIR_OPENGL
+QMAKE_LIBDIR_OPENGL_ES1 = $$QMAKE_LIBDIR_OPENGL
+QMAKE_INCDIR_OPENGL_ES1CL = $$QMAKE_INCDIR_OPENGL
+QMAKE_LIBDIR_OPENGL_ES1CL = $$QMAKE_LIBDIR_OPENGL
+QMAKE_INCDIR_OPENGL_ES2 = $$QMAKE_INCDIR_OPENGL
+QMAKE_LIBDIR_OPENGL_ES2 = $$QMAKE_LIBDIR_OPENGL
 QMAKE_INCDIR_EGL      = 
 QMAKE_LIBDIR_EGL      =
 QMAKE_INCDIR_OPENVG   = 
@@ -26,6 +32,9 @@ QMAKE_LIBS_NIS        = -lnsl
 QMAKE_LIBS_EGL        = -lEGL
 QMAKE_LIBS_OPENGL     = -lGLU -lGL
 QMAKE_LIBS_OPENGL_QT  = -lGL
+QMAKE_LIBS_OPENGL_ES1 = -lGLES_CM
+QMAKE_LIBS_OPENGL_ES1CL = -lGLES_CL
+QMAKE_LIBS_OPENGL_ES2 = -lGLESv2
 QMAKE_LIBS_OPENVG     = -lOpenVG
 QMAKE_LIBS_THREAD     = -lpthread
 
diff --git a/mkspecs/common/wince/qmake.conf b/mkspecs/common/wince/qmake.conf
index d6e4ba7..d87be02 100644
--- a/mkspecs/common/wince/qmake.conf
+++ b/mkspecs/common/wince/qmake.conf
@@ -64,6 +64,10 @@ QMAKE_LIBS_NETWORK      = ws2.lib
 QMAKE_LIBS_OPENGL       = 
 QMAKE_LIBS_COMPAT       = 
 
+QMAKE_LIBS_OPENGL_ES1 = libGLES_CM.lib
+QMAKE_LIBS_OPENGL_ES1CL = libGLES_CL.lib
+QMAKE_LIBS_OPENGL_ES2 = libGLESv2.lib
+
 QMAKE_LIBS_QT_ENTRY	= -lqtmain
 
 QMAKE_MOC		= $$[QT_INSTALL_BINS]\moc.exe
diff --git a/mkspecs/features/unix/opengl.prf b/mkspecs/features/unix/opengl.prf
index 2fdf324..f2db819 100644
--- a/mkspecs/features/unix/opengl.prf
+++ b/mkspecs/features/unix/opengl.prf
@@ -1,4 +1,22 @@
-INCLUDEPATH += $$QMAKE_INCDIR_OPENGL
-!isEmpty(QMAKE_LIBDIR_OPENGL):QMAKE_LIBDIR += $$QMAKE_LIBDIR_OPENGL
-target_qt:LIBS_PRIVATE += $$QMAKE_LIBS_OPENGL_QT
-else:LIBS += $$QMAKE_LIBS_OPENGL
+contains(QT_CONFIG, opengles1) {
+    INCLUDEPATH += $$QMAKE_INCDIR_OPENGL_ES1
+    !isEmpty(QMAKE_LIBDIR_OPENGL_ES1):QMAKE_LIBDIR += $$QMAKE_LIBDIR_OPENGL_ES1
+    target_qt:LIBS_PRIVATE += $$QMAKE_LIBS_OPENGL_ES1
+    else:LIBS += $$QMAKE_LIBS_OPENGL_ES1
+} else:contains(QT_CONFIG, opengles1cl) {
+    INCLUDEPATH += $$QMAKE_INCDIR_OPENGL_ES1CL
+    !isEmpty(QMAKE_LIBDIR_OPENGL_ES1CL):QMAKE_LIBDIR += $$QMAKE_LIBDIR_OPENGL_ES1CL
+    target_qt:LIBS_PRIVATE += $$QMAKE_LIBS_OPENGL_ES1CL
+    else:LIBS += $$QMAKE_LIBS_OPENGL_ES1CL
+} else:contains(QT_CONFIG, opengles2) {
+    INCLUDEPATH += $$QMAKE_INCDIR_OPENGL_ES2
+    !isEmpty(QMAKE_LIBDIR_OPENGL_ES2):QMAKE_LIBDIR += $$QMAKE_LIBDIR_OPENGL_ES2
+    target_qt:LIBS_PRIVATE += $$QMAKE_LIBS_OPENGL_ES2
+    else:LIBS += $$QMAKE_LIBS_OPENGL_ES2
+} else {
+    INCLUDEPATH += $$QMAKE_INCDIR_OPENGL
+    !isEmpty(QMAKE_LIBDIR_OPENGL):QMAKE_LIBDIR += $$QMAKE_LIBDIR_OPENGL
+    target_qt:LIBS_PRIVATE += $$QMAKE_LIBS_OPENGL_QT
+    else:LIBS += $$QMAKE_LIBS_OPENGL
+}
+
diff --git a/src/opengl/opengl.pro b/src/opengl/opengl.pro
index a212675..7d6052b 100644
--- a/src/opengl/opengl.pro
+++ b/src/opengl/opengl.pro
@@ -103,7 +103,7 @@ x11 {
             LIBS_PRIVATE += -lfreetype
         } else {
             ### Note: how does this compile with a non-system freetype?
-	    # This probably doesn't compile
+	    # This probably does not compile
         }
     } else {
         DEFINES *= QT_NO_FREETYPE
@@ -150,17 +150,15 @@ embedded {
 
 INCLUDEPATH += ../3rdparty/harfbuzz/src
 
-wince*: {
-    contains(QT_CONFIG,opengles1) {
-        QMAKE_LIBS += "libGLES_CM.lib"
-    }
-    contains(QT_CONFIG,opengles1cl) {
-        QMAKE_LIBS += "libGLES_CL.lib"
-    }
-    contains(QT_CONFIG,opengles2) {
-        QMAKE_LIBS += "libGLESv2.lib"
-    }
-
+contains(QT_CONFIG,opengles1) {
+    LIBS_PRIVATE += $$QMAKE_LIBS_OPENGL_ES1
+    LIBS += $$QMAKE_LFLAGS_OPENGL_ES1
+} else:contains(QT_CONFIG,opengles1cl) {
+    LIBS_PRIVATE += $$QMAKE_LIBS_OPENGL_ES1CL
+    LIBS += $$QMAKE_LFLAGS_OPENGL_ES1CL
+} else:contains(QT_CONFIG,opengles2) {
+    LIBS_PRIVATE += $$QMAKE_LIBS_OPENGL_ES2
+    LIBS += $$QMAKE_LFLAGS_OPENGL_ES2
 } else {
     LIBS_PRIVATE += $$QMAKE_LIBS_OPENGL
     LIBS += $$QMAKE_LFLAGS_OPENGL
-- 
cgit v0.12