Added panel for managing ESI files from project and from database including module PDO alignment setting
authorLaurent Bessard
Wed, 27 Feb 2013 22:40:45 +0100
changeset 2097 58d07e039896
parent 2096 c9b0340ea0f5
child 2098 392791b5cc04
Added panel for managing ESI files from project and from database including module PDO alignment setting
etherlab/ConfigEditor.py
etherlab/etherlab.py
etherlab/images/ImportDatabase.png
etherlab/images/icons.svg
--- a/etherlab/ConfigEditor.py	Thu Feb 07 00:59:50 2013 +0100
+++ b/etherlab/ConfigEditor.py	Wed Feb 27 22:40:45 2013 +0100
@@ -1,9 +1,13 @@
+import os
+
 import wx
 import wx.grid
 import wx.gizmos
-
-from controls import CustomGrid, CustomTable
+import wx.lib.buttons
+
+from controls import CustomGrid, CustomTable, FolderTree
 from editors.ConfTreeNodeEditor import ConfTreeNodeEditor, SCROLLBAR_UNIT
+from util.BitmapLibrary import GetBitmap
 
 [ETHERCAT_VENDOR, ETHERCAT_GROUP, ETHERCAT_DEVICE] = range(3)
 
@@ -13,157 +17,59 @@
     else:
         parent.Append(helpString=help, id=id, kind=kind, item=text)
 
-def GetSyncManagersTableColnames():
-    _ = lambda x : x
-    return ["#", _("Name"), _("Start Address"), _("Default Size"), _("Control Byte"), _("Enable")]
-
-class SyncManagersTable(CustomTable):
-    
-    def GetValue(self, row, col):
-        if row < self.GetNumberRows():
-            if col == 0:
-                return row
-            return self.data[row].get(self.GetColLabelValue(col, False), "")
-
 def GetVariablesTableColnames():
     _ = lambda x : x
-    return ["#", _("Name"), _("Index"), _("SubIndex"), _("Type"), _("PDO index"), _("PDO name"), _("PDO type")]
-
-[ID_NODEEDITOR, ID_NODEEDITORVENDORLABEL, 
- ID_NODEEDITORVENDOR, ID_NODEEDITORPRODUCTCODELABEL, 
- ID_NODEEDITORPRODUCTCODE, ID_NODEEDITORREVISIONNUMBERLABEL, 
- ID_NODEEDITORREVISIONNUMBER, ID_NODEEDITORPHYSICSLABEL, 
- ID_NODEEDITORPHYSICS, ID_NODEEDITORSYNCMANAGERSLABEL, 
- ID_NODEEDITORSYNCMANAGERSGRID, ID_NODEEDITORVARIABLESLABEL, 
- ID_NODEEDITORVARIABLESGRID, 
-] = [wx.NewId() for _init_ctrls in range(13)]
+    return ["#", _("Name"), _("Index"), _("SubIndex"), _("Type"), _("Access")]
+
+ACCESS_TYPES = {
+    'ro': 'R',
+    'wo': 'W',
+    'rw': 'R/W'}
+
+def GetAccessValue(access, pdo_mapping):
+    value = ACCESS_TYPES.get(access)
+    if pdo_mapping != "":
+        value += "/P"
+    return value
 
 class NodeEditor(ConfTreeNodeEditor):
     
-    ID = ID_NODEEDITOR
     CONFNODEEDITOR_TABS = [
         (_("Ethercat node"), "_create_EthercatNodeEditor")]
     
-    def _init_coll_MainSizer_Items(self, parent):
-        parent.AddSizer(self.SlaveInfosDetailsSizer, 0, border=5, flag=wx.TOP|wx.LEFT|wx.RIGHT|wx.GROW)
-        parent.AddWindow(self.SyncManagersLabel, 0, border=5, flag=wx.LEFT|wx.RIGHT|wx.GROW)
-        parent.AddWindow(self.SyncManagersGrid, 0, border=5, flag=wx.LEFT|wx.RIGHT|wx.GROW)
-        parent.AddWindow(self.VariablesLabel, 0, border=5, flag=wx.LEFT|wx.RIGHT|wx.GROW)
-        parent.AddWindow(self.VariablesGrid, 0, border=5, flag=wx.BOTTOM|wx.LEFT|wx.RIGHT|wx.GROW)
-        
-    def _init_coll_MainSizer_Growables(self, parent):
-        parent.AddGrowableCol(0)
-        parent.AddGrowableRow(2, 1)
-        parent.AddGrowableRow(4, 2)
-        
-    def _init_coll_SlaveInfosDetailsSizer_Items(self, parent):
-        parent.AddWindow(self.VendorLabel, 0, border=0, flag=wx.ALIGN_CENTER_VERTICAL|wx.GROW)
-        parent.AddWindow(self.Vendor, 0, border=0, flag=wx.GROW)
-        parent.AddWindow(self.ProductCodeLabel, 0, border=0, flag=wx.ALIGN_CENTER_VERTICAL|wx.GROW)
-        parent.AddWindow(self.ProductCode, 0, border=0, flag=wx.GROW)
-        parent.AddWindow(self.RevisionNumberLabel, 0, border=0, flag=wx.ALIGN_CENTER_VERTICAL|wx.GROW)
-        parent.AddWindow(self.RevisionNumber, 0, border=0, flag=wx.GROW)
-        parent.AddWindow(self.PhysicsLabel, 0, border=0, flag=wx.ALIGN_CENTER_VERTICAL|wx.GROW)
-        parent.AddWindow(self.Physics, 0, border=0, flag=wx.GROW)
-        
-    def _init_coll_SlaveInfosDetailsSizer_Growables(self, parent):
-        parent.AddGrowableCol(1)
-        parent.AddGrowableCol(3)
-    
-    def _init_sizers(self):
-        self.MainSizer = wx.FlexGridSizer(cols=1, hgap=0, rows=5, vgap=5)
-        self.SlaveInfosDetailsSizer = wx.FlexGridSizer(cols=4, hgap=5, rows=2, vgap=5)
-        
-        self._init_coll_MainSizer_Growables(self.MainSizer)
-        self._init_coll_MainSizer_Items(self.MainSizer)
-        self._init_coll_SlaveInfosDetailsSizer_Growables(self.SlaveInfosDetailsSizer)
-        self._init_coll_SlaveInfosDetailsSizer_Items(self.SlaveInfosDetailsSizer)
-        
-        self.EthercatNodeEditor.SetSizer(self.MainSizer)
-
     def _create_EthercatNodeEditor(self, prnt):
-        self.EthercatNodeEditor = wx.ScrolledWindow(id=-1, name='SlavePanel', parent=prnt,
-              size=wx.Size(0, 0), style=wx.TAB_TRAVERSAL|wx.SUNKEN_BORDER|wx.HSCROLL|wx.VSCROLL)
-        self.EthercatNodeEditor.Bind(wx.EVT_SIZE, self.OnEthercatNodeEditorResize)
-        
-        self.VendorLabel = wx.StaticText(id=ID_NODEEDITORVENDORLABEL,
-              label=_('Vendor:'), name='VendorLabel', parent=self.EthercatNodeEditor,
-              pos=wx.Point(0, 0), size=wx.DefaultSize, style=0)
-        
-        self.Vendor = wx.TextCtrl(id=ID_NODEEDITORVENDOR, value='',
-              name='Vendor', parent=self.EthercatNodeEditor, pos=wx.Point(0, 0),
-              size=wx.Size(0, 24), style=wx.TE_READONLY)
-        
-        self.ProductCodeLabel = wx.StaticText(id=ID_NODEEDITORPRODUCTCODELABEL,
-              label=_('Product code:'), name='ProductCodeLabel', parent=self.EthercatNodeEditor,
-              pos=wx.Point(0, 0), size=wx.DefaultSize, style=0)
-        
-        self.ProductCode = wx.TextCtrl(id=ID_NODEEDITORPRODUCTCODE, value='',
-              name='ProductCode', parent=self.EthercatNodeEditor, pos=wx.Point(0, 0),
-              size=wx.Size(0, 24), style=wx.TE_READONLY)
-        
-        self.RevisionNumberLabel = wx.StaticText(id=ID_NODEEDITORREVISIONNUMBERLABEL,
-              label=_('Revision number:'), name='RevisionNumberLabel', parent=self.EthercatNodeEditor,
-              pos=wx.Point(0, 0), size=wx.DefaultSize, style=0)
-        
-        self.RevisionNumber = wx.TextCtrl(id=ID_NODEEDITORREVISIONNUMBER, value='',
-              name='RevisionNumber', parent=self.EthercatNodeEditor, pos=wx.Point(0, 0),
-              size=wx.Size(0, 24), style=wx.TE_READONLY)
-        
-        self.PhysicsLabel = wx.StaticText(id=ID_NODEEDITORPHYSICSLABEL,
-              label=_('Physics:'), name='PhysicsLabel', parent=self.EthercatNodeEditor,
-              pos=wx.Point(0, 0), size=wx.DefaultSize, style=0)
-        
-        self.Physics = wx.TextCtrl(id=ID_NODEEDITORPHYSICS, value='',
-              name='Physics', parent=self.EthercatNodeEditor, pos=wx.Point(0, 0),
-              size=wx.Size(0, 24), style=wx.TE_READONLY)
-        
-        self.SyncManagersLabel =  wx.StaticText(id=ID_NODEEDITORSYNCMANAGERSLABEL,
-              label=_('Sync managers:'), name='SyncManagersLabel', parent=self.EthercatNodeEditor,
-              pos=wx.Point(0, 0), size=wx.DefaultSize, style=0)
-        
-        self.SyncManagersGrid = CustomGrid(id=ID_NODEEDITORSYNCMANAGERSGRID,
-              name='SyncManagersGrid', parent=self.EthercatNodeEditor, pos=wx.Point(0, 0), 
-              size=wx.Size(0, 200), style=wx.VSCROLL)
-        
-        self.VariablesLabel =  wx.StaticText(id=ID_NODEEDITORVARIABLESLABEL,
-              label=_('Variable entries:'), name='VariablesLabel', parent=self.EthercatNodeEditor,
-              pos=wx.Point(0, 0), size=wx.DefaultSize, style=0)
-        
-        self.VariablesGrid = wx.gizmos.TreeListCtrl(id=ID_NODEEDITORVARIABLESGRID,
-              name='VariablesGrid', parent=self.EthercatNodeEditor, pos=wx.Point(0, 0), 
-              size=wx.Size(0, 400), style=wx.TR_DEFAULT_STYLE |
-                                          wx.TR_ROW_LINES |
-                                          wx.TR_COLUMN_LINES |
-                                          wx.TR_HIDE_ROOT |
-                                          wx.TR_FULL_ROW_HIGHLIGHT)
-        self.VariablesGrid.GetMainWindow().Bind(wx.EVT_LEFT_DOWN, self.OnVariablesGridLeftClick)
+        self.EthercatNodeEditor = wx.Panel(prnt, style=wx.TAB_TRAVERSAL)
+        
+        main_sizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=5)
+        main_sizer.AddGrowableCol(0)
+        main_sizer.AddGrowableRow(1)
+        
+        variables_label = wx.StaticText(self.EthercatNodeEditor,
+              label=_('Variable entries:'))
+        main_sizer.AddWindow(variables_label, border=10, flag=wx.TOP|wx.LEFT|wx.RIGHT)
+        
+        self.VariablesGrid = wx.gizmos.TreeListCtrl(self.EthercatNodeEditor,
+              style=wx.TR_DEFAULT_STYLE |
+                    wx.TR_ROW_LINES |
+                    wx.TR_COLUMN_LINES |
+                    wx.TR_HIDE_ROOT |
+                    wx.TR_FULL_ROW_HIGHLIGHT)
+        self.VariablesGrid.GetMainWindow().Bind(wx.EVT_LEFT_DOWN, 
+            self.OnVariablesGridLeftClick)
+        main_sizer.AddWindow(self.VariablesGrid, border=10, 
+            flag=wx.GROW|wx.BOTTOM|wx.LEFT|wx.RIGHT)
                 
-        self._init_sizers()
-    
+        self.EthercatNodeEditor.SetSizer(main_sizer)
+
         return self.EthercatNodeEditor
     
     def __init__(self, parent, controler, window):
         ConfTreeNodeEditor.__init__(self, parent, controler, window)
     
-        self.SyncManagersTable = SyncManagersTable(self, [], GetSyncManagersTableColnames())
-        self.SyncManagersGrid.SetTable(self.SyncManagersTable)
-        self.SyncManagersGridColAlignements = [wx.ALIGN_RIGHT, wx.ALIGN_LEFT, wx.ALIGN_RIGHT, 
-                                               wx.ALIGN_RIGHT, wx.ALIGN_RIGHT, wx.ALIGN_RIGHT]
-        self.SyncManagersGridColSizes = [40, 150, 100, 100, 100, 100]
-        self.SyncManagersGrid.SetRowLabelSize(0)
-        for col in range(self.SyncManagersTable.GetNumberCols()):
-            attr = wx.grid.GridCellAttr()
-            attr.SetAlignment(self.SyncManagersGridColAlignements[col], wx.ALIGN_CENTRE)
-            self.SyncManagersGrid.SetColAttr(col, attr)
-            self.SyncManagersGrid.SetColMinimalWidth(col, self.SyncManagersGridColSizes[col])
-            self.SyncManagersGrid.AutoSizeColumn(col, False)
-        
         for colname, colsize, colalign in zip(GetVariablesTableColnames(),
-                                              [40, 150, 100, 100, 150, 100, 150, 100],
+                                              [40, 150, 100, 100, 150, 100],
                                               [wx.ALIGN_RIGHT, wx.ALIGN_LEFT, wx.ALIGN_RIGHT, 
-                                               wx.ALIGN_RIGHT, wx.ALIGN_LEFT, wx.ALIGN_RIGHT, 
-                                               wx.ALIGN_LEFT, wx.ALIGN_LEFT]):
+                                               wx.ALIGN_RIGHT, wx.ALIGN_LEFT, wx.ALIGN_LEFT]):
             self.VariablesGrid.AddColumn(_(colname), colsize, colalign)
         self.VariablesGrid.SetMainColumn(1)
     
@@ -178,20 +84,8 @@
     def RefreshSlaveInfos(self):
         slave_infos = self.Controler.GetSlaveInfos()
         if slave_infos is not None:
-            self.Vendor.SetValue(slave_infos["vendor"])
-            self.ProductCode.SetValue(slave_infos["product_code"])
-            self.RevisionNumber.SetValue(slave_infos["revision_number"])
-            self.Physics.SetValue(slave_infos["physics"])
-            self.SyncManagersTable.SetData(slave_infos["sync_managers"])
-            self.SyncManagersTable.ResetView(self.SyncManagersGrid)
             self.RefreshVariablesGrid(slave_infos["entries"])
         else:
-            self.Vendor.SetValue("")
-            self.ProductCode.SetValue("")
-            self.RevisionNumber.SetValue("")
-            self.Physics.SetValue("")
-            self.SyncManagersTable.SetData([])
-            self.SyncManagersTable.ResetView(self.SyncManagersGrid)
             self.RefreshVariablesGrid([])
     
     def RefreshVariablesGrid(self, entries):
@@ -202,10 +96,7 @@
         self.VariablesGrid.Expand(root)
         
     def GenerateVariablesGridBranch(self, root, entries, colnames, idx=0):
-        if wx.VERSION >= (2, 6, 0):
-            item, root_cookie = self.VariablesGrid.GetFirstChild(root)
-        else:
-            item, root_cookie = self.VariablesGrid.GetFirstChild(root, 0)
+        item, root_cookie = self.VariablesGrid.GetFirstChild(root)
         
         no_more_items = not item.IsOk()
         for entry in entries:
@@ -216,7 +107,10 @@
                 if col == 0:
                     self.VariablesGrid.SetItemText(item, str(idx), 0)
                 else:
-                    self.VariablesGrid.SetItemText(item, entry.get(colname, ""), col)
+                    value = entry.get(colname, "")
+                    if colname == "Access":
+                        value = GetAccessValue(value, entry.get("PDOMapping", ""))
+                    self.VariablesGrid.SetItemText(item, value, col)
             if entry["PDOMapping"] == "":
                 self.VariablesGrid.SetItemBackgroundColour(item, wx.LIGHT_GREY)
             self.VariablesGrid.SetItemPyData(item, entry)
@@ -263,16 +157,275 @@
             
         event.Skip()
 
-    def OnEthercatNodeEditorResize(self, event):
-        self.EthercatNodeEditor.GetBestSize()
-        xstart, ystart = self.EthercatNodeEditor.GetViewStart()
-        window_size = self.EthercatNodeEditor.GetClientSize()
-        maxx, maxy = self.EthercatNodeEditor.GetMinSize()
+CIA402NodeEditor = NodeEditor
+
+
+def GetModulesTableColnames():
+    _ = lambda x : x
+    return [_("Name"), _("PDO alignment (bits)")]
+
+class LibraryEditorPanel(wx.ScrolledWindow):
+    
+    def __init__(self, parent, module_library, buttons):
+        wx.ScrolledWindow.__init__(self, parent,
+            style=wx.TAB_TRAVERSAL|wx.HSCROLL|wx.VSCROLL)
+        self.Bind(wx.EVT_SIZE, self.OnResize)
+        
+        self.ModuleLibrary = module_library
+    
+        main_sizer = wx.FlexGridSizer(cols=1, hgap=0, rows=4, vgap=5)
+        main_sizer.AddGrowableCol(0)
+        main_sizer.AddGrowableRow(1)
+        main_sizer.AddGrowableRow(3)
+        
+        ESI_files_label = wx.StaticText(self, 
+            label=_("ESI Files:"))
+        main_sizer.AddWindow(ESI_files_label, border=10, 
+            flag=wx.TOP|wx.LEFT|wx.RIGHT)
+        
+        folder_tree_sizer = wx.FlexGridSizer(cols=2, hgap=5, rows=1, vgap=0)
+        folder_tree_sizer.AddGrowableCol(0)
+        folder_tree_sizer.AddGrowableRow(0)
+        main_sizer.AddSizer(folder_tree_sizer, border=10, 
+            flag=wx.GROW|wx.LEFT|wx.RIGHT)
+        
+        self.ESIFiles = FolderTree(self, self.GetPath(), editable=False)
+        self.ESIFiles.SetFilter(".xml")
+        self.ESIFiles.SetMinSize(wx.Size(600, 300))
+        folder_tree_sizer.AddWindow(self.ESIFiles, flag=wx.GROW)
+        
+        buttons_sizer = wx.BoxSizer(wx.VERTICAL)
+        folder_tree_sizer.AddSizer(buttons_sizer, 
+            flag=wx.ALIGN_CENTER_VERTICAL)
+        
+        for idx, (name, bitmap, help, callback) in enumerate(buttons):
+            button = wx.lib.buttons.GenBitmapButton(self, 
+                  bitmap=GetBitmap(bitmap), 
+                  size=wx.Size(28, 28), style=wx.NO_BORDER)
+            button.SetToolTipString(help)
+            setattr(self, name, button)
+            if idx > 0:
+                flag = wx.TOP
+            else:
+                flag = 0
+            if callback is None:
+                callback = getattr(self, "On" + name, None)
+            if callback is not None:
+                self.Bind(wx.EVT_BUTTON, callback, button)
+            buttons_sizer.AddWindow(button, border=10, flag=flag)
+        
+        modules_label = wx.StaticText(self, 
+            label=_("Modules library:"))
+        main_sizer.AddSizer(modules_label, border=10, 
+            flag=wx.LEFT|wx.RIGHT)
+        
+        self.ModulesGrid = wx.gizmos.TreeListCtrl(self,
+              style=wx.TR_DEFAULT_STYLE |
+                    wx.TR_ROW_LINES |
+                    wx.TR_COLUMN_LINES |
+                    wx.TR_HIDE_ROOT |
+                    wx.TR_FULL_ROW_HIGHLIGHT)
+        self.ModulesGrid.SetMinSize(wx.Size(600, 300))
+        self.ModulesGrid.GetMainWindow().Bind(wx.EVT_LEFT_DCLICK,
+            self.OnModulesGridLeftDClick)
+        main_sizer.AddWindow(self.ModulesGrid, border=10, 
+            flag=wx.GROW|wx.BOTTOM|wx.LEFT|wx.RIGHT)
+        
+        self.SetSizer(main_sizer)
+        
+        for colname, colsize, colalign in zip(GetModulesTableColnames(),
+                                              [400, 150],
+                                              [wx.ALIGN_LEFT, wx.ALIGN_RIGHT]):
+            self.ModulesGrid.AddColumn(_(colname), colsize, colalign)
+        self.ModulesGrid.SetMainColumn(0)
+    
+    def GetPath(self):
+        return self.ModuleLibrary.GetPath()
+    
+    def GetSelectedFilePath(self):
+        return self.ESIFiles.GetPath()
+    
+    def RefreshView(self):
+        self.ESIFiles.RefreshTree()
+        self.RefreshModulesGrid()
+    
+    def RefreshModulesGrid(self):
+        root = self.ModulesGrid.GetRootItem()
+        if not root.IsOk():
+            root = self.ModulesGrid.AddRoot("Modules")
+        self.GenerateModulesGridBranch(root, 
+            self.ModuleLibrary.GetModulesLibrary(), 
+            GetVariablesTableColnames())
+        self.ModulesGrid.Expand(root)
+            
+    def GenerateModulesGridBranch(self, root, modules, colnames):
+        item, root_cookie = self.ModulesGrid.GetFirstChild(root)
+        
+        no_more_items = not item.IsOk()
+        for module in modules:
+            if no_more_items:
+                item = self.ModulesGrid.AppendItem(root, "")
+            self.ModulesGrid.SetItemText(item, module["name"], 0)
+            if module["infos"] is not None:
+                self.ModulesGrid.SetItemText(item, str(module["infos"]["alignment"]), 1)
+            else:
+                self.ModulesGrid.SetItemBackgroundColour(item, wx.LIGHT_GREY)
+            self.ModulesGrid.SetItemPyData(item, module["infos"])
+            self.GenerateModulesGridBranch(item, module["children"], colnames)
+            if not no_more_items:
+                item, root_cookie = self.ModulesGrid.GetNextChild(root, root_cookie)
+                no_more_items = not item.IsOk()
+        
+        if not no_more_items:
+            to_delete = []
+            while item.IsOk():
+                to_delete.append(item)
+                item, root_cookie = self.ModulesGrid.GetNextChild(root, root_cookie)
+            for item in to_delete:
+                self.ModulesGrid.Delete(item)
+    
+    def OnImportButton(self, event):
+        dialog = wx.FileDialog(self,
+             _("Choose an XML file"), 
+             os.getcwd(), "",  
+             _("XML files (*.xml)|*.xml|All files|*.*"), wx.OPEN)
+        
+        if dialog.ShowModal() == wx.ID_OK:
+            filepath = dialog.GetPath()
+            if self.ModuleLibrary.ImportModuleLibrary(filepath):
+                wx.CallAfter(self.RefreshView)
+            else:
+                message = wx.MessageDialog(self, 
+                    _("No such XML file: %s\n") % filepath, 
+                    _("Error"), wx.OK|wx.ICON_ERROR)
+                message.ShowModal()
+                message.Destroy()
+        dialog.Destroy()
+        
+        event.Skip()
+    
+    def OnDeleteButton(self, event):
+        filepath = self.GetSelectedFilePath()
+        if os.path.isfile(filepath):
+            folder, filename = os.path.split(filepath)
+            
+            dialog = wx.MessageDialog(self, 
+                  _("Do you really want to delete the file '%s'?") % filename, 
+                  _("Delete File"), wx.YES_NO|wx.ICON_QUESTION)
+            remove = dialog.ShowModal() == wx.ID_YES
+            dialog.Destroy()
+            
+            if remove:
+                os.remove(filepath)
+                self.ModuleLibrary.LoadModules()
+                wx.CallAfter(self.RefreshView)
+        event.Skip()
+    
+    def OnModulesGridLeftDClick(self, event):
+        item, flags, col = self.ModulesGrid.HitTest(event.GetPosition())
+        if item.IsOk():
+            entry_infos = self.ModulesGrid.GetItemPyData(item)
+            if entry_infos is not None and col == 1:
+                dialog = wx.TextEntryDialog(self, 
+                    _("Set PDO alignment (bits):"),
+                    _("%s PDO alignment") % self.ModulesGrid.GetItemText(item), 
+                    str(entry_infos["alignment"]))
+                
+                if dialog.ShowModal() == wx.ID_OK:
+                    try:
+                        self.ModuleLibrary.SetAlignment(
+                            entry_infos["vendor"],
+                            entry_infos["product_code"],
+                            entry_infos["revision_number"],
+                            int(dialog.GetValue()))
+                        wx.CallAfter(self.RefreshModulesGrid)
+                    except ValueError:
+                        message = wx.MessageDialog(self, 
+                            _("Module PDO alignment must be an integer!"), 
+                            _("Error"), wx.OK|wx.ICON_ERROR)
+                        message.ShowModal()
+                        message.Destroy()
+                    
+                dialog.Destroy()
+        
+        event.Skip()
+    
+    def OnResize(self, event):
+        self.GetBestSize()
+        xstart, ystart = self.GetViewStart()
+        window_size = self.GetClientSize()
+        maxx, maxy = self.GetMinSize()
         posx = max(0, min(xstart, (maxx - window_size[0]) / SCROLLBAR_UNIT))
         posy = max(0, min(ystart, (maxy - window_size[1]) / SCROLLBAR_UNIT))
-        self.EthercatNodeEditor.Scroll(posx, posy)
-        self.EthercatNodeEditor.SetScrollbars(SCROLLBAR_UNIT, SCROLLBAR_UNIT, 
+        self.Scroll(posx, posy)
+        self.SetScrollbars(SCROLLBAR_UNIT, SCROLLBAR_UNIT, 
                 maxx / SCROLLBAR_UNIT, maxy / SCROLLBAR_UNIT, posx, posy)
         event.Skip()
 
-CIA402NodeEditor = NodeEditor
+class DatabaseManagementDialog(wx.Dialog):
+    
+    def __init__(self, parent, database):
+        wx.Dialog.__init__(self, parent,
+              size=wx.Size(700, 500), title=_('ESI Files Database management'),
+              style=wx.DEFAULT_DIALOG_STYLE|wx.RESIZE_BORDER)
+        
+        main_sizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=10)
+        main_sizer.AddGrowableCol(0)
+        main_sizer.AddGrowableRow(0)
+        
+        self.DatabaseEditor = LibraryEditorPanel(self, database,
+            [("ImportButton", "ImportESI", _("Import file to ESI files database"), None),
+             ("DeleteButton", "remove_element", _("Remove file from database"), None)])
+        main_sizer.AddWindow(self.DatabaseEditor, border=10,
+            flag=wx.GROW|wx.TOP|wx.LEFT|wx.RIGHT)
+        
+        button_sizer = self.CreateButtonSizer(wx.OK|wx.CANCEL|wx.CENTRE)
+        button_sizer.GetAffirmativeButton().SetLabel(_("Add file to project"))
+        button_sizer.GetCancelButton().SetLabel(_("Close"))
+        main_sizer.AddSizer(button_sizer, border=10, 
+              flag=wx.ALIGN_RIGHT|wx.BOTTOM|wx.LEFT|wx.RIGHT)
+        
+        self.SetSizer(main_sizer)
+        
+        self.DatabaseEditor.RefreshView()
+        
+    def GetValue(self):
+        return self.DatabaseEditor.GetSelectedFilePath()
+
+class LibraryEditor(ConfTreeNodeEditor):
+    
+    CONFNODEEDITOR_TABS = [
+        (_("Modules Library"), "_create_ModuleLibraryEditor")]
+    
+    def _create_ModuleLibraryEditor(self, prnt):
+        self.ModuleLibraryEditor = LibraryEditorPanel(prnt,
+            self.Controler.GetModulesLibraryInstance(),
+            [("ImportButton", "ImportESI", _("Import ESI file"), None),
+             ("AddButton", "ImportDatabase", _("Add file from ESI files database"), self.OnAddButton),
+             ("DeleteButton", "remove_element", _("Remove file from library"), None)])
+        
+        return self.ModuleLibraryEditor
+
+    def __init__(self, parent, controler, window):
+        ConfTreeNodeEditor.__init__(self, parent, controler, window)
+    
+        self.RefreshView()
+    
+    def RefreshView(self):
+        ConfTreeNodeEditor.RefreshView(self)
+        self.ModuleLibraryEditor.RefreshView()
+
+    def OnAddButton(self, event):
+        dialog = DatabaseManagementDialog(self, 
+            self.Controler.GetModulesDatabaseInstance())
+        
+        if dialog.ShowModal() == wx.ID_OK:
+            module_library = self.Controler.GetModulesLibraryInstance()
+            module_library.ImportModuleLibrary(dialog.GetValue())
+            
+        dialog.Destroy()
+        
+        wx.CallAfter(self.ModuleLibraryEditor.RefreshView)
+        
+        event.Skip()
+
--- a/etherlab/etherlab.py	Thu Feb 07 00:59:50 2013 +0100
+++ b/etherlab/etherlab.py	Wed Feb 27 22:40:45 2013 +0100
@@ -3,12 +3,13 @@
 from xml.dom import minidom
 
 import wx
+import csv
 
 from xmlclass import *
 from POULibrary import POULibrary
 from ConfigTreeNode import ConfigTreeNode
 from PLCControler import UndoBuffer, LOCATION_CONFNODE, LOCATION_MODULE, LOCATION_GROUP, LOCATION_VAR_INPUT, LOCATION_VAR_OUTPUT, LOCATION_VAR_MEMORY
-from ConfigEditor import NodeEditor, CIA402NodeEditor, ETHERCAT_VENDOR, ETHERCAT_GROUP, ETHERCAT_DEVICE
+from ConfigEditor import NodeEditor, CIA402NodeEditor, LibraryEditor, ETHERCAT_VENDOR, ETHERCAT_GROUP, ETHERCAT_DEVICE
 
 try:
     from MotionLibrary import Headers, AxisXSD
@@ -571,7 +572,7 @@
                         "product_code": slave["product_code"],
                         "revision_number":slave["revision_number"],
                     }
-                    device = self.GetModuleInfos(type_infos)
+                    device, alignment = self.GetModuleInfos(type_infos)
                     if device is not None:
                         if HAS_MCL and _EthercatCIA402SlaveCTN.NODE_PROFILE in device.GetProfileNumbers():
                             CTNType = "EthercatCIA402Slave"
@@ -651,7 +652,7 @@
         slave = self.GetSlave(slave_pos)
         if slave is not None:
             type_infos = slave.getType()
-            device = self.GetModuleInfos(type_infos)
+            device, alignement = self.GetModuleInfos(type_infos)
             if device is not None:
                 infos = type_infos.copy()
                 entries = device.GetEntriesList()
@@ -688,7 +689,7 @@
         if slave is not None:
             type_infos = slave.getType()
         
-            device = self.GetModuleInfos(type_infos)
+            device, alignement = self.GetModuleInfos(type_infos)
             if device is not None:
                 sync_managers = []
                 for sync_manager in device.getSm():
@@ -1016,7 +1017,7 @@
             slave_pos = (slave_alias, alias[slave_alias])
             
             # Extract slave device informations
-            device = self.Controler.GetModuleInfos(type_infos)
+            device, alignement = self.Controler.GetModuleInfos(type_infos)
             if device is not None:
                 
                 # Extract slaves variables to be mapped
@@ -1473,10 +1474,7 @@
                             "Type": subitem.getType(),
                             "BitSize": subitem.getBitSize(),
                             "Access": subitem_access, 
-                            "PDOMapping": subitem_pdomapping, 
-                            "PDO index": "", 
-                            "PDO name": "", 
-                            "PDO type": ""}
+                            "PDOMapping": subitem_pdomapping}
                 else:
                     entry_access = ""
                     entry_pdomapping = ""
@@ -1495,10 +1493,7 @@
                          "Type": entry_type,
                          "BitSize": object.getBitSize(),
                          "Access": entry_access,
-                         "PDOMapping": entry_pdomapping, 
-                         "PDO index": "", 
-                         "PDO name": "", 
-                         "PDO type": ""}
+                         "PDOMapping": entry_pdomapping}
         
         for TxPdo in self.getTxPdo():
             ExtractPdoInfos(TxPdo, "Transmit", entries)
@@ -1578,53 +1573,33 @@
                     "Name": ExtractName(pdo_entry.getName()),
                     "Type": entry_type.getcontent(),
                     "Access": access,
-                    "PDOMapping": pdomapping,
-                    "PDO index": pdo_index, 
-                    "PDO name": pdo_name, 
-                    "PDO type": pdo_type}
-
-class RootClass:
-    
-    CTNChildrenTypes = [("EthercatNode",_EthercatCTN,"Ethercat Master")]
-    
-    def __init__(self):
-        self.LoadModulesLibrary()
-    
-    def GetModulesLibraryPath(self):
-        library_path = os.path.join(self.CTNPath(), "modules")
-        if not os.path.exists(library_path):
-            os.mkdir(library_path)
-        return library_path
-    
-    def _ImportModuleLibrary(self):
-        dialog = wx.FileDialog(self.GetCTRoot().AppFrame, _("Choose an XML file"), os.getcwd(), "",  _("XML files (*.xml)|*.xml|All files|*.*"), wx.OPEN)
-        if dialog.ShowModal() == wx.ID_OK:
-            filepath = dialog.GetPath()
-            if os.path.isfile(filepath):
-                shutil.copy(filepath, self.GetModulesLibraryPath())
-                self.LoadModulesLibrary()
-            else:
-                self.GetCTRoot().logger.write_error(_("No such XML file: %s\n") % filepath)
-        dialog.Destroy()  
-    
-    ConfNodeMethods = [
-        {"bitmap" : "ImportESI",
-         "name" : _("Import module library"), 
-         "tooltip" : _("Import module library"),
-         "method" : "_ImportModuleLibrary"},
-    ]
-    
-    def CTNGenerate_C(self, buildpath, locations):
-        return [],"",False
-    
-    def LoadModulesLibrary(self):
-        self.ModulesLibrary = {}
-        
-        library_path = self.GetModulesLibraryPath()
-        
-        files = os.listdir(library_path)
+                    "PDOMapping": pdomapping}
+
+DEFAULT_ALIGNMENT = 8
+
+class ModulesLibrary:
+    
+    def __init__(self, path, parent_library=None):
+        self.Path = path
+        if not os.path.exists(self.Path):
+            os.makedirs(self.Path)
+        self.ParentLibrary = parent_library
+        
+        self.LoadModules()
+        self.LoadAlignments()
+    
+    def GetPath(self):
+        return self.Path
+    
+    def GetAlignmentFilePath(self):
+        return os.path.join(self.Path, "alignments.cfg")
+    
+    def LoadModules(self):
+        self.Library = {}
+        
+        files = os.listdir(self.Path)
         for file in files:
-            filepath = os.path.join(library_path, file)
+            filepath = os.path.join(self.Path, file)
             if os.path.isfile(filepath) and os.path.splitext(filepath)[-1] == ".xml":
                 xmlfile = open(filepath, 'r')
                 xml_tree = minidom.parse(xmlfile)
@@ -1639,9 +1614,9 @@
                 if modules_infos is not None:
                     vendor = modules_infos.getVendor()
                     
-                    vendor_category = self.ModulesLibrary.setdefault(ExtractHexDecValue(vendor.getId()), 
-                                                                     {"name": ExtractName(vendor.getName(), _("Miscellaneous")), 
-                                                                      "groups": {}})
+                    vendor_category = self.Library.setdefault(ExtractHexDecValue(vendor.getId()), 
+                                                              {"name": ExtractName(vendor.getName(), _("Miscellaneous")), 
+                                                               "groups": {}})
                     
                     for group in modules_infos.getDescriptions().getGroups().getGroup():
                         group_type = group.getType()
@@ -1656,10 +1631,10 @@
                         if not vendor_category["groups"].has_key(device_group):
                             raise ValueError, "Not such group \"%\"" % device_group
                         vendor_category["groups"][device_group]["devices"].append((device.getType().getcontent(), device))
-    
+
     def GetModulesLibrary(self, profile_filter=None):
         library = []
-        for vendor_id, vendor in self.ModulesLibrary.iteritems():
+        for vendor_id, vendor in self.Library.iteritems():
             groups = []
             children_dict = {}
             for group_type, group in vendor["groups"].iteritems():
@@ -1671,12 +1646,16 @@
                 device_dict = {}
                 for device_type, device in group["devices"]:
                     if profile_filter is None or profile_filter in device.GetProfileNumbers():
+                        product_code = device.getType().getProductCode()
+                        revision_number = device.getType().getRevisionNo()
+                        alignment = self.GetAlignment(vendor_id, product_code, revision_number)
                         device_infos = {"name": ExtractName(device.getName()),
                                         "type": ETHERCAT_DEVICE,
                                         "infos": {"device_type": device_type,
                                                   "vendor": vendor_id,
-                                                  "product_code": device.getType().getProductCode(),
-                                                  "revision_number": device.getType().getRevisionNo()},
+                                                  "product_code": product_code,
+                                                  "revision_number": revision_number,
+                                                  "alignment": alignment},
                                         "children": []}
                         group_infos["children"].append(device_infos)
                         device_type_occurrences = device_dict.setdefault(device_type, [])
@@ -1698,17 +1677,115 @@
                                 "children": groups})
         library.sort(lambda x, y: cmp(x["name"], y["name"]))
         return library
-    
-    def GetModuleInfos(self, type_infos):
-        vendor = self.ModulesLibrary.get(ExtractHexDecValue(type_infos["vendor"]), None)
-        if vendor is not None:
-            for group_name, group in vendor["groups"].iteritems():
-                for device_type, device in group["devices"]:
-                    product_code = ExtractHexDecValue(device.getType().getProductCode())
-                    revision_number = ExtractHexDecValue(device.getType().getRevisionNo())
-                    if (product_code == ExtractHexDecValue(type_infos["product_code"]) and
-                        revision_number == ExtractHexDecValue(type_infos["revision_number"])):
-                        return device
-        return None
+
+    def GetModuleInfos(self, module_infos):
+        vendor = ExtractHexDecValue(module_infos["vendor"])
+        vendor_infos = self.Library.get(vendor)
+        if vendor_infos is not None:
+            for group_name, group_infos in vendor_infos["groups"].iteritems():
+                for device_type, device_infos in group_infos["devices"]:
+                    product_code = ExtractHexDecValue(device_infos.getType().getProductCode())
+                    revision_number = ExtractHexDecValue(device_infos.getType().getRevisionNo())
+                    if (product_code == ExtractHexDecValue(module_infos["product_code"]) and
+                        revision_number == ExtractHexDecValue(module_infos["revision_number"])):
+                        return device_infos, self.GetAlignment(vendor, product_code, revision_number)
+        return None, None
+    
+    def ImportModuleLibrary(self, filepath):
+        if os.path.isfile(filepath):
+            shutil.copy(filepath, self.Path)
+            self.LoadModules()
+            return True
+        return False
+    
+    def LoadAlignments(self):
+        self.Alignments = {}
+        
+        csvfile_path = self.GetAlignmentFilePath()
+        if os.path.exists(csvfile_path):
+            csvfile = open(csvfile_path, "rb")
+            sample = csvfile.read(1024)
+            csvfile.seek(0)
+            dialect = csv.Sniffer().sniff(sample)
+            has_header = csv.Sniffer().has_header(sample)
+            reader = csv.reader(csvfile, dialect)
+            for row in reader:
+                if has_header:
+                    has_header = False
+                else:
+                    try:
+                        self.Alignments[tuple(map(int, row[:3]))] = row[3]
+                    except:
+                        pass
+            csvfile.close()
+        
+    def SaveAlignments(self):
+        csvfile = open(self.GetAlignmentFilePath(), "wb")
+        writer = csv.writer(csvfile, delimiter=';')
+        writer.writerow(['Vendor', 'product_code', 'revision_number', 'alignment'])
+        for (vendor, product_code, revision_number), alignment in self.Alignments.iteritems():
+            writer.writerow([vendor, product_code, revision_number, alignment])
+        csvfile.close()
+    
+    def SetAlignment(self, vendor, product_code, revision_number, alignment):
+        vendor = ExtractHexDecValue(vendor)
+        product_code = ExtractHexDecValue(product_code)
+        revision_number = ExtractHexDecValue(revision_number)
+        
+        self.Alignments[tuple([vendor, product_code, revision_number])] = alignment
+        self.SaveAlignments()
+    
+    def GetAlignment(self, vendor, product_code, revision_number):
+        vendor = ExtractHexDecValue(vendor)
+        product_code = ExtractHexDecValue(product_code)
+        revision_number = ExtractHexDecValue(revision_number)
+        
+        alignment = self.Alignments.get(tuple([vendor, product_code, revision_number]))
+        if alignment is not None:
+            return alignment
+        
+        if self.ParentLibrary is not None:
+            return self.ParentLibrary.GetAlignment(vendor, product_code, revision_number)
+        return DEFAULT_ALIGNMENT
+
+USERDATA_DIR = wx.StandardPaths.Get().GetUserDataDir()
+if wx.Platform != '__WXMSW__':
+    USERDATA_DIR += '_files'
+
+ModulesDatabase = ModulesLibrary(
+    os.path.join(USERDATA_DIR, "ethercat_modules"))
+
+class RootClass:
+    
+    CTNChildrenTypes = [("EthercatNode",_EthercatCTN,"Ethercat Master")]
+    EditorType = LibraryEditor
+    
+    def __init__(self):
+        self.ModulesLibrary = None
+        self.LoadModulesLibrary()
+    
+    def GetModulesLibraryPath(self):
+        return os.path.join(self.CTNPath(), "modules") 
+    
+    def CTNGenerate_C(self, buildpath, locations):
+        return [],"",False
+    
+    def LoadModulesLibrary(self):
+        if self.ModulesLibrary is None:
+            self.ModulesLibrary = ModulesLibrary(self.GetModulesLibraryPath(), ModulesDatabase)
+        else:
+            self.ModulesLibrary.LoadModulesLibrary()
+    
+    def GetModulesDatabaseInstance(self):
+        return ModulesDatabase
+    
+    def GetModulesLibraryInstance(self):
+        return self.ModulesLibrary
+    
+    def GetModulesLibrary(self, profile_filter=None):
+        return self.ModulesLibrary.GetModulesLibrary(profile_filter)
+    
+    def GetModuleInfos(self, module_infos):
+        return self.ModulesLibrary.GetModuleInfos(module_infos)
 
             
Binary file etherlab/images/ImportDatabase.png has changed
--- a/etherlab/images/icons.svg	Thu Feb 07 00:59:50 2013 +0100
+++ b/etherlab/images/icons.svg	Wed Feb 27 22:40:45 2013 +0100
@@ -15,7 +15,7 @@
    height="1052.3622"
    id="svg2"
    sodipodi:version="0.32"
-   inkscape:version="0.48.2 r9819"
+   inkscape:version="0.48.3.1 r9886"
    sodipodi:docname="icons.svg"
    inkscape:output_extension="org.inkscape.output.svg.inkscape">
   <metadata
@@ -43,9 +43,9 @@
      pagecolor="#ffffff"
      id="base"
      showgrid="false"
-     inkscape:zoom="0.5"
-     inkscape:cx="904.45004"
-     inkscape:cy="452.59174"
+     inkscape:zoom="1.4142136"
+     inkscape:cx="233.96247"
+     inkscape:cy="947.27561"
      inkscape:window-x="0"
      inkscape:window-y="24"
      inkscape:current-layer="svg2"
@@ -57716,117 +57716,6 @@
        y2="14.276564" />
     <linearGradient
        inkscape:collect="always"
-       xlink:href="#linearGradient3256"
-       id="linearGradient20066"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="scale(1.044357,0.957527)"
-       x1="591.27606"
-       y1="330.16998"
-       x2="620.33301"
-       y2="382.54678" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5083"
-       id="linearGradient20068"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.1929605,-0.00426242,0.00585233,0.1786386,680.44209,227.41631)"
-       x1="566.74347"
-       y1="415.15009"
-       x2="588.13922"
-       y2="458.04449" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2345"
-       id="linearGradient20070"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.08313961,-0.03722276,-0.03243445,0.0934943,693.52705,270.28905)"
-       x1="100.76616"
-       y1="77.379333"
-       x2="125.25793"
-       y2="77.379333" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient1930"
-       id="linearGradient20072"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.07819037,-0.03500718,-0.03448742,0.09941203,684.96091,272.7873)"
-       x1="10.145814"
-       y1="21.762129"
-       x2="19.678274"
-       y2="15.811033" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2355"
-       id="linearGradient20074"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.00952271,-0.00152943,-0.8372982,1.5053504,699.75234,263.84813)"
-       x1="1270.3132"
-       y1="4.8765283"
-       x2="1247.6848"
-       y2="0.72310239" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3970"
-       id="linearGradient20076"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.2028254,-0.00448039,0.00556771,0.1699505,680.44209,227.41631)"
-       x1="-94.151642"
-       y1="379.97745"
-       x2="-100.40970"
-       y2="374.03232" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2560"
-       id="linearGradient20078"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.1217387,-0.01955224,-0.06549549,0.1177522,699.8779,263.8683)"
-       spreadMethod="reflect"
-       x1="97.345161"
-       y1="112.84396"
-       x2="99.206970"
-       y2="115.81121" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2560"
-       id="linearGradient20080"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.1839072,-0.00406245,0.0061405,0.1874324,680.55604,227.23529)"
-       x1="-13.150850"
-       y1="250.48668"
-       x2="-5.5906620"
-       y2="258.31036" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient1884"
-       id="linearGradient20082"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.0874385,-0.01404345,-0.09118816,0.1639442,699.8779,263.8683)"
-       x1="240.97612"
-       y1="200.61511"
-       x2="231.89941"
-       y2="205.45764" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient1884"
-       id="linearGradient20084"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.2064601,-0.00456044,0.00503988,0.1538412,680.41644,232.74127)"
-       x1="7.1050277"
-       y1="221.98289"
-       x2="46.488174"
-       y2="259.94464" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient1884"
-       id="linearGradient20086"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.2064601,-0.00456044,0.00503988,0.1538412,682.71501,230.6378)"
-       x1="7.1050277"
-       y1="221.98289"
-       x2="46.488174"
-       y2="259.94464" />
-    <linearGradient
-       inkscape:collect="always"
        xlink:href="#XMLID_19_"
        id="linearGradient16647"
        gradientUnits="userSpaceOnUse"
@@ -57905,16 +57794,6 @@
        inkscape:vp_x="0 : 526.18109 : 1"
        sodipodi:type="inkscape:persp3d" />
     <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3256-3"
-       id="linearGradient20066-5"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="scale(1.044357,0.957527)"
-       x1="591.27606"
-       y1="330.16998"
-       x2="620.33301"
-       y2="382.54678" />
-    <linearGradient
        id="linearGradient3256-3">
       <stop
          id="stop3258-8"
@@ -57926,16 +57805,6 @@
          offset="1" />
     </linearGradient>
     <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5083-0"
-       id="linearGradient20068-2"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.1929605,-0.00426242,0.00585233,0.1786386,680.44209,227.41631)"
-       x1="566.74347"
-       y1="415.15009"
-       x2="588.13922"
-       y2="458.04449" />
-    <linearGradient
        id="linearGradient5083-0">
       <stop
          id="stop5085-5"
@@ -57951,16 +57820,6 @@
          offset="1" />
     </linearGradient>
     <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2345-2"
-       id="linearGradient20070-0"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.08313961,-0.03722276,-0.03243445,0.0934943,693.52705,270.28905)"
-       x1="100.76616"
-       y1="77.379333"
-       x2="125.25793"
-       y2="77.379333" />
-    <linearGradient
        id="linearGradient2345-2">
       <stop
          style="stop-color:#ffffff;stop-opacity:1.0000000;"
@@ -57972,16 +57831,6 @@
          id="stop2349-8" />
     </linearGradient>
     <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient1930-3"
-       id="linearGradient20072-9"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.07819037,-0.03500718,-0.03448742,0.09941203,684.96091,272.7873)"
-       x1="10.145814"
-       y1="21.762129"
-       x2="19.678274"
-       y2="15.811033" />
-    <linearGradient
        id="linearGradient1930-3">
       <stop
          id="stop1931-0"
@@ -57993,16 +57842,6 @@
          offset="1" />
     </linearGradient>
     <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2355-1"
-       id="linearGradient20074-1"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.00952271,-0.00152943,-0.8372982,1.5053504,699.75234,263.84813)"
-       x1="1270.3132"
-       y1="4.8765283"
-       x2="1247.6848"
-       y2="0.72310239" />
-    <linearGradient
        id="linearGradient2355-1">
       <stop
          id="stop2359-8"
@@ -58014,16 +57853,6 @@
          offset="1" />
     </linearGradient>
     <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3970-8"
-       id="linearGradient20076-5"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.2028254,-0.00448039,0.00556771,0.1699505,680.44209,227.41631)"
-       x1="-94.151642"
-       y1="379.97745"
-       x2="-100.4097"
-       y2="374.03232" />
-    <linearGradient
        id="linearGradient3970-8">
       <stop
          id="stop3971-3"
@@ -58035,17 +57864,6 @@
          offset="1" />
     </linearGradient>
     <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2560-7"
-       id="linearGradient20078-9"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.1217387,-0.01955224,-0.06549549,0.1177522,699.8779,263.8683)"
-       spreadMethod="reflect"
-       x1="97.345161"
-       y1="112.84396"
-       x2="99.20697"
-       y2="115.81121" />
-    <linearGradient
        id="linearGradient2560-7">
       <stop
          id="stop2562-3"
@@ -58057,16 +57875,6 @@
          offset="1" />
     </linearGradient>
     <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2560-7"
-       id="linearGradient20080-1"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.1839072,-0.00406245,0.0061405,0.1874324,680.55604,227.23529)"
-       x1="-13.15085"
-       y1="250.48668"
-       x2="-5.590662"
-       y2="258.31036" />
-    <linearGradient
        id="linearGradient13427">
       <stop
          id="stop13429"
@@ -58078,16 +57886,6 @@
          offset="1" />
     </linearGradient>
     <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient1884-1"
-       id="linearGradient20082-1"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.0874385,-0.01404345,-0.09118816,0.1639442,699.8779,263.8683)"
-       x1="240.97612"
-       y1="200.61511"
-       x2="231.89941"
-       y2="205.45764" />
-    <linearGradient
        id="linearGradient1884-1">
       <stop
          id="stop1886-4"
@@ -58099,16 +57897,6 @@
          offset="1" />
     </linearGradient>
     <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient1884-1"
-       id="linearGradient20084-5"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.2064601,-0.00456044,0.00503988,0.1538412,680.41644,232.74127)"
-       x1="7.1050277"
-       y1="221.98289"
-       x2="46.488174"
-       y2="259.94464" />
-    <linearGradient
        id="linearGradient13438">
       <stop
          id="stop13440"
@@ -58120,16 +57908,6 @@
          offset="1" />
     </linearGradient>
     <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient1884-1"
-       id="linearGradient20086-8"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.2064601,-0.00456044,0.00503988,0.1538412,682.71501,230.6378)"
-       x1="7.1050277"
-       y1="221.98289"
-       x2="46.488174"
-       y2="259.94464" />
-    <linearGradient
        id="linearGradient13445">
       <stop
          id="stop13447"
@@ -58540,63 +58318,6 @@
        y2="181.49362" />
     <linearGradient
        inkscape:collect="always"
-       xlink:href="#linearGradient15934-1"
-       id="linearGradient15515"
-       gradientUnits="userSpaceOnUse"
-       x1="438.95389"
-       y1="493.53238"
-       x2="197.23351"
-       y2="118.20501" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient15945-8"
-       id="linearGradient15517"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.996701,-0.0811618,0.0811618,0.996701,-17.9181,36.064)"
-       x1="385.11563"
-       y1="275.58682"
-       x2="452.19373"
-       y2="88.438019" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient15934-1"
-       id="linearGradient15519"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-6.2575321,5.050595)"
-       x1="502.57938"
-       y1="184.1432"
-       x2="499.96594"
-       y2="179.73331" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient15934-1"
-       id="linearGradient15521"
-       gradientUnits="userSpaceOnUse"
-       x1="501.00095"
-       y1="185.08093"
-       x2="502.98251"
-       y2="179.90973" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient15934-1-9"
-       id="linearGradient15523"
-       gradientUnits="userSpaceOnUse"
-       x1="501.00095"
-       y1="185.08093"
-       x2="502.98251"
-       y2="179.90973" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient15934-1-9-6"
-       id="linearGradient15525"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.31018135,0.06837356,-0.06837356,0.31018135,350.04365,90.753719)"
-       x1="500.08212"
-       y1="185.71164"
-       x2="496.25415"
-       y2="181.49362" />
-    <linearGradient
-       inkscape:collect="always"
        xlink:href="#linearGradient34137-1"
        id="linearGradient20956-0"
        gradientUnits="userSpaceOnUse"
@@ -59171,6 +58892,2653 @@
        y1="198.01724"
        x2="131.52188"
        y2="41.586746" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient15934-1"
+       id="linearGradient13602"
+       gradientUnits="userSpaceOnUse"
+       x1="438.95389"
+       y1="493.53238"
+       x2="197.23351"
+       y2="118.20501" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient15945-8"
+       id="linearGradient13604"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.996701,-0.0811618,0.0811618,0.996701,-17.9181,36.064)"
+       x1="385.11563"
+       y1="275.58682"
+       x2="452.19373"
+       y2="88.438019" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient15934-1"
+       id="linearGradient13606"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-6.2575321,5.050595)"
+       x1="502.57938"
+       y1="184.1432"
+       x2="499.96594"
+       y2="179.73331" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient15934-1"
+       id="linearGradient13608"
+       gradientUnits="userSpaceOnUse"
+       x1="501.00095"
+       y1="185.08093"
+       x2="502.98251"
+       y2="179.90973" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient15934-1-9"
+       id="linearGradient13610"
+       gradientUnits="userSpaceOnUse"
+       x1="501.00095"
+       y1="185.08093"
+       x2="502.98251"
+       y2="179.90973" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient15934-1-9-6"
+       id="linearGradient13612"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.31018135,0.06837356,-0.06837356,0.31018135,350.04365,90.753719)"
+       x1="500.08212"
+       y1="185.71164"
+       x2="496.25415"
+       y2="181.49362" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3256-3"
+       id="linearGradient13614"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.044357,0.957527)"
+       x1="591.27606"
+       y1="330.16998"
+       x2="620.33301"
+       y2="382.54678" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5083-0"
+       id="linearGradient13616"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.1929605,-0.00426242,0.00585233,0.1786386,680.44209,227.41631)"
+       x1="566.74347"
+       y1="415.15009"
+       x2="588.13922"
+       y2="458.04449" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2345-2"
+       id="linearGradient13618"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.08313961,-0.03722276,-0.03243445,0.0934943,693.52705,270.28905)"
+       x1="100.76616"
+       y1="77.379333"
+       x2="125.25793"
+       y2="77.379333" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient1930-3"
+       id="linearGradient13620"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.07819037,-0.03500718,-0.03448742,0.09941203,684.96091,272.7873)"
+       x1="10.145814"
+       y1="21.762129"
+       x2="19.678274"
+       y2="15.811033" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2355-1"
+       id="linearGradient13622"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.00952271,-0.00152943,-0.8372982,1.5053504,699.75234,263.84813)"
+       x1="1270.3132"
+       y1="4.8765283"
+       x2="1247.6848"
+       y2="0.72310239" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3970-8"
+       id="linearGradient13624"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.2028254,-0.00448039,0.00556771,0.1699505,680.44209,227.41631)"
+       x1="-94.151642"
+       y1="379.97745"
+       x2="-100.4097"
+       y2="374.03232" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2560-7"
+       id="linearGradient13626"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.1217387,-0.01955224,-0.06549549,0.1177522,699.8779,263.8683)"
+       spreadMethod="reflect"
+       x1="97.345161"
+       y1="112.84396"
+       x2="99.20697"
+       y2="115.81121" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2560-7"
+       id="linearGradient13628"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.1839072,-0.00406245,0.0061405,0.1874324,680.55604,227.23529)"
+       x1="-13.15085"
+       y1="250.48668"
+       x2="-5.590662"
+       y2="258.31036" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient1884-1"
+       id="linearGradient13630"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.0874385,-0.01404345,-0.09118816,0.1639442,699.8779,263.8683)"
+       x1="240.97612"
+       y1="200.61511"
+       x2="231.89941"
+       y2="205.45764" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient1884-1"
+       id="linearGradient13632"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.2064601,-0.00456044,0.00503988,0.1538412,680.41644,232.74127)"
+       x1="7.1050277"
+       y1="221.98289"
+       x2="46.488174"
+       y2="259.94464" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient1884-1"
+       id="linearGradient13634"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.2064601,-0.00456044,0.00503988,0.1538412,682.71501,230.6378)"
+       x1="7.1050277"
+       y1="221.98289"
+       x2="46.488174"
+       y2="259.94464" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3256"
+       id="linearGradient13636"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.044357,0.957527)"
+       x1="591.27606"
+       y1="330.16998"
+       x2="620.33301"
+       y2="382.54678" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5083"
+       id="linearGradient13638"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.1929605,-0.00426242,0.00585233,0.1786386,680.44209,227.41631)"
+       x1="566.74347"
+       y1="415.15009"
+       x2="588.13922"
+       y2="458.04449" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2345"
+       id="linearGradient13640"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.08313961,-0.03722276,-0.03243445,0.0934943,693.52705,270.28905)"
+       x1="100.76616"
+       y1="77.379333"
+       x2="125.25793"
+       y2="77.379333" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient1930"
+       id="linearGradient13642"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.07819037,-0.03500718,-0.03448742,0.09941203,684.96091,272.7873)"
+       x1="10.145814"
+       y1="21.762129"
+       x2="19.678274"
+       y2="15.811033" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2355"
+       id="linearGradient13644"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.00952271,-0.00152943,-0.8372982,1.5053504,699.75234,263.84813)"
+       x1="1270.3132"
+       y1="4.8765283"
+       x2="1247.6848"
+       y2="0.72310239" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3970"
+       id="linearGradient13646"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.2028254,-0.00448039,0.00556771,0.1699505,680.44209,227.41631)"
+       x1="-94.151642"
+       y1="379.97745"
+       x2="-100.40970"
+       y2="374.03232" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2560"
+       id="linearGradient13648"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.1217387,-0.01955224,-0.06549549,0.1177522,699.8779,263.8683)"
+       spreadMethod="reflect"
+       x1="97.345161"
+       y1="112.84396"
+       x2="99.206970"
+       y2="115.81121" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2560"
+       id="linearGradient13650"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.1839072,-0.00406245,0.0061405,0.1874324,680.55604,227.23529)"
+       x1="-13.150850"
+       y1="250.48668"
+       x2="-5.5906620"
+       y2="258.31036" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient1884"
+       id="linearGradient13652"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.0874385,-0.01404345,-0.09118816,0.1639442,699.8779,263.8683)"
+       x1="240.97612"
+       y1="200.61511"
+       x2="231.89941"
+       y2="205.45764" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient1884"
+       id="linearGradient13654"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.2064601,-0.00456044,0.00503988,0.1538412,680.41644,232.74127)"
+       x1="7.1050277"
+       y1="221.98289"
+       x2="46.488174"
+       y2="259.94464" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient1884"
+       id="linearGradient13656"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.2064601,-0.00456044,0.00503988,0.1538412,682.71501,230.6378)"
+       x1="7.1050277"
+       y1="221.98289"
+       x2="46.488174"
+       y2="259.94464" />
+    <linearGradient
+       id="linearGradient9136-0">
+      <stop
+         id="stop9138-1"
+         style="stop-color:#c8a3d7;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop9140-6"
+         style="stop-color:#c8a3d7;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient9152-1">
+      <stop
+         id="stop9154-8"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop32877-6"
+         style="stop-color:#ffffff;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4081-1">
+      <stop
+         id="stop4083-9"
+         style="stop-color:#2020f5;stop-opacity:1;"
+         offset="0" />
+      <stop
+         id="stop4085-5"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4098-6">
+      <stop
+         id="stop4100-5"
+         style="stop-color:#2020f5;stop-opacity:1;"
+         offset="0" />
+      <stop
+         id="stop32894-2"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient13685">
+      <stop
+         id="stop13687"
+         style="stop-color:#2020f5;stop-opacity:1;"
+         offset="0" />
+      <stop
+         id="stop13689"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient13692">
+      <stop
+         id="stop13694"
+         style="stop-color:#2020f5;stop-opacity:1;"
+         offset="0" />
+      <stop
+         id="stop13696"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient13699">
+      <stop
+         id="stop13701"
+         style="stop-color:#2020f5;stop-opacity:1;"
+         offset="0" />
+      <stop
+         id="stop13703"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient13706">
+      <stop
+         id="stop13708"
+         style="stop-color:#2020f5;stop-opacity:1;"
+         offset="0" />
+      <stop
+         id="stop13710"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="-237.74609"
+       y1="461.36819"
+       x2="-235.8683"
+       y2="461.36819"
+       id="XMLID_19_-7"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0,97.04008,97.04008,0,-44746.96,22979.78)">
+      <stop
+         id="stop35042-6"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop35044-8"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient13717">
+      <stop
+         id="stop13719"
+         style="stop-color:#2020f5;stop-opacity:1;"
+         offset="0" />
+      <stop
+         id="stop13721"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient1884-4">
+      <stop
+         id="stop1886-8"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop1885-4"
+         style="stop-color:#ffffff;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient13728">
+      <stop
+         id="stop13730"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop13732"
+         style="stop-color:#ffffff;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient1302-6">
+      <stop
+         id="stop1304-8"
+         style="stop-color:#ffbc96;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop1303-5"
+         style="stop-color:#ffeafe;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient8662-8">
+      <stop
+         id="stop8664-6"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop8666-2"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3773"
+       id="linearGradient5274-7"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.36202,0,0,0.36792,8.2405,6.3535)"
+       x1="23.997"
+       y1="15.5"
+       x2="-0.073089004"
+       y2="15.5" />
+    <linearGradient
+       id="linearGradient3773"
+       y2="15.5"
+       gradientUnits="userSpaceOnUse"
+       x2="-0.073089004"
+       gradientTransform="matrix(0.36202,0,0,0.36792,8.2405,6.3535)"
+       y1="15.5"
+       x1="23.997">
+      <stop
+         id="stop3700-2"
+         style="stop-color:#ce7ecc"
+         offset="0" />
+      <stop
+         id="stop3702"
+         style="stop-color:#c056bc;stop-opacity:.81569"
+         offset=".76279" />
+      <stop
+         id="stop3704-9"
+         style="stop-color:#f8c9f7;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3775-4"
+       id="linearGradient5276"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.36202,0,0,0.36792,8.2405,6.3535)"
+       x1="36.5"
+       y1="36"
+       x2="-0.097514004"
+       y2="36" />
+    <linearGradient
+       id="linearGradient3775-4"
+       y2="36"
+       gradientUnits="userSpaceOnUse"
+       x2="-0.097514004"
+       gradientTransform="matrix(0.36202,0,0,0.36792,8.2405,6.3535)"
+       y1="36"
+       x1="36.5">
+      <stop
+         id="stop3916"
+         style="stop-color:#c02cbb"
+         offset="0" />
+      <stop
+         id="stop3918-0"
+         style="stop-color:#b329ae;stop-opacity:.49804"
+         offset=".79722" />
+      <stop
+         id="stop3920"
+         style="stop-color:#982394;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3779-2"
+       id="linearGradient5278-1"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0,-0.43118,0.42426,0,8.8859,25.258)"
+       x1="20.483999"
+       y1="12.82"
+       x2="20.483999"
+       y2="-0.43753999" />
+    <linearGradient
+       id="linearGradient3779-2"
+       y2="-0.43753999"
+       gradientUnits="userSpaceOnUse"
+       x2="20.483999"
+       gradientTransform="matrix(0,-0.43118,0.42426,0,8.8859,25.258)"
+       y1="12.82"
+       x1="20.483999">
+      <stop
+         id="stop2189-5"
+         style="stop-color:#fff;stop-opacity:.64341"
+         offset="0" />
+      <stop
+         id="stop2191"
+         style="stop-color:#fff;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       y2="-0.43753999"
+       x2="20.483999"
+       y1="12.82"
+       x1="20.483999"
+       gradientTransform="matrix(0,-0.43118,0.42426,0,8.8859,25.258)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient5877"
+       xlink:href="#linearGradient3779-2"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="26.71875"
+       x2="38.826412"
+       y1="26.71875"
+       x1="9.3030529"
+       gradientTransform="matrix(21.14292,0,0,21.14292,-149.9615,-46.50619)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient32255"
+       xlink:href="#linearGradient9910"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="56.575912"
+       x2="37.969398"
+       y1="14.004482"
+       x1="17.160095"
+       gradientTransform="matrix(21.14292,0,0,21.14292,-149.9615,-46.50619)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient32252"
+       xlink:href="#linearGradient2682"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="37.760422"
+       x2="15.428915"
+       y1="19.500000"
+       x1="16.071430"
+       gradientTransform="matrix(21.14292,0,0,21.14292,-152.982,9.37161)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient32248"
+       xlink:href="#linearGradient6924"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="25.428572"
+       y1="21.857143"
+       xlink:href="#linearGradient4206"
+       x2="25.207588"
+       x1="25.064732"
+       inkscape:collect="always"
+       id="linearGradient33204"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(21.14292,0,0,21.14292,-149.9615,-46.50619)" />
+    <linearGradient
+       y2="26.71875"
+       y1="26.71875"
+       xlink:href="#linearGradient9910"
+       x2="38.826412"
+       x1="9.3030529"
+       inkscape:collect="always"
+       id="linearGradient33202"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(21.14292,0,0,21.14292,-149.9615,-46.50619)" />
+    <linearGradient
+       y2="56.575912"
+       y1="14.004482"
+       xlink:href="#linearGradient2682"
+       x2="37.969398"
+       x1="17.160095"
+       inkscape:collect="always"
+       id="linearGradient33199"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(21.14292,0,0,21.14292,-149.9615,-46.50619)" />
+    <linearGradient
+       y2="30.000000"
+       y1="19.500000"
+       xlink:href="#linearGradient6924"
+       x2="15.785715"
+       x1="16.071430"
+       inkscape:collect="always"
+       id="linearGradient33195"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(21.14292,0,0,21.14292,-152.982,9.37161)" />
+    <linearGradient
+       y2="30.000000"
+       y1="19.500000"
+       xlink:href="#linearGradient6924"
+       x2="15.785715"
+       x1="16.071430"
+       inkscape:collect="always"
+       id="linearGradient33192"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(21.14292,0,0,21.14292,-152.982,9.37161)" />
+    <linearGradient
+       y2="13.284962"
+       y1="16.525082"
+       xlink:href="#linearGradient6932"
+       x2="24"
+       x1="24"
+       inkscape:collect="always"
+       id="linearGradient33190"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       y2="56.575912"
+       y1="14.004482"
+       xlink:href="#linearGradient2682"
+       x2="37.969398"
+       x1="17.160095"
+       inkscape:collect="always"
+       id="linearGradient33188"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(21.14292,0,0,21.14292,-149.9615,-46.50619)" />
+    <linearGradient
+       y2="25.428572"
+       y1="21.857143"
+       xlink:href="#linearGradient4206"
+       x2="25.207588"
+       x1="25.064732"
+       inkscape:collect="always"
+       id="linearGradient33186"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(21.14292,0,0,21.14292,-149.9615,-46.50619)" />
+    <linearGradient
+       y2="26.71875"
+       y1="26.71875"
+       xlink:href="#linearGradient9910"
+       x2="38.826412"
+       x1="9.3030529"
+       inkscape:collect="always"
+       id="linearGradient33184"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(21.14292,0,0,21.14292,-149.9615,-46.50619)" />
+    <radialGradient
+       xlink:href="#linearGradient2265-1"
+       r="17.142857"
+       inkscape:collect="always"
+       id="radialGradient33182"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.5,0,20)"
+       fy="40"
+       fx="23.857143"
+       cy="40"
+       cx="23.857143" />
+    <linearGradient
+       y2="25.428572"
+       y1="21.857143"
+       xlink:href="#linearGradient4206"
+       x2="25.207588"
+       x1="25.064732"
+       inkscape:collect="always"
+       id="linearGradient8109-3"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(21.14292,0,0,21.14292,-149.9615,-46.50619)" />
+    <linearGradient
+       y2="26.71875"
+       y1="26.71875"
+       xlink:href="#linearGradient9910"
+       x2="38.826412"
+       x1="9.3030529"
+       inkscape:collect="always"
+       id="linearGradient8107"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(21.14292,0,0,21.14292,-149.9615,-46.50619)" />
+    <linearGradient
+       y2="56.575912"
+       y1="14.004482"
+       xlink:href="#linearGradient2682"
+       x2="37.969398"
+       x1="17.160095"
+       inkscape:collect="always"
+       id="linearGradient8104-8"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(21.14292,0,0,21.14292,-149.9615,-46.50619)" />
+    <linearGradient
+       y2="30.000000"
+       y1="19.500000"
+       xlink:href="#linearGradient6924"
+       x2="15.785715"
+       x1="16.071430"
+       inkscape:collect="always"
+       id="linearGradient8100"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(21.14292,0,0,21.14292,-152.982,9.37161)" />
+    <linearGradient
+       y2="25.428572"
+       y1="21.857143"
+       xlink:href="#linearGradient4206"
+       x2="25.207588"
+       x1="25.064732"
+       inkscape:collect="always"
+       id="linearGradient53126"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(21.14292,0,0,21.14292,-149.9615,-46.50619)" />
+    <linearGradient
+       y2="26.71875"
+       y1="26.71875"
+       xlink:href="#linearGradient9910"
+       x2="38.826412"
+       x1="9.3030529"
+       inkscape:collect="always"
+       id="linearGradient53124"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(21.14292,0,0,21.14292,-149.9615,-46.50619)" />
+    <linearGradient
+       y2="56.575912"
+       y1="14.004482"
+       xlink:href="#linearGradient2682"
+       x2="37.969398"
+       x1="17.160095"
+       inkscape:collect="always"
+       id="linearGradient53121"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(21.14292,0,0,21.14292,-149.9615,-46.50619)" />
+    <linearGradient
+       y2="30.000000"
+       y1="19.500000"
+       xlink:href="#linearGradient6924"
+       x2="15.785715"
+       x1="16.071430"
+       inkscape:collect="always"
+       id="linearGradient53117"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(21.14292,0,0,21.14292,-152.982,9.37161)" />
+    <radialGradient
+       xlink:href="#linearGradient4750-9"
+       r="40.692665"
+       inkscape:collect="always"
+       id="radialGradient3681"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       fy="17.810213"
+       fx="18.934305"
+       cy="17.486208"
+       cx="18.633780" />
+    <radialGradient
+       xlink:href="#linearGradient4750-9"
+       r="40.692665"
+       inkscape:collect="always"
+       id="radialGradient3679"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       fy="17.810213"
+       fx="18.934305"
+       cy="17.486208"
+       cx="18.633780" />
+    <radialGradient
+       xlink:href="#linearGradient4750-9"
+       r="40.692665"
+       inkscape:collect="always"
+       id="radialGradient3675"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       fy="17.810213"
+       fx="18.934305"
+       cy="17.486208"
+       cx="18.633780" />
+    <radialGradient
+       xlink:href="#linearGradient4750-9"
+       r="40.692665"
+       inkscape:collect="always"
+       id="radialGradient3673"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       fy="17.810213"
+       fx="18.934305"
+       cy="17.486208"
+       cx="18.633780" />
+    <radialGradient
+       xlink:href="#linearGradient4750-9"
+       r="40.692665"
+       inkscape:collect="always"
+       id="radialGradient3669"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       fy="17.810213"
+       fx="18.934305"
+       cy="17.486208"
+       cx="18.633780" />
+    <radialGradient
+       xlink:href="#linearGradient4750-9"
+       r="40.692665"
+       inkscape:collect="always"
+       id="radialGradient3665"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       fy="17.810213"
+       fx="18.934305"
+       cy="17.486208"
+       cx="18.633780" />
+    <radialGradient
+       xlink:href="#linearGradient4750-9"
+       r="40.692665"
+       inkscape:collect="always"
+       id="radialGradient3663"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       fy="17.810213"
+       fx="18.934305"
+       cy="17.486208"
+       cx="18.633780" />
+    <radialGradient
+       xlink:href="#linearGradient4750-9"
+       r="40.692665"
+       inkscape:collect="always"
+       id="radialGradient3659"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       fy="17.810213"
+       fx="18.934305"
+       cy="17.486208"
+       cx="18.633780" />
+    <radialGradient
+       xlink:href="#linearGradient4750-9"
+       r="40.692665"
+       inkscape:collect="always"
+       id="radialGradient3655"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       fy="17.810213"
+       fx="18.934305"
+       cy="17.486208"
+       cx="18.633780" />
+    <radialGradient
+       xlink:href="#linearGradient4750-9"
+       r="40.692665"
+       inkscape:collect="always"
+       id="radialGradient3653"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       fy="17.810213"
+       fx="18.934305"
+       cy="17.486208"
+       cx="18.633780" />
+    <radialGradient
+       xlink:href="#linearGradient4750-9"
+       r="40.692665"
+       inkscape:collect="always"
+       id="radialGradient3649"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       fy="17.810213"
+       fx="18.934305"
+       cy="17.486208"
+       cx="18.633780" />
+    <radialGradient
+       xlink:href="#linearGradient4750-9"
+       r="40.692665"
+       inkscape:collect="always"
+       id="radialGradient3647"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       fy="17.810213"
+       fx="18.934305"
+       cy="17.486208"
+       cx="18.633780" />
+    <radialGradient
+       xlink:href="#linearGradient4750-9"
+       r="40.692665"
+       inkscape:collect="always"
+       id="radialGradient3643"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       fy="17.810213"
+       fx="18.934305"
+       cy="17.486208"
+       cx="18.633780" />
+    <radialGradient
+       xlink:href="#linearGradient4750-9"
+       r="40.692665"
+       inkscape:collect="always"
+       id="radialGradient3641"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       fy="17.810213"
+       fx="18.934305"
+       cy="17.486208"
+       cx="18.633780" />
+    <radialGradient
+       xlink:href="#linearGradient4750-9"
+       r="40.692665"
+       inkscape:collect="always"
+       id="radialGradient3637"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       fy="17.810213"
+       fx="18.934305"
+       cy="17.486208"
+       cx="18.633780" />
+    <radialGradient
+       xlink:href="#linearGradient4750-9"
+       r="40.692665"
+       inkscape:collect="always"
+       id="radialGradient3635"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       fy="17.810213"
+       fx="18.934305"
+       cy="17.486208"
+       cx="18.633780" />
+    <radialGradient
+       xlink:href="#linearGradient4750-9"
+       r="40.692665"
+       inkscape:collect="always"
+       id="radialGradient3631-4"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       fy="17.810213"
+       fx="18.934305"
+       cy="17.486208"
+       cx="18.633780" />
+    <radialGradient
+       xlink:href="#linearGradient4750-9"
+       r="40.692665"
+       inkscape:collect="always"
+       id="radialGradient3629"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       fy="17.810213"
+       fx="18.934305"
+       cy="17.486208"
+       cx="18.633780" />
+    <radialGradient
+       xlink:href="#linearGradient4750-9"
+       r="40.692665"
+       inkscape:collect="always"
+       id="radialGradient3625"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       fy="17.810213"
+       fx="18.934305"
+       cy="17.486208"
+       cx="18.633780" />
+    <radialGradient
+       xlink:href="#linearGradient4750-9"
+       r="40.692665"
+       inkscape:collect="always"
+       id="radialGradient3623"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       fy="17.810213"
+       fx="18.934305"
+       cy="17.486208"
+       cx="18.633780" />
+    <radialGradient
+       xlink:href="#linearGradient4750-9"
+       r="40.692665"
+       inkscape:collect="always"
+       id="radialGradient3619"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       fy="17.810213"
+       fx="18.934305"
+       cy="17.486208"
+       cx="18.633780" />
+    <radialGradient
+       xlink:href="#linearGradient4750-9"
+       r="40.692665"
+       inkscape:collect="always"
+       id="radialGradient3617"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       fy="17.810213"
+       fx="18.934305"
+       cy="17.486208"
+       cx="18.633780" />
+    <radialGradient
+       xlink:href="#linearGradient4750-9"
+       r="40.692665"
+       inkscape:collect="always"
+       id="radialGradient3613"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       fy="17.810213"
+       fx="18.934305"
+       cy="17.486208"
+       cx="18.633780" />
+    <radialGradient
+       xlink:href="#linearGradient4750-9"
+       r="40.692665"
+       inkscape:collect="always"
+       id="radialGradient3611"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       fy="17.810213"
+       fx="18.934305"
+       cy="17.486208"
+       cx="18.633780" />
+    <radialGradient
+       xlink:href="#linearGradient4750-9"
+       r="40.692665"
+       inkscape:collect="always"
+       id="radialGradient3607"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       fy="17.810213"
+       fx="18.934305"
+       cy="17.486208"
+       cx="18.633780" />
+    <radialGradient
+       xlink:href="#linearGradient4750-9"
+       r="40.692665"
+       inkscape:collect="always"
+       id="radialGradient3605"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       fy="17.810213"
+       fx="18.934305"
+       cy="17.486208"
+       cx="18.633780" />
+    <radialGradient
+       xlink:href="#linearGradient4750-9"
+       r="40.692665"
+       inkscape:collect="always"
+       id="radialGradient3603"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       fy="17.810213"
+       fx="18.934305"
+       cy="17.486208"
+       cx="18.633780" />
+    <linearGradient
+       y2="38.268368"
+       y1="36.942543"
+       xlink:href="#linearGradient2265-1"
+       x2="15.415793"
+       x1="14.017542"
+       inkscape:collect="always"
+       id="linearGradient2762"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.878099,-1.73237e-2,1.73237e-2,0.878099,1021.3138,469.27875)" />
+    <linearGradient
+       y2="33.194965"
+       y1="35.688461"
+       xlink:href="#linearGradient2257-8"
+       x2="10.650805"
+       x1="12.004697"
+       inkscape:collect="always"
+       id="linearGradient2760"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.007254,-2.636526e-2,2.636526e-2,1.007254,1020.7435,465.29004)" />
+    <linearGradient
+       y2="39.443218"
+       y1="32.28376"
+       xlink:href="#linearGradient3087"
+       x2="16.915297"
+       x1="9.7503242"
+       inkscape:collect="always"
+       id="linearGradient2758"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.87827,0,0,0.87827,1021.6871,470.17853)" />
+    <linearGradient
+       y2="9.6568537"
+       y1="19.821514"
+       xlink:href="#linearGradient2250"
+       x2="40.859177"
+       x1="31.177404"
+       inkscape:collect="always"
+       id="linearGradient2756"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(1019.1501,465.21085)" />
+    <linearGradient
+       y2="6.6285896"
+       y1="13.602527"
+       xlink:href="#linearGradient3077-1"
+       x2="37.53537"
+       x1="38.227654"
+       inkscape:collect="always"
+       id="linearGradient2754"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.87827,0,0,0.87827,1021.9976,470.79956)" />
+    <linearGradient
+       y2="-4.3002653"
+       y1="-3.6324477"
+       xlink:href="#linearGradient3061-8"
+       x2="25.291086"
+       x1="50.152931"
+       inkscape:collect="always"
+       id="linearGradient2752"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.8782699,0,0,0.8782699,1049.7965,-403.53398)" />
+    <linearGradient
+       y2="6.7758031"
+       y1="42.253601"
+       xlink:href="#linearGradient3049-9"
+       x2="20.631224"
+       x1="19.648342"
+       inkscape:collect="always"
+       id="linearGradient2750"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.87827,0,0,0.87827,1021.6871,470.17853)" />
+    <radialGradient
+       xlink:href="#linearGradient3041-9"
+       r="17.6875"
+       inkscape:collect="always"
+       id="radialGradient2748"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.374558,0,24.47041)"
+       fy="39.125"
+       fx="24.8125"
+       cy="39.125"
+       cx="24.8125" />
+    <radialGradient
+       xlink:href="#linearGradient3041-9"
+       r="17.6875"
+       inkscape:collect="always"
+       id="radialGradient2746"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.374558,0,24.47041)"
+       fy="39.125"
+       fx="24.8125"
+       cy="39.125"
+       cx="24.8125" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient9952">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop9954" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop9956" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient9920-2">
+      <stop
+         style="stop-color:#5b90c8;stop-opacity:1;"
+         offset="0"
+         id="stop9922" />
+      <stop
+         style="stop-color:#8fb0d1;stop-opacity:1;"
+         offset="0.31578946"
+         id="stop9924" />
+      <stop
+         style="stop-color:#34679d;stop-opacity:1;"
+         offset="1"
+         id="stop9926" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient9910">
+      <stop
+         style="stop-color:#d09f5a;stop-opacity:1;"
+         offset="0"
+         id="stop9912-4" />
+      <stop
+         style="stop-color:#e7bf2f;stop-opacity:1;"
+         offset="0.31578946"
+         id="stop9918" />
+      <stop
+         style="stop-color:#a56c1b;stop-opacity:1;"
+         offset="1"
+         id="stop9914" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient6395">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop6397" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop6399" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3399">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop3401" />
+      <stop
+         style="stop-color:#c9c9c9;stop-opacity:1;"
+         offset="1"
+         id="stop3403" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient2984">
+      <stop
+         style="stop-color:#e7e2b8;stop-opacity:1;"
+         offset="0"
+         id="stop2986" />
+      <stop
+         style="stop-color:#e7e2b8;stop-opacity:0;"
+         offset="1"
+         id="stop2988" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3408">
+      <stop
+         style="stop-color:#c1c1c1;stop-opacity:1;"
+         offset="0"
+         id="stop3410" />
+      <stop
+         style="stop-color:#acacac;stop-opacity:1;"
+         offset="1"
+         id="stop3412" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3414">
+      <stop
+         style="stop-color:#ffd1d1;stop-opacity:1;"
+         offset="0"
+         id="stop3416" />
+      <stop
+         style="stop-color:#ff1d1d;stop-opacity:1;"
+         offset="0.5"
+         id="stop3418" />
+      <stop
+         style="stop-color:#6f0000;stop-opacity:1;"
+         offset="1"
+         id="stop3420" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5068">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop5070" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.69;"
+         offset="0.32894737"
+         id="stop5078" />
+      <stop
+         style="stop-color:#c2c2c2;stop-opacity:0.34;"
+         offset="0.65789473"
+         id="stop5076" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop5072" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5058">
+      <stop
+         style="stop-color:#959791;stop-opacity:1;"
+         offset="0"
+         id="stop5060" />
+      <stop
+         style="stop-color:#f8f8f8;stop-opacity:1;"
+         offset="0.5"
+         id="stop5066" />
+      <stop
+         style="stop-color:#8c8c8c;stop-opacity:1;"
+         offset="1"
+         id="stop3430-9" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5036">
+      <stop
+         style="stop-color:#f5f5f5;stop-opacity:0.09;"
+         offset="0"
+         id="stop5038" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.89999998;"
+         offset="0.2631579"
+         id="stop5044" />
+      <stop
+         style="stop-color:#c7c7c7;stop-opacity:0.46000001;"
+         offset="0.74792242"
+         id="stop5088" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.78039217;"
+         offset="1"
+         id="stop5040" />
+    </linearGradient>
+    <linearGradient
+       y2="26.0846"
+       y1="26.0846"
+       xlink:href="#linearGradient5036"
+       x2="34.250416"
+       x1="15.375"
+       inkscape:collect="always"
+       id="linearGradient5042"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(0,5.625)" />
+    <radialGradient
+       xlink:href="#linearGradient5048"
+       r="14.875"
+       inkscape:collect="always"
+       id="radialGradient5054"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.420168,0,21.88866)"
+       fy="37.75"
+       fx="23.25"
+       cy="37.75"
+       cx="23.25" />
+    <linearGradient
+       y2="19.0846"
+       y1="19.4596"
+       xlink:href="#linearGradient5058"
+       x2="15.625"
+       x1="30.875"
+       inkscape:collect="always"
+       id="linearGradient5064"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(0,5.625)" />
+    <linearGradient
+       y2="14.1875"
+       y1="14.1875"
+       xlink:href="#linearGradient5068"
+       x2="37.625"
+       x1="11.75"
+       inkscape:collect="always"
+       id="linearGradient5074-1"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       y2="22.250591"
+       y1="17.376184"
+       xlink:href="#linearGradient2966"
+       x2="50.988335"
+       x1="48.90625"
+       inkscape:collect="always"
+       id="linearGradient6343-3"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(5.259571e-3,0.999987,0.999987,-5.259571e-3,42.9955,-2.496241)" />
+    <linearGradient
+       y2="22.625"
+       y1="19.8125"
+       xlink:href="#linearGradient2974"
+       x2="47.6875"
+       x1="46"
+       inkscape:collect="always"
+       id="linearGradient6345"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(5.259571e-3,0.999987,0.999987,-5.259571e-3,42.99552,-2.496241)" />
+    <radialGradient
+       xlink:href="#linearGradient2984"
+       r="3.2408545"
+       inkscape:collect="always"
+       id="radialGradient6347"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.53767e-2,2.923527,2.029691,-1.067544e-2,20.39098,-69.72665)"
+       fy="27.640751"
+       fx="29.053354"
+       cy="27.640751"
+       cx="29.053354" />
+    <linearGradient
+       y2="30.703125"
+       y1="31.046875"
+       xlink:href="#linearGradient2994-5"
+       x2="25.514589"
+       x1="25.71875"
+       inkscape:collect="always"
+       id="linearGradient6349"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(5.259571e-3,0.999987,0.999987,-5.259571e-3,48.6929,-14.14491)" />
+    <radialGradient
+       xlink:href="#linearGradient5048"
+       r="14.875"
+       inkscape:collect="always"
+       id="radialGradient6353"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.420168,0,21.88866)"
+       fy="37.75"
+       fx="23.25"
+       cy="37.75"
+       cx="23.25" />
+    <linearGradient
+       y2="44.110912"
+       y1="27.140348"
+       xlink:href="#linearGradient6395"
+       x2="20.682873"
+       x1="20.064156"
+       inkscape:collect="always"
+       id="linearGradient6401"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       y2="62.827091"
+       y1="62.401989"
+       xlink:href="#linearGradient9952"
+       x2="38.061356"
+       x1="55.876038"
+       inkscape:collect="always"
+       id="linearGradient9961"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.493304,-0.716654,0.716654,-0.493304,-9.26781,79.4192)" />
+    <linearGradient
+       y2="68.224884"
+       y1="60.445503"
+       xlink:href="#linearGradient9910"
+       x2="28.244684"
+       x1="28.244684"
+       inkscape:collect="always"
+       id="linearGradient9965"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.493304,-0.716654,0.716654,-0.493304,-9.26781,79.4192)" />
+    <linearGradient
+       y2="68.224884"
+       y1="60.445503"
+       xlink:href="#linearGradient9920-2"
+       x2="28.244684"
+       x1="28.244684"
+       inkscape:collect="always"
+       id="linearGradient9968"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.493304,-0.716654,0.716654,-0.493304,-9.26781,79.4192)" />
+    <linearGradient
+       y2="68.224884"
+       y1="60.445503"
+       xlink:href="#linearGradient9910"
+       x2="28.244684"
+       x1="28.244684"
+       inkscape:collect="always"
+       id="linearGradient9972"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.493304,-0.716654,0.716654,-0.493304,-9.26781,79.4192)" />
+    <linearGradient
+       y2="50.939667"
+       y1="45.264122"
+       xlink:href="#linearGradient2871-6"
+       x2="45.380436"
+       x1="46.834816"
+       inkscape:collect="always"
+       id="linearGradient7850-5"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       y2="26.649362"
+       y1="23.667896"
+       xlink:href="#linearGradient2402"
+       x2="53.588622"
+       x1="18.935766"
+       inkscape:collect="always"
+       id="linearGradient7848"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       y2="20.60858"
+       y1="36.061237"
+       xlink:href="#linearGradient2380"
+       x2="15.984863"
+       x1="62.513836"
+       inkscape:collect="always"
+       id="linearGradient5908"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-6.0935847,-5.1483414,-5.1483414,6.0935847,846.16404,624.52042)" />
+    <linearGradient
+       y2="20.60858"
+       y1="36.061237"
+       xlink:href="#linearGradient2380"
+       x2="15.984863"
+       x1="62.513836"
+       inkscape:collect="always"
+       id="linearGradient5903"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       id="linearGradient2690">
+      <stop
+         style="stop-color:#57be6f;stop-opacity:1;"
+         offset="0"
+         id="stop2692" />
+      <stop
+         style="stop-color:#c4ebca;stop-opacity:0;"
+         offset="1"
+         id="stop2694" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2682">
+      <stop
+         style="stop-color:#a36518;stop-opacity:1;"
+         offset="0"
+         id="stop2684" />
+      <stop
+         style="stop-color:#729fcf;stop-opacity:0;"
+         offset="1"
+         id="stop2686" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2402">
+      <stop
+         style="stop-color:#72cf7b;stop-opacity:1;"
+         offset="0"
+         id="stop2404" />
+      <stop
+         style="stop-color:#57c552;stop-opacity:1;"
+         offset="1"
+         id="stop2406" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2380">
+      <stop
+         style="stop-color:#b9e7c9;stop-opacity:1;"
+         offset="0"
+         id="stop2382" />
+      <stop
+         style="stop-color:#72cf79;stop-opacity:1;"
+         offset="1"
+         id="stop2384" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient2871-6">
+      <stop
+         style="stop-color:#3465a4;stop-opacity:1;"
+         offset="0"
+         id="stop2873-9" />
+      <stop
+         style="stop-color:#3465a4;stop-opacity:1"
+         offset="1"
+         id="stop2875" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2831">
+      <stop
+         style="stop-color:#1d5e23;stop-opacity:1;"
+         offset="0"
+         id="stop2833" />
+      <stop
+         style="stop-color:#329652;stop-opacity:1;"
+         offset="0.33333334"
+         id="stop2855" />
+      <stop
+         style="stop-color:#83d8ab;stop-opacity:0;"
+         offset="1"
+         id="stop2835" />
+    </linearGradient>
+    <linearGradient
+       y2="50.939667"
+       y1="45.264122"
+       xlink:href="#linearGradient2871-6"
+       x2="45.380436"
+       x1="46.834816"
+       inkscape:collect="always"
+       id="linearGradient1501"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       y2="20.60858"
+       y1="36.061237"
+       xlink:href="#linearGradient2380"
+       x2="15.984863"
+       x1="62.513836"
+       inkscape:collect="always"
+       id="linearGradient2386"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       y2="26.649362"
+       y1="23.667896"
+       xlink:href="#linearGradient2402"
+       x2="53.588622"
+       x1="18.935766"
+       inkscape:collect="always"
+       id="linearGradient2408"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       xlink:href="#linearGradient5060"
+       r="117.14286"
+       inkscape:collect="always"
+       id="radialGradient2641"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)"
+       fy="486.64789"
+       fx="605.71429"
+       cy="486.64789"
+       cx="605.71429" />
+    <radialGradient
+       xlink:href="#linearGradient5060"
+       r="117.14286"
+       inkscape:collect="always"
+       id="radialGradient2649"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)"
+       fy="486.64789"
+       fx="605.71429"
+       cy="486.64789"
+       cx="605.71429" />
+    <linearGradient
+       id="linearGradient2651">
+      <stop
+         style="stop-color:black;stop-opacity:0;"
+         offset="0"
+         id="stop2653" />
+      <stop
+         style="stop-color:black;stop-opacity:1;"
+         offset="0.5"
+         id="stop2655" />
+      <stop
+         style="stop-color:black;stop-opacity:0;"
+         offset="1"
+         id="stop2657" />
+    </linearGradient>
+    <linearGradient
+       y2="609.50507"
+       y1="366.64789"
+       xlink:href="#linearGradient5048"
+       x2="302.85715"
+       x1="302.85715"
+       inkscape:collect="always"
+       id="linearGradient2659"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient4542">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop4544" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop4546" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient15662-2">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop15664" />
+      <stop
+         style="stop-color:#f8f8f8;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop15666" />
+    </linearGradient>
+    <radialGradient
+       r="5.257"
+       id="aigrd3"
+       gradientUnits="userSpaceOnUse"
+       fy="64.5679"
+       fx="20.8921"
+       cy="64.5679"
+       cx="20.8921">
+      <stop
+         style="stop-color:#F0F0F0"
+         offset="0"
+         id="stop15573" />
+      <stop
+         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop15575" />
+    </radialGradient>
+    <radialGradient
+       r="5.256"
+       id="aigrd2"
+       gradientUnits="userSpaceOnUse"
+       fy="114.5684"
+       fx="20.8921"
+       cy="114.5684"
+       cx="20.8921">
+      <stop
+         style="stop-color:#F0F0F0"
+         offset="0"
+         id="stop15566" />
+      <stop
+         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop15568" />
+    </radialGradient>
+    <linearGradient
+       id="linearGradient269">
+      <stop
+         style="stop-color:#a3a3a3;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop270" />
+      <stop
+         style="stop-color:#4c4c4c;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop271" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient259">
+      <stop
+         style="stop-color:#fafafa;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop260" />
+      <stop
+         style="stop-color:#bbbbbb;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop261" />
+    </linearGradient>
+    <radialGradient
+       xlink:href="#linearGradient4542"
+       r="15.821514"
+       inkscape:collect="always"
+       id="radialGradient4548"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.000000,0.000000,0.000000,0.284916,0.000000,30.08928)"
+       fy="42.07798"
+       fx="24.306795"
+       cy="42.07798"
+       cx="24.306795" />
+    <linearGradient
+       id="linearGradient4440">
+      <stop
+         style="stop-color:#7d7d7d;stop-opacity:1;"
+         offset="0"
+         id="stop4442" />
+      <stop
+         style="stop-color:#b1b1b1;stop-opacity:1.0000000;"
+         offset="0.50000000"
+         id="stop4448-6" />
+      <stop
+         style="stop-color:#686868;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop4444-8" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4454-3">
+      <stop
+         style="stop-color:#729fcf;stop-opacity:0.20784314;"
+         offset="0.0000000"
+         id="stop4456-5" />
+      <stop
+         style="stop-color:#729fcf;stop-opacity:0.67619050;"
+         offset="1.0000000"
+         id="stop4458-9" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4467-8">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop4469-2" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.24761905;"
+         offset="1.0000000"
+         id="stop4471-9" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2366-1">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop2368" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.21904762;"
+         offset="0.50000000"
+         id="stop2374" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop2370" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2846">
+      <stop
+         style="stop-color:#8a8a8a;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop2848" />
+      <stop
+         style="stop-color:#484848;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop2850" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2966">
+      <stop
+         style="stop-color:#ffd1d1;stop-opacity:1;"
+         offset="0"
+         id="stop2968-7" />
+      <stop
+         style="stop-color:#ff1d1d;stop-opacity:1;"
+         offset="0.5"
+         id="stop3006" />
+      <stop
+         style="stop-color:#6f0000;stop-opacity:1;"
+         offset="1"
+         id="stop2970-3" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2974">
+      <stop
+         style="stop-color:#c1c1c1;stop-opacity:1;"
+         offset="0"
+         id="stop2976-2" />
+      <stop
+         style="stop-color:#acacac;stop-opacity:1;"
+         offset="1"
+         id="stop2978-7" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2994-5">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop2996" />
+      <stop
+         style="stop-color:#c9c9c9;stop-opacity:1;"
+         offset="1"
+         id="stop2998" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient5060">
+      <stop
+         style="stop-color:black;stop-opacity:1;"
+         offset="0"
+         id="stop5062" />
+      <stop
+         style="stop-color:black;stop-opacity:0;"
+         offset="1"
+         id="stop5064" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5048">
+      <stop
+         style="stop-color:black;stop-opacity:0;"
+         offset="0"
+         id="stop5050" />
+      <stop
+         style="stop-color:black;stop-opacity:1;"
+         offset="0.5"
+         id="stop5056" />
+      <stop
+         style="stop-color:black;stop-opacity:0;"
+         offset="1"
+         id="stop5052" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient12512">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop12513" />
+      <stop
+         style="stop-color:#fff520;stop-opacity:0.89108908;"
+         offset="0.50000000"
+         id="stop12517" />
+      <stop
+         style="stop-color:#fff300;stop-opacity:0.0000000;"
+         offset="1.0000000"
+         id="stop12514" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2094-8">
+      <stop
+         style="stop-color:#d6e3f0;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop2096" />
+      <stop
+         style="stop-color:#95b1cf;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop2098-2" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2803">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop2805" />
+      <stop
+         style="stop-color:#cbcbcb;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop2807" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2795">
+      <stop
+         style="stop-color:#000000;stop-opacity:0.068627454;"
+         offset="0.0000000"
+         id="stop2797" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop2799" />
+    </linearGradient>
+    <radialGradient
+       xlink:href="#linearGradient5060"
+       r="117.14286"
+       inkscape:collect="always"
+       id="radialGradient5013"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)"
+       fy="486.64789"
+       fx="605.71429"
+       cy="486.64789"
+       cx="605.71429" />
+    <linearGradient
+       y2="609.50507"
+       y1="366.64789"
+       xlink:href="#linearGradient5048"
+       x2="302.85715"
+       x1="302.85715"
+       inkscape:collect="always"
+       id="linearGradient5016"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)" />
+    <radialGradient
+       xlink:href="#linearGradient5060"
+       r="117.14286"
+       inkscape:collect="always"
+       id="radialGradient5020"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)"
+       fy="486.64789"
+       fx="605.71429"
+       cy="486.64789"
+       cx="605.71429" />
+    <linearGradient
+       y2="425.06561"
+       y1="733.39258"
+       x2="411.39359"
+       x1="43.943802"
+       id="SVGID_2_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9169564,0,0,0.9120098,60.201795,153.71221)">
+      <stop
+         style="stop-color:#525252;stop-opacity:1;"
+         offset="0.0562"
+         id="stop2179-2" />
+      <stop
+         style="stop-color:#8e8e8e;stop-opacity:1;"
+         offset="0.56739998"
+         id="stop2181-2" />
+      <stop
+         style="stop-color:#c9c9c9;stop-opacity:1;"
+         offset="0.9551"
+         id="stop2183-6" />
+    </linearGradient>
+    <linearGradient
+       y2="425.06561"
+       y1="733.39258"
+       x2="411.3941"
+       x1="43.944302"
+       id="SVGID_1_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(131.91072,132.23618)">
+      <stop
+         style="stop-color:#003F90"
+         offset="0.0562"
+         id="stop2170-3" />
+      <stop
+         style="stop-color:#0093D2"
+         offset="0.5674"
+         id="stop2172-4" />
+      <stop
+         style="stop-color:#EDF3F7"
+         offset="0.9551"
+         id="stop2174-1" />
+    </linearGradient>
+    <radialGradient
+       xlink:href="#linearGradient3041-9"
+       r="17.6875"
+       inkscape:collect="always"
+       id="radialGradient2260"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.374558,0,24.47041)"
+       fy="39.125"
+       fx="24.8125"
+       cy="39.125"
+       cx="24.8125" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient3041-9">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop3043-8" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop3045" />
+    </linearGradient>
+    <radialGradient
+       xlink:href="#linearGradient3041-9"
+       r="17.6875"
+       inkscape:collect="always"
+       id="radialGradient3047"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.374558,0,24.47041)"
+       fy="39.125"
+       fx="24.8125"
+       cy="39.125"
+       cx="24.8125" />
+    <linearGradient
+       y2="6.7758031"
+       y1="42.253601"
+       xlink:href="#linearGradient3049-9"
+       x2="20.631224"
+       x1="19.648342"
+       inkscape:collect="always"
+       id="linearGradient3055"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.87827,0,0,0.87827,1021.6871,470.17853)" />
+    <linearGradient
+       id="linearGradient3049-9">
+      <stop
+         style="stop-color:#b6b6b6;stop-opacity:1;"
+         offset="0"
+         id="stop3051" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1;"
+         offset="0.5"
+         id="stop2262-3" />
+      <stop
+         style="stop-color:#fafafa;stop-opacity:1;"
+         offset="0.67612958"
+         id="stop2264-5" />
+      <stop
+         style="stop-color:#d8d8d8;stop-opacity:1;"
+         offset="0.84051722"
+         id="stop2268-2" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1;"
+         offset="0.875"
+         id="stop2266-3" />
+      <stop
+         style="stop-color:#dbdbdb;stop-opacity:1;"
+         offset="1"
+         id="stop3053" />
+    </linearGradient>
+    <linearGradient
+       y2="-4.3002653"
+       y1="-3.6324477"
+       xlink:href="#linearGradient3061-8"
+       x2="25.291086"
+       x1="50.152931"
+       inkscape:collect="always"
+       id="linearGradient3067"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.8782699,0,0,0.8782699,1049.7965,-403.53398)" />
+    <linearGradient
+       id="linearGradient3061-8">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop3063" />
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="1"
+         id="stop3065" />
+    </linearGradient>
+    <linearGradient
+       y2="6.6285896"
+       y1="13.602527"
+       xlink:href="#linearGradient3077-1"
+       x2="37.53537"
+       x1="38.227654"
+       inkscape:collect="always"
+       id="linearGradient3083"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.87827,0,0,0.87827,1021.9976,470.79956)" />
+    <linearGradient
+       id="linearGradient3077-1">
+      <stop
+         style="stop-color:#98a0a9;stop-opacity:1;"
+         offset="0"
+         id="stop3079" />
+      <stop
+         style="stop-color:#c3d0dd;stop-opacity:1;"
+         offset="1"
+         id="stop3081" />
+    </linearGradient>
+    <linearGradient
+       y2="9.6568537"
+       y1="19.821514"
+       xlink:href="#linearGradient2250"
+       x2="40.859177"
+       x1="31.177404"
+       inkscape:collect="always"
+       id="linearGradient2256"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(1019.1501,465.21085)" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient2250">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop2252" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop2254-2" />
+    </linearGradient>
+    <linearGradient
+       y2="39.443218"
+       y1="32.28376"
+       xlink:href="#linearGradient3087"
+       x2="16.915297"
+       x1="9.7503242"
+       inkscape:collect="always"
+       id="linearGradient3093"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.87827,0,0,0.87827,1021.6871,470.17853)" />
+    <linearGradient
+       id="linearGradient3087">
+      <stop
+         style="stop-color:#3465a4;stop-opacity:1;"
+         offset="0"
+         id="stop3089" />
+      <stop
+         style="stop-color:#9fbce1;stop-opacity:1;"
+         offset="0"
+         id="stop3095" />
+      <stop
+         style="stop-color:#6b95ca;stop-opacity:1;"
+         offset="0"
+         id="stop2242-7" />
+      <stop
+         style="stop-color:#3d6aa5;stop-opacity:1;"
+         offset="0.75"
+         id="stop2244-2" />
+      <stop
+         style="stop-color:#386eb4;stop-opacity:1;"
+         offset="1"
+         id="stop3091" />
+    </linearGradient>
+    <linearGradient
+       y2="33.194965"
+       y1="35.688461"
+       xlink:href="#linearGradient2257-8"
+       x2="10.650805"
+       x1="12.004697"
+       inkscape:collect="always"
+       id="linearGradient2263"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.007254,-2.636526e-2,2.636526e-2,1.007254,1020.7435,465.29004)" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient2257-8">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop2259-3" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop2261-3" />
+    </linearGradient>
+    <linearGradient
+       y2="38.268368"
+       y1="36.942543"
+       xlink:href="#linearGradient2265-1"
+       x2="15.415793"
+       x1="14.017542"
+       inkscape:collect="always"
+       id="linearGradient2271-6"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.878099,-1.73237e-2,1.73237e-2,0.878099,1021.3138,469.27875)" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient2265-1">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop2267-1" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop2269-9" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3962">
+      <stop
+         style="stop-color:#d3e9ff;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop3964" />
+      <stop
+         style="stop-color:#d3e9ff;stop-opacity:1.0000000;"
+         offset="0.15517241"
+         id="stop4134" />
+      <stop
+         style="stop-color:#4074ae;stop-opacity:1.0000000;"
+         offset="0.75000000"
+         id="stop4346" />
+      <stop
+         style="stop-color:#36486c;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop3966" />
+    </linearGradient>
+    <radialGradient
+       xlink:href="#linearGradient4750-9"
+       r="40.692665"
+       inkscape:collect="always"
+       id="radialGradient1460"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       fy="17.810213"
+       fx="18.934305"
+       cy="17.486208"
+       cx="18.633780" />
+    <linearGradient
+       id="linearGradient4750-9">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop4752" />
+      <stop
+         style="stop-color:#fefefe;stop-opacity:1.0000000;"
+         offset="0.37931034"
+         id="stop4758" />
+      <stop
+         style="stop-color:#1d1d1d;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop4754" />
+    </linearGradient>
+    <radialGradient
+       xlink:href="#linearGradient4750-9"
+       r="40.692665"
+       inkscape:collect="always"
+       id="radialGradient1462"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       fy="17.810213"
+       fx="18.934305"
+       cy="17.486208"
+       cx="18.633780" />
+    <radialGradient
+       xlink:href="#linearGradient4750-9"
+       r="40.692665"
+       inkscape:collect="always"
+       id="radialGradient1466"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       fy="17.810213"
+       fx="18.934305"
+       cy="17.486208"
+       cx="18.633780" />
+    <radialGradient
+       xlink:href="#linearGradient4750-9"
+       r="40.692665"
+       inkscape:collect="always"
+       id="radialGradient1470"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       fy="17.810213"
+       fx="18.934305"
+       cy="17.486208"
+       cx="18.633780" />
+    <radialGradient
+       xlink:href="#linearGradient4750-9"
+       r="40.692665"
+       inkscape:collect="always"
+       id="radialGradient1474"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       fy="17.810213"
+       fx="18.934305"
+       cy="17.486208"
+       cx="18.633780" />
+    <radialGradient
+       xlink:href="#linearGradient4750-9"
+       r="40.692665"
+       inkscape:collect="always"
+       id="radialGradient1478"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       fy="17.810213"
+       fx="18.934305"
+       cy="17.486208"
+       cx="18.633780" />
+    <radialGradient
+       xlink:href="#linearGradient4750-9"
+       r="40.692665"
+       inkscape:collect="always"
+       id="radialGradient1482"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       fy="17.810213"
+       fx="18.934305"
+       cy="17.486208"
+       cx="18.633780" />
+    <radialGradient
+       xlink:href="#linearGradient4750-9"
+       r="40.692665"
+       inkscape:collect="always"
+       id="radialGradient1486"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       fy="17.810213"
+       fx="18.934305"
+       cy="17.486208"
+       cx="18.633780" />
+    <radialGradient
+       xlink:href="#linearGradient4750-9"
+       r="40.692665"
+       inkscape:collect="always"
+       id="radialGradient1490"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       fy="17.810213"
+       fx="18.934305"
+       cy="17.486208"
+       cx="18.633780" />
+    <radialGradient
+       xlink:href="#linearGradient4750-9"
+       r="40.692665"
+       inkscape:collect="always"
+       id="radialGradient1494"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       fy="17.810213"
+       fx="18.934305"
+       cy="17.486208"
+       cx="18.633780" />
+    <radialGradient
+       xlink:href="#linearGradient4750-9"
+       r="40.692665"
+       inkscape:collect="always"
+       id="radialGradient1498"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       fy="17.810213"
+       fx="18.934305"
+       cy="17.486208"
+       cx="18.633780" />
+    <radialGradient
+       xlink:href="#linearGradient4750-9"
+       r="40.692665"
+       inkscape:collect="always"
+       id="radialGradient1502-3"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       fy="17.810213"
+       fx="18.934305"
+       cy="17.486208"
+       cx="18.633780" />
+    <radialGradient
+       xlink:href="#linearGradient4750-9"
+       r="40.692665"
+       inkscape:collect="always"
+       id="radialGradient1506"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       fy="17.810213"
+       fx="18.934305"
+       cy="17.486208"
+       cx="18.633780" />
+    <radialGradient
+       xlink:href="#linearGradient4750-9"
+       r="40.692665"
+       inkscape:collect="always"
+       id="radialGradient1510"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       fy="17.810213"
+       fx="18.934305"
+       cy="17.486208"
+       cx="18.633780" />
+    <radialGradient
+       xlink:href="#linearGradient4750-9"
+       r="40.692665"
+       inkscape:collect="always"
+       id="radialGradient1514"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       fy="17.810213"
+       fx="18.934305"
+       cy="17.486208"
+       cx="18.633780" />
+    <radialGradient
+       xlink:href="#linearGradient4750-9"
+       r="40.692665"
+       inkscape:collect="always"
+       id="radialGradient1518"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       fy="17.810213"
+       fx="18.934305"
+       cy="17.486208"
+       cx="18.633780" />
+    <radialGradient
+       xlink:href="#linearGradient4750-9"
+       r="40.692665"
+       inkscape:collect="always"
+       id="radialGradient1522"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       fy="17.810213"
+       fx="18.934305"
+       cy="17.486208"
+       cx="18.633780" />
+    <radialGradient
+       xlink:href="#linearGradient4750-9"
+       r="40.692665"
+       inkscape:collect="always"
+       id="radialGradient1526"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       fy="17.810213"
+       fx="18.934305"
+       cy="17.486208"
+       cx="18.633780" />
+    <radialGradient
+       xlink:href="#linearGradient4750-9"
+       r="40.692665"
+       inkscape:collect="always"
+       id="radialGradient1528-4"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       fy="17.810213"
+       fx="18.934305"
+       cy="17.486208"
+       cx="18.633780" />
+    <radialGradient
+       xlink:href="#linearGradient4750-9"
+       r="40.692665"
+       inkscape:collect="always"
+       id="radialGradient1532"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       fy="17.810213"
+       fx="18.934305"
+       cy="17.486208"
+       cx="18.633780" />
+    <radialGradient
+       xlink:href="#linearGradient4750-9"
+       r="40.692665"
+       inkscape:collect="always"
+       id="radialGradient1536"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       fy="17.810213"
+       fx="18.934305"
+       cy="17.486208"
+       cx="18.633780" />
+    <radialGradient
+       xlink:href="#linearGradient4750-9"
+       r="40.692665"
+       inkscape:collect="always"
+       id="radialGradient1538"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       fy="17.810213"
+       fx="18.934305"
+       cy="17.486208"
+       cx="18.633780" />
+    <radialGradient
+       xlink:href="#linearGradient4750-9"
+       r="40.692665"
+       inkscape:collect="always"
+       id="radialGradient1542"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       fy="17.810213"
+       fx="18.934305"
+       cy="17.486208"
+       cx="18.633780" />
+    <radialGradient
+       xlink:href="#linearGradient4750-9"
+       r="40.692665"
+       inkscape:collect="always"
+       id="radialGradient1546"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       fy="17.810213"
+       fx="18.934305"
+       cy="17.486208"
+       cx="18.633780" />
+    <radialGradient
+       xlink:href="#linearGradient4750-9"
+       r="40.692665"
+       inkscape:collect="always"
+       id="radialGradient1550"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       fy="17.810213"
+       fx="18.934305"
+       cy="17.486208"
+       cx="18.633780" />
+    <radialGradient
+       xlink:href="#linearGradient4750-9"
+       r="40.692665"
+       inkscape:collect="always"
+       id="radialGradient1554"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       fy="17.810213"
+       fx="18.934305"
+       cy="17.486208"
+       cx="18.633780" />
+    <radialGradient
+       xlink:href="#linearGradient4750-9"
+       r="40.692665"
+       inkscape:collect="always"
+       id="radialGradient1558"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       fy="17.810213"
+       fx="18.934305"
+       cy="17.486208"
+       cx="18.633780" />
+    <linearGradient
+       id="linearGradient4126">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop4128" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.16494845;"
+         offset="1.0000000"
+         id="stop4130" />
+    </linearGradient>
+    <radialGradient
+       xlink:href="#linearGradient2265-1"
+       r="17.142857"
+       inkscape:collect="always"
+       id="radialGradient4132"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.5,0,20)"
+       fy="40"
+       fx="23.857143"
+       cy="40"
+       cx="23.857143" />
+    <linearGradient
+       y2="26.71875"
+       y1="26.71875"
+       xlink:href="#linearGradient9910"
+       x2="38.826412"
+       x1="9.3030529"
+       inkscape:collect="always"
+       id="linearGradient4140"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(21.14292,0,0,21.14292,-149.9615,-46.50619)" />
+    <linearGradient
+       id="linearGradient4134">
+      <stop
+         style="stop-color:#7e807a;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop4136" />
+      <stop
+         style="stop-color:#babbb8;stop-opacity:1.0000000;"
+         offset="0.25000000"
+         id="stop4148" />
+      <stop
+         style="stop-color:#a5a6a3;stop-opacity:1.0000000;"
+         offset="0.50000000"
+         id="stop4142" />
+      <stop
+         style="stop-color:#333432;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop4138" />
+    </linearGradient>
+    <linearGradient
+       y2="25.428572"
+       y1="21.857143"
+       xlink:href="#linearGradient4206"
+       x2="25.207588"
+       x1="25.064732"
+       inkscape:collect="always"
+       id="linearGradient4198"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(21.14292,0,0,21.14292,-149.9615,-46.50619)" />
+    <linearGradient
+       id="linearGradient4206">
+      <stop
+         style="stop-color:#204a87;stop-opacity:1;"
+         offset="0"
+         id="stop4208" />
+      <stop
+         style="stop-color:#3465a4;stop-opacity:1;"
+         offset="1"
+         id="stop4210" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4162">
+      <stop
+         style="stop-color:#f79403;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop4164" />
+      <stop
+         style="stop-color:#fdb343;stop-opacity:1.0000000;"
+         offset="0.18691589"
+         id="stop4170" />
+      <stop
+         style="stop-color:#fdb74f;stop-opacity:1.0000000;"
+         offset="0.43008122"
+         id="stop4172" />
+      <stop
+         style="stop-color:#8f5601;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop4166" />
+    </linearGradient>
+    <linearGradient
+       y2="56.575912"
+       y1="14.004482"
+       xlink:href="#linearGradient2682"
+       x2="37.969398"
+       x1="17.160095"
+       inkscape:collect="always"
+       id="linearGradient4182"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(21.14292,0,0,21.14292,-149.9615,-46.50619)" />
+    <linearGradient
+       y2="13.284962"
+       y1="16.525082"
+       xlink:href="#linearGradient6932"
+       x2="24"
+       x1="24"
+       inkscape:collect="always"
+       id="linearGradient4160-9"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       id="linearGradient6932">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop6934" />
+      <stop
+         style="stop-color:#729fcf;stop-opacity:1;"
+         offset="1"
+         id="stop6936" />
+    </linearGradient>
+    <linearGradient
+       y2="30.000000"
+       y1="19.500000"
+       xlink:href="#linearGradient6924"
+       x2="15.785715"
+       x1="16.071430"
+       inkscape:collect="always"
+       id="linearGradient6930"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(21.14292,0,0,21.14292,-152.982,9.37161)" />
+    <linearGradient
+       id="linearGradient6924">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop6926" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop6928" />
+    </linearGradient>
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective8097" />
   </defs>
   <text
      style="font-size:40.12579727px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
@@ -59204,7 +61572,7 @@
        sodipodi:role="line"
        id="tspan16268"
        x="167.20854"
-       y="120.42097">%%ImportESI ScanNetwork editSlave editCIA402Slave CIA402AxisRef %%</tspan></text>
+       y="120.42097">%%ImportESI ImportDatabase ScanNetwork editSlave editCIA402Slave CIA402AxisRef %%</tspan></text>
   <g
      transform="translate(1268.5327,-372.731)"
      id="g16313">
@@ -59285,7 +61653,7 @@
     </g>
   </g>
   <g
-     transform="translate(1344.6828,-433.35788)"
+     transform="translate(1454.6828,-433.35788)"
      id="g16552">
     <g
        id="g16340">
@@ -59573,7 +61941,8 @@
        height="1052.3622" />
   </g>
   <g
-     id="g12739">
+     id="g12739"
+     transform="translate(110,0)">
     <rect
        inkscape:label="#rect16270"
        style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
@@ -60436,7 +62805,7 @@
            sodipodi:nodetypes="cccccc"
            id="path1919"
            d="m 6.3306155,244.87972 c 0,0 -2.616026,-2.68246 -3.762417,-3.01369 -1.146391,-0.33124 -2.78605395,0.63625 -2.78605395,0.63625 l -8.95013235,8.40586 4.9440407,3.25217 10.5545626,-9.28059 z"
-           style="fill-rule:evenodd;stroke:url(#linearGradient20066);stroke-width:0.12755789pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+           style="fill-rule:evenodd;stroke:url(#linearGradient13636);stroke-width:0.12755789pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
         <path
            inkscape:connector-curvature="0"
            sodipodi:nodetypes="ccccccc"
@@ -60552,25 +62921,25 @@
          sodipodi:nodetypes="cccccc"
          id="path1719"
          d="m 683.10581,272.68865 c 0,0 -0.50374,-0.48544 -0.71937,-0.54199 -0.21563,-0.0566 -0.5153,0.12916 -0.5153,0.12916 l -1.61686,1.59178 0.941,0.58124 1.91053,-1.76019 z"
-         style="fill:url(#linearGradient20068);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient20070);stroke-width:0.02369117pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+         style="fill:url(#linearGradient13638);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient13640);stroke-width:0.02369117pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
       <path
          inkscape:connector-curvature="0"
          sodipodi:nodetypes="ccccccc"
          id="path1086"
          d="m 682.2436,275.7379 1.55018,-1.39957 c 0.13622,-0.19892 0.13715,-0.29847 4.9e-4,-0.67954 -0.13666,-0.38107 -0.45478,-0.72343 -0.62238,-0.91843 -0.16761,-0.19499 -0.17961,-0.16038 -0.17961,-0.16038 l -1.80369,1.64594 1.05501,1.51198 z"
-         style="fill:url(#linearGradient20072);fill-opacity:1;fill-rule:evenodd;stroke:none" />
+         style="fill:url(#linearGradient13642);fill-opacity:1;fill-rule:evenodd;stroke:none" />
       <path
          inkscape:connector-curvature="0"
          sodipodi:nodetypes="ccccccc"
          id="path4247"
          d="m 665.03485,291.8397 -3.55147,2.04823 -0.50089,-0.41474 2.13093,-3.44443 1.09463,-0.96833 1.55424,2.00466 -0.72744,0.77461 z"
-         style="fill:url(#linearGradient20074);fill-opacity:1;fill-rule:evenodd;stroke:#7f755d;stroke-width:0.0312406pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+         style="fill:url(#linearGradient13644);fill-opacity:1;fill-rule:evenodd;stroke:#7f755d;stroke-width:0.0312406pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
       <path
          inkscape:connector-curvature="0"
          sodipodi:nodetypes="cccc"
          id="path1869"
          d="m 660.82006,294.1801 2.8963,-4.10843 1.83475,1.18603 -4.73105,2.9224 z"
-         style="fill:url(#linearGradient20076);fill-opacity:1;fill-rule:evenodd;stroke:none" />
+         style="fill:url(#linearGradient13646);fill-opacity:1;fill-rule:evenodd;stroke:none" />
       <path
          inkscape:connector-curvature="0"
          sodipodi:nodetypes="ccccc"
@@ -60600,7 +62969,7 @@
          sodipodi:nodetypes="ccccccccccc"
          id="path1736"
          d="m 680.04086,277.80167 c -0.14846,0.0156 -0.20463,-0.84074 -0.76783,-1.3212 -0.56319,-0.48046 -0.90331,-0.71097 -0.8945,-0.90456 0.009,-0.19359 0.33064,-0.60241 0.66417,-0.58977 0.34944,0.0132 0.22754,-0.79922 0.60431,-0.76653 0.37724,0.0327 0.46303,-0.76137 0.76129,-0.65775 0.33103,0.115 0.8222,0.2992 1.22204,0.75342 0.39984,0.45423 0.78205,1.29563 0.76146,1.40375 -0.0206,0.10813 -0.20796,0.55162 -0.56557,0.66133 -0.3576,0.10971 -0.23788,0.46323 -0.72499,0.66357 -0.48711,0.20035 -0.56883,0.97598 -1.06038,0.75774 z"
-         style="fill:url(#linearGradient20078);fill-opacity:1;fill-rule:evenodd;stroke:none" />
+         style="fill:url(#linearGradient13648);fill-opacity:1;fill-rule:evenodd;stroke:none" />
       <path
          inkscape:connector-curvature="0"
          sodipodi:nodetypes="ccccccc"
@@ -60630,25 +62999,25 @@
          sodipodi:nodetypes="ccccc"
          id="path1874"
          d="m 678.26705,275.53471 c 0.88963,0.66388 1.22716,0.64576 1.87388,2.3037 0.97612,-1.20174 1.53854,-1.44773 2.29826,-2.13982 -0.54451,-0.98704 -0.97282,-1.66111 -2.03157,-2.174 -0.68615,0.85876 -1.19687,1.25085 -2.14057,2.01012 z"
-         style="opacity:0.66134183;fill:url(#linearGradient20080);fill-opacity:1;fill-rule:evenodd;stroke:none" />
+         style="opacity:0.66134183;fill:url(#linearGradient13650);fill-opacity:1;fill-rule:evenodd;stroke:none" />
       <path
          inkscape:connector-curvature="0"
          sodipodi:nodetypes="cccccc"
          id="path1879"
          d="m 661.50864,293.87805 -1.24277,0.70578 0.75218,-1.17458 c 0,0 0.46311,-0.4675 0.39757,-0.27044 -0.13168,0.39672 -0.11386,0.45304 0.22789,0.30125 0.34692,-0.15408 -0.13487,0.43799 -0.13487,0.43799 z"
-         style="fill:url(#linearGradient20082);fill-opacity:1;fill-rule:evenodd;stroke:none" />
+         style="fill:url(#linearGradient13652);fill-opacity:1;fill-rule:evenodd;stroke:none" />
       <path
          inkscape:connector-curvature="0"
          sodipodi:nodetypes="ccccc"
          id="path1891"
          d="m 681.35307,274.03857 -2.37447,2.16274 -0.49788,-0.43052 2.30861,-2.11935 0.56374,0.38713 z"
-         style="fill:url(#linearGradient20084);fill-opacity:1;fill-rule:evenodd;stroke:none" />
+         style="fill:url(#linearGradient13654);fill-opacity:1;fill-rule:evenodd;stroke:none" />
       <path
          inkscape:connector-curvature="0"
          sodipodi:nodetypes="ccccc"
          id="path1896"
          d="m 683.74504,273.49232 c -1.22386,-1.06852 -1.69077,-0.0713 -2.46786,0.60552 -0.16596,-0.14351 -0.33193,-0.28702 -0.49789,-0.43052 0.58126,-0.69698 0.87377,-1.06034 1.79321,-1.49705 0.18016,0.10818 0.89961,1.12667 1.17254,1.32205 z"
-         style="fill:url(#linearGradient20086);fill-opacity:1;fill-rule:evenodd;stroke:none" />
+         style="fill:url(#linearGradient13656);fill-opacity:1;fill-rule:evenodd;stroke:none" />
     </g>
   </g>
   <text
@@ -60737,7 +63106,7 @@
        style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.72142136px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
   </g>
   <g
-     transform="translate(79.642713,0.17806707)"
+     transform="translate(189.64271,0.17806707)"
      id="g12739-1">
     <rect
        inkscape:label="#rect16270"
@@ -60762,13 +63131,13 @@
              sodipodi:nodetypes="ccccc"
              id="rect15422-9"
              d="m 261.23647,217.28623 175.53201,57.07437 -3.125,208.62261 -170.15701,-72.94937 z"
-             style="fill:url(#linearGradient15515);fill-opacity:1;stroke:none" />
+             style="fill:url(#linearGradient13602);fill-opacity:1;stroke:none" />
           <path
              inkscape:connector-curvature="0"
              sodipodi:nodetypes="ccccc"
              id="rect15942-8"
              d="M 257.63822,217.28208 452.87456,201.38389 632.56367,259.59396 436.54848,274.2032 z"
-             style="fill:url(#linearGradient15517);fill-opacity:1;stroke:none" />
+             style="fill:url(#linearGradient13604);fill-opacity:1;stroke:none" />
           <path
              inkscape:connector-curvature="0"
              sodipodi:nodetypes="ccccc"
@@ -60781,14 +63150,14 @@
          transform="matrix(0.98401111,0.21690648,-0.21690648,0.98401111,54.630578,-109.30701)"
          id="g15330">
         <path
-           style="color:#000000;fill:url(#linearGradient15519);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.72142136px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+           style="color:#000000;fill:url(#linearGradient13606);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.72142136px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
            d="m 494.71875,185.46875 c -0.35176,0 -0.69473,0.1022 -0.96875,0.28125 -0.10135,0.0662 -0.34443,0.21161 -0.42188,0.28906 l -0.0625,0.0625 c 0.34548,-0.16642 0.5872,-0.19531 0.82813,-0.19531 0.96372,0 1.75,0.78628 1.75,1.75 0,0.5778 -0.28613,1.08868 -0.71875,1.40625 l 0.5625,-0.40625 c 0.0312,-0.0211 0.0641,-0.0395 0.0937,-0.0625 0.41238,-0.31916 0.65625,-0.81319 0.65625,-1.375 0,-0.96372 -0.75503,-1.75 -1.71875,-1.75 z"
            id="path14397"
            inkscape:connector-curvature="0"
            sodipodi:nodetypes="scscsscccss" />
         <path
            sodipodi:type="arc"
-           style="color:#000000;fill:url(#linearGradient15521);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.72142136px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+           style="color:#000000;fill:url(#linearGradient13608);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.72142136px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
            id="path14397-8"
            sodipodi:cx="500.96298"
            sodipodi:cy="182.15448"
@@ -60808,11 +63177,11 @@
            sodipodi:cy="182.15448"
            sodipodi:cx="500.96298"
            id="path14397-8-8"
-           style="color:#000000;fill:url(#linearGradient15523);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.72142136px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+           style="color:#000000;fill:url(#linearGradient13610);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.72142136px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
            sodipodi:type="arc" />
         <path
            inkscape:connector-curvature="0"
-           style="color:#000000;fill:url(#linearGradient15525);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.72142136px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+           style="color:#000000;fill:url(#linearGradient13612);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.72142136px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
            d="m 492.875,180.96875 c -0.046,0.009 -0.0831,0.0119 -0.125,0.0312 l -0.0625,0.0312 -2.375,1.1875 c 0.11954,-0.0764 0.25679,-0.0954 0.40625,-0.0625 0.29893,0.0659 0.50339,0.35732 0.4375,0.65625 -0.033,0.14946 -0.13046,0.26739 -0.25,0.34375 0.77078,-0.3938 1.58077,-0.78916 2.34375,-1.15625 0.13759,-0.0738 0.24501,-0.21059 0.28125,-0.375 0.0659,-0.29893 -0.13857,-0.59036 -0.4375,-0.65625 -0.0747,-0.0165 -0.14796,-0.0131 -0.21875,0 z"
            id="path14397-8-8-5" />
       </g>
@@ -60835,7 +63204,7 @@
            sodipodi:nodetypes="cccccc"
            id="path1919-2"
            d="m 6.3306155,244.87972 c 0,0 -2.616026,-2.68246 -3.762417,-3.01369 -1.146391,-0.33124 -2.78605395,0.63625 -2.78605395,0.63625 l -8.95013235,8.40586 4.9440407,3.25217 10.5545626,-9.28059 z"
-           style="fill-rule:evenodd;stroke:url(#linearGradient20066-5);stroke-width:0.12755789pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+           style="fill-rule:evenodd;stroke:url(#linearGradient13614);stroke-width:0.12755789pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
         <path
            inkscape:connector-curvature="0"
            sodipodi:nodetypes="ccccccc"
@@ -60951,25 +63320,25 @@
          sodipodi:nodetypes="cccccc"
          id="path1719-4"
          d="m 683.10581,272.68865 c 0,0 -0.50374,-0.48544 -0.71937,-0.54199 -0.21563,-0.0566 -0.5153,0.12916 -0.5153,0.12916 l -1.61686,1.59178 0.941,0.58124 1.91053,-1.76019 z"
-         style="fill:url(#linearGradient20068-2);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient20070-0);stroke-width:0.02369117pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+         style="fill:url(#linearGradient13616);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient13618);stroke-width:0.02369117pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
       <path
          inkscape:connector-curvature="0"
          sodipodi:nodetypes="ccccccc"
          id="path1086-6"
          d="m 682.2436,275.7379 1.55018,-1.39957 c 0.13622,-0.19892 0.13715,-0.29847 4.9e-4,-0.67954 -0.13666,-0.38107 -0.45478,-0.72343 -0.62238,-0.91843 -0.16761,-0.19499 -0.17961,-0.16038 -0.17961,-0.16038 l -1.80369,1.64594 1.05501,1.51198 z"
-         style="fill:url(#linearGradient20072-9);fill-opacity:1;fill-rule:evenodd;stroke:none" />
+         style="fill:url(#linearGradient13620);fill-opacity:1;fill-rule:evenodd;stroke:none" />
       <path
          inkscape:connector-curvature="0"
          sodipodi:nodetypes="ccccccc"
          id="path4247-9"
          d="m 665.03485,291.8397 -3.55147,2.04823 -0.50089,-0.41474 2.13093,-3.44443 1.09463,-0.96833 1.55424,2.00466 -0.72744,0.77461 z"
-         style="fill:url(#linearGradient20074-1);fill-opacity:1;fill-rule:evenodd;stroke:#7f755d;stroke-width:0.0312406pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+         style="fill:url(#linearGradient13622);fill-opacity:1;fill-rule:evenodd;stroke:#7f755d;stroke-width:0.0312406pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
       <path
          inkscape:connector-curvature="0"
          sodipodi:nodetypes="cccc"
          id="path1869-3"
          d="m 660.82006,294.1801 2.8963,-4.10843 1.83475,1.18603 -4.73105,2.9224 z"
-         style="fill:url(#linearGradient20076-5);fill-opacity:1;fill-rule:evenodd;stroke:none" />
+         style="fill:url(#linearGradient13624);fill-opacity:1;fill-rule:evenodd;stroke:none" />
       <path
          inkscape:connector-curvature="0"
          sodipodi:nodetypes="ccccc"
@@ -60999,7 +63368,7 @@
          sodipodi:nodetypes="ccccccccccc"
          id="path1736-0"
          d="m 680.04086,277.80167 c -0.14846,0.0156 -0.20463,-0.84074 -0.76783,-1.3212 -0.56319,-0.48046 -0.90331,-0.71097 -0.8945,-0.90456 0.009,-0.19359 0.33064,-0.60241 0.66417,-0.58977 0.34944,0.0132 0.22754,-0.79922 0.60431,-0.76653 0.37724,0.0327 0.46303,-0.76137 0.76129,-0.65775 0.33103,0.115 0.8222,0.2992 1.22204,0.75342 0.39984,0.45423 0.78205,1.29563 0.76146,1.40375 -0.0206,0.10813 -0.20796,0.55162 -0.56557,0.66133 -0.3576,0.10971 -0.23788,0.46323 -0.72499,0.66357 -0.48711,0.20035 -0.56883,0.97598 -1.06038,0.75774 z"
-         style="fill:url(#linearGradient20078-9);fill-opacity:1;fill-rule:evenodd;stroke:none" />
+         style="fill:url(#linearGradient13626);fill-opacity:1;fill-rule:evenodd;stroke:none" />
       <path
          inkscape:connector-curvature="0"
          sodipodi:nodetypes="ccccccc"
@@ -61029,25 +63398,25 @@
          sodipodi:nodetypes="ccccc"
          id="path1874-3"
          d="m 678.26705,275.53471 c 0.88963,0.66388 1.22716,0.64576 1.87388,2.3037 0.97612,-1.20174 1.53854,-1.44773 2.29826,-2.13982 -0.54451,-0.98704 -0.97282,-1.66111 -2.03157,-2.174 -0.68615,0.85876 -1.19687,1.25085 -2.14057,2.01012 z"
-         style="opacity:0.66134183;fill:url(#linearGradient20080-1);fill-opacity:1;fill-rule:evenodd;stroke:none" />
+         style="opacity:0.66134183;fill:url(#linearGradient13628);fill-opacity:1;fill-rule:evenodd;stroke:none" />
       <path
          inkscape:connector-curvature="0"
          sodipodi:nodetypes="cccccc"
          id="path1879-8"
          d="m 661.50864,293.87805 -1.24277,0.70578 0.75218,-1.17458 c 0,0 0.46311,-0.4675 0.39757,-0.27044 -0.13168,0.39672 -0.11386,0.45304 0.22789,0.30125 0.34692,-0.15408 -0.13487,0.43799 -0.13487,0.43799 z"
-         style="fill:url(#linearGradient20082-1);fill-opacity:1;fill-rule:evenodd;stroke:none" />
+         style="fill:url(#linearGradient13630);fill-opacity:1;fill-rule:evenodd;stroke:none" />
       <path
          inkscape:connector-curvature="0"
          sodipodi:nodetypes="ccccc"
          id="path1891-6"
          d="m 681.35307,274.03857 -2.37447,2.16274 -0.49788,-0.43052 2.30861,-2.11935 0.56374,0.38713 z"
-         style="fill:url(#linearGradient20084-5);fill-opacity:1;fill-rule:evenodd;stroke:none" />
+         style="fill:url(#linearGradient13632);fill-opacity:1;fill-rule:evenodd;stroke:none" />
       <path
          inkscape:connector-curvature="0"
          sodipodi:nodetypes="ccccc"
          id="path1896-5"
          d="m 683.74504,273.49232 c -1.22386,-1.06852 -1.69077,-0.0713 -2.46786,0.60552 -0.16596,-0.14351 -0.33193,-0.28702 -0.49789,-0.43052 0.58126,-0.69698 0.87377,-1.06034 1.79321,-1.49705 0.18016,0.10818 0.89961,1.12667 1.17254,1.32205 z"
-         style="fill:url(#linearGradient20086-8);fill-opacity:1;fill-rule:evenodd;stroke:none" />
+         style="fill:url(#linearGradient13634);fill-opacity:1;fill-rule:evenodd;stroke:none" />
     </g>
   </g>
   <g
@@ -61286,7 +63655,7 @@
      y="0"
      xlink:href="#g12739"
      id="use13270"
-     transform="matrix(0.53043689,0,0,0.53043689,19.1577,146.32621)"
+     transform="matrix(0.53043689,0,0,0.53043689,-39.190359,146.32621)"
      width="744.09448"
      height="1052.3622" />
   <use
@@ -61294,11 +63663,11 @@
      y="0"
      xlink:href="#g12739-1"
      id="use13306"
-     transform="matrix(0.51386408,0,0,0.51386408,45.954134,148.43892)"
+     transform="matrix(0.51386408,0,0,0.51386408,-10.570915,148.43892)"
      width="744.09448"
      height="1052.3622" />
   <g
-     transform="translate(183.64271,0.1780684)"
+     transform="translate(293.64271,0.1780684)"
      id="g12739-1-7">
     <rect
        inkscape:label="#rect16270"
@@ -61424,4 +63793,96 @@
          style="opacity:0.31627909;fill:url(#linearGradient13690);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:13;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
     </g>
   </g>
+  <g
+     transform="translate(1350.1329,-435.58678)"
+     id="g16552-4">
+    <g
+       id="g16340-3">
+      <rect
+         style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="ImportDatabase"
+         y="561.30634"
+         x="-1061.1847"
+         height="24"
+         width="24" />
+    </g>
+  </g>
+  <g
+     inkscape:label="Ebene 1"
+     id="layer1-2"
+     transform="matrix(0.02393707,0,0,0.02393707,292.54285,124.97379)">
+    <g
+       id="g32772">
+      <rect
+         y="115.85568"
+         x="-64.879845"
+         width="850"
+         style="fill:none;stroke:none"
+         id="rect2300"
+         height="850" />
+      <path
+         transform="matrix(22.38511,0,0,24.34097,-173.556,-227.5451)"
+         style="fill:url(#radialGradient33182);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible"
+         sodipodi:type="arc"
+         sodipodi:ry="8.5714283"
+         sodipodi:rx="17.142857"
+         sodipodi:cy="40"
+         sodipodi:cx="23.857143"
+         id="path3366"
+         d="m 41,40 c 0,4.733869 -7.675118,8.571428 -17.142857,8.571428 -9.467738,0 -17.1428562,-3.837559 -17.1428562,-8.571428 0,-4.733869 7.6751182,-8.571428 17.1428562,-8.571428 C 33.324882,31.428572 41,35.266131 41,40 z" />
+      <path
+         style="fill:url(#linearGradient32255);fill-opacity:1;fill-rule:nonzero;stroke:#864a18;stroke-width:27;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:block;overflow:visible"
+         sodipodi:nodetypes="csszssz"
+         id="path3068"
+         d="m 356.14658,141.79793 c -166.17064,0 -301.286141,59.25303 -301.286141,132.14323 0,5.23055 0,483.48267 0,488.92993 0,72.89021 135.115501,132.14324 301.286141,132.14324 166.17062,0 306.66742,-59.25303 306.66742,-132.14324 0,-4.31441 0,-484.61551 0,-488.92993 0,-72.8902 -140.4968,-132.14323 -306.66742,-132.14323 l 0,0 z"
+         inkscape:connector-curvature="0" />
+      <path
+         style="opacity:0.5443038;fill:none;stroke:url(#linearGradient32252);stroke-width:21.14291763;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:block;overflow:visible"
+         sodipodi:nodetypes="csszssz"
+         id="path4174"
+         d="m 356.32841,158.27504 c -154.92895,0 -280.90458,55.24474 -280.90458,123.20421 0,4.87661 0,462.73513 0,467.81387 0,67.95926 125.97563,123.20399 280.90458,123.20399 154.93104,0 285.92199,-55.24473 285.92199,-123.20399 0,-4.02266 0,-463.79144 0,-467.81387 0,-67.95947 -130.99095,-123.20421 -285.92199,-123.20421 l 0,0 z"
+         inkscape:connector-curvature="0" />
+      <path
+         transform="matrix(21.274874,0,0,19.579266,-153.12834,-3.3607684)"
+         style="fill:#a46530;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1.42590630000000007;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:block;overflow:visible"
+         sodipodi:type="arc"
+         sodipodi:ry="5.5"
+         sodipodi:rx="12.857142"
+         sodipodi:cy="14.071428"
+         sodipodi:cx="24"
+         id="path3364"
+         d="m 36.857142,14.071428 c 0,3.037566 -5.756338,5.5 -12.857142,5.5 -7.100804,0 -12.857142,-2.462434 -12.857142,-5.5 0,-3.037566 5.756338,-5.4999997 12.857142,-5.4999997 7.100804,0 12.857142,2.4624337 12.857142,5.4999997 z" />
+      <path
+         style="fill:url(#linearGradient32248);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible"
+         sodipodi:nodetypes="cccccccc"
+         id="path6922"
+         d="m 138.48871,370.3112 1.89227,449.19676 149.45944,57.35892 6.41056,-472.20371 c 0,0 -12.78317,-5.65786 58.19783,-10.18857 -110.27723,-4.92778 -234.56375,-59.86576 -277.50352,-90.60524 29.95803,44.23478 61.54342,66.44184 61.54342,66.44184 l 0,0 z"
+         inkscape:connector-curvature="0" />
+    </g>
+  </g>
+  <g
+     style="display:inline"
+     transform="matrix(-1,0,0,1,313.23634,127.23877)"
+     id="layer1-0">
+    <g
+       id="g3490-1"
+       style="stroke-width:1.88259995"
+       transform="matrix(0.54593,0,0,0.51685,-0.96573,-0.57818)">
+      <g
+         id="g5022-9"
+         style="stroke-width:104.95999908"
+         transform="matrix(0.021652,0,0,0.014857,43.008,42.685)" />
+    </g>
+    <path
+       inkscape:connector-curvature="0"
+       id="path1432"
+       style="fill:url(#linearGradient5274-7);stroke:url(#linearGradient5276);stroke-linecap:round;stroke-linejoin:round;display:block"
+       d="m 17.5,7.4997 6,5.3693 -6,5.631 V 15.4994 H 7.5004 v -4.999 H 17.5 V 7.4998 z" />
+    <path
+       inkscape:connector-curvature="0"
+       id="path3777"
+       style="opacity:0.4;fill:none;stroke:url(#linearGradient5877);display:block"
+       d="M 18.531,8.7812 V 10 A 0.51754,0.51754 0 0 1 18,10.531 H 9.4375 l 0.03125,2.9375 h 8.5312 a 0.51754,0.51754 0 0 1 0.531,0.532 v 1.1562 l 3.469,-3.281 -3.469,-3.0938 z"
+       transform="translate(0,0.99987)" />
+  </g>
 </svg>