Merged
authorlaurent
Mon, 21 May 2012 10:02:54 +0200
changeset 689 ce605c1a6d04
parent 687 629680fb0582 (diff)
parent 688 188906a7368c (current diff)
child 690 a32548167224
Merged
PLCOpenEditor.py
xmlclass/xmlclass.py
--- a/GraphicViewer.py	Tue May 15 05:19:13 2012 +0900
+++ b/GraphicViewer.py	Mon May 21 10:02:54 2012 +0200
@@ -507,14 +507,15 @@
     ## Refresh the variable cursor.
     #  @param dc The draw canvas
     def RefreshCursor(self, dc=None):
-        if dc is None:
-            dc = wx.BufferedDC(wx.ClientDC(self.Canvas.canvas), self.Canvas._Buffer)
-        
-        # Erase previous time cursor if drawn
-        if self.LastCursor is not None:
-            self.DrawCursor(dc, *self.LastCursor)
-        
-        # Draw new time cursor
-        if self.CursorIdx is not None:
-            self.LastCursor = self.Datas[self.CursorIdx]
-            self.DrawCursor(dc, *self.LastCursor)
+        if self:
+            if dc is None:
+                dc = wx.BufferedDC(wx.ClientDC(self.Canvas.canvas), self.Canvas._Buffer)
+            
+            # Erase previous time cursor if drawn
+            if self.LastCursor is not None:
+                self.DrawCursor(dc, *self.LastCursor)
+            
+            # Draw new time cursor
+            if self.CursorIdx is not None:
+                self.LastCursor = self.Datas[self.CursorIdx]
+                self.DrawCursor(dc, *self.LastCursor)
Binary file Images/custom_tree_background.png has changed
Binary file Images/debug.png has changed
Binary file Images/edit.png has changed
Binary file Images/graph.png has changed
--- a/Images/icons.svg	Tue May 15 05:19:13 2012 +0900
+++ b/Images/icons.svg	Mon May 21 10:02:54 2012 +0200
@@ -23,2498 +23,6524 @@
    sodipodi:docname="icons.svg"
    inkscape:output_extension="org.inkscape.output.svg.inkscape">
   <defs
-     id="defs4">
-    <linearGradient
-       id="linearGradient4327">
-      <stop
-         style="stop-color:#0000ff;stop-opacity:1;"
-         offset="0"
-         id="stop4329" />
-      <stop
-         id="stop4331"
-         offset="0.5"
-         style="stop-color:#0000ff;stop-opacity:1;" />
-      <stop
-         style="stop-color:#0000ff;stop-opacity:0;"
-         offset="1"
-         id="stop4333" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4309">
-      <stop
-         id="stop4311"
-         offset="0"
-         style="stop-color:#fe0000;stop-opacity:1;" />
-      <stop
-         style="stop-color:#fe0000;stop-opacity:1;"
-         offset="0.5"
-         id="stop4313" />
-      <stop
-         id="stop4315"
-         offset="1"
-         style="stop-color:#fe0000;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4184">
-      <stop
-         style="stop-color:#d81515;stop-opacity:1;"
-         offset="0"
-         id="stop4186" />
-      <stop
-         id="stop4192"
-         offset="0.5"
-         style="stop-color:#4dd728;stop-opacity:1;" />
-      <stop
-         style="stop-color:#2119b5;stop-opacity:1;"
-         offset="1"
-         id="stop4188" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient27229">
-      <stop
-         style="stop-color:#00fe1a;stop-opacity:1;"
-         offset="0"
-         id="stop27231" />
-      <stop
-         id="stop20982"
-         offset="0.5"
-         style="stop-color:#00fe1a;stop-opacity:1;" />
-      <stop
-         style="stop-color:#7f7f7f;stop-opacity:0;"
-         offset="1"
-         id="stop27233" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient20976">
-      <stop
-         id="stop20978"
-         offset="0"
-         style="stop-color:#7f7f7f;stop-opacity:1;" />
-      <stop
-         id="stop20980"
-         offset="1"
-         style="stop-color:#7f7f7f;stop-opacity:0;" />
-    </linearGradient>
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="-50 : 600 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="700 : 600 : 1"
-       inkscape:persp3d-origin="300 : 400 : 1"
-       id="perspective2460" />
-    <linearGradient
-       id="linearGradient5197">
-      <stop
-         id="stop5199"
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:1;" />
-      <stop
-         id="stop5201"
-         offset="1"
-         style="stop-color:#f7f7f7;stop-opacity:1;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient5175">
-      <stop
-         style="stop-color:#bdcccd;stop-opacity:1;"
-         offset="0"
-         id="stop5177" />
-      <stop
-         style="stop-color:#7979ff;stop-opacity:1;"
-         offset="1"
-         id="stop5179" />
-    </linearGradient>
-    <marker
-       inkscape:stockid="TriangleOutS"
-       orient="auto"
-       refY="0.0"
-       refX="0.0"
-       id="TriangleOutS"
-       style="overflow:visible">
-      <path
-         id="path3461"
-         d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
-         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none"
-         transform="scale(0.2)" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow1Send"
-       orient="auto"
-       refY="0.0"
-       refX="0.0"
-       id="Arrow1Send"
-       style="overflow:visible;">
-      <path
-         id="path3327"
-         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
-         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;"
-         transform="scale(0.2) rotate(180) translate(6,0)" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Mend"
-       orient="auto"
-       refY="0.0"
-       refX="0.0"
-       id="Arrow2Mend"
-       style="overflow:visible;">
-      <path
-         id="path3339"
-         style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
-         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
-         transform="scale(0.6) rotate(180) translate(0,0)" />
-    </marker>
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="-50 : 600 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="700 : 600 : 1"
-       inkscape:persp3d-origin="300 : 400 : 1"
-       id="perspective22" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5197"
-       id="linearGradient5203"
-       gradientUnits="userSpaceOnUse"
-       x1="40"
-       y1="1"
-       x2="40"
-       y2="16" />
-    <inkscape:perspective
-       id="perspective3259"
-       inkscape:persp3d-origin="300 : 400 : 1"
-       inkscape:vp_z="700 : 600 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="-50 : 600 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective3280"
-       inkscape:persp3d-origin="300 : 400 : 1"
-       inkscape:vp_z="700 : 600 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="-50 : 600 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective3304"
-       inkscape:persp3d-origin="300 : 400 : 1"
-       inkscape:vp_z="700 : 600 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="-50 : 600 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective3330"
-       inkscape:persp3d-origin="300 : 400 : 1"
-       inkscape:vp_z="700 : 600 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="-50 : 600 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective3356"
-       inkscape:persp3d-origin="300 : 400 : 1"
-       inkscape:vp_z="700 : 600 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="-50 : 600 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective3380"
-       inkscape:persp3d-origin="300 : 400 : 1"
-       inkscape:vp_z="700 : 600 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="-50 : 600 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective3401"
-       inkscape:persp3d-origin="300 : 400 : 1"
-       inkscape:vp_z="700 : 600 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="-50 : 600 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective3420"
-       inkscape:persp3d-origin="300 : 400 : 1"
-       inkscape:vp_z="700 : 600 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="-50 : 600 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective3442"
-       inkscape:persp3d-origin="300 : 400 : 1"
-       inkscape:vp_z="700 : 600 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="-50 : 600 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective3464"
-       inkscape:persp3d-origin="300 : 400 : 1"
-       inkscape:vp_z="700 : 600 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="-50 : 600 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective3490"
-       inkscape:persp3d-origin="300 : 400 : 1"
-       inkscape:vp_z="700 : 600 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="-50 : 600 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <radialGradient
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.93933,2.771444e-7,-2.74398e-7,0.930021,-2.994365,-0.94731)"
-       r="12.5625"
-       fy="16.40625"
-       fx="15"
-       cy="16.40625"
-       cx="15"
-       id="radialGradient4594"
-       xlink:href="#linearGradient4588"
-       inkscape:collect="always" />
-    <linearGradient
-       id="linearGradient4588">
-      <stop
-         id="stop4590"
-         offset="0"
-         style="stop-color:#494949;stop-opacity:1;" />
-      <stop
-         id="stop4592"
-         offset="1"
-         style="stop-color:#262626;stop-opacity:0;" />
-    </linearGradient>
-    <inkscape:perspective
-       id="perspective3517"
-       inkscape:persp3d-origin="300 : 400 : 1"
-       inkscape:vp_z="700 : 600 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="-50 : 600 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective3536"
-       inkscape:persp3d-origin="300 : 400 : 1"
-       inkscape:vp_z="700 : 600 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="-50 : 600 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective3556"
-       inkscape:persp3d-origin="300 : 400 : 1"
-       inkscape:vp_z="700 : 600 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="-50 : 600 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective3576"
-       inkscape:persp3d-origin="300 : 400 : 1"
-       inkscape:vp_z="700 : 600 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="-50 : 600 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective3597"
-       inkscape:persp3d-origin="300 : 400 : 1"
-       inkscape:vp_z="700 : 600 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="-50 : 600 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective3619"
-       inkscape:persp3d-origin="300 : 400 : 1"
-       inkscape:vp_z="700 : 600 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="-50 : 600 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective3762"
-       inkscape:persp3d-origin="300 : 400 : 1"
-       inkscape:vp_z="700 : 600 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="-50 : 600 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5175"
-       id="linearGradient3808"
-       gradientUnits="userSpaceOnUse"
-       x1="0"
-       y1="1"
-       x2="15"
-       y2="16"
-       gradientTransform="translate(-40,0)" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient20976"
-       id="linearGradient4156"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-1,0,0,-1,246.5,71)"
-       x1="19"
-       y1="11"
-       x2="19"
-       y2="23" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient27229"
-       id="linearGradient4158"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-1,0,0,-1,245.5,70)"
-       x1="19"
-       y1="11"
-       x2="19"
-       y2="23" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4184"
-       id="linearGradient4190"
-       x1="290"
-       y1="11"
-       x2="296"
-       y2="11"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient20976"
-       id="linearGradient4305"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-1,0,0,-1,246.5,71)"
-       x1="19"
-       y1="11"
-       x2="19"
-       y2="23" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4309"
-       id="linearGradient4307"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-1,0,0,-1,245.5,70)"
-       x1="19"
-       y1="11"
-       x2="19"
-       y2="23" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient20976"
-       id="linearGradient4323"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-1,0,0,-1,246.5,71)"
-       x1="19"
-       y1="11"
-       x2="19"
-       y2="23" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4327"
-       id="linearGradient4325"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-1,0,0,-1,245.5,70)"
-       x1="19"
-       y1="11"
-       x2="19"
-       y2="23" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient20976"
-       id="linearGradient3125"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-1,0,0,-1,246.5,71)"
-       x1="19"
-       y1="11"
-       x2="19"
-       y2="23" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4309"
-       id="linearGradient3127"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-1,0,0,-1,245.5,70)"
-       x1="19"
-       y1="11"
-       x2="19"
-       y2="23" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient20976"
-       id="linearGradient3147"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-1,0,0,-1,246.5,71)"
-       x1="19"
-       y1="11"
-       x2="19"
-       y2="23" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4327"
-       id="linearGradient3149"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-1,0,0,-1,245.5,70)"
-       x1="19"
-       y1="11"
-       x2="19"
-       y2="23" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient20976"
-       id="linearGradient3173"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-1,0,0,-1,246.5,71)"
-       x1="19"
-       y1="11"
-       x2="19"
-       y2="23" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4327"
-       id="linearGradient3175"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-1,0,0,-1,245.5,70)"
-       x1="19"
-       y1="11"
-       x2="19"
-       y2="23" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient20976"
-       id="linearGradient3177"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-1,0,0,-1,246.5,71)"
-       x1="19"
-       y1="11"
-       x2="19"
-       y2="23" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4309"
-       id="linearGradient3179"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-1,0,0,-1,245.5,70)"
-       x1="19"
-       y1="11"
-       x2="19"
-       y2="23" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5175-2"
-       id="linearGradient3808-6"
-       gradientUnits="userSpaceOnUse"
-       x1="0"
-       y1="1"
-       x2="15"
-       y2="16"
-       gradientTransform="translate(-40,0)" />
-    <linearGradient
-       id="linearGradient5175-2">
-      <stop
-         style="stop-color:#bdcccd;stop-opacity:1;"
-         offset="0"
-         id="stop5177-8" />
-      <stop
-         style="stop-color:#7979ff;stop-opacity:1;"
-         offset="1"
-         id="stop5179-9" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5175-9"
-       id="linearGradient3808-1"
-       gradientUnits="userSpaceOnUse"
-       x1="0"
-       y1="1"
-       x2="15"
-       y2="16"
-       gradientTransform="translate(-40,0)" />
-    <linearGradient
-       id="linearGradient5175-9">
-      <stop
-         style="stop-color:#bdcccd;stop-opacity:1;"
-         offset="0"
-         id="stop5177-9" />
-      <stop
-         style="stop-color:#7979ff;stop-opacity:1;"
-         offset="1"
-         id="stop5179-6" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5175-5"
-       id="linearGradient3808-3"
-       gradientUnits="userSpaceOnUse"
-       x1="0"
-       y1="1"
-       x2="15"
-       y2="16"
-       gradientTransform="translate(-40,0)" />
-    <linearGradient
-       id="linearGradient5175-5">
-      <stop
-         style="stop-color:#bdcccd;stop-opacity:1;"
-         offset="0"
-         id="stop5177-94" />
-      <stop
-         style="stop-color:#7979ff;stop-opacity:1;"
-         offset="1"
-         id="stop5179-8" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5175-3"
-       id="linearGradient3808-8"
-       gradientUnits="userSpaceOnUse"
-       x1="0"
-       y1="1"
-       x2="15"
-       y2="16"
-       gradientTransform="translate(-40,0)" />
-    <linearGradient
-       id="linearGradient5175-3">
-      <stop
-         style="stop-color:#bdcccd;stop-opacity:1;"
-         offset="0"
-         id="stop5177-2" />
-      <stop
-         style="stop-color:#7979ff;stop-opacity:1;"
-         offset="1"
-         id="stop5179-3" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5175-1"
-       id="linearGradient3808-19"
-       gradientUnits="userSpaceOnUse"
-       x1="0"
-       y1="1"
-       x2="15"
-       y2="16"
-       gradientTransform="translate(-40,0)" />
-    <linearGradient
-       id="linearGradient5175-1">
-      <stop
-         style="stop-color:#bdcccd;stop-opacity:1;"
-         offset="0"
-         id="stop5177-5" />
-      <stop
-         style="stop-color:#7979ff;stop-opacity:1;"
-         offset="1"
-         id="stop5179-0" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5175-6"
-       id="linearGradient3808-2"
-       gradientUnits="userSpaceOnUse"
-       x1="0"
-       y1="1"
-       x2="15"
-       y2="16"
-       gradientTransform="translate(-40,0)" />
-    <linearGradient
-       id="linearGradient5175-6">
-      <stop
-         style="stop-color:#bdcccd;stop-opacity:1;"
-         offset="0"
-         id="stop5177-56" />
-      <stop
-         style="stop-color:#7979ff;stop-opacity:1;"
-         offset="1"
-         id="stop5179-63" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5175-34"
-       id="linearGradient3808-9"
-       gradientUnits="userSpaceOnUse"
-       x1="0"
-       y1="1"
-       x2="15"
-       y2="16"
-       gradientTransform="translate(-40,0)" />
-    <linearGradient
-       id="linearGradient5175-34">
-      <stop
-         style="stop-color:#bdcccd;stop-opacity:1;"
-         offset="0"
-         id="stop5177-6" />
-      <stop
-         style="stop-color:#7979ff;stop-opacity:1;"
-         offset="1"
-         id="stop5179-2" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5175-97"
-       id="linearGradient3808-97"
-       gradientUnits="userSpaceOnUse"
-       x1="0"
-       y1="1"
-       x2="15"
-       y2="16"
-       gradientTransform="translate(-40,0)" />
-    <linearGradient
-       id="linearGradient5175-97">
-      <stop
-         style="stop-color:#bdcccd;stop-opacity:1;"
-         offset="0"
-         id="stop5177-3" />
-      <stop
-         style="stop-color:#7979ff;stop-opacity:1;"
-         offset="1"
-         id="stop5179-5" />
-    </linearGradient>
-    <linearGradient
-       x1="72.422"
-       x2="72.422"
-       gradientTransform="matrix(0.14823,0,0,0.14944,5.4508,5.3567)"
-       y1="124.76"
-       gradientUnits="userSpaceOnUse"
-       y2="51.244"
-       id="linearGradient3123">
-      <stop
-         offset="0"
-         style="stop-color:#365f0e"
-         id="stop2492-3" />
-      <stop
-         offset="1"
-         style="stop-color:#84a718"
-         id="stop2494-8" />
-    </linearGradient>
-    <radialGradient
-       gradientTransform="matrix(0,0.35684,-0.3882,0,37.357,-10.114)"
-       r="31"
-       cy="51.695"
-       cx="69.448"
-       gradientUnits="userSpaceOnUse"
-       id="radialGradient3121">
-      <stop
-         offset="0"
-         style="stop-color:#eef87e"
-         id="stop3244-5" />
-      <stop
-         offset=".26238"
-         style="stop-color:#cde34f"
-         id="stop3246-9" />
-      <stop
-         offset=".66094"
-         style="stop-color:#93b723"
-         id="stop3248-7" />
-      <stop
-         offset="1"
-         style="stop-color:#5a7e0d"
-         id="stop3250-8" />
-    </radialGradient>
-    <linearGradient
-       x1="24.139"
-       y1="7.0479"
-       gradientTransform="matrix(0.2818,0,0,0.2801,12.186,12.022)"
-       x2="24.139"
-       gradientUnits="userSpaceOnUse"
-       y2="39.268"
-       id="linearGradient5530">
-      <stop
-         offset="0"
-         style="stop-color:#fff"
-         id="stop3945" />
-      <stop
-         offset="1"
-         style="stop-color:#fff;stop-opacity:0"
-         id="stop3947" />
-    </linearGradient>
-    <linearGradient
-       x1="302.86"
-       y1="366.65"
-       gradientTransform="matrix(0.035207,0,0,0.0082353,-0.72485,18.981)"
-       x2="302.86"
-       gradientUnits="userSpaceOnUse"
-       y2="609.51"
-       id="linearGradient2447">
-      <stop
-         offset="0"
-         style="stop-opacity:0"
-         id="stop5050" />
-      <stop
-         offset=".5"
-         id="stop5056" />
-      <stop
-         offset="1"
-         style="stop-opacity:0"
-         id="stop5052" />
-    </linearGradient>
-    <radialGradient
-       r="117.14"
-       gradientTransform="matrix(-0.012049,0,0,0.0082353,10.761,18.981)"
-       cx="605.71"
-       cy="486.65"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient5060"
-       id="radialGradient2444" />
-    <radialGradient
-       r="117.14"
-       gradientTransform="matrix(0.012049,0,0,0.0082353,13.239,18.981)"
-       cx="605.71"
-       cy="486.65"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient5060"
-       id="radialGradient2441" />
-    <linearGradient
-       x1="-51.786"
-       y1="50.786"
-       gradientTransform="matrix(0.39221,0,0,0.44736,29.199,-1.2387)"
-       x2="-51.786"
-       gradientUnits="userSpaceOnUse"
-       y2="2.9062"
-       id="linearGradient2438">
-      <stop
-         offset="0"
-         style="stop-color:#aaa"
-         id="stop3106" />
-      <stop
-         offset="1"
-         style="stop-color:#c8c8c8"
-         id="stop3108" />
-    </linearGradient>
-    <linearGradient
-       x1="25.132"
-       y1=".98521"
-       gradientTransform="matrix(0.48572,0,0,0.47803,0.34283,-0.70595)"
-       x2="25.132"
-       gradientUnits="userSpaceOnUse"
-       y2="47.013"
-       id="linearGradient2435">
-      <stop
-         offset="0"
-         style="stop-color:#f4f4f4"
-         id="stop3602" />
-      <stop
-         offset="1"
-         style="stop-color:#dbdbdb"
-         id="stop3604" />
-    </linearGradient>
-    <radialGradient
-       r="139.56"
-       gradientTransform="matrix(0.17021,0,0,-0.19072,1.1064,23.717)"
-       cx="92.09"
-       cy="102.7"
-       gradientUnits="userSpaceOnUse"
-       id="radialGradient2432">
-      <stop
-         offset="0"
-         style="stop-color:#b7b8b9"
-         id="stop41" />
-      <stop
-         offset=".17403"
-         style="stop-color:#ececec"
-         id="stop47" />
-      <stop
-         offset=".23908"
-         style="stop-color:#fafafa;stop-opacity:0"
-         id="stop49" />
-      <stop
-         offset=".30111"
-         style="stop-color:#fff;stop-opacity:0"
-         id="stop51" />
-      <stop
-         offset=".53130"
-         style="stop-color:#fafafa;stop-opacity:0"
-         id="stop53" />
-      <stop
-         offset=".84490"
-         style="stop-color:#ebecec;stop-opacity:0"
-         id="stop55" />
-      <stop
-         offset="1"
-         style="stop-color:#e1e2e3;stop-opacity:0"
-         id="stop57" />
-    </radialGradient>
-    <linearGradient
-       x1="24"
-       y1="2"
-       gradientTransform="matrix(0.45454,0,0,0.46512,1.0909,0.33723)"
-       x2="24"
-       gradientUnits="userSpaceOnUse"
-       y2="46.017"
-       id="linearGradient2429">
-      <stop
-         offset="0"
-         style="stop-color:#fff"
-         id="stop3213" />
-      <stop
-         offset="1"
-         style="stop-color:#fff;stop-opacity:0"
-         id="stop3215" />
-    </linearGradient>
-    <linearGradient
-       x1="32.892"
-       y1="8.059"
-       gradientTransform="matrix(0.47785,0,0,0.55248,0.37225,-0.076128)"
-       x2="36.358"
-       gradientUnits="userSpaceOnUse"
-       y2="5.4565"
-       id="linearGradient2425">
-      <stop
-         offset="0"
-         style="stop-color:#fefefe"
-         id="stop8591" />
-      <stop
-         offset="1"
-         style="stop-color:#cbcbcb"
-         id="stop8593" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient5060">
-      <stop
-         offset="0"
-         id="stop5062" />
-      <stop
-         offset="1"
-         style="stop-opacity:0"
-         id="stop5064" />
-    </linearGradient>
-    <linearGradient
-       x1="302.86"
-       y1="366.65"
-       gradientTransform="matrix(2.7744,0,0,1.9697,-1892.2,-872.89)"
-       x2="302.86"
-       gradientUnits="userSpaceOnUse"
-       y2="609.51"
-       id="linearGradient2617">
-      <stop
-         offset="0"
-         style="stop-opacity:0"
-         id="stop5050-4" />
-      <stop
-         offset=".5"
-         id="stop5056-8" />
-      <stop
-         offset="1"
-         style="stop-opacity:0"
-         id="stop5052-1" />
-    </linearGradient>
-    <radialGradient
-       r="117.14"
-       gradientTransform="matrix(2.7744,0,0,1.9697,-1891.6,-872.89)"
-       cx="605.71"
-       cy="486.65"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient5060-3"
-       id="radialGradient2619" />
-    <linearGradient
-       id="linearGradient5060-3">
-      <stop
-         offset="0"
-         id="stop5062-3" />
-      <stop
-         offset="1"
-         style="stop-opacity:0"
-         id="stop5064-0" />
-    </linearGradient>
-    <radialGradient
-       r="117.14"
-       gradientTransform="matrix(-2.7744,0,0,1.9697,112.76,-872.89)"
-       cx="605.71"
-       cy="486.65"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient5060-3"
-       id="radialGradient2621" />
-    <linearGradient
-       x1="-28.531"
-       y1="17.956"
-       gradientTransform="translate(34.414,-14.501)"
-       x2="-28.531"
-       gradientUnits="userSpaceOnUse"
-       y2="37.503"
-       id="linearGradient3019">
-      <stop
-         offset="0"
-         style="stop-color:#fff"
-         id="stop11113" />
-      <stop
-         offset=".91014"
-         style="stop-color:#cdcdcd"
-         id="stop11115" />
-      <stop
-         offset="1"
-         style="stop-color:#a1a1a1"
-         id="stop11117" />
-    </linearGradient>
-    <linearGradient
-       x1="9.8764"
-       y1="2.6015"
-       gradientTransform="translate(0.036304,2.9e-7)"
-       x2="9.8764"
-       gradientUnits="userSpaceOnUse"
-       y2="23.062"
-       id="linearGradient3021">
-      <stop
-         offset="0"
-         style="stop-color:#c1c1c1"
-         id="stop5159" />
-      <stop
-         offset="1"
-         style="stop-color:#909090"
-         id="stop5161" />
-    </linearGradient>
-    <linearGradient
-       x1="25.132"
-       y1="6.7287"
-       gradientTransform="matrix(0.37156,0,0,0.33344,-0.91752,-0.0025171)"
-       x2="25.132"
-       gradientUnits="userSpaceOnUse"
-       y2="47.013"
-       id="linearGradient3253">
-      <stop
-         offset="0"
-         style="stop-color:#f4f4f4"
-         id="stop3602-4" />
-      <stop
-         offset="1"
-         style="stop-color:#dbdbdb"
-         id="stop3604-6" />
-    </linearGradient>
-    <linearGradient
-       x1="-51.786"
-       y1="50.786"
-       gradientTransform="matrix(0.30004,0,0,0.31205,21.157,-0.37413)"
-       x2="-51.786"
-       gradientUnits="userSpaceOnUse"
-       y2="2.9062"
-       id="linearGradient3255">
-      <stop
-         offset="0"
-         style="stop-color:#8d8f8a"
-         id="stop3933" />
-      <stop
-         offset="1"
-         style="stop-color:#c1c1c1"
-         id="stop3935" />
-    </linearGradient>
-    <linearGradient
-       x1="32.892"
-       y1="8.059"
-       gradientTransform="matrix(0.37071,0,0,0.35485,-0.85666,-0.048951)"
-       x2="36.358"
-       gradientUnits="userSpaceOnUse"
-       y2="5.4565"
-       id="linearGradient3257">
-      <stop
-         offset="0"
-         style="stop-color:#fefefe"
-         id="stop8591-4" />
-      <stop
-         offset="1"
-         style="stop-color:#cbcbcb"
-         id="stop8593-8" />
-    </linearGradient>
-    <linearGradient
-       x1="17.289"
-       y1="2.1849"
-       gradientTransform="matrix(0.68443,0,0,0.68201,-0.21315,0.15692)"
-       x2="15.18"
-       gradientUnits="userSpaceOnUse"
-       y2="5.8215"
-       id="linearGradient3259">
-      <stop
-         offset="0"
-         style="stop-color:#c0c0c0"
-         id="stop4561" />
-      <stop
-         offset="1"
-         style="stop-color:#949492"
-         id="stop4563" />
-    </linearGradient>
-    <radialGradient
-       r="11.268"
-       gradientTransform="matrix(1.69,0,0,0.78074,-5.4127,6.4032)"
-       cx="7.8186"
-       cy="8.5609"
-       gradientUnits="userSpaceOnUse"
-       id="radialGradient3293">
-      <stop
-         offset="0"
-         style="stop-color:#f0c178"
-         id="stop3618" />
-      <stop
-         offset=".5"
-         style="stop-color:#e18941"
-         id="stop3270" />
-      <stop
-         offset="1"
-         style="stop-color:#ec4f18"
-         id="stop3620" />
-    </radialGradient>
-    <linearGradient
-       x1="9.7046"
-       y1="20.882"
-       gradientTransform="matrix(0.99458,0,0,0.74406,-0.30296,6.9688)"
-       x2="9.7046"
-       gradientUnits="userSpaceOnUse"
-       y2="4.303"
-       id="linearGradient3295">
-      <stop
-         offset="0"
-         style="stop-color:#bb2b12"
-         id="stop3624" />
-      <stop
-         offset="1"
-         style="stop-color:#cd7233"
-         id="stop3626" />
-    </linearGradient>
-    <radialGradient
-       r="10.273"
-       gradientTransform="matrix(-0.016802,1.0431,-1.7966,-0.016197,14.189,7.2971)"
-       cx="4.02"
-       cy="5.5927"
-       gradientUnits="userSpaceOnUse"
-       id="radialGradient3004-5-2">
-      <stop
-         offset="0"
-         style="stop-color:#fff"
-         id="stop3754-7-5" />
-      <stop
-         offset=".84754"
-         style="stop-color:#fff"
-         id="stop3760-0-0" />
-      <stop
-         offset="1"
-         style="stop-color:#fff;stop-opacity:0"
-         id="stop3756-4-9" />
-    </radialGradient>
-    <linearGradient
-       x1="18.031"
-       y1="16.408"
-       gradientTransform="matrix(0.44503,0,0,0.30102,2.8555,8.5638)"
-       x2="20.055"
-       gradientUnits="userSpaceOnUse"
-       y2="24.628"
-       id="linearGradient3001-8-3">
-      <stop
-         offset="0"
-         style="stop-color:#fff;stop-opacity:.27451"
-         id="stop2687-4-1" />
-      <stop
-         offset="1"
-         style="stop-color:#fff;stop-opacity:.078431"
-         id="stop2689-2-2" />
-    </linearGradient>
-    <linearGradient
-       x1="28.671"
-       y1="23.891"
-       gradientTransform="matrix(0,-0.33674,-0.33543,0,20.014,15.582)"
-       x2="1.31"
-       gradientUnits="userSpaceOnUse"
-       y2="23.891"
-       id="linearGradient2834">
-      <stop
-         offset="0"
-         style="stop-color:#d7e866"
-         id="stop2266" />
-      <stop
-         offset="1"
-         style="stop-color:#8cab2a"
-         id="stop2268" />
-    </linearGradient>
-    <linearGradient
-       x1="8.5273"
-       y1="33.332"
-       gradientTransform="matrix(0,0.39055,-0.38724,0,22.223,-1.7244)"
-       x2="57.411"
-       gradientUnits="userSpaceOnUse"
-       y2="33.332"
-       id="linearGradient2831">
-      <stop
-         offset="0"
-         style="stop-color:#fff"
-         id="stop4224" />
-      <stop
-         offset="1"
-         style="stop-color:#fff;stop-opacity:0"
-         id="stop4226" />
-    </linearGradient>
-    <radialGradient
-       r="2.5631"
-       cx="113.07"
-       cy="97.588"
-       gradientUnits="userSpaceOnUse"
-       fy="98"
-       fx="113.67"
-       id="radialGradient4241">
-      <stop
-         offset="0"
-         style="stop-color:#eee"
-         id="stop4243" />
-      <stop
-         offset=".16"
-         style="stop-color:#cecece"
-         id="stop4245" />
-      <stop
-         offset=".4675"
-         style="stop-color:#888"
-         id="stop4247" />
-      <stop
-         offset="1"
-         style="stop-color:#555"
-         id="stop4249" />
-    </radialGradient>
-    <radialGradient
-       r="2.5631"
-       gradientTransform="matrix(2.4957,0,0,2.4957,-223.98,-53.226)"
-       cx="113.07"
-       cy="97.588"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#radialGradient4241"
-       fy="98"
-       fx="113.67"
-       id="radialGradient8498" />
-    <radialGradient
-       r="78.728"
-       gradientTransform="matrix(0.10006,-0.023376,0.0082168,0.059717,-5.2741,-0.91135)"
-       cx="127.32"
-       cy="143.83"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient4035"
-       id="radialGradient8475" />
-    <linearGradient
-       id="linearGradient4035">
-      <stop
-         offset="0"
-         style="stop-color:#f5f5f5"
-         id="stop4037" />
-      <stop
-         offset=".47026"
-         style="stop-color:#e7e7e7"
-         id="stop4039" />
-      <stop
-         offset=".69349"
-         style="stop-color:#8c8c8c"
-         id="stop4041" />
-      <stop
-         offset=".83543"
-         style="stop-color:#ddd"
-         id="stop4043" />
-      <stop
-         offset="1"
-         style="stop-color:#a8a8a8"
-         id="stop4045" />
-    </linearGradient>
-    <radialGradient
-       r="78.728"
-       gradientTransform="matrix(0.092476,0,0,-0.087162,-1.5556,24.366)"
-       cx="142.62"
-       cy="191.85"
-       gradientUnits="userSpaceOnUse"
-       id="radialGradient8464">
-      <stop
-         offset="0"
-         style="stop-color:#fff"
-         id="stop7611-3" />
-      <stop
-         offset=".47026"
-         style="stop-color:#e7e7e7"
-         id="stop7677-2" />
-      <stop
-         offset=".67184"
-         style="stop-color:#8c8c8c"
-         id="stop7613-4" />
-      <stop
-         offset=".83543"
-         style="stop-color:#ddd"
-         id="stop7617-3" />
-      <stop
-         offset="1"
-         style="stop-color:#a8a8a8"
-         id="stop7615-6" />
-    </radialGradient>
-    <radialGradient
-       r="78.728"
-       gradientTransform="matrix(0.18615,-0.0031402,0.0013777,0.18068,-15.013,-20.636)"
-       cx="141.75"
-       cy="206.43"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient4035"
-       id="radialGradient8471" />
-    <radialGradient
-       r="21"
-       gradientTransform="matrix(0.52381,0,1.4569e-8,0.21429,-0.57143,11.5)"
-       cx="24"
-       cy="42"
-       gradientUnits="userSpaceOnUse"
-       id="radialGradient3248">
-      <stop
-         offset="0"
-         style="stop-color:#fff"
-         id="stop6312-6" />
-      <stop
-         offset="1"
-         style="stop-color:#fff;stop-opacity:0"
-         id="stop6314-6" />
-    </radialGradient>
-    <radialGradient
-       r="12"
-       gradientTransform="matrix(1.5194,0.0037157,-0.0030247,1.2368,-3.7373,0.067833)"
-       cx="7.2203"
-       cy="4.2333"
-       gradientUnits="userSpaceOnUse"
-       id="radialGradient4072">
-      <stop
-         offset="0"
-         style="stop-color:#e6e6e6"
-         id="stop7064-4" />
-      <stop
-         offset="1"
-         style="stop-color:#c8c8c8"
-         id="stop7060-2" />
-    </radialGradient>
-    <linearGradient
-       x1="9.599"
-       y1="13.499"
-       gradientTransform="matrix(0.98925,0,0,1.4696,0.12903,-10.339)"
-       x2="4.459"
-       gradientUnits="userSpaceOnUse"
-       y2="8.3495"
-       id="linearGradient2869">
-      <stop
-         offset="0"
-         style="stop-color:#969696"
-         id="stop3486-2" />
-      <stop
-         offset="1"
-         style="stop-color:#b4b4b4"
-         id="stop3488-0" />
-    </linearGradient>
-    <linearGradient
-       x1="12.277"
-       y1="37.206"
-       gradientTransform="matrix(0.73759,0,0,0.53933,-2.796,2.187)"
-       x2="12.222"
-       gradientUnits="userSpaceOnUse"
-       y2="33.759"
-       id="linearGradient8487">
-      <stop
-         offset="0"
-         style="stop-color:#eee"
-         id="stop4238-4" />
-      <stop
-         offset="1"
-         style="stop-color:#eee;stop-opacity:0"
-         id="stop4240-3" />
-    </linearGradient>
-    <linearGradient
-       x1="7.0625"
-       y1="35.281"
-       gradientTransform="matrix(0.73759,0,0,0.53933,-2.2092,1.4719)"
-       x2="24.688"
-       gradientUnits="userSpaceOnUse"
-       y2="35.281"
-       id="linearGradient8490">
-      <stop
-         offset="0"
-         id="stop6311" />
-      <stop
-         offset="1"
-         style="stop-color:#bbb;stop-opacity:0"
-         id="stop6313" />
-    </linearGradient>
-    <linearGradient
-       x1="53.991"
-       y1="87.896"
-       gradientTransform="matrix(0.19046,0,0,0.24853,0.090799,-3.4847)"
-       x2="53.991"
-       gradientUnits="userSpaceOnUse"
-       y2="104.28"
-       id="linearGradient2872">
-      <stop
-         offset="0"
-         style="stop-color:#7a7a7a"
-         id="stop2223-6" />
-      <stop
-         offset="1"
-         style="stop-color:#474747"
-         id="stop2219-1" />
-    </linearGradient>
-    <radialGradient
-       r="117.14"
-       gradientTransform="matrix(-0.022183,0,0,0.01086,16.259,17.381)"
-       cx="605.71"
-       cy="486.65"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient5060-0"
-       id="radialGradient2877" />
-    <linearGradient
-       id="linearGradient5060-0">
-      <stop
-         offset="0"
-         id="stop5062-9" />
-      <stop
-         offset="1"
-         style="stop-opacity:0"
-         id="stop5064-7" />
-    </linearGradient>
-    <radialGradient
-       r="117.14"
-       gradientTransform="matrix(0.022183,0,0,0.01086,7.7407,17.381)"
-       cx="605.71"
-       cy="486.65"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient5060-0"
-       id="radialGradient2880" />
-    <linearGradient
-       x1="302.86"
-       y1="366.65"
-       gradientTransform="matrix(0.037768,0,0,0.01086,-1.6503,17.381)"
-       x2="302.86"
-       gradientUnits="userSpaceOnUse"
-       y2="609.51"
-       id="linearGradient2883">
-      <stop
-         offset="0"
-         style="stop-opacity:0"
-         id="stop5050-0" />
-      <stop
-         offset=".5"
-         id="stop5056-1" />
-      <stop
-         offset="1"
-         style="stop-opacity:0"
-         id="stop5052-7" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#radialGradient4241"
-       id="radialGradient4747"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.4957,0,0,2.4957,-223.98,-53.226)"
-       cx="113.07"
-       cy="97.588"
-       fx="113.67"
-       fy="98"
-       r="2.5631" />
-    <linearGradient
-       x1="21.478"
-       y1="1.6845"
-       gradientTransform="matrix(0.47644,0,0,0.40577,-36.625,-0.80551)"
-       x2="21.478"
-       gradientUnits="userSpaceOnUse"
-       y2="6.5747"
-       id="linearGradient5605">
-      <stop
-         offset="0"
-         style="stop-color:#eeeeec"
-         id="stop6453" />
-      <stop
-         offset="1"
-         style="stop-color:#fff"
-         id="stop6455" />
-    </linearGradient>
-    <linearGradient
-       x1="28.671"
-       y1="23.891"
-       gradientTransform="matrix(0,-0.33674,-0.33543,0,20.014,15.582)"
-       x2="1.31"
-       gradientUnits="userSpaceOnUse"
-       y2="23.891"
-       id="linearGradient2834-9">
-      <stop
-         offset="0"
-         style="stop-color:#d7e866"
-         id="stop2266-1" />
-      <stop
-         offset="1"
-         style="stop-color:#8cab2a"
-         id="stop2268-1" />
-    </linearGradient>
-    <linearGradient
-       x1="8.5273"
-       y1="33.332"
-       gradientTransform="matrix(0,0.39055,-0.38724,0,22.223,-1.7244)"
-       x2="57.411"
-       gradientUnits="userSpaceOnUse"
-       y2="33.332"
-       id="linearGradient2831-9">
-      <stop
-         offset="0"
-         style="stop-color:#fff"
-         id="stop4224-4" />
-      <stop
-         offset="1"
-         style="stop-color:#fff;stop-opacity:0"
-         id="stop4226-7" />
-    </linearGradient>
-    <radialGradient
-       r="2.5631"
-       cx="113.07"
-       cy="97.588"
-       gradientUnits="userSpaceOnUse"
-       fy="98"
-       fx="113.67"
-       id="radialGradient4241-8">
-      <stop
-         offset="0"
-         style="stop-color:#eee"
-         id="stop4243-5" />
-      <stop
-         offset=".16"
-         style="stop-color:#cecece"
-         id="stop4245-2" />
-      <stop
-         offset=".4675"
-         style="stop-color:#888"
-         id="stop4247-3" />
-      <stop
-         offset="1"
-         style="stop-color:#555"
-         id="stop4249-1" />
-    </radialGradient>
-    <radialGradient
-       r="2.5631"
-       gradientTransform="matrix(2.4957,0,0,2.4957,-223.98,-53.226)"
-       cx="113.07"
-       cy="97.588"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#radialGradient4241-8"
-       fy="98"
-       fx="113.67"
-       id="radialGradient8498-1" />
-    <radialGradient
-       r="78.728"
-       gradientTransform="matrix(0.10006,-0.023376,0.0082168,0.059717,-5.2741,-0.91135)"
-       cx="127.32"
-       cy="143.83"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient4035-7"
-       id="radialGradient8475-7" />
-    <linearGradient
-       id="linearGradient4035-7">
-      <stop
-         offset="0"
-         style="stop-color:#f5f5f5"
-         id="stop4037-6" />
-      <stop
-         offset=".47026"
-         style="stop-color:#e7e7e7"
-         id="stop4039-4" />
-      <stop
-         offset=".69349"
-         style="stop-color:#8c8c8c"
-         id="stop4041-5" />
-      <stop
-         offset=".83543"
-         style="stop-color:#ddd"
-         id="stop4043-0" />
-      <stop
-         offset="1"
-         style="stop-color:#a8a8a8"
-         id="stop4045-2" />
-    </linearGradient>
-    <radialGradient
-       r="78.728"
-       gradientTransform="matrix(0.092476,0,0,-0.087162,-1.5556,24.366)"
-       cx="142.62"
-       cy="191.85"
-       gradientUnits="userSpaceOnUse"
-       id="radialGradient8464-7">
-      <stop
-         offset="0"
-         style="stop-color:#fff"
-         id="stop7611-3-2" />
-      <stop
-         offset=".47026"
-         style="stop-color:#e7e7e7"
-         id="stop7677-2-3" />
-      <stop
-         offset=".67184"
-         style="stop-color:#8c8c8c"
-         id="stop7613-4-2" />
-      <stop
-         offset=".83543"
-         style="stop-color:#ddd"
-         id="stop7617-3-2" />
-      <stop
-         offset="1"
-         style="stop-color:#a8a8a8"
-         id="stop7615-6-2" />
-    </radialGradient>
-    <radialGradient
-       r="78.728"
-       gradientTransform="matrix(0.18615,-0.0031402,0.0013777,0.18068,-15.013,-20.636)"
-       cx="141.75"
-       cy="206.43"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient4035-7"
-       id="radialGradient8471-3" />
-    <radialGradient
-       r="21"
-       gradientTransform="matrix(0.52381,0,1.4569e-8,0.21429,-0.57143,11.5)"
-       cx="24"
-       cy="42"
-       gradientUnits="userSpaceOnUse"
-       id="radialGradient3248-5">
-      <stop
-         offset="0"
-         style="stop-color:#fff"
-         id="stop6312-6-9" />
-      <stop
-         offset="1"
-         style="stop-color:#fff;stop-opacity:0"
-         id="stop6314-6-5" />
-    </radialGradient>
-    <radialGradient
-       r="12"
-       gradientTransform="matrix(1.5194,0.0037157,-0.0030247,1.2368,-3.7373,0.067833)"
-       cx="7.2203"
-       cy="4.2333"
-       gradientUnits="userSpaceOnUse"
-       id="radialGradient4072-4">
-      <stop
-         offset="0"
-         style="stop-color:#e6e6e6"
-         id="stop7064-4-2" />
-      <stop
-         offset="1"
-         style="stop-color:#c8c8c8"
-         id="stop7060-2-6" />
-    </radialGradient>
-    <linearGradient
-       x1="9.599"
-       y1="13.499"
-       gradientTransform="matrix(0.98925,0,0,1.4696,0.12903,-10.339)"
-       x2="4.459"
-       gradientUnits="userSpaceOnUse"
-       y2="8.3495"
-       id="linearGradient2869-6">
-      <stop
-         offset="0"
-         style="stop-color:#969696"
-         id="stop3486-2-0" />
-      <stop
-         offset="1"
-         style="stop-color:#b4b4b4"
-         id="stop3488-0-6" />
-    </linearGradient>
-    <linearGradient
-       x1="12.277"
-       y1="37.206"
-       gradientTransform="matrix(0.73759,0,0,0.53933,-2.796,2.187)"
-       x2="12.222"
-       gradientUnits="userSpaceOnUse"
-       y2="33.759"
-       id="linearGradient8487-5">
-      <stop
-         offset="0"
-         style="stop-color:#eee"
-         id="stop4238-4-4" />
-      <stop
-         offset="1"
-         style="stop-color:#eee;stop-opacity:0"
-         id="stop4240-3-9" />
-    </linearGradient>
-    <linearGradient
-       x1="7.0625"
-       y1="35.281"
-       gradientTransform="matrix(0.73759,0,0,0.53933,-2.2092,1.4719)"
-       x2="24.688"
-       gradientUnits="userSpaceOnUse"
-       y2="35.281"
-       id="linearGradient8490-6">
-      <stop
-         offset="0"
-         id="stop6311-1" />
-      <stop
-         offset="1"
-         style="stop-color:#bbb;stop-opacity:0"
-         id="stop6313-5" />
-    </linearGradient>
-    <linearGradient
-       x1="53.991"
-       y1="87.896"
-       gradientTransform="matrix(0.19046,0,0,0.24853,0.090799,-3.4847)"
-       x2="53.991"
-       gradientUnits="userSpaceOnUse"
-       y2="104.28"
-       id="linearGradient2872-0">
-      <stop
-         offset="0"
-         style="stop-color:#7a7a7a"
-         id="stop2223-6-9" />
-      <stop
-         offset="1"
-         style="stop-color:#474747"
-         id="stop2219-1-5" />
-    </linearGradient>
-    <radialGradient
-       r="117.14"
-       gradientTransform="matrix(-0.022183,0,0,0.01086,16.259,17.381)"
-       cx="605.71"
-       cy="486.65"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient5060-9"
-       id="radialGradient2877-6" />
-    <linearGradient
-       id="linearGradient5060-9">
-      <stop
-         offset="0"
-         id="stop5062-6" />
-      <stop
-         offset="1"
-         style="stop-opacity:0"
-         id="stop5064-2" />
-    </linearGradient>
-    <radialGradient
-       r="117.14"
-       gradientTransform="matrix(0.022183,0,0,0.01086,7.7407,17.381)"
-       cx="605.71"
-       cy="486.65"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient5060-9"
-       id="radialGradient2880-4" />
-    <linearGradient
-       x1="302.86"
-       y1="366.65"
-       gradientTransform="matrix(0.037768,0,0,0.01086,-1.6503,17.381)"
-       x2="302.86"
-       gradientUnits="userSpaceOnUse"
-       y2="609.51"
-       id="linearGradient2883-8">
-      <stop
-         offset="0"
-         style="stop-opacity:0"
-         id="stop5050-3" />
-      <stop
-         offset=".5"
-         id="stop5056-89" />
-      <stop
-         offset="1"
-         style="stop-opacity:0"
-         id="stop5052-5" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#radialGradient4241-8"
-       id="radialGradient4958"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.4957,0,0,2.4957,-223.98,-53.226)"
-       cx="113.07"
-       cy="97.588"
-       fx="113.67"
-       fy="98"
-       r="2.5631" />
-    <linearGradient
-       x1="12"
-       y1="10"
-       x2="12"
-       gradientUnits="userSpaceOnUse"
-       y2="3"
-       id="linearGradient6666">
-      <stop
-         offset="0"
-         style="stop-color:#787878"
-         id="stop6662" />
-      <stop
-         offset="1"
-         style="stop-color:#787878;stop-opacity:0"
-         id="stop6664" />
-    </linearGradient>
-    <radialGradient
-       r="19.125"
-       gradientTransform="matrix(.62745 0 0 .16993 -3.0588 13.634)"
-       cx="24"
-       cy="41.875"
-       gradientUnits="userSpaceOnUse"
-       id="radialGradient5591">
-      <stop
-         offset="0"
-         id="stop7614" />
-      <stop
-         offset="1"
-         style="stop-opacity:0"
-         id="stop7616" />
-    </radialGradient>
-    <linearGradient
-       x1="20.562"
-       y1="37"
-       gradientTransform="matrix(.48837 0 0 0.5 .27903 1.2499)"
-       x2="20.279"
-       gradientUnits="userSpaceOnUse"
-       y2="20"
-       id="linearGradient5583">
-      <stop
-         offset="0"
-         style="stop-color:#828282"
-         id="stop6868" />
-      <stop
-         offset="1"
-         style="stop-color:#aaa"
-         id="stop6870" />
-    </linearGradient>
-    <linearGradient
-       x1="11.519"
-       y1="20"
-       gradientTransform="matrix(.48837 0 0 0.5 .27903 1.2499)"
-       x2="11.506"
-       gradientUnits="userSpaceOnUse"
-       y2="37"
-       id="linearGradient5581">
-      <stop
-         offset="0"
-         style="stop-color:#fefefe"
-         id="stop8591-40" />
-      <stop
-         offset="1"
-         style="stop-color:#bebebe"
-         id="stop8593-9" />
-    </linearGradient>
-    <radialGradient
-       r="21"
-       gradientTransform="matrix(.46334 .0080418 -.0058515 .28835 .94804 9.495)"
-       cx="3.7591"
-       cy="11.918"
-       gradientUnits="userSpaceOnUse"
-       id="radialGradient5577">
-      <stop
-         offset="0"
-         style="stop-color:#fff"
-         id="stop6844" />
-      <stop
-         offset="1"
-         style="stop-color:#fff;stop-opacity:0"
-         id="stop6846" />
-    </radialGradient>
-    <linearGradient
-       x1="15.601"
-       y1="33"
-       gradientTransform="matrix(.48359 0 0 .45973 .39379 1.5874)"
-       x2="15.335"
-       gradientUnits="userSpaceOnUse"
-       y2="21"
-       id="linearGradient5564">
-      <stop
-         offset="0"
-         style="stop-color:#2e3436"
-         id="stop2368" />
-      <stop
-         offset="1"
-         style="stop-color:#555753"
-         id="stop2370" />
-    </linearGradient>
-    <linearGradient
-       x1="21.919"
-       y1="21"
-       gradientTransform="matrix(.48359 0 0 .45973 .39379 1.5874)"
-       x2="22.008"
-       gradientUnits="userSpaceOnUse"
-       y2="33"
-       id="linearGradient5562">
-      <stop
-         offset="0"
-         style="stop-color:#6e6e6e"
-         id="stop6830" />
-      <stop
-         offset="1"
-         style="stop-color:#1e1e1e"
-         id="stop6832" />
-    </linearGradient>
-    <radialGradient
-       r="13"
-       gradientTransform="matrix(.34490 -.0026213 0.00146 .19209 2.5148 9.5924)"
-       cx="11.537"
-       cy="15.28"
-       gradientUnits="userSpaceOnUse"
-       id="radialGradient5554">
-      <stop
-         offset="0"
-         style="stop-color:#fff"
-         id="stop2465" />
-      <stop
-         offset="1"
-         style="stop-color:#fff;stop-opacity:0"
-         id="stop2467" />
-    </radialGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#radialGradient5591"
-       id="radialGradient5083"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.62745,0,0,0.16993,-3.0588,13.634)"
-       cx="24"
-       cy="41.875"
-       r="19.125" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5581"
-       id="linearGradient5085"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.48837,0,0,0.5,0.27903,1.2499)"
-       x1="11.519"
-       y1="20"
-       x2="11.506"
-       y2="37" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5583"
-       id="linearGradient5087"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.48837,0,0,0.5,0.27903,1.2499)"
-       x1="20.562"
-       y1="37"
-       x2="20.279"
-       y2="20" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#radialGradient5577"
-       id="radialGradient5089"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.46334,0.0080418,-0.0058515,0.28835,0.94804,9.495)"
-       cx="3.7591"
-       cy="11.918"
-       r="21" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5562"
-       id="linearGradient5091"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.48359,0,0,0.45973,0.39379,1.5874)"
-       x1="21.919"
-       y1="21"
-       x2="22.008"
-       y2="33" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5564"
-       id="linearGradient5093"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.48359,0,0,0.45973,0.39379,1.5874)"
-       x1="15.601"
-       y1="33"
-       x2="15.335"
-       y2="21" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#radialGradient5554"
-       id="radialGradient5095"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.3449,-0.0026213,0.00146,0.19209,2.5148,9.5924)"
-       cx="11.537"
-       cy="15.28"
-       r="13" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6666"
-       id="linearGradient5097"
-       gradientUnits="userSpaceOnUse"
-       x1="12"
-       y1="10"
-       x2="12"
-       y2="3" />
-    <linearGradient
-       x1="5.5"
-       y1="-3"
-       x2="14.154"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient4456"
-       y2="18.844"
-       id="linearGradient2839" />
-    <linearGradient
-       x1="5.5"
-       y1="-3"
-       x2="13"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient4456"
-       y2="16"
-       id="linearGradient4462" />
-    <linearGradient
-       x1="-47.659"
-       y1="178.97"
-       gradientTransform="matrix(0.92957,0,0,0.99594,51.302,-181.74)"
-       x2="-42.818"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient7012-661-145-733-759-865-745-661-970-94-1-0"
-       y2="197.04"
-       id="linearGradient4322" />
-    <linearGradient
-       id="linearGradient7012-661-145-733-759-865-745-661-970-94-1-0">
-      <stop
-         offset="0"
-         style="stop-color:#f0c178"
-         id="stop3618-1-9" />
-      <stop
-         offset=".5"
-         style="stop-color:#e18941"
-         id="stop3270-5-6" />
-      <stop
-         offset="1"
-         style="stop-color:#ec4f18"
-         id="stop3620-9-3" />
-    </linearGradient>
-    <linearGradient
-       x1="-39.666"
-       y1="198.91"
-       gradientTransform="matrix(0.92957,0,0,0.99594,51.302,-181.74)"
-       x2="-46.583"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient3390-178-986-453-4-5"
-       y2="176.96"
-       id="linearGradient3732" />
-    <linearGradient
-       id="linearGradient3390-178-986-453-4-5">
-      <stop
-         offset="0"
-         style="stop-color:#bb2b12"
-         id="stop3624-8-6" />
-      <stop
-         offset="1"
-         style="stop-color:#cd7233"
-         id="stop3626-1-1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4456">
-      <stop
-         offset="0"
-         style="stop-color:#f6daae"
-         id="stop4458" />
-      <stop
-         offset="1"
-         style="stop-color:#f0c178;stop-opacity:0"
-         id="stop4460" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3390-178-986-453-4-5"
-       id="linearGradient5188"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.92957,0,0,0.99594,51.302,-181.74)"
-       x1="-39.666"
-       y1="198.91"
-       x2="-46.583"
-       y2="176.96" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient7012-661-145-733-759-865-745-661-970-94-1-0"
-       id="linearGradient5190"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.92957,0,0,0.99594,51.302,-181.74)"
-       x1="-47.659"
-       y1="178.97"
-       x2="-42.818"
-       y2="197.04" />
-    <linearGradient
-       x1="5.5"
-       y1="-3"
-       x2="14.154"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient4456-7"
-       y2="18.844"
-       id="linearGradient2839-6" />
-    <linearGradient
-       x1="5.5"
-       y1="-3"
-       x2="13"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient4456-7"
-       y2="16"
-       id="linearGradient4462-6" />
-    <linearGradient
-       x1="-40.64"
-       y1="182.98"
-       gradientTransform="matrix(0.92957,0,0,0.99594,51.302,-181.74)"
-       x2="-46.994"
-       gradientUnits="userSpaceOnUse"
-       y2="198.19"
-       id="linearGradient4324">
-      <stop
-         offset="0"
-         style="stop-color:#d7e866"
-         id="stop3641" />
-      <stop
-         offset=".64406"
-         style="stop-color:#98b438"
-         id="stop3643" />
-      <stop
-         offset="1"
-         style="stop-color:#a1ba49"
-         id="stop3645" />
-    </linearGradient>
-    <linearGradient
-       x1="-40.64"
-       y1="182.98"
-       gradientTransform="matrix(0.92957,0,0,0.99594,51.302,-181.74)"
-       x2="-46.994"
-       gradientUnits="userSpaceOnUse"
-       y2="198.19"
-       id="linearGradient4322-5">
-      <stop
-         offset="0"
-         style="stop-color:#d7e866"
-         id="stop3618-1-9-1" />
-      <stop
-         offset=".64198"
-         style="stop-color:#98b438"
-         id="stop3270-5-6-3" />
-      <stop
-         offset="1"
-         style="stop-color:#a1ba49"
-         id="stop3620-9-3-5" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4456-7">
-      <stop
-         offset="0"
-         style="stop-color:#e5f09a"
-         id="stop4458-2" />
-      <stop
-         offset="1"
-         style="stop-color:#d7e866;stop-opacity:0"
-         id="stop4460-5" />
-    </linearGradient>
-    <linearGradient
-       gradientUnits="userSpaceOnUse"
-       id="XMLID_45_"
-       y2="27.836672"
-       x2="74.587158"
-       y1="21.424805"
-       x1="68.175293">
-      <stop
-         offset="0"
-         style="stop-color:#babdb6;stop-opacity:1"
-         id="stop695" />
-      <stop
-         offset="1"
-         style="stop-color:#eeeeec;stop-opacity:1"
-         id="stop697" />
-    </linearGradient>
-    <linearGradient
-       gradientTransform="matrix(0.32937464,-0.18440234,0.2272317,0.42503946,63.110644,29.8148)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#XMLID_45_"
-       id="linearGradient6543"
-       y2="22.860907"
-       x2="24.190449"
-       y1="23.843431"
-       x1="22.225399" />
-    <linearGradient
-       gradientTransform="matrix(0.32429489,-0.1897767,0.23187135,0.40393918,63.404032,30.47844)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient2229"
-       id="linearGradient6531"
-       y2="27.087946"
-       x2="24.947838"
-       y1="21.144136"
-       x1="21.054403" />
-    <linearGradient
-       gradientTransform="matrix(1.3432519,-0.79619135,0.98307194,1.7344871,-329.42724,256.04227)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#XMLID_897_"
-       id="linearGradient6534"
-       y2="10.711433"
-       x2="296.93979"
-       y1="4.7592773"
-       x1="292.97168" />
-    <linearGradient
-       id="linearGradient2229">
-      <stop
-         offset="0"
-         style="stop-color:#e2e2e2;stop-opacity:1"
-         id="stop2231" />
-      <stop
-         offset="1"
-         style="stop-color:#d8d8d8;stop-opacity:1"
-         id="stop2233" />
-    </linearGradient>
-    <linearGradient
-       gradientTransform="matrix(0.30002427,-0.15885894,0.1590255,0.44281237,66.323263,29.078644)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient2229"
-       id="linearGradient6538"
-       y2="23.942537"
-       x2="24.32597"
-       y1="6.4603648"
-       x1="20.288025" />
-    <linearGradient
-       gradientUnits="userSpaceOnUse"
-       id="XMLID_897_"
-       y2="10.711433"
-       x2="296.93979"
-       y1="4.7592773"
-       x1="292.97168">
-      <stop
-         offset="0"
-         style="stop-color:#e8e8e5;stop-opacity:1"
-         id="stop45093" />
-      <stop
-         offset="1"
-         style="stop-color:#f0f0f0;stop-opacity:1"
-         id="stop45095" />
-    </linearGradient>
-    <linearGradient
-       gradientTransform="matrix(-1.6199036,0.64359508,0.87746896,1.8299675,548.24021,-170.70599)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#XMLID_897_"
-       id="linearGradient6541"
-       y2="9.9224663"
-       x2="296.44699"
-       y1="7.4534159"
-       x1="294.8241" />
-    <linearGradient
-       x1="-55.344"
-       y1="34.058"
-       gradientTransform="matrix(0.4153,0,0,0.43675,24.711,-5.7201)"
-       x2="-51.786"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient3931"
-       y2="2.9062"
-       id="linearGradient2908" />
-    <linearGradient
-       x1="25.132"
-       y1="6.7287"
-       gradientTransform="matrix(0.51431,0,0,0.46669,-5.8439,-5.2)"
-       x2="25.132"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient3600"
-       y2="47.013"
-       id="linearGradient2906" />
-    <linearGradient
-       x1="-56.333"
-       y1="17.518"
-       gradientTransform="matrix(0.4153,0,0,0.43675,30.711,0.27988)"
-       x2="-47.636"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient3931"
-       y2="-.10106"
-       id="linearGradient2992" />
-    <linearGradient
-       x1="25.132"
-       y1="6.7287"
-       gradientTransform="matrix(0.51431,0,0,0.46669,0.15615,0.79999)"
-       x2="25.132"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient3600"
-       y2="47.013"
-       id="linearGradient2990" />
-    <linearGradient
-       id="linearGradient3931">
-      <stop
-         offset="0"
-         style="stop-color:#787a75"
-         id="stop3933-0" />
-      <stop
-         offset="1"
-         style="stop-color:#cbcbcb"
-         id="stop3935-0" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient3600">
-      <stop
-         offset="0"
-         style="stop-color:#f4f4f4"
-         id="stop3602-7" />
-      <stop
-         offset="1"
-         style="stop-color:#dbdbdb"
-         id="stop3604-8" />
-    </linearGradient>
-    <linearGradient
-       x1="6.0602"
-       y1="19"
-       x2="5.8041"
-       gradientUnits="userSpaceOnUse"
-       y2="11"
-       id="linearGradient3621">
-      <stop
-         offset="0"
-         style="stop-color:#9d7d53"
-         id="stop3617" />
-      <stop
-         offset="1"
-         style="stop-color:#ad8757"
-         id="stop3619" />
-    </linearGradient>
-    <linearGradient
-       x1="22.452"
-       y1="30.05"
-       gradientTransform="matrix(0.41182,0,0,0.51282,-0.5502,-14.24)"
-       x2="22.452"
-       gradientUnits="userSpaceOnUse"
-       y2="40.186"
-       id="linearGradient2935">
-      <stop
-         offset="0"
-         style="stop-color:#787878"
-         id="stop3261" />
-      <stop
-         offset=".36564"
-         style="stop-color:#828282"
-         id="stop3263" />
-      <stop
-         offset="1"
-         style="stop-color:#464646"
-         id="stop3267" />
-    </linearGradient>
-    <linearGradient
-       x1="321.58"
-       y1="86.05"
-       gradientTransform="matrix(0.41035,0,0,0.51289,-121.99,-42.965)"
-       x2="321.58"
-       gradientUnits="userSpaceOnUse"
-       y2="96.245"
-       id="linearGradient2933">
-      <stop
-         offset="0"
-         style="stop-color:#787878"
-         id="stop3271" />
-      <stop
-         offset=".34447"
-         style="stop-color:#bebebe"
-         id="stop3273" />
-      <stop
-         offset=".37315"
-         style="stop-color:#c8c8c8"
-         id="stop3275" />
-      <stop
-         offset=".48991"
-         style="stop-color:#e6e6e6"
-         id="stop3277" />
-      <stop
-         offset="1"
-         style="stop-color:#8c8c8c"
-         id="stop3279" />
-    </linearGradient>
-    <linearGradient
-       x1="25.132"
-       y1="6.7287"
-       gradientTransform="matrix(0.51431,0,0,0.46669,-5.8439,-3.2)"
-       x2="25.132"
-       gradientUnits="userSpaceOnUse"
-       y2="47.013"
-       id="linearGradient2906-5">
-      <stop
-         offset="0"
-         style="stop-color:#c1a581"
-         id="stop3620-9" />
-      <stop
-         offset="1"
-         style="stop-color:#9b784b"
-         id="stop3622" />
-    </linearGradient>
-    <linearGradient
-       x1="-56.333"
-       y1="17.518"
-       gradientTransform="matrix(0.4153,0,0,0.43675,30.711,0.27988)"
-       x2="-47.636"
-       gradientUnits="userSpaceOnUse"
-       y2="-.10106"
-       id="linearGradient2992-9">
-      <stop
-         offset="0"
-         style="stop-color:#787a75"
-         id="stop3933-3" />
-      <stop
-         offset="1"
-         style="stop-color:#cbcbcb"
-         id="stop3935-7" />
-    </linearGradient>
-    <linearGradient
-       x1="25.132"
-       y1="6.7287"
-       gradientTransform="matrix(0.51431,0,0,0.46669,0.15615,0.79999)"
-       x2="25.132"
-       gradientUnits="userSpaceOnUse"
-       y2="47.013"
-       id="linearGradient2990-5">
-      <stop
-         offset="0"
-         style="stop-color:#f4f4f4"
-         id="stop3602-8" />
-      <stop
-         offset="1"
-         style="stop-color:#dbdbdb"
-         id="stop3604-61" />
-    </linearGradient>
-    <linearGradient
-       x1="173.1"
-       y1="75.319"
-       gradientTransform="matrix(0.13658,0,0,0.14121,-9.717,7.6392)"
-       x2="173.1"
-       gradientUnits="userSpaceOnUse"
-       y2="11.949"
-       id="linearGradient2700">
-      <stop
-         offset="0"
-         style="stop-color:#343435;stop-opacity:.97647"
-         id="stop2302" />
-      <stop
-         offset="1"
-         style="stop-color:#919295"
-         id="stop2304" />
-    </linearGradient>
-    <linearGradient
-       x1="41.542"
-       y1="68.292"
-       gradientTransform="matrix(0.13658,0,0,0.14121,7.9984,8.7019)"
-       x2="41.485"
-       gradientUnits="userSpaceOnUse"
-       y2="4.5363"
-       id="linearGradient2702">
-      <stop
-         offset="0"
-         style="stop-color:#333"
-         id="stop11106" />
-      <stop
-         offset="1"
-         style="stop-color:#333;stop-opacity:.61224"
-         id="stop11108" />
-    </linearGradient>
-    <radialGradient
-       r="6.6562"
-       gradientTransform="matrix(1.0388,0,0,0.83463,-3.35,0.21686)"
-       cx="15.414"
-       cy="13.078"
-       gradientUnits="userSpaceOnUse"
-       id="radialGradient2705">
-      <stop
-         offset="0"
-         style="stop-color:#fff"
-         id="stop4469" />
-      <stop
-         offset="1"
-         style="stop-color:#fff;stop-opacity:.24762"
-         id="stop4471" />
-    </radialGradient>
-    <radialGradient
-       r="8.3085"
-       cx="18.241"
-       cy="21.818"
-       gradientUnits="userSpaceOnUse"
-       id="radialGradient4193">
-      <stop
-         offset="0"
-         style="stop-color:#a1a1a1;stop-opacity:.20784"
-         id="stop4456" />
-      <stop
-         offset="1"
-         style="stop-color:#a1a1a1;stop-opacity:.67843"
-         id="stop4458-7" />
-    </radialGradient>
-    <linearGradient
-       x1="-172.65"
-       y1="99.667"
-       gradientTransform="matrix(0.13658,0,0,0.14121,42.855,6.039)"
-       x2="-166.64"
-       gradientUnits="userSpaceOnUse"
-       y2="93.654"
-       id="linearGradient2710">
-      <stop
-         offset="0"
-         style="stop-color:#242424;stop-opacity:.99216"
-         id="stop11116" />
-      <stop
-         offset="1"
-         style="stop-color:#656565"
-         id="stop11118" />
-    </linearGradient>
-    <linearGradient
-       x1="32.892"
-       y1="8.059"
-       gradientTransform="matrix(0.54163,0,0,0.5203,-0.94021,-0.30186)"
-       x2="36.358"
-       gradientUnits="userSpaceOnUse"
-       y2="5.4565"
-       id="linearGradient4543">
-      <stop
-         offset="0"
-         style="stop-color:#fefefe"
-         id="stop8591-3" />
-      <stop
-         offset="1"
-         style="stop-color:#cbcbcb"
-         id="stop8593-7" />
-    </linearGradient>
-    <linearGradient
-       x1="17.289"
-       y1="2.1849"
-       x2="15.18"
-       gradientUnits="userSpaceOnUse"
-       y2="5.8215"
-       id="linearGradient4565">
-      <stop
-         offset="0"
-         style="stop-color:#cacaca"
-         id="stop4561-2" />
-      <stop
-         offset="1"
-         style="stop-color:#949492"
-         id="stop4563-2" />
-    </linearGradient>
-    <linearGradient
-       x1="25.132"
-       y1="6.7287"
-       gradientTransform="matrix(0.54288,0,0,0.48891,-1.0291,-0.23377)"
-       x2="25.132"
-       gradientUnits="userSpaceOnUse"
-       y2="47.013"
-       id="linearGradient4545">
-      <stop
-         offset="0"
-         style="stop-color:#f4f4f4"
-         id="stop3602-3" />
-      <stop
-         offset="1"
-         style="stop-color:#dbdbdb"
-         id="stop3604-7" />
-    </linearGradient>
-    <linearGradient
-       x1="-51.786"
-       y1="50.786"
-       gradientTransform="matrix(0.43837,0,0,0.45754,31.224,-0.77865)"
-       x2="-51.786"
-       gradientUnits="userSpaceOnUse"
-       y2="2.9062"
-       id="linearGradient4547">
-      <stop
-         offset="0"
-         style="stop-color:#8d8f8a"
-         id="stop3933-2" />
-      <stop
-         offset="1"
-         style="stop-color:#cbcbcb"
-         id="stop3935-76" />
-    </linearGradient>
-    <linearGradient
-       x1="302.86"
-       y1="366.65"
-       gradientTransform="matrix(2.7744,0,0,1.9697,-1892.2,-872.89)"
-       x2="302.86"
-       gradientUnits="userSpaceOnUse"
-       y2="609.51"
-       id="linearGradient4532">
-      <stop
-         offset="0"
-         style="stop-opacity:0"
-         id="stop5050-6" />
-      <stop
-         offset=".5"
-         id="stop5056-0" />
-      <stop
-         offset="1"
-         style="stop-opacity:0"
-         id="stop5052-53" />
-    </linearGradient>
-    <radialGradient
-       r="117.14"
-       gradientTransform="matrix(2.7744,0,0,1.9697,-1891.6,-872.89)"
-       cx="605.71"
-       cy="486.65"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient5060-04"
-       id="radialGradient4534" />
-    <linearGradient
-       id="linearGradient5060-04">
-      <stop
-         offset="0"
-         id="stop5062-4" />
-      <stop
-         offset="1"
-         style="stop-opacity:0"
-         id="stop5064-1" />
-    </linearGradient>
-    <radialGradient
-       r="117.14"
-       gradientTransform="matrix(-2.7744,0,0,1.9697,112.76,-872.89)"
-       cx="605.71"
-       cy="486.65"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient5060-04"
-       id="radialGradient4536" />
-  </defs>
+     id="defs4"><linearGradient
+   id="linearGradient4327">
+  <stop
+     style="stop-color:#0000ff;stop-opacity:1;"
+     offset="0"
+     id="stop4329" />
+  <stop
+     id="stop4331"
+     offset="0.5"
+     style="stop-color:#0000ff;stop-opacity:1;" />
+  <stop
+     style="stop-color:#0000ff;stop-opacity:0;"
+     offset="1"
+     id="stop4333" />
+</linearGradient>
+<linearGradient
+   id="linearGradient4309">
+  <stop
+     id="stop4311"
+     offset="0"
+     style="stop-color:#fe0000;stop-opacity:1;" />
+  <stop
+     style="stop-color:#fe0000;stop-opacity:1;"
+     offset="0.5"
+     id="stop4313" />
+  <stop
+     id="stop4315"
+     offset="1"
+     style="stop-color:#fe0000;stop-opacity:0;" />
+</linearGradient>
+<linearGradient
+   id="linearGradient4184">
+  <stop
+     style="stop-color:#d81515;stop-opacity:1;"
+     offset="0"
+     id="stop4186" />
+  <stop
+     id="stop4192"
+     offset="0.5"
+     style="stop-color:#4dd728;stop-opacity:1;" />
+  <stop
+     style="stop-color:#2119b5;stop-opacity:1;"
+     offset="1"
+     id="stop4188" />
+</linearGradient>
+<linearGradient
+   id="linearGradient27229">
+  <stop
+     style="stop-color:#00fe1a;stop-opacity:1;"
+     offset="0"
+     id="stop27231" />
+  <stop
+     id="stop20982"
+     offset="0.5"
+     style="stop-color:#00fe1a;stop-opacity:1;" />
+  <stop
+     style="stop-color:#7f7f7f;stop-opacity:0;"
+     offset="1"
+     id="stop27233" />
+</linearGradient>
+<linearGradient
+   id="linearGradient20976">
+  <stop
+     id="stop20978"
+     offset="0"
+     style="stop-color:#7f7f7f;stop-opacity:1;" />
+  <stop
+     id="stop20980"
+     offset="1"
+     style="stop-color:#7f7f7f;stop-opacity:0;" />
+</linearGradient>
+<inkscape:perspective
+   sodipodi:type="inkscape:persp3d"
+   inkscape:vp_x="-50 : 600 : 1"
+   inkscape:vp_y="0 : 1000 : 0"
+   inkscape:vp_z="700 : 600 : 1"
+   inkscape:persp3d-origin="300 : 400 : 1"
+   id="perspective2460" />
+<linearGradient
+   id="linearGradient5197">
+  <stop
+     id="stop5199"
+     offset="0"
+     style="stop-color:#ffffff;stop-opacity:1;" />
+  <stop
+     id="stop5201"
+     offset="1"
+     style="stop-color:#f7f7f7;stop-opacity:1;" />
+</linearGradient>
+<linearGradient
+   id="linearGradient5175">
+  <stop
+     style="stop-color:#bdcccd;stop-opacity:1;"
+     offset="0"
+     id="stop5177" />
+  <stop
+     style="stop-color:#7979ff;stop-opacity:1;"
+     offset="1"
+     id="stop5179" />
+</linearGradient>
+<marker
+   inkscape:stockid="TriangleOutS"
+   orient="auto"
+   refY="0.0"
+   refX="0.0"
+   id="TriangleOutS"
+   style="overflow:visible">
+  <path
+     id="path3461"
+     d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
+     style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none"
+     transform="scale(0.2)" />
+</marker>
+<marker
+   inkscape:stockid="Arrow1Send"
+   orient="auto"
+   refY="0.0"
+   refX="0.0"
+   id="Arrow1Send"
+   style="overflow:visible;">
+  <path
+     id="path3327"
+     d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+     style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;"
+     transform="scale(0.2) rotate(180) translate(6,0)" />
+</marker>
+<marker
+   inkscape:stockid="Arrow2Mend"
+   orient="auto"
+   refY="0.0"
+   refX="0.0"
+   id="Arrow2Mend"
+   style="overflow:visible;">
+  <path
+     id="path3339"
+     style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
+     d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+     transform="scale(0.6) rotate(180) translate(0,0)" />
+</marker>
+<inkscape:perspective
+   sodipodi:type="inkscape:persp3d"
+   inkscape:vp_x="-50 : 600 : 1"
+   inkscape:vp_y="0 : 1000 : 0"
+   inkscape:vp_z="700 : 600 : 1"
+   inkscape:persp3d-origin="300 : 400 : 1"
+   id="perspective22" />
+<linearGradient
+   inkscape:collect="always"
+   xlink:href="#linearGradient5197"
+   id="linearGradient5203"
+   gradientUnits="userSpaceOnUse"
+   x1="40"
+   y1="1"
+   x2="40"
+   y2="16" />
+<inkscape:perspective
+   id="perspective3259"
+   inkscape:persp3d-origin="300 : 400 : 1"
+   inkscape:vp_z="700 : 600 : 1"
+   inkscape:vp_y="0 : 1000 : 0"
+   inkscape:vp_x="-50 : 600 : 1"
+   sodipodi:type="inkscape:persp3d" />
+<inkscape:perspective
+   id="perspective3280"
+   inkscape:persp3d-origin="300 : 400 : 1"
+   inkscape:vp_z="700 : 600 : 1"
+   inkscape:vp_y="0 : 1000 : 0"
+   inkscape:vp_x="-50 : 600 : 1"
+   sodipodi:type="inkscape:persp3d" />
+<inkscape:perspective
+   id="perspective3304"
+   inkscape:persp3d-origin="300 : 400 : 1"
+   inkscape:vp_z="700 : 600 : 1"
+   inkscape:vp_y="0 : 1000 : 0"
+   inkscape:vp_x="-50 : 600 : 1"
+   sodipodi:type="inkscape:persp3d" />
+<inkscape:perspective
+   id="perspective3330"
+   inkscape:persp3d-origin="300 : 400 : 1"
+   inkscape:vp_z="700 : 600 : 1"
+   inkscape:vp_y="0 : 1000 : 0"
+   inkscape:vp_x="-50 : 600 : 1"
+   sodipodi:type="inkscape:persp3d" />
+<inkscape:perspective
+   id="perspective3356"
+   inkscape:persp3d-origin="300 : 400 : 1"
+   inkscape:vp_z="700 : 600 : 1"
+   inkscape:vp_y="0 : 1000 : 0"
+   inkscape:vp_x="-50 : 600 : 1"
+   sodipodi:type="inkscape:persp3d" />
+<inkscape:perspective
+   id="perspective3380"
+   inkscape:persp3d-origin="300 : 400 : 1"
+   inkscape:vp_z="700 : 600 : 1"
+   inkscape:vp_y="0 : 1000 : 0"
+   inkscape:vp_x="-50 : 600 : 1"
+   sodipodi:type="inkscape:persp3d" />
+<inkscape:perspective
+   id="perspective3401"
+   inkscape:persp3d-origin="300 : 400 : 1"
+   inkscape:vp_z="700 : 600 : 1"
+   inkscape:vp_y="0 : 1000 : 0"
+   inkscape:vp_x="-50 : 600 : 1"
+   sodipodi:type="inkscape:persp3d" />
+<inkscape:perspective
+   id="perspective3420"
+   inkscape:persp3d-origin="300 : 400 : 1"
+   inkscape:vp_z="700 : 600 : 1"
+   inkscape:vp_y="0 : 1000 : 0"
+   inkscape:vp_x="-50 : 600 : 1"
+   sodipodi:type="inkscape:persp3d" />
+<inkscape:perspective
+   id="perspective3442"
+   inkscape:persp3d-origin="300 : 400 : 1"
+   inkscape:vp_z="700 : 600 : 1"
+   inkscape:vp_y="0 : 1000 : 0"
+   inkscape:vp_x="-50 : 600 : 1"
+   sodipodi:type="inkscape:persp3d" />
+<inkscape:perspective
+   id="perspective3464"
+   inkscape:persp3d-origin="300 : 400 : 1"
+   inkscape:vp_z="700 : 600 : 1"
+   inkscape:vp_y="0 : 1000 : 0"
+   inkscape:vp_x="-50 : 600 : 1"
+   sodipodi:type="inkscape:persp3d" />
+<inkscape:perspective
+   id="perspective3490"
+   inkscape:persp3d-origin="300 : 400 : 1"
+   inkscape:vp_z="700 : 600 : 1"
+   inkscape:vp_y="0 : 1000 : 0"
+   inkscape:vp_x="-50 : 600 : 1"
+   sodipodi:type="inkscape:persp3d" />
+<radialGradient
+   gradientUnits="userSpaceOnUse"
+   gradientTransform="matrix(0.93933,2.771444e-7,-2.74398e-7,0.930021,-2.994365,-0.94731)"
+   r="12.5625"
+   fy="16.40625"
+   fx="15"
+   cy="16.40625"
+   cx="15"
+   id="radialGradient4594"
+   xlink:href="#linearGradient4588"
+   inkscape:collect="always" />
+<linearGradient
+   id="linearGradient4588">
+  <stop
+     id="stop4590"
+     offset="0"
+     style="stop-color:#494949;stop-opacity:1;" />
+  <stop
+     id="stop4592"
+     offset="1"
+     style="stop-color:#262626;stop-opacity:0;" />
+</linearGradient>
+<inkscape:perspective
+   id="perspective3517"
+   inkscape:persp3d-origin="300 : 400 : 1"
+   inkscape:vp_z="700 : 600 : 1"
+   inkscape:vp_y="0 : 1000 : 0"
+   inkscape:vp_x="-50 : 600 : 1"
+   sodipodi:type="inkscape:persp3d" />
+<inkscape:perspective
+   id="perspective3536"
+   inkscape:persp3d-origin="300 : 400 : 1"
+   inkscape:vp_z="700 : 600 : 1"
+   inkscape:vp_y="0 : 1000 : 0"
+   inkscape:vp_x="-50 : 600 : 1"
+   sodipodi:type="inkscape:persp3d" />
+<inkscape:perspective
+   id="perspective3556"
+   inkscape:persp3d-origin="300 : 400 : 1"
+   inkscape:vp_z="700 : 600 : 1"
+   inkscape:vp_y="0 : 1000 : 0"
+   inkscape:vp_x="-50 : 600 : 1"
+   sodipodi:type="inkscape:persp3d" />
+<inkscape:perspective
+   id="perspective3576"
+   inkscape:persp3d-origin="300 : 400 : 1"
+   inkscape:vp_z="700 : 600 : 1"
+   inkscape:vp_y="0 : 1000 : 0"
+   inkscape:vp_x="-50 : 600 : 1"
+   sodipodi:type="inkscape:persp3d" />
+<inkscape:perspective
+   id="perspective3597"
+   inkscape:persp3d-origin="300 : 400 : 1"
+   inkscape:vp_z="700 : 600 : 1"
+   inkscape:vp_y="0 : 1000 : 0"
+   inkscape:vp_x="-50 : 600 : 1"
+   sodipodi:type="inkscape:persp3d" />
+<inkscape:perspective
+   id="perspective3619"
+   inkscape:persp3d-origin="300 : 400 : 1"
+   inkscape:vp_z="700 : 600 : 1"
+   inkscape:vp_y="0 : 1000 : 0"
+   inkscape:vp_x="-50 : 600 : 1"
+   sodipodi:type="inkscape:persp3d" />
+<inkscape:perspective
+   id="perspective3762"
+   inkscape:persp3d-origin="300 : 400 : 1"
+   inkscape:vp_z="700 : 600 : 1"
+   inkscape:vp_y="0 : 1000 : 0"
+   inkscape:vp_x="-50 : 600 : 1"
+   sodipodi:type="inkscape:persp3d" />
+<linearGradient
+   inkscape:collect="always"
+   xlink:href="#linearGradient5175"
+   id="linearGradient3808"
+   gradientUnits="userSpaceOnUse"
+   x1="0"
+   y1="1"
+   x2="15"
+   y2="16"
+   gradientTransform="translate(-40,0)" />
+<linearGradient
+   inkscape:collect="always"
+   xlink:href="#linearGradient20976"
+   id="linearGradient4156"
+   gradientUnits="userSpaceOnUse"
+   gradientTransform="matrix(-1,0,0,-1,246.5,71)"
+   x1="19"
+   y1="11"
+   x2="19"
+   y2="23" />
+<linearGradient
+   inkscape:collect="always"
+   xlink:href="#linearGradient27229"
+   id="linearGradient4158"
+   gradientUnits="userSpaceOnUse"
+   gradientTransform="matrix(-1,0,0,-1,245.5,70)"
+   x1="19"
+   y1="11"
+   x2="19"
+   y2="23" />
+<linearGradient
+   inkscape:collect="always"
+   xlink:href="#linearGradient4184"
+   id="linearGradient4190"
+   x1="290"
+   y1="11"
+   x2="296"
+   y2="11"
+   gradientUnits="userSpaceOnUse" />
+<linearGradient
+   inkscape:collect="always"
+   xlink:href="#linearGradient20976"
+   id="linearGradient4305"
+   gradientUnits="userSpaceOnUse"
+   gradientTransform="matrix(-1,0,0,-1,246.5,71)"
+   x1="19"
+   y1="11"
+   x2="19"
+   y2="23" />
+<linearGradient
+   inkscape:collect="always"
+   xlink:href="#linearGradient4309"
+   id="linearGradient4307"
+   gradientUnits="userSpaceOnUse"
+   gradientTransform="matrix(-1,0,0,-1,245.5,70)"
+   x1="19"
+   y1="11"
+   x2="19"
+   y2="23" />
+<linearGradient
+   inkscape:collect="always"
+   xlink:href="#linearGradient20976"
+   id="linearGradient4323"
+   gradientUnits="userSpaceOnUse"
+   gradientTransform="matrix(-1,0,0,-1,246.5,71)"
+   x1="19"
+   y1="11"
+   x2="19"
+   y2="23" />
+<linearGradient
+   inkscape:collect="always"
+   xlink:href="#linearGradient4327"
+   id="linearGradient4325"
+   gradientUnits="userSpaceOnUse"
+   gradientTransform="matrix(-1,0,0,-1,245.5,70)"
+   x1="19"
+   y1="11"
+   x2="19"
+   y2="23" />
+<linearGradient
+   inkscape:collect="always"
+   xlink:href="#linearGradient20976"
+   id="linearGradient3125"
+   gradientUnits="userSpaceOnUse"
+   gradientTransform="matrix(-1,0,0,-1,246.5,71)"
+   x1="19"
+   y1="11"
+   x2="19"
+   y2="23" />
+<linearGradient
+   inkscape:collect="always"
+   xlink:href="#linearGradient4309"
+   id="linearGradient3127"
+   gradientUnits="userSpaceOnUse"
+   gradientTransform="matrix(-1,0,0,-1,245.5,70)"
+   x1="19"
+   y1="11"
+   x2="19"
+   y2="23" />
+<linearGradient
+   inkscape:collect="always"
+   xlink:href="#linearGradient20976"
+   id="linearGradient3147"
+   gradientUnits="userSpaceOnUse"
+   gradientTransform="matrix(-1,0,0,-1,246.5,71)"
+   x1="19"
+   y1="11"
+   x2="19"
+   y2="23" />
+<linearGradient
+   inkscape:collect="always"
+   xlink:href="#linearGradient4327"
+   id="linearGradient3149"
+   gradientUnits="userSpaceOnUse"
+   gradientTransform="matrix(-1,0,0,-1,245.5,70)"
+   x1="19"
+   y1="11"
+   x2="19"
+   y2="23" />
+<linearGradient
+   inkscape:collect="always"
+   xlink:href="#linearGradient20976"
+   id="linearGradient3173"
+   gradientUnits="userSpaceOnUse"
+   gradientTransform="matrix(-1,0,0,-1,246.5,71)"
+   x1="19"
+   y1="11"
+   x2="19"
+   y2="23" />
+<linearGradient
+   inkscape:collect="always"
+   xlink:href="#linearGradient4327"
+   id="linearGradient3175"
+   gradientUnits="userSpaceOnUse"
+   gradientTransform="matrix(-1,0,0,-1,245.5,70)"
+   x1="19"
+   y1="11"
+   x2="19"
+   y2="23" />
+<linearGradient
+   inkscape:collect="always"
+   xlink:href="#linearGradient20976"
+   id="linearGradient3177"
+   gradientUnits="userSpaceOnUse"
+   gradientTransform="matrix(-1,0,0,-1,246.5,71)"
+   x1="19"
+   y1="11"
+   x2="19"
+   y2="23" />
+<linearGradient
+   inkscape:collect="always"
+   xlink:href="#linearGradient4309"
+   id="linearGradient3179"
+   gradientUnits="userSpaceOnUse"
+   gradientTransform="matrix(-1,0,0,-1,245.5,70)"
+   x1="19"
+   y1="11"
+   x2="19"
+   y2="23" />
+<linearGradient
+   inkscape:collect="always"
+   xlink:href="#linearGradient5175-2"
+   id="linearGradient3808-6"
+   gradientUnits="userSpaceOnUse"
+   x1="0"
+   y1="1"
+   x2="15"
+   y2="16"
+   gradientTransform="translate(-40,0)" />
+<linearGradient
+   id="linearGradient5175-2">
+  <stop
+     style="stop-color:#bdcccd;stop-opacity:1;"
+     offset="0"
+     id="stop5177-8" />
+  <stop
+     style="stop-color:#7979ff;stop-opacity:1;"
+     offset="1"
+     id="stop5179-9" />
+</linearGradient>
+<linearGradient
+   inkscape:collect="always"
+   xlink:href="#linearGradient5175-9"
+   id="linearGradient3808-1"
+   gradientUnits="userSpaceOnUse"
+   x1="0"
+   y1="1"
+   x2="15"
+   y2="16"
+   gradientTransform="translate(-40,0)" />
+<linearGradient
+   id="linearGradient5175-9">
+  <stop
+     style="stop-color:#bdcccd;stop-opacity:1;"
+     offset="0"
+     id="stop5177-9" />
+  <stop
+     style="stop-color:#7979ff;stop-opacity:1;"
+     offset="1"
+     id="stop5179-6" />
+</linearGradient>
+<linearGradient
+   inkscape:collect="always"
+   xlink:href="#linearGradient5175-5"
+   id="linearGradient3808-3"
+   gradientUnits="userSpaceOnUse"
+   x1="0"
+   y1="1"
+   x2="15"
+   y2="16"
+   gradientTransform="translate(-40,0)" />
+<linearGradient
+   id="linearGradient5175-5">
+  <stop
+     style="stop-color:#bdcccd;stop-opacity:1;"
+     offset="0"
+     id="stop5177-94" />
+  <stop
+     style="stop-color:#7979ff;stop-opacity:1;"
+     offset="1"
+     id="stop5179-8" />
+</linearGradient>
+<linearGradient
+   inkscape:collect="always"
+   xlink:href="#linearGradient5175-3"
+   id="linearGradient3808-8"
+   gradientUnits="userSpaceOnUse"
+   x1="0"
+   y1="1"
+   x2="15"
+   y2="16"
+   gradientTransform="translate(-40,0)" />
+<linearGradient
+   id="linearGradient5175-3">
+  <stop
+     style="stop-color:#bdcccd;stop-opacity:1;"
+     offset="0"
+     id="stop5177-2" />
+  <stop
+     style="stop-color:#7979ff;stop-opacity:1;"
+     offset="1"
+     id="stop5179-3" />
+</linearGradient>
+<linearGradient
+   inkscape:collect="always"
+   xlink:href="#linearGradient5175-1"
+   id="linearGradient3808-19"
+   gradientUnits="userSpaceOnUse"
+   x1="0"
+   y1="1"
+   x2="15"
+   y2="16"
+   gradientTransform="translate(-40,0)" />
+<linearGradient
+   id="linearGradient5175-1">
+  <stop
+     style="stop-color:#bdcccd;stop-opacity:1;"
+     offset="0"
+     id="stop5177-5" />
+  <stop
+     style="stop-color:#7979ff;stop-opacity:1;"
+     offset="1"
+     id="stop5179-0" />
+</linearGradient>
+<linearGradient
+   inkscape:collect="always"
+   xlink:href="#linearGradient5175-6"
+   id="linearGradient3808-2"
+   gradientUnits="userSpaceOnUse"
+   x1="0"
+   y1="1"
+   x2="15"
+   y2="16"
+   gradientTransform="translate(-40,0)" />
+<linearGradient
+   id="linearGradient5175-6">
+  <stop
+     style="stop-color:#bdcccd;stop-opacity:1;"
+     offset="0"
+     id="stop5177-56" />
+  <stop
+     style="stop-color:#7979ff;stop-opacity:1;"
+     offset="1"
+     id="stop5179-63" />
+</linearGradient>
+<linearGradient
+   inkscape:collect="always"
+   xlink:href="#linearGradient5175-34"
+   id="linearGradient3808-9"
+   gradientUnits="userSpaceOnUse"
+   x1="0"
+   y1="1"
+   x2="15"
+   y2="16"
+   gradientTransform="translate(-40,0)" />
+<linearGradient
+   id="linearGradient5175-34">
+  <stop
+     style="stop-color:#bdcccd;stop-opacity:1;"
+     offset="0"
+     id="stop5177-6" />
+  <stop
+     style="stop-color:#7979ff;stop-opacity:1;"
+     offset="1"
+     id="stop5179-2" />
+</linearGradient>
+<linearGradient
+   inkscape:collect="always"
+   xlink:href="#linearGradient5175-97"
+   id="linearGradient3808-97"
+   gradientUnits="userSpaceOnUse"
+   x1="0"
+   y1="1"
+   x2="15"
+   y2="16"
+   gradientTransform="translate(-40,0)" />
+<linearGradient
+   id="linearGradient5175-97">
+  <stop
+     style="stop-color:#bdcccd;stop-opacity:1;"
+     offset="0"
+     id="stop5177-3" />
+  <stop
+     style="stop-color:#7979ff;stop-opacity:1;"
+     offset="1"
+     id="stop5179-5" />
+</linearGradient>
+<linearGradient
+   x1="72.422"
+   x2="72.422"
+   gradientTransform="matrix(0.14823,0,0,0.14944,5.4508,5.3567)"
+   y1="124.76"
+   gradientUnits="userSpaceOnUse"
+   y2="51.244"
+   id="linearGradient3123">
+  <stop
+     offset="0"
+     style="stop-color:#365f0e"
+     id="stop2492-3" />
+  <stop
+     offset="1"
+     style="stop-color:#84a718"
+     id="stop2494-8" />
+</linearGradient>
+<radialGradient
+   gradientTransform="matrix(0,0.35684,-0.3882,0,37.357,-10.114)"
+   r="31"
+   cy="51.695"
+   cx="69.448"
+   gradientUnits="userSpaceOnUse"
+   id="radialGradient3121">
+  <stop
+     offset="0"
+     style="stop-color:#eef87e"
+     id="stop3244-5" />
+  <stop
+     offset=".26238"
+     style="stop-color:#cde34f"
+     id="stop3246-9" />
+  <stop
+     offset=".66094"
+     style="stop-color:#93b723"
+     id="stop3248-7" />
+  <stop
+     offset="1"
+     style="stop-color:#5a7e0d"
+     id="stop3250-8" />
+</radialGradient>
+<linearGradient
+   x1="24.139"
+   y1="7.0479"
+   gradientTransform="matrix(0.2818,0,0,0.2801,12.186,12.022)"
+   x2="24.139"
+   gradientUnits="userSpaceOnUse"
+   y2="39.268"
+   id="linearGradient5530">
+  <stop
+     offset="0"
+     style="stop-color:#fff"
+     id="stop3945" />
+  <stop
+     offset="1"
+     style="stop-color:#fff;stop-opacity:0"
+     id="stop3947" />
+</linearGradient>
+<linearGradient
+   x1="302.86"
+   y1="366.65"
+   gradientTransform="matrix(0.035207,0,0,0.0082353,-0.72485,18.981)"
+   x2="302.86"
+   gradientUnits="userSpaceOnUse"
+   y2="609.51"
+   id="linearGradient2447">
+  <stop
+     offset="0"
+     style="stop-opacity:0"
+     id="stop5050" />
+  <stop
+     offset=".5"
+     id="stop5056" />
+  <stop
+     offset="1"
+     style="stop-opacity:0"
+     id="stop5052" />
+</linearGradient>
+<radialGradient
+   r="117.14"
+   gradientTransform="matrix(-0.012049,0,0,0.0082353,10.761,18.981)"
+   cx="605.71"
+   cy="486.65"
+   gradientUnits="userSpaceOnUse"
+   xlink:href="#linearGradient5060"
+   id="radialGradient2444" />
+<radialGradient
+   r="117.14"
+   gradientTransform="matrix(0.012049,0,0,0.0082353,13.239,18.981)"
+   cx="605.71"
+   cy="486.65"
+   gradientUnits="userSpaceOnUse"
+   xlink:href="#linearGradient5060"
+   id="radialGradient2441" />
+<linearGradient
+   x1="-51.786"
+   y1="50.786"
+   gradientTransform="matrix(0.39221,0,0,0.44736,29.199,-1.2387)"
+   x2="-51.786"
+   gradientUnits="userSpaceOnUse"
+   y2="2.9062"
+   id="linearGradient2438">
+  <stop
+     offset="0"
+     style="stop-color:#aaa"
+     id="stop3106" />
+  <stop
+     offset="1"
+     style="stop-color:#c8c8c8"
+     id="stop3108" />
+</linearGradient>
+<linearGradient
+   x1="25.132"
+   y1=".98521"
+   gradientTransform="matrix(0.48572,0,0,0.47803,0.34283,-0.70595)"
+   x2="25.132"
+   gradientUnits="userSpaceOnUse"
+   y2="47.013"
+   id="linearGradient2435">
+  <stop
+     offset="0"
+     style="stop-color:#f4f4f4"
+     id="stop3602" />
+  <stop
+     offset="1"
+     style="stop-color:#dbdbdb"
+     id="stop3604" />
+</linearGradient>
+<radialGradient
+   r="139.56"
+   gradientTransform="matrix(0.17021,0,0,-0.19072,1.1064,23.717)"
+   cx="92.09"
+   cy="102.7"
+   gradientUnits="userSpaceOnUse"
+   id="radialGradient2432">
+  <stop
+     offset="0"
+     style="stop-color:#b7b8b9"
+     id="stop41" />
+  <stop
+     offset=".17403"
+     style="stop-color:#ececec"
+     id="stop47" />
+  <stop
+     offset=".23908"
+     style="stop-color:#fafafa;stop-opacity:0"
+     id="stop49" />
+  <stop
+     offset=".30111"
+     style="stop-color:#fff;stop-opacity:0"
+     id="stop51" />
+  <stop
+     offset=".53130"
+     style="stop-color:#fafafa;stop-opacity:0"
+     id="stop53" />
+  <stop
+     offset=".84490"
+     style="stop-color:#ebecec;stop-opacity:0"
+     id="stop55" />
+  <stop
+     offset="1"
+     style="stop-color:#e1e2e3;stop-opacity:0"
+     id="stop57" />
+</radialGradient>
+<linearGradient
+   x1="24"
+   y1="2"
+   gradientTransform="matrix(0.45454,0,0,0.46512,1.0909,0.33723)"
+   x2="24"
+   gradientUnits="userSpaceOnUse"
+   y2="46.017"
+   id="linearGradient2429">
+  <stop
+     offset="0"
+     style="stop-color:#fff"
+     id="stop3213" />
+  <stop
+     offset="1"
+     style="stop-color:#fff;stop-opacity:0"
+     id="stop3215" />
+</linearGradient>
+<linearGradient
+   x1="32.892"
+   y1="8.059"
+   gradientTransform="matrix(0.47785,0,0,0.55248,0.37225,-0.076128)"
+   x2="36.358"
+   gradientUnits="userSpaceOnUse"
+   y2="5.4565"
+   id="linearGradient2425">
+  <stop
+     offset="0"
+     style="stop-color:#fefefe"
+     id="stop8591" />
+  <stop
+     offset="1"
+     style="stop-color:#cbcbcb"
+     id="stop8593" />
+</linearGradient>
+<linearGradient
+   id="linearGradient5060">
+  <stop
+     offset="0"
+     id="stop5062" />
+  <stop
+     offset="1"
+     style="stop-opacity:0"
+     id="stop5064" />
+</linearGradient>
+<linearGradient
+   x1="302.86"
+   y1="366.65"
+   gradientTransform="matrix(2.7744,0,0,1.9697,-1892.2,-872.89)"
+   x2="302.86"
+   gradientUnits="userSpaceOnUse"
+   y2="609.51"
+   id="linearGradient2617">
+  <stop
+     offset="0"
+     style="stop-opacity:0"
+     id="stop5050-4" />
+  <stop
+     offset=".5"
+     id="stop5056-8" />
+  <stop
+     offset="1"
+     style="stop-opacity:0"
+     id="stop5052-1" />
+</linearGradient>
+<radialGradient
+   r="117.14"
+   gradientTransform="matrix(2.7744,0,0,1.9697,-1891.6,-872.89)"
+   cx="605.71"
+   cy="486.65"
+   gradientUnits="userSpaceOnUse"
+   xlink:href="#linearGradient5060-3"
+   id="radialGradient2619" />
+<linearGradient
+   id="linearGradient5060-3">
+  <stop
+     offset="0"
+     id="stop5062-3" />
+  <stop
+     offset="1"
+     style="stop-opacity:0"
+     id="stop5064-0" />
+</linearGradient>
+<radialGradient
+   r="117.14"
+   gradientTransform="matrix(-2.7744,0,0,1.9697,112.76,-872.89)"
+   cx="605.71"
+   cy="486.65"
+   gradientUnits="userSpaceOnUse"
+   xlink:href="#linearGradient5060-3"
+   id="radialGradient2621" />
+<linearGradient
+   x1="-28.531"
+   y1="17.956"
+   gradientTransform="translate(34.414,-14.501)"
+   x2="-28.531"
+   gradientUnits="userSpaceOnUse"
+   y2="37.503"
+   id="linearGradient3019">
+  <stop
+     offset="0"
+     style="stop-color:#fff"
+     id="stop11113" />
+  <stop
+     offset=".91014"
+     style="stop-color:#cdcdcd"
+     id="stop11115" />
+  <stop
+     offset="1"
+     style="stop-color:#a1a1a1"
+     id="stop11117" />
+</linearGradient>
+<linearGradient
+   x1="9.8764"
+   y1="2.6015"
+   gradientTransform="translate(0.036304,2.9e-7)"
+   x2="9.8764"
+   gradientUnits="userSpaceOnUse"
+   y2="23.062"
+   id="linearGradient3021">
+  <stop
+     offset="0"
+     style="stop-color:#c1c1c1"
+     id="stop5159" />
+  <stop
+     offset="1"
+     style="stop-color:#909090"
+     id="stop5161" />
+</linearGradient>
+<linearGradient
+   x1="25.132"
+   y1="6.7287"
+   gradientTransform="matrix(0.37156,0,0,0.33344,-0.91752,-0.0025171)"
+   x2="25.132"
+   gradientUnits="userSpaceOnUse"
+   y2="47.013"
+   id="linearGradient3253">
+  <stop
+     offset="0"
+     style="stop-color:#f4f4f4"
+     id="stop3602-4" />
+  <stop
+     offset="1"
+     style="stop-color:#dbdbdb"
+     id="stop3604-6" />
+</linearGradient>
+<linearGradient
+   x1="-51.786"
+   y1="50.786"
+   gradientTransform="matrix(0.30004,0,0,0.31205,21.157,-0.37413)"
+   x2="-51.786"
+   gradientUnits="userSpaceOnUse"
+   y2="2.9062"
+   id="linearGradient3255">
+  <stop
+     offset="0"
+     style="stop-color:#8d8f8a"
+     id="stop3933" />
+  <stop
+     offset="1"
+     style="stop-color:#c1c1c1"
+     id="stop3935" />
+</linearGradient>
+<linearGradient
+   x1="32.892"
+   y1="8.059"
+   gradientTransform="matrix(0.37071,0,0,0.35485,-0.85666,-0.048951)"
+   x2="36.358"
+   gradientUnits="userSpaceOnUse"
+   y2="5.4565"
+   id="linearGradient3257">
+  <stop
+     offset="0"
+     style="stop-color:#fefefe"
+     id="stop8591-4" />
+  <stop
+     offset="1"
+     style="stop-color:#cbcbcb"
+     id="stop8593-8" />
+</linearGradient>
+<linearGradient
+   x1="17.289"
+   y1="2.1849"
+   gradientTransform="matrix(0.68443,0,0,0.68201,-0.21315,0.15692)"
+   x2="15.18"
+   gradientUnits="userSpaceOnUse"
+   y2="5.8215"
+   id="linearGradient3259">
+  <stop
+     offset="0"
+     style="stop-color:#c0c0c0"
+     id="stop4561" />
+  <stop
+     offset="1"
+     style="stop-color:#949492"
+     id="stop4563" />
+</linearGradient>
+<radialGradient
+   r="11.268"
+   gradientTransform="matrix(1.69,0,0,0.78074,-5.4127,6.4032)"
+   cx="7.8186"
+   cy="8.5609"
+   gradientUnits="userSpaceOnUse"
+   id="radialGradient3293">
+  <stop
+     offset="0"
+     style="stop-color:#f0c178"
+     id="stop3618" />
+  <stop
+     offset=".5"
+     style="stop-color:#e18941"
+     id="stop3270" />
+  <stop
+     offset="1"
+     style="stop-color:#ec4f18"
+     id="stop3620" />
+</radialGradient>
+<linearGradient
+   x1="9.7046"
+   y1="20.882"
+   gradientTransform="matrix(0.99458,0,0,0.74406,-0.30296,6.9688)"
+   x2="9.7046"
+   gradientUnits="userSpaceOnUse"
+   y2="4.303"
+   id="linearGradient3295">
+  <stop
+     offset="0"
+     style="stop-color:#bb2b12"
+     id="stop3624" />
+  <stop
+     offset="1"
+     style="stop-color:#cd7233"
+     id="stop3626" />
+</linearGradient>
+<radialGradient
+   r="10.273"
+   gradientTransform="matrix(-0.016802,1.0431,-1.7966,-0.016197,14.189,7.2971)"
+   cx="4.02"
+   cy="5.5927"
+   gradientUnits="userSpaceOnUse"
+   id="radialGradient3004-5-2">
+  <stop
+     offset="0"
+     style="stop-color:#fff"
+     id="stop3754-7-5" />
+  <stop
+     offset=".84754"
+     style="stop-color:#fff"
+     id="stop3760-0-0" />
+  <stop
+     offset="1"
+     style="stop-color:#fff;stop-opacity:0"
+     id="stop3756-4-9" />
+</radialGradient>
+<linearGradient
+   x1="18.031"
+   y1="16.408"
+   gradientTransform="matrix(0.44503,0,0,0.30102,2.8555,8.5638)"
+   x2="20.055"
+   gradientUnits="userSpaceOnUse"
+   y2="24.628"
+   id="linearGradient3001-8-3">
+  <stop
+     offset="0"
+     style="stop-color:#fff;stop-opacity:.27451"
+     id="stop2687-4-1" />
+  <stop
+     offset="1"
+     style="stop-color:#fff;stop-opacity:.078431"
+     id="stop2689-2-2" />
+</linearGradient>
+<linearGradient
+   x1="28.671"
+   y1="23.891"
+   gradientTransform="matrix(0,-0.33674,-0.33543,0,20.014,15.582)"
+   x2="1.31"
+   gradientUnits="userSpaceOnUse"
+   y2="23.891"
+   id="linearGradient2834">
+  <stop
+     offset="0"
+     style="stop-color:#d7e866"
+     id="stop2266" />
+  <stop
+     offset="1"
+     style="stop-color:#8cab2a"
+     id="stop2268" />
+</linearGradient>
+<linearGradient
+   x1="8.5273"
+   y1="33.332"
+   gradientTransform="matrix(0,0.39055,-0.38724,0,22.223,-1.7244)"
+   x2="57.411"
+   gradientUnits="userSpaceOnUse"
+   y2="33.332"
+   id="linearGradient2831">
+  <stop
+     offset="0"
+     style="stop-color:#fff"
+     id="stop4224" />
+  <stop
+     offset="1"
+     style="stop-color:#fff;stop-opacity:0"
+     id="stop4226" />
+</linearGradient>
+<radialGradient
+   r="2.5631"
+   cx="113.07"
+   cy="97.588"
+   gradientUnits="userSpaceOnUse"
+   fy="98"
+   fx="113.67"
+   id="radialGradient4241">
+  <stop
+     offset="0"
+     style="stop-color:#eee"
+     id="stop4243" />
+  <stop
+     offset=".16"
+     style="stop-color:#cecece"
+     id="stop4245" />
+  <stop
+     offset=".4675"
+     style="stop-color:#888"
+     id="stop4247" />
+  <stop
+     offset="1"
+     style="stop-color:#555"
+     id="stop4249" />
+</radialGradient>
+<radialGradient
+   r="2.5631"
+   gradientTransform="matrix(2.4957,0,0,2.4957,-223.98,-53.226)"
+   cx="113.07"
+   cy="97.588"
+   gradientUnits="userSpaceOnUse"
+   xlink:href="#radialGradient4241"
+   fy="98"
+   fx="113.67"
+   id="radialGradient8498" />
+<radialGradient
+   r="78.728"
+   gradientTransform="matrix(0.10006,-0.023376,0.0082168,0.059717,-5.2741,-0.91135)"
+   cx="127.32"
+   cy="143.83"
+   gradientUnits="userSpaceOnUse"
+   xlink:href="#linearGradient4035"
+   id="radialGradient8475" />
+<linearGradient
+   id="linearGradient4035">
+  <stop
+     offset="0"
+     style="stop-color:#f5f5f5"
+     id="stop4037" />
+  <stop
+     offset=".47026"
+     style="stop-color:#e7e7e7"
+     id="stop4039" />
+  <stop
+     offset=".69349"
+     style="stop-color:#8c8c8c"
+     id="stop4041" />
+  <stop
+     offset=".83543"
+     style="stop-color:#ddd"
+     id="stop4043" />
+  <stop
+     offset="1"
+     style="stop-color:#a8a8a8"
+     id="stop4045" />
+</linearGradient>
+<radialGradient
+   r="78.728"
+   gradientTransform="matrix(0.092476,0,0,-0.087162,-1.5556,24.366)"
+   cx="142.62"
+   cy="191.85"
+   gradientUnits="userSpaceOnUse"
+   id="radialGradient8464">
+  <stop
+     offset="0"
+     style="stop-color:#fff"
+     id="stop7611-3" />
+  <stop
+     offset=".47026"
+     style="stop-color:#e7e7e7"
+     id="stop7677-2" />
+  <stop
+     offset=".67184"
+     style="stop-color:#8c8c8c"
+     id="stop7613-4" />
+  <stop
+     offset=".83543"
+     style="stop-color:#ddd"
+     id="stop7617-3" />
+  <stop
+     offset="1"
+     style="stop-color:#a8a8a8"
+     id="stop7615-6" />
+</radialGradient>
+<radialGradient
+   r="78.728"
+   gradientTransform="matrix(0.18615,-0.0031402,0.0013777,0.18068,-15.013,-20.636)"
+   cx="141.75"
+   cy="206.43"
+   gradientUnits="userSpaceOnUse"
+   xlink:href="#linearGradient4035"
+   id="radialGradient8471" />
+<radialGradient
+   r="21"
+   gradientTransform="matrix(0.52381,0,1.4569e-8,0.21429,-0.57143,11.5)"
+   cx="24"
+   cy="42"
+   gradientUnits="userSpaceOnUse"
+   id="radialGradient3248">
+  <stop
+     offset="0"
+     style="stop-color:#fff"
+     id="stop6312-6" />
+  <stop
+     offset="1"
+     style="stop-color:#fff;stop-opacity:0"
+     id="stop6314-6" />
+</radialGradient>
+<radialGradient
+   r="12"
+   gradientTransform="matrix(1.5194,0.0037157,-0.0030247,1.2368,-3.7373,0.067833)"
+   cx="7.2203"
+   cy="4.2333"
+   gradientUnits="userSpaceOnUse"
+   id="radialGradient4072">
+  <stop
+     offset="0"
+     style="stop-color:#e6e6e6"
+     id="stop7064-4" />
+  <stop
+     offset="1"
+     style="stop-color:#c8c8c8"
+     id="stop7060-2" />
+</radialGradient>
+<linearGradient
+   x1="9.599"
+   y1="13.499"
+   gradientTransform="matrix(0.98925,0,0,1.4696,0.12903,-10.339)"
+   x2="4.459"
+   gradientUnits="userSpaceOnUse"
+   y2="8.3495"
+   id="linearGradient2869">
+  <stop
+     offset="0"
+     style="stop-color:#969696"
+     id="stop3486-2" />
+  <stop
+     offset="1"
+     style="stop-color:#b4b4b4"
+     id="stop3488-0" />
+</linearGradient>
+<linearGradient
+   x1="12.277"
+   y1="37.206"
+   gradientTransform="matrix(0.73759,0,0,0.53933,-2.796,2.187)"
+   x2="12.222"
+   gradientUnits="userSpaceOnUse"
+   y2="33.759"
+   id="linearGradient8487">
+  <stop
+     offset="0"
+     style="stop-color:#eee"
+     id="stop4238-4" />
+  <stop
+     offset="1"
+     style="stop-color:#eee;stop-opacity:0"
+     id="stop4240-3" />
+</linearGradient>
+<linearGradient
+   x1="7.0625"
+   y1="35.281"
+   gradientTransform="matrix(0.73759,0,0,0.53933,-2.2092,1.4719)"
+   x2="24.688"
+   gradientUnits="userSpaceOnUse"
+   y2="35.281"
+   id="linearGradient8490">
+  <stop
+     offset="0"
+     id="stop6311" />
+  <stop
+     offset="1"
+     style="stop-color:#bbb;stop-opacity:0"
+     id="stop6313" />
+</linearGradient>
+<linearGradient
+   x1="53.991"
+   y1="87.896"
+   gradientTransform="matrix(0.19046,0,0,0.24853,0.090799,-3.4847)"
+   x2="53.991"
+   gradientUnits="userSpaceOnUse"
+   y2="104.28"
+   id="linearGradient2872">
+  <stop
+     offset="0"
+     style="stop-color:#7a7a7a"
+     id="stop2223-6" />
+  <stop
+     offset="1"
+     style="stop-color:#474747"
+     id="stop2219-1" />
+</linearGradient>
+<radialGradient
+   r="117.14"
+   gradientTransform="matrix(-0.022183,0,0,0.01086,16.259,17.381)"
+   cx="605.71"
+   cy="486.65"
+   gradientUnits="userSpaceOnUse"
+   xlink:href="#linearGradient5060-0"
+   id="radialGradient2877" />
+<linearGradient
+   id="linearGradient5060-0">
+  <stop
+     offset="0"
+     id="stop5062-9" />
+  <stop
+     offset="1"
+     style="stop-opacity:0"
+     id="stop5064-7" />
+</linearGradient>
+<radialGradient
+   r="117.14"
+   gradientTransform="matrix(0.022183,0,0,0.01086,7.7407,17.381)"
+   cx="605.71"
+   cy="486.65"
+   gradientUnits="userSpaceOnUse"
+   xlink:href="#linearGradient5060-0"
+   id="radialGradient2880" />
+<linearGradient
+   x1="302.86"
+   y1="366.65"
+   gradientTransform="matrix(0.037768,0,0,0.01086,-1.6503,17.381)"
+   x2="302.86"
+   gradientUnits="userSpaceOnUse"
+   y2="609.51"
+   id="linearGradient2883">
+  <stop
+     offset="0"
+     style="stop-opacity:0"
+     id="stop5050-0" />
+  <stop
+     offset=".5"
+     id="stop5056-1" />
+  <stop
+     offset="1"
+     style="stop-opacity:0"
+     id="stop5052-7" />
+</linearGradient>
+<radialGradient
+   inkscape:collect="always"
+   xlink:href="#radialGradient4241"
+   id="radialGradient4747"
+   gradientUnits="userSpaceOnUse"
+   gradientTransform="matrix(2.4957,0,0,2.4957,-223.98,-53.226)"
+   cx="113.07"
+   cy="97.588"
+   fx="113.67"
+   fy="98"
+   r="2.5631" />
+<linearGradient
+   x1="21.478"
+   y1="1.6845"
+   gradientTransform="matrix(0.47644,0,0,0.40577,-36.625,-0.80551)"
+   x2="21.478"
+   gradientUnits="userSpaceOnUse"
+   y2="6.5747"
+   id="linearGradient5605">
+  <stop
+     offset="0"
+     style="stop-color:#eeeeec"
+     id="stop6453" />
+  <stop
+     offset="1"
+     style="stop-color:#fff"
+     id="stop6455" />
+</linearGradient>
+<linearGradient
+   x1="28.671"
+   y1="23.891"
+   gradientTransform="matrix(0,-0.33674,-0.33543,0,20.014,15.582)"
+   x2="1.31"
+   gradientUnits="userSpaceOnUse"
+   y2="23.891"
+   id="linearGradient2834-9">
+  <stop
+     offset="0"
+     style="stop-color:#d7e866"
+     id="stop2266-1" />
+  <stop
+     offset="1"
+     style="stop-color:#8cab2a"
+     id="stop2268-1" />
+</linearGradient>
+<linearGradient
+   x1="8.5273"
+   y1="33.332"
+   gradientTransform="matrix(0,0.39055,-0.38724,0,22.223,-1.7244)"
+   x2="57.411"
+   gradientUnits="userSpaceOnUse"
+   y2="33.332"
+   id="linearGradient2831-9">
+  <stop
+     offset="0"
+     style="stop-color:#fff"
+     id="stop4224-4" />
+  <stop
+     offset="1"
+     style="stop-color:#fff;stop-opacity:0"
+     id="stop4226-7" />
+</linearGradient>
+<radialGradient
+   r="2.5631"
+   cx="113.07"
+   cy="97.588"
+   gradientUnits="userSpaceOnUse"
+   fy="98"
+   fx="113.67"
+   id="radialGradient4241-8">
+  <stop
+     offset="0"
+     style="stop-color:#eee"
+     id="stop4243-5" />
+  <stop
+     offset=".16"
+     style="stop-color:#cecece"
+     id="stop4245-2" />
+  <stop
+     offset=".4675"
+     style="stop-color:#888"
+     id="stop4247-3" />
+  <stop
+     offset="1"
+     style="stop-color:#555"
+     id="stop4249-1" />
+</radialGradient>
+<radialGradient
+   r="2.5631"
+   gradientTransform="matrix(2.4957,0,0,2.4957,-223.98,-53.226)"
+   cx="113.07"
+   cy="97.588"
+   gradientUnits="userSpaceOnUse"
+   xlink:href="#radialGradient4241-8"
+   fy="98"
+   fx="113.67"
+   id="radialGradient8498-1" />
+<radialGradient
+   r="78.728"
+   gradientTransform="matrix(0.10006,-0.023376,0.0082168,0.059717,-5.2741,-0.91135)"
+   cx="127.32"
+   cy="143.83"
+   gradientUnits="userSpaceOnUse"
+   xlink:href="#linearGradient4035-7"
+   id="radialGradient8475-7" />
+<linearGradient
+   id="linearGradient4035-7">
+  <stop
+     offset="0"
+     style="stop-color:#f5f5f5"
+     id="stop4037-6" />
+  <stop
+     offset=".47026"
+     style="stop-color:#e7e7e7"
+     id="stop4039-4" />
+  <stop
+     offset=".69349"
+     style="stop-color:#8c8c8c"
+     id="stop4041-5" />
+  <stop
+     offset=".83543"
+     style="stop-color:#ddd"
+     id="stop4043-0" />
+  <stop
+     offset="1"
+     style="stop-color:#a8a8a8"
+     id="stop4045-2" />
+</linearGradient>
+<radialGradient
+   r="78.728"
+   gradientTransform="matrix(0.092476,0,0,-0.087162,-1.5556,24.366)"
+   cx="142.62"
+   cy="191.85"
+   gradientUnits="userSpaceOnUse"
+   id="radialGradient8464-7">
+  <stop
+     offset="0"
+     style="stop-color:#fff"
+     id="stop7611-3-2" />
+  <stop
+     offset=".47026"
+     style="stop-color:#e7e7e7"
+     id="stop7677-2-3" />
+  <stop
+     offset=".67184"
+     style="stop-color:#8c8c8c"
+     id="stop7613-4-2" />
+  <stop
+     offset=".83543"
+     style="stop-color:#ddd"
+     id="stop7617-3-2" />
+  <stop
+     offset="1"
+     style="stop-color:#a8a8a8"
+     id="stop7615-6-2" />
+</radialGradient>
+<radialGradient
+   r="78.728"
+   gradientTransform="matrix(0.18615,-0.0031402,0.0013777,0.18068,-15.013,-20.636)"
+   cx="141.75"
+   cy="206.43"
+   gradientUnits="userSpaceOnUse"
+   xlink:href="#linearGradient4035-7"
+   id="radialGradient8471-3" />
+<radialGradient
+   r="21"
+   gradientTransform="matrix(0.52381,0,1.4569e-8,0.21429,-0.57143,11.5)"
+   cx="24"
+   cy="42"
+   gradientUnits="userSpaceOnUse"
+   id="radialGradient3248-5">
+  <stop
+     offset="0"
+     style="stop-color:#fff"
+     id="stop6312-6-9" />
+  <stop
+     offset="1"
+     style="stop-color:#fff;stop-opacity:0"
+     id="stop6314-6-5" />
+</radialGradient>
+<radialGradient
+   r="12"
+   gradientTransform="matrix(1.5194,0.0037157,-0.0030247,1.2368,-3.7373,0.067833)"
+   cx="7.2203"
+   cy="4.2333"
+   gradientUnits="userSpaceOnUse"
+   id="radialGradient4072-4">
+  <stop
+     offset="0"
+     style="stop-color:#e6e6e6"
+     id="stop7064-4-2" />
+  <stop
+     offset="1"
+     style="stop-color:#c8c8c8"
+     id="stop7060-2-6" />
+</radialGradient>
+<linearGradient
+   x1="9.599"
+   y1="13.499"
+   gradientTransform="matrix(0.98925,0,0,1.4696,0.12903,-10.339)"
+   x2="4.459"
+   gradientUnits="userSpaceOnUse"
+   y2="8.3495"
+   id="linearGradient2869-6">
+  <stop
+     offset="0"
+     style="stop-color:#969696"
+     id="stop3486-2-0" />
+  <stop
+     offset="1"
+     style="stop-color:#b4b4b4"
+     id="stop3488-0-6" />
+</linearGradient>
+<linearGradient
+   x1="12.277"
+   y1="37.206"
+   gradientTransform="matrix(0.73759,0,0,0.53933,-2.796,2.187)"
+   x2="12.222"
+   gradientUnits="userSpaceOnUse"
+   y2="33.759"
+   id="linearGradient8487-5">
+  <stop
+     offset="0"
+     style="stop-color:#eee"
+     id="stop4238-4-4" />
+  <stop
+     offset="1"
+     style="stop-color:#eee;stop-opacity:0"
+     id="stop4240-3-9" />
+</linearGradient>
+<linearGradient
+   x1="7.0625"
+   y1="35.281"
+   gradientTransform="matrix(0.73759,0,0,0.53933,-2.2092,1.4719)"
+   x2="24.688"
+   gradientUnits="userSpaceOnUse"
+   y2="35.281"
+   id="linearGradient8490-6">
+  <stop
+     offset="0"
+     id="stop6311-1" />
+  <stop
+     offset="1"
+     style="stop-color:#bbb;stop-opacity:0"
+     id="stop6313-5" />
+</linearGradient>
+<linearGradient
+   x1="53.991"
+   y1="87.896"
+   gradientTransform="matrix(0.19046,0,0,0.24853,0.090799,-3.4847)"
+   x2="53.991"
+   gradientUnits="userSpaceOnUse"
+   y2="104.28"
+   id="linearGradient2872-0">
+  <stop
+     offset="0"
+     style="stop-color:#7a7a7a"
+     id="stop2223-6-9" />
+  <stop
+     offset="1"
+     style="stop-color:#474747"
+     id="stop2219-1-5" />
+</linearGradient>
+<radialGradient
+   r="117.14"
+   gradientTransform="matrix(-0.022183,0,0,0.01086,16.259,17.381)"
+   cx="605.71"
+   cy="486.65"
+   gradientUnits="userSpaceOnUse"
+   xlink:href="#linearGradient5060-9"
+   id="radialGradient2877-6" />
+<linearGradient
+   id="linearGradient5060-9">
+  <stop
+     offset="0"
+     id="stop5062-6" />
+  <stop
+     offset="1"
+     style="stop-opacity:0"
+     id="stop5064-2" />
+</linearGradient>
+<radialGradient
+   r="117.14"
+   gradientTransform="matrix(0.022183,0,0,0.01086,7.7407,17.381)"
+   cx="605.71"
+   cy="486.65"
+   gradientUnits="userSpaceOnUse"
+   xlink:href="#linearGradient5060-9"
+   id="radialGradient2880-4" />
+<linearGradient
+   x1="302.86"
+   y1="366.65"
+   gradientTransform="matrix(0.037768,0,0,0.01086,-1.6503,17.381)"
+   x2="302.86"
+   gradientUnits="userSpaceOnUse"
+   y2="609.51"
+   id="linearGradient2883-8">
+  <stop
+     offset="0"
+     style="stop-opacity:0"
+     id="stop5050-3" />
+  <stop
+     offset=".5"
+     id="stop5056-89" />
+  <stop
+     offset="1"
+     style="stop-opacity:0"
+     id="stop5052-5" />
+</linearGradient>
+<radialGradient
+   inkscape:collect="always"
+   xlink:href="#radialGradient4241-8"
+   id="radialGradient4958"
+   gradientUnits="userSpaceOnUse"
+   gradientTransform="matrix(2.4957,0,0,2.4957,-223.98,-53.226)"
+   cx="113.07"
+   cy="97.588"
+   fx="113.67"
+   fy="98"
+   r="2.5631" />
+<linearGradient
+   x1="12"
+   y1="10"
+   x2="12"
+   gradientUnits="userSpaceOnUse"
+   y2="3"
+   id="linearGradient6666">
+  <stop
+     offset="0"
+     style="stop-color:#787878"
+     id="stop6662" />
+  <stop
+     offset="1"
+     style="stop-color:#787878;stop-opacity:0"
+     id="stop6664" />
+</linearGradient>
+<radialGradient
+   r="19.125"
+   gradientTransform="matrix(.62745 0 0 .16993 -3.0588 13.634)"
+   cx="24"
+   cy="41.875"
+   gradientUnits="userSpaceOnUse"
+   id="radialGradient5591">
+  <stop
+     offset="0"
+     id="stop7614" />
+  <stop
+     offset="1"
+     style="stop-opacity:0"
+     id="stop7616" />
+</radialGradient>
+<linearGradient
+   x1="20.562"
+   y1="37"
+   gradientTransform="matrix(.48837 0 0 0.5 .27903 1.2499)"
+   x2="20.279"
+   gradientUnits="userSpaceOnUse"
+   y2="20"
+   id="linearGradient5583">
+  <stop
+     offset="0"
+     style="stop-color:#828282"
+     id="stop6868" />
+  <stop
+     offset="1"
+     style="stop-color:#aaa"
+     id="stop6870" />
+</linearGradient>
+<linearGradient
+   x1="11.519"
+   y1="20"
+   gradientTransform="matrix(.48837 0 0 0.5 .27903 1.2499)"
+   x2="11.506"
+   gradientUnits="userSpaceOnUse"
+   y2="37"
+   id="linearGradient5581">
+  <stop
+     offset="0"
+     style="stop-color:#fefefe"
+     id="stop8591-40" />
+  <stop
+     offset="1"
+     style="stop-color:#bebebe"
+     id="stop8593-9" />
+</linearGradient>
+<radialGradient
+   r="21"
+   gradientTransform="matrix(.46334 .0080418 -.0058515 .28835 .94804 9.495)"
+   cx="3.7591"
+   cy="11.918"
+   gradientUnits="userSpaceOnUse"
+   id="radialGradient5577">
+  <stop
+     offset="0"
+     style="stop-color:#fff"
+     id="stop6844" />
+  <stop
+     offset="1"
+     style="stop-color:#fff;stop-opacity:0"
+     id="stop6846" />
+</radialGradient>
+<linearGradient
+   x1="15.601"
+   y1="33"
+   gradientTransform="matrix(.48359 0 0 .45973 .39379 1.5874)"
+   x2="15.335"
+   gradientUnits="userSpaceOnUse"
+   y2="21"
+   id="linearGradient5564">
+  <stop
+     offset="0"
+     style="stop-color:#2e3436"
+     id="stop2368" />
+  <stop
+     offset="1"
+     style="stop-color:#555753"
+     id="stop2370" />
+</linearGradient>
+<linearGradient
+   x1="21.919"
+   y1="21"
+   gradientTransform="matrix(.48359 0 0 .45973 .39379 1.5874)"
+   x2="22.008"
+   gradientUnits="userSpaceOnUse"
+   y2="33"
+   id="linearGradient5562">
+  <stop
+     offset="0"
+     style="stop-color:#6e6e6e"
+     id="stop6830" />
+  <stop
+     offset="1"
+     style="stop-color:#1e1e1e"
+     id="stop6832" />
+</linearGradient>
+<radialGradient
+   r="13"
+   gradientTransform="matrix(.34490 -.0026213 0.00146 .19209 2.5148 9.5924)"
+   cx="11.537"
+   cy="15.28"
+   gradientUnits="userSpaceOnUse"
+   id="radialGradient5554">
+  <stop
+     offset="0"
+     style="stop-color:#fff"
+     id="stop2465" />
+  <stop
+     offset="1"
+     style="stop-color:#fff;stop-opacity:0"
+     id="stop2467" />
+</radialGradient>
+<radialGradient
+   inkscape:collect="always"
+   xlink:href="#radialGradient5591"
+   id="radialGradient5083"
+   gradientUnits="userSpaceOnUse"
+   gradientTransform="matrix(0.62745,0,0,0.16993,-3.0588,13.634)"
+   cx="24"
+   cy="41.875"
+   r="19.125" />
+<linearGradient
+   inkscape:collect="always"
+   xlink:href="#linearGradient5581"
+   id="linearGradient5085"
+   gradientUnits="userSpaceOnUse"
+   gradientTransform="matrix(0.48837,0,0,0.5,0.27903,1.2499)"
+   x1="11.519"
+   y1="20"
+   x2="11.506"
+   y2="37" />
+<linearGradient
+   inkscape:collect="always"
+   xlink:href="#linearGradient5583"
+   id="linearGradient5087"
+   gradientUnits="userSpaceOnUse"
+   gradientTransform="matrix(0.48837,0,0,0.5,0.27903,1.2499)"
+   x1="20.562"
+   y1="37"
+   x2="20.279"
+   y2="20" />
+<radialGradient
+   inkscape:collect="always"
+   xlink:href="#radialGradient5577"
+   id="radialGradient5089"
+   gradientUnits="userSpaceOnUse"
+   gradientTransform="matrix(0.46334,0.0080418,-0.0058515,0.28835,0.94804,9.495)"
+   cx="3.7591"
+   cy="11.918"
+   r="21" />
+<linearGradient
+   inkscape:collect="always"
+   xlink:href="#linearGradient5562"
+   id="linearGradient5091"
+   gradientUnits="userSpaceOnUse"
+   gradientTransform="matrix(0.48359,0,0,0.45973,0.39379,1.5874)"
+   x1="21.919"
+   y1="21"
+   x2="22.008"
+   y2="33" />
+<linearGradient
+   inkscape:collect="always"
+   xlink:href="#linearGradient5564"
+   id="linearGradient5093"
+   gradientUnits="userSpaceOnUse"
+   gradientTransform="matrix(0.48359,0,0,0.45973,0.39379,1.5874)"
+   x1="15.601"
+   y1="33"
+   x2="15.335"
+   y2="21" />
+<radialGradient
+   inkscape:collect="always"
+   xlink:href="#radialGradient5554"
+   id="radialGradient5095"
+   gradientUnits="userSpaceOnUse"
+   gradientTransform="matrix(0.3449,-0.0026213,0.00146,0.19209,2.5148,9.5924)"
+   cx="11.537"
+   cy="15.28"
+   r="13" />
+<linearGradient
+   inkscape:collect="always"
+   xlink:href="#linearGradient6666"
+   id="linearGradient5097"
+   gradientUnits="userSpaceOnUse"
+   x1="12"
+   y1="10"
+   x2="12"
+   y2="3" />
+<linearGradient
+   x1="5.5"
+   y1="-3"
+   x2="14.154"
+   gradientUnits="userSpaceOnUse"
+   xlink:href="#linearGradient4456"
+   y2="18.844"
+   id="linearGradient2839" />
+<linearGradient
+   x1="5.5"
+   y1="-3"
+   x2="13"
+   gradientUnits="userSpaceOnUse"
+   xlink:href="#linearGradient4456"
+   y2="16"
+   id="linearGradient4462" />
+<linearGradient
+   x1="-47.659"
+   y1="178.97"
+   gradientTransform="matrix(0.92957,0,0,0.99594,51.302,-181.74)"
+   x2="-42.818"
+   gradientUnits="userSpaceOnUse"
+   xlink:href="#linearGradient7012-661-145-733-759-865-745-661-970-94-1-0"
+   y2="197.04"
+   id="linearGradient4322" />
+<linearGradient
+   id="linearGradient7012-661-145-733-759-865-745-661-970-94-1-0">
+  <stop
+     offset="0"
+     style="stop-color:#f0c178"
+     id="stop3618-1-9" />
+  <stop
+     offset=".5"
+     style="stop-color:#e18941"
+     id="stop3270-5-6" />
+  <stop
+     offset="1"
+     style="stop-color:#ec4f18"
+     id="stop3620-9-3" />
+</linearGradient>
+<linearGradient
+   x1="-39.666"
+   y1="198.91"
+   gradientTransform="matrix(0.92957,0,0,0.99594,51.302,-181.74)"
+   x2="-46.583"
+   gradientUnits="userSpaceOnUse"
+   xlink:href="#linearGradient3390-178-986-453-4-5"
+   y2="176.96"
+   id="linearGradient3732" />
+<linearGradient
+   id="linearGradient3390-178-986-453-4-5">
+  <stop
+     offset="0"
+     style="stop-color:#bb2b12"
+     id="stop3624-8-6" />
+  <stop
+     offset="1"
+     style="stop-color:#cd7233"
+     id="stop3626-1-1" />
+</linearGradient>
+<linearGradient
+   id="linearGradient4456">
+  <stop
+     offset="0"
+     style="stop-color:#f6daae"
+     id="stop4458" />
+  <stop
+     offset="1"
+     style="stop-color:#f0c178;stop-opacity:0"
+     id="stop4460" />
+</linearGradient>
+<linearGradient
+   inkscape:collect="always"
+   xlink:href="#linearGradient3390-178-986-453-4-5"
+   id="linearGradient5188"
+   gradientUnits="userSpaceOnUse"
+   gradientTransform="matrix(0.92957,0,0,0.99594,51.302,-181.74)"
+   x1="-39.666"
+   y1="198.91"
+   x2="-46.583"
+   y2="176.96" />
+<linearGradient
+   inkscape:collect="always"
+   xlink:href="#linearGradient7012-661-145-733-759-865-745-661-970-94-1-0"
+   id="linearGradient5190"
+   gradientUnits="userSpaceOnUse"
+   gradientTransform="matrix(0.92957,0,0,0.99594,51.302,-181.74)"
+   x1="-47.659"
+   y1="178.97"
+   x2="-42.818"
+   y2="197.04" />
+<linearGradient
+   x1="5.5"
+   y1="-3"
+   x2="14.154"
+   gradientUnits="userSpaceOnUse"
+   xlink:href="#linearGradient4456-7"
+   y2="18.844"
+   id="linearGradient2839-6" />
+<linearGradient
+   x1="5.5"
+   y1="-3"
+   x2="13"
+   gradientUnits="userSpaceOnUse"
+   xlink:href="#linearGradient4456-7"
+   y2="16"
+   id="linearGradient4462-6" />
+<linearGradient
+   x1="-40.64"
+   y1="182.98"
+   gradientTransform="matrix(0.92957,0,0,0.99594,51.302,-181.74)"
+   x2="-46.994"
+   gradientUnits="userSpaceOnUse"
+   y2="198.19"
+   id="linearGradient4324">
+  <stop
+     offset="0"
+     style="stop-color:#d7e866"
+     id="stop3641" />
+  <stop
+     offset=".64406"
+     style="stop-color:#98b438"
+     id="stop3643" />
+  <stop
+     offset="1"
+     style="stop-color:#a1ba49"
+     id="stop3645" />
+</linearGradient>
+<linearGradient
+   x1="-40.64"
+   y1="182.98"
+   gradientTransform="matrix(0.92957,0,0,0.99594,51.302,-181.74)"
+   x2="-46.994"
+   gradientUnits="userSpaceOnUse"
+   y2="198.19"
+   id="linearGradient4322-5">
+  <stop
+     offset="0"
+     style="stop-color:#d7e866"
+     id="stop3618-1-9-1" />
+  <stop
+     offset=".64198"
+     style="stop-color:#98b438"
+     id="stop3270-5-6-3" />
+  <stop
+     offset="1"
+     style="stop-color:#a1ba49"
+     id="stop3620-9-3-5" />
+</linearGradient>
+<linearGradient
+   id="linearGradient4456-7">
+  <stop
+     offset="0"
+     style="stop-color:#e5f09a"
+     id="stop4458-2" />
+  <stop
+     offset="1"
+     style="stop-color:#d7e866;stop-opacity:0"
+     id="stop4460-5" />
+</linearGradient>
+<linearGradient
+   gradientUnits="userSpaceOnUse"
+   id="XMLID_45_"
+   y2="27.836672"
+   x2="74.587158"
+   y1="21.424805"
+   x1="68.175293">
+  <stop
+     offset="0"
+     style="stop-color:#babdb6;stop-opacity:1"
+     id="stop695" />
+  <stop
+     offset="1"
+     style="stop-color:#eeeeec;stop-opacity:1"
+     id="stop697" />
+</linearGradient>
+<linearGradient
+   gradientTransform="matrix(0.32937464,-0.18440234,0.2272317,0.42503946,63.110644,29.8148)"
+   gradientUnits="userSpaceOnUse"
+   xlink:href="#XMLID_45_"
+   id="linearGradient6543"
+   y2="22.860907"
+   x2="24.190449"
+   y1="23.843431"
+   x1="22.225399" />
+<linearGradient
+   gradientTransform="matrix(0.32429489,-0.1897767,0.23187135,0.40393918,63.404032,30.47844)"
+   gradientUnits="userSpaceOnUse"
+   xlink:href="#linearGradient2229"
+   id="linearGradient6531"
+   y2="27.087946"
+   x2="24.947838"
+   y1="21.144136"
+   x1="21.054403" />
+<linearGradient
+   gradientTransform="matrix(1.3432519,-0.79619135,0.98307194,1.7344871,-329.42724,256.04227)"
+   gradientUnits="userSpaceOnUse"
+   xlink:href="#XMLID_897_"
+   id="linearGradient6534"
+   y2="10.711433"
+   x2="296.93979"
+   y1="4.7592773"
+   x1="292.97168" />
+<linearGradient
+   id="linearGradient2229">
+  <stop
+     offset="0"
+     style="stop-color:#e2e2e2;stop-opacity:1"
+     id="stop2231" />
+  <stop
+     offset="1"
+     style="stop-color:#d8d8d8;stop-opacity:1"
+     id="stop2233" />
+</linearGradient>
+<linearGradient
+   gradientTransform="matrix(0.30002427,-0.15885894,0.1590255,0.44281237,66.323263,29.078644)"
+   gradientUnits="userSpaceOnUse"
+   xlink:href="#linearGradient2229"
+   id="linearGradient6538"
+   y2="23.942537"
+   x2="24.32597"
+   y1="6.4603648"
+   x1="20.288025" />
+<linearGradient
+   gradientUnits="userSpaceOnUse"
+   id="XMLID_897_"
+   y2="10.711433"
+   x2="296.93979"
+   y1="4.7592773"
+   x1="292.97168">
+  <stop
+     offset="0"
+     style="stop-color:#e8e8e5;stop-opacity:1"
+     id="stop45093" />
+  <stop
+     offset="1"
+     style="stop-color:#f0f0f0;stop-opacity:1"
+     id="stop45095" />
+</linearGradient>
+<linearGradient
+   gradientTransform="matrix(-1.6199036,0.64359508,0.87746896,1.8299675,548.24021,-170.70599)"
+   gradientUnits="userSpaceOnUse"
+   xlink:href="#XMLID_897_"
+   id="linearGradient6541"
+   y2="9.9224663"
+   x2="296.44699"
+   y1="7.4534159"
+   x1="294.8241" />
+<linearGradient
+   x1="-55.344"
+   y1="34.058"
+   gradientTransform="matrix(0.4153,0,0,0.43675,24.711,-5.7201)"
+   x2="-51.786"
+   gradientUnits="userSpaceOnUse"
+   xlink:href="#linearGradient3931"
+   y2="2.9062"
+   id="linearGradient2908" />
+<linearGradient
+   x1="25.132"
+   y1="6.7287"
+   gradientTransform="matrix(0.51431,0,0,0.46669,-5.8439,-5.2)"
+   x2="25.132"
+   gradientUnits="userSpaceOnUse"
+   xlink:href="#linearGradient3600"
+   y2="47.013"
+   id="linearGradient2906" />
+<linearGradient
+   x1="-56.333"
+   y1="17.518"
+   gradientTransform="matrix(0.4153,0,0,0.43675,30.711,0.27988)"
+   x2="-47.636"
+   gradientUnits="userSpaceOnUse"
+   xlink:href="#linearGradient3931"
+   y2="-.10106"
+   id="linearGradient2992" />
+<linearGradient
+   x1="25.132"
+   y1="6.7287"
+   gradientTransform="matrix(0.51431,0,0,0.46669,0.15615,0.79999)"
+   x2="25.132"
+   gradientUnits="userSpaceOnUse"
+   xlink:href="#linearGradient3600"
+   y2="47.013"
+   id="linearGradient2990" />
+<linearGradient
+   id="linearGradient3931">
+  <stop
+     offset="0"
+     style="stop-color:#787a75"
+     id="stop3933-0" />
+  <stop
+     offset="1"
+     style="stop-color:#cbcbcb"
+     id="stop3935-0" />
+</linearGradient>
+<linearGradient
+   id="linearGradient3600">
+  <stop
+     offset="0"
+     style="stop-color:#f4f4f4"
+     id="stop3602-7" />
+  <stop
+     offset="1"
+     style="stop-color:#dbdbdb"
+     id="stop3604-8" />
+</linearGradient>
+<linearGradient
+   x1="6.0602"
+   y1="19"
+   x2="5.8041"
+   gradientUnits="userSpaceOnUse"
+   y2="11"
+   id="linearGradient3621">
+  <stop
+     offset="0"
+     style="stop-color:#9d7d53"
+     id="stop3617" />
+  <stop
+     offset="1"
+     style="stop-color:#ad8757"
+     id="stop3619" />
+</linearGradient>
+<linearGradient
+   x1="22.452"
+   y1="30.05"
+   gradientTransform="matrix(0.41182,0,0,0.51282,-0.5502,-14.24)"
+   x2="22.452"
+   gradientUnits="userSpaceOnUse"
+   y2="40.186"
+   id="linearGradient2935">
+  <stop
+     offset="0"
+     style="stop-color:#787878"
+     id="stop3261" />
+  <stop
+     offset=".36564"
+     style="stop-color:#828282"
+     id="stop3263" />
+  <stop
+     offset="1"
+     style="stop-color:#464646"
+     id="stop3267" />
+</linearGradient>
+<linearGradient
+   x1="321.58"
+   y1="86.05"
+   gradientTransform="matrix(0.41035,0,0,0.51289,-121.99,-42.965)"
+   x2="321.58"
+   gradientUnits="userSpaceOnUse"
+   y2="96.245"
+   id="linearGradient2933">
+  <stop
+     offset="0"
+     style="stop-color:#787878"
+     id="stop3271" />
+  <stop
+     offset=".34447"
+     style="stop-color:#bebebe"
+     id="stop3273" />
+  <stop
+     offset=".37315"
+     style="stop-color:#c8c8c8"
+     id="stop3275" />
+  <stop
+     offset=".48991"
+     style="stop-color:#e6e6e6"
+     id="stop3277" />
+  <stop
+     offset="1"
+     style="stop-color:#8c8c8c"
+     id="stop3279" />
+</linearGradient>
+<linearGradient
+   x1="25.132"
+   y1="6.7287"
+   gradientTransform="matrix(0.51431,0,0,0.46669,-5.8439,-3.2)"
+   x2="25.132"
+   gradientUnits="userSpaceOnUse"
+   y2="47.013"
+   id="linearGradient2906-5">
+  <stop
+     offset="0"
+     style="stop-color:#c1a581"
+     id="stop3620-9" />
+  <stop
+     offset="1"
+     style="stop-color:#9b784b"
+     id="stop3622" />
+</linearGradient>
+<linearGradient
+   x1="-56.333"
+   y1="17.518"
+   gradientTransform="matrix(0.4153,0,0,0.43675,30.711,0.27988)"
+   x2="-47.636"
+   gradientUnits="userSpaceOnUse"
+   y2="-.10106"
+   id="linearGradient2992-9">
+  <stop
+     offset="0"
+     style="stop-color:#787a75"
+     id="stop3933-3" />
+  <stop
+     offset="1"
+     style="stop-color:#cbcbcb"
+     id="stop3935-7" />
+</linearGradient>
+<linearGradient
+   x1="25.132"
+   y1="6.7287"
+   gradientTransform="matrix(0.51431,0,0,0.46669,0.15615,0.79999)"
+   x2="25.132"
+   gradientUnits="userSpaceOnUse"
+   y2="47.013"
+   id="linearGradient2990-5">
+  <stop
+     offset="0"
+     style="stop-color:#f4f4f4"
+     id="stop3602-8" />
+  <stop
+     offset="1"
+     style="stop-color:#dbdbdb"
+     id="stop3604-61" />
+</linearGradient>
+<linearGradient
+   x1="173.1"
+   y1="75.319"
+   gradientTransform="matrix(0.13658,0,0,0.14121,-9.717,7.6392)"
+   x2="173.1"
+   gradientUnits="userSpaceOnUse"
+   y2="11.949"
+   id="linearGradient2700">
+  <stop
+     offset="0"
+     style="stop-color:#343435;stop-opacity:.97647"
+     id="stop2302" />
+  <stop
+     offset="1"
+     style="stop-color:#919295"
+     id="stop2304" />
+</linearGradient>
+<linearGradient
+   x1="41.542"
+   y1="68.292"
+   gradientTransform="matrix(0.13658,0,0,0.14121,7.9984,8.7019)"
+   x2="41.485"
+   gradientUnits="userSpaceOnUse"
+   y2="4.5363"
+   id="linearGradient2702">
+  <stop
+     offset="0"
+     style="stop-color:#333"
+     id="stop11106" />
+  <stop
+     offset="1"
+     style="stop-color:#333;stop-opacity:.61224"
+     id="stop11108" />
+</linearGradient>
+<radialGradient
+   r="6.6562"
+   gradientTransform="matrix(1.0388,0,0,0.83463,-3.35,0.21686)"
+   cx="15.414"
+   cy="13.078"
+   gradientUnits="userSpaceOnUse"
+   id="radialGradient2705">
+  <stop
+     offset="0"
+     style="stop-color:#fff"
+     id="stop4469" />
+  <stop
+     offset="1"
+     style="stop-color:#fff;stop-opacity:.24762"
+     id="stop4471" />
+</radialGradient>
+<radialGradient
+   r="8.3085"
+   cx="18.241"
+   cy="21.818"
+   gradientUnits="userSpaceOnUse"
+   id="radialGradient4193">
+  <stop
+     offset="0"
+     style="stop-color:#a1a1a1;stop-opacity:.20784"
+     id="stop4456" />
+  <stop
+     offset="1"
+     style="stop-color:#a1a1a1;stop-opacity:.67843"
+     id="stop4458-7" />
+</radialGradient>
+<linearGradient
+   x1="-172.65"
+   y1="99.667"
+   gradientTransform="matrix(0.13658,0,0,0.14121,42.855,6.039)"
+   x2="-166.64"
+   gradientUnits="userSpaceOnUse"
+   y2="93.654"
+   id="linearGradient2710">
+  <stop
+     offset="0"
+     style="stop-color:#242424;stop-opacity:.99216"
+     id="stop11116" />
+  <stop
+     offset="1"
+     style="stop-color:#656565"
+     id="stop11118" />
+</linearGradient>
+<linearGradient
+   x1="32.892"
+   y1="8.059"
+   gradientTransform="matrix(0.54163,0,0,0.5203,-0.94021,-0.30186)"
+   x2="36.358"
+   gradientUnits="userSpaceOnUse"
+   y2="5.4565"
+   id="linearGradient4543">
+  <stop
+     offset="0"
+     style="stop-color:#fefefe"
+     id="stop8591-3" />
+  <stop
+     offset="1"
+     style="stop-color:#cbcbcb"
+     id="stop8593-7" />
+</linearGradient>
+<linearGradient
+   x1="17.289"
+   y1="2.1849"
+   x2="15.18"
+   gradientUnits="userSpaceOnUse"
+   y2="5.8215"
+   id="linearGradient4565">
+  <stop
+     offset="0"
+     style="stop-color:#cacaca"
+     id="stop4561-2" />
+  <stop
+     offset="1"
+     style="stop-color:#949492"
+     id="stop4563-2" />
+</linearGradient>
+<linearGradient
+   x1="25.132"
+   y1="6.7287"
+   gradientTransform="matrix(0.54288,0,0,0.48891,-1.0291,-0.23377)"
+   x2="25.132"
+   gradientUnits="userSpaceOnUse"
+   y2="47.013"
+   id="linearGradient4545">
+  <stop
+     offset="0"
+     style="stop-color:#f4f4f4"
+     id="stop3602-3" />
+  <stop
+     offset="1"
+     style="stop-color:#dbdbdb"
+     id="stop3604-7" />
+</linearGradient>
+<linearGradient
+   x1="-51.786"
+   y1="50.786"
+   gradientTransform="matrix(0.43837,0,0,0.45754,31.224,-0.77865)"
+   x2="-51.786"
+   gradientUnits="userSpaceOnUse"
+   y2="2.9062"
+   id="linearGradient4547">
+  <stop
+     offset="0"
+     style="stop-color:#8d8f8a"
+     id="stop3933-2" />
+  <stop
+     offset="1"
+     style="stop-color:#cbcbcb"
+     id="stop3935-76" />
+</linearGradient>
+<linearGradient
+   x1="302.86"
+   y1="366.65"
+   gradientTransform="matrix(2.7744,0,0,1.9697,-1892.2,-872.89)"
+   x2="302.86"
+   gradientUnits="userSpaceOnUse"
+   y2="609.51"
+   id="linearGradient4532">
+  <stop
+     offset="0"
+     style="stop-opacity:0"
+     id="stop5050-6" />
+  <stop
+     offset=".5"
+     id="stop5056-0" />
+  <stop
+     offset="1"
+     style="stop-opacity:0"
+     id="stop5052-53" />
+</linearGradient>
+<radialGradient
+   r="117.14"
+   gradientTransform="matrix(2.7744,0,0,1.9697,-1891.6,-872.89)"
+   cx="605.71"
+   cy="486.65"
+   gradientUnits="userSpaceOnUse"
+   xlink:href="#linearGradient5060-04"
+   id="radialGradient4534" />
+<linearGradient
+   id="linearGradient5060-04">
+  <stop
+     offset="0"
+     id="stop5062-4" />
+  <stop
+     offset="1"
+     style="stop-opacity:0"
+     id="stop5064-1" />
+</linearGradient>
+<radialGradient
+   r="117.14"
+   gradientTransform="matrix(-2.7744,0,0,1.9697,112.76,-872.89)"
+   cx="605.71"
+   cy="486.65"
+   gradientUnits="userSpaceOnUse"
+   xlink:href="#linearGradient5060-04"
+   id="radialGradient4536" />
+<linearGradient
+   y1="-8.8818e-16"
+   x2="22"
+   gradientUnits="userSpaceOnUse"
+   xlink:href="#linearGradient4456-4"
+   y2="9"
+   id="linearGradient3052" />
+<linearGradient
+   x1="-55.189"
+   y1="183.48"
+   gradientTransform="matrix(0.92957,0,0,0.99594,51.302,-181.74)"
+   x2="-31.523"
+   gradientUnits="userSpaceOnUse"
+   xlink:href="#linearGradient7012-661-145-733-759-865-745-661-970-94-1-0-8"
+   y2="191.52"
+   id="linearGradient3050" />
+<linearGradient
+   x1="-55.189"
+   y1="182.48"
+   gradientTransform="matrix(0.92957,0,0,0.99594,51.302,-181.74)"
+   x2="-31.523"
+   gradientUnits="userSpaceOnUse"
+   xlink:href="#linearGradient7012-661-145-733-759-865-745-661-970-94-1-0-8"
+   y2="191.52"
+   id="linearGradient3048" />
+<linearGradient
+   x1="-31.523"
+   y1="191.52"
+   gradientTransform="matrix(0.92957,0,0,0.99594,51.302,-181.74)"
+   x2="-55.189"
+   gradientUnits="userSpaceOnUse"
+   xlink:href="#linearGradient3390-178-986-453-4-5-0"
+   y2="182.48"
+   id="linearGradient3046" />
+<linearGradient
+   x1="-31.523"
+   y1="190.51"
+   gradientTransform="matrix(0.92957,0,0,0.99594,51.302,-181.74)"
+   x2="-55.189"
+   gradientUnits="userSpaceOnUse"
+   xlink:href="#linearGradient3390-178-986-453-4-5-0"
+   y2="182.48"
+   id="linearGradient3044" />
+<linearGradient
+   id="linearGradient7012-661-145-733-759-865-745-661-970-94-1-0-8">
+  <stop
+     offset="0"
+     style="stop-color:#f0c178"
+     id="stop3618-1-9-14" />
+  <stop
+     offset=".5"
+     style="stop-color:#e18941"
+     id="stop3270-5-6-8" />
+  <stop
+     offset="1"
+     style="stop-color:#ec4f18"
+     id="stop3620-9-3-4" />
+</linearGradient>
+<linearGradient
+   id="linearGradient3390-178-986-453-4-5-0">
+  <stop
+     offset="0"
+     style="stop-color:#bb2b12"
+     id="stop3624-8-6-0" />
+  <stop
+     offset="1"
+     style="stop-color:#cd7233"
+     id="stop3626-1-1-2" />
+</linearGradient>
+<linearGradient
+   id="linearGradient4456-4">
+  <stop
+     offset="0"
+     style="stop-color:#f6daae"
+     id="stop4458-9" />
+  <stop
+     offset="1"
+     style="stop-color:#f0c178;stop-opacity:0"
+     id="stop4460-7" />
+</linearGradient>
+<linearGradient
+   inkscape:collect="always"
+   xlink:href="#linearGradient4456-4"
+   id="linearGradient4005"
+   gradientUnits="userSpaceOnUse"
+   y1="-8.8818e-16"
+   x2="22"
+   y2="9" />
+<linearGradient
+   x1="23.576"
+   y1="25.357"
+   gradientTransform="matrix(0.41578,-0.41749,0.51898,0.51462,-15.747,2.6504)"
+   x2="23.576"
+   gradientUnits="userSpaceOnUse"
+   y2="31.211"
+   id="linearGradient3841">
+  <stop
+     offset="0"
+     style="stop-color:#181818"
+     id="stop2541" />
+  <stop
+     offset=".13483"
+     style="stop-color:#dbdbdb"
+     id="stop2543" />
+  <stop
+     offset=".20224"
+     style="stop-color:#a4a4a4"
+     id="stop2545" />
+  <stop
+     offset=".26966"
+     style="stop-color:#fff"
+     id="stop2547" />
+  <stop
+     offset=".44650"
+     style="stop-color:#8d8d8d"
+     id="stop2549" />
+  <stop
+     offset=".57114"
+     style="stop-color:#959595"
+     id="stop2551" />
+  <stop
+     offset=".72038"
+     style="stop-color:#cecece"
+     id="stop2553" />
+  <stop
+     offset="1"
+     style="stop-color:#181818"
+     id="stop2555" />
+</linearGradient>
+<linearGradient
+   x1="30.038"
+   y1="24.99"
+   gradientTransform="matrix(0.40402,-0.40569,0.60738,0.60227,-17.868,0.69303)"
+   x2="30.038"
+   gradientUnits="userSpaceOnUse"
+   y2="30"
+   id="linearGradient3843">
+  <stop
+     offset="0"
+     style="stop-color:#565656"
+     id="stop2559" />
+  <stop
+     offset=".5"
+     style="stop-color:#9a9a9a"
+     id="stop2561" />
+  <stop
+     offset="1"
+     style="stop-color:#545454"
+     id="stop2563" />
+</linearGradient>
+<linearGradient
+   x1="30.038"
+   y1="24.99"
+   gradientTransform="matrix(0.40402,-0.40569,0.60738,0.60227,-17.983,0.80921)"
+   x2="30.038"
+   gradientUnits="userSpaceOnUse"
+   y2="30"
+   id="linearGradient3845">
+  <stop
+     offset="0"
+     style="stop-color:#b1b1b1"
+     id="stop2567" />
+  <stop
+     offset=".5"
+     style="stop-color:#fff"
+     id="stop2569" />
+  <stop
+     offset="1"
+     style="stop-color:#8f8f8f"
+     id="stop2571" />
+</linearGradient>
+<linearGradient
+   x1="30.038"
+   y1="24.99"
+   gradientTransform="matrix(0.40402,-0.40569,0.60738,0.60227,-17.466,0.28929)"
+   x2="30.038"
+   gradientUnits="userSpaceOnUse"
+   y2="30"
+   id="linearGradient3847">
+  <stop
+     offset="0"
+     style="stop-color:#565656"
+     id="stop2575" />
+  <stop
+     offset=".5"
+     style="stop-color:#9a9a9a"
+     id="stop2577" />
+  <stop
+     offset="1"
+     style="stop-color:#545454"
+     id="stop2579" />
+</linearGradient>
+<linearGradient
+   x1="30.038"
+   y1="24.99"
+   gradientTransform="matrix(0.40402,-0.40569,0.60738,0.60227,-17.581,0.40547)"
+   x2="30.038"
+   gradientUnits="userSpaceOnUse"
+   y2="30"
+   id="linearGradient3849">
+  <stop
+     offset="0"
+     style="stop-color:#b1b1b1"
+     id="stop2583" />
+  <stop
+     offset=".5"
+     style="stop-color:#fff"
+     id="stop2585" />
+  <stop
+     offset="1"
+     style="stop-color:#8f8f8f"
+     id="stop2587" />
+</linearGradient>
+<linearGradient
+   x1="30.038"
+   y1="24.99"
+   gradientTransform="matrix(0.40402,-0.40569,0.60738,0.60227,-17.062,-0.11641)"
+   x2="30.038"
+   gradientUnits="userSpaceOnUse"
+   y2="30"
+   id="linearGradient3851">
+  <stop
+     offset="0"
+     style="stop-color:#565656"
+     id="stop2591" />
+  <stop
+     offset=".5"
+     style="stop-color:#9a9a9a"
+     id="stop2593" />
+  <stop
+     offset="1"
+     style="stop-color:#545454"
+     id="stop2595" />
+</linearGradient>
+<linearGradient
+   x1="30.038"
+   y1="24.99"
+   gradientTransform="matrix(0.40402,-0.40569,0.60738,0.60227,-17.177,-2.197e-4)"
+   x2="30.038"
+   gradientUnits="userSpaceOnUse"
+   y2="30"
+   id="linearGradient3853">
+  <stop
+     offset="0"
+     style="stop-color:#b1b1b1"
+     id="stop2599" />
+  <stop
+     offset=".5"
+     style="stop-color:#fff"
+     id="stop2601" />
+  <stop
+     offset="1"
+     style="stop-color:#8f8f8f"
+     id="stop2603" />
+</linearGradient>
+<linearGradient
+   x1="9"
+   y1="29.057"
+   gradientTransform="matrix(0.40402,-0.40569,0.60738,0.60227,-17.637,0.46249)"
+   x2="9"
+   gradientUnits="userSpaceOnUse"
+   y2="26.03"
+   id="linearGradient3855">
+  <stop
+     offset="0"
+     style="stop-color:#ece5a5"
+     id="stop2607" />
+  <stop
+     offset="1"
+     style="stop-color:#fcfbf2"
+     id="stop2609" />
+</linearGradient>
+<linearGradient
+   x1="5.5179"
+   y1="37.372"
+   gradientTransform="matrix(0.37638,0.036153,0.0367,0.37487,-2.2183,-1.1331)"
+   x2="9.5221"
+   gradientUnits="userSpaceOnUse"
+   y2="41.392"
+   id="linearGradient3857">
+  <stop
+     offset="0"
+     style="stop-color:#dbce48"
+     id="stop2613" />
+  <stop
+     offset="1"
+     style="stop-color:#c5b625"
+     id="stop2615" />
+</linearGradient>
+<linearGradient
+   x1="-60.97"
+   y1="13.668"
+   gradientTransform="matrix(0.21875,1.3313e-4,-1.3319e-4,0.21865,23.078,-2.7267)"
+   x2="-60.908"
+   gradientUnits="userSpaceOnUse"
+   y2="114.54"
+   id="linearGradient4194">
+  <stop
+     offset="0"
+     style="stop-color:#fff"
+     id="stop3602-2" />
+  <stop
+     offset="1"
+     style="stop-color:#e6e6e6"
+     id="stop3604-60" />
+</linearGradient>
+<linearGradient
+   x1="11.536"
+   y1="44.952"
+   gradientTransform="matrix(0.48572,0,0,0.48993,0.34281,0.72163)"
+   x2="11.536"
+   gradientUnits="userSpaceOnUse"
+   y2="-1.0041"
+   id="linearGradient4196">
+  <stop
+     offset="0"
+     style="stop-color:#969696"
+     id="stop3106-9" />
+  <stop
+     offset="1"
+     style="stop-color:#bebebe"
+     id="stop3108-5" />
+</linearGradient>
+<linearGradient
+   x1="302.86"
+   y1="366.65"
+   gradientTransform="matrix(2.7744,0,0,1.9697,-1892.2,-872.89)"
+   x2="302.86"
+   gradientUnits="userSpaceOnUse"
+   y2="609.51"
+   id="linearGradient4532-7">
+  <stop
+     offset="0"
+     style="stop-opacity:0"
+     id="stop5050-1" />
+  <stop
+     offset=".5"
+     id="stop5056-6" />
+  <stop
+     offset="1"
+     style="stop-opacity:0"
+     id="stop5052-9" />
+</linearGradient>
+<radialGradient
+   r="117.14"
+   gradientTransform="matrix(2.7744,0,0,1.9697,-1891.6,-872.89)"
+   cx="605.71"
+   cy="486.65"
+   gradientUnits="userSpaceOnUse"
+   xlink:href="#linearGradient5060-30"
+   id="radialGradient4534-7" />
+<linearGradient
+   id="linearGradient5060-30">
+  <stop
+     offset="0"
+     id="stop5062-2" />
+  <stop
+     offset="1"
+     style="stop-opacity:0"
+     id="stop5064-01" />
+</linearGradient>
+<radialGradient
+   r="117.14"
+   gradientTransform="matrix(-2.7744,0,0,1.9697,112.76,-872.89)"
+   cx="605.71"
+   cy="486.65"
+   gradientUnits="userSpaceOnUse"
+   xlink:href="#linearGradient5060-30"
+   id="radialGradient4536-0" />
+<linearGradient
+   y2="70.518097"
+   x2="368.80499"
+   y1="70.004303"
+   x1="364.53201"
+   gradientUnits="userSpaceOnUse"
+   id="linearGradient3764">
+  <stop
+     id="stop3766"
+     style="stop-color:#EF9BA0"
+     offset="0" />
+  <stop
+     id="stop3768"
+     style="stop-color:#DA422B"
+     offset="1" />
+</linearGradient>
+<linearGradient
+   y2="177.205"
+   x2="109.303"
+   y1="176.645"
+   x1="112.152"
+   gradientTransform="matrix(0.6168621,0,0,0.6168621,464.44564,636.2255)"
+   gradientUnits="userSpaceOnUse"
+   id="linearGradient5286"
+   xlink:href="#id106-6"
+   inkscape:collect="always" />
+<linearGradient
+   y2="70.518097"
+   x2="368.80499"
+   y1="70.004303"
+   x1="364.53201"
+   gradientUnits="userSpaceOnUse"
+   id="linearGradient3757">
+  <stop
+     id="stop3759"
+     style="stop-color:#EF9BA0"
+     offset="0" />
+  <stop
+     id="stop3761"
+     style="stop-color:#DA422B"
+     offset="1" />
+</linearGradient>
+<linearGradient
+   y2="70.518097"
+   x2="368.80499"
+   y1="70.004303"
+   x1="364.53201"
+   gradientUnits="userSpaceOnUse"
+   id="linearGradient3750">
+  <stop
+     id="stop3752"
+     style="stop-color:#EF9BA0"
+     offset="0" />
+  <stop
+     id="stop3754"
+     style="stop-color:#DA422B"
+     offset="1" />
+</linearGradient>
+<linearGradient
+   y2="70.518097"
+   x2="368.80499"
+   y1="70.004303"
+   x1="364.53201"
+   gradientUnits="userSpaceOnUse"
+   id="linearGradient3743">
+  <stop
+     id="stop3745"
+     style="stop-color:#EF9BA0"
+     offset="0" />
+  <stop
+     id="stop3747"
+     style="stop-color:#DA422B"
+     offset="1" />
+</linearGradient>
+<linearGradient
+   y2="70.518097"
+   x2="368.80499"
+   y1="70.004303"
+   x1="364.53201"
+   gradientUnits="userSpaceOnUse"
+   id="linearGradient3736">
+  <stop
+     id="stop3738"
+     style="stop-color:#EF9BA0"
+     offset="0" />
+  <stop
+     id="stop3740"
+     style="stop-color:#DA422B"
+     offset="1" />
+</linearGradient>
+<linearGradient
+   y2="70.518097"
+   x2="368.80499"
+   y1="70.004303"
+   x1="364.53201"
+   gradientUnits="userSpaceOnUse"
+   id="id106-6">
+  <stop
+     id="stop381-4"
+     style="stop-color:#EF9BA0"
+     offset="0" />
+  <stop
+     id="stop383-3"
+     style="stop-color:#DA422B"
+     offset="1" />
+</linearGradient>
+<linearGradient
+   y2="110.835"
+   x2="116.524"
+   y1="131.308"
+   x1="128.826"
+   gradientUnits="userSpaceOnUse"
+   id="linearGradient3725">
+  <stop
+     id="stop3727"
+     style="stop-color:#1A0D0E"
+     offset="0" />
+  <stop
+     id="stop3729"
+     style="stop-color:#E77817"
+     offset="1" />
+</linearGradient>
+<linearGradient
+   y2="110.835"
+   x2="116.524"
+   y1="131.308"
+   x1="128.826"
+   gradientUnits="userSpaceOnUse"
+   id="linearGradient3718">
+  <stop
+     id="stop3720"
+     style="stop-color:#1A0D0E"
+     offset="0" />
+  <stop
+     id="stop3722"
+     style="stop-color:#E77817"
+     offset="1" />
+</linearGradient>
+<linearGradient
+   y2="118.687"
+   x2="128.21201"
+   y1="168.049"
+   x1="139.687"
+   gradientUnits="userSpaceOnUse"
+   id="linearGradient3711">
+  <stop
+     id="stop3713"
+     style="stop-color:#1A0D0E"
+     offset="0" />
+  <stop
+     id="stop3715"
+     style="stop-color:#843E2A"
+     offset="1" />
+</linearGradient>
+<linearGradient
+   y2="118.687"
+   x2="128.21201"
+   y1="168.049"
+   x1="139.687"
+   gradientUnits="userSpaceOnUse"
+   id="linearGradient3704">
+  <stop
+     id="stop3706"
+     style="stop-color:#1A0D0E"
+     offset="0" />
+  <stop
+     id="stop3708"
+     style="stop-color:#843E2A"
+     offset="1" />
+</linearGradient>
+<linearGradient
+   y2="118.687"
+   x2="128.21201"
+   y1="168.049"
+   x1="139.687"
+   gradientUnits="userSpaceOnUse"
+   id="id58-9">
+  <stop
+     id="stop247-7"
+     style="stop-color:#1A0D0E"
+     offset="0" />
+  <stop
+     id="stop249-7"
+     style="stop-color:#843E2A"
+     offset="1" />
+</linearGradient>
+<linearGradient
+   y2="110.835"
+   x2="116.524"
+   y1="131.308"
+   x1="128.826"
+   gradientUnits="userSpaceOnUse"
+   id="id67-8">
+  <stop
+     id="stop260-8"
+     style="stop-color:#1A0D0E"
+     offset="0" />
+  <stop
+     id="stop262-8"
+     style="stop-color:#E77817"
+     offset="1" />
+</linearGradient>
+<linearGradient
+   y2="139.76199"
+   x2="143.61501"
+   y1="134.62801"
+   x1="91.134003"
+   gradientUnits="userSpaceOnUse"
+   id="id87-8">
+  <stop
+     id="stop326-6"
+     style="stop-color:#43110e;stop-opacity:1"
+     offset="0" />
+  <stop
+     id="stop328-0"
+     style="stop-color:#E77817"
+     offset="0.560784" />
+  <stop
+     id="stop330-4"
+     style="stop-color:#d5cca3;stop-opacity:1"
+     offset="1" />
+</linearGradient>
+<linearGradient
+   y2="91.515999"
+   x2="85.941597"
+   y1="85.329201"
+   x1="83.996399"
+   gradientUnits="userSpaceOnUse"
+   id="linearGradient3684">
+  <stop
+     id="stop3686"
+     style="stop-opacity:1; stop-color:white"
+     offset="0" />
+  <stop
+     id="stop3688"
+     style="stop-opacity:0; stop-color:white"
+     offset="1" />
+</linearGradient>
+<mask
+   id="id16-6">
+  <linearGradient
+     y2="91.515999"
+     x2="85.941597"
+     y1="85.329201"
+     x1="83.996399"
+     gradientUnits="userSpaceOnUse"
+     id="id17-4">
+    <stop
+       id="stop74-3"
+       style="stop-opacity:1; stop-color:white"
+       offset="0" />
+    <stop
+       id="stop76-3"
+       style="stop-opacity:0; stop-color:white"
+       offset="1" />
+  </linearGradient>
+  <rect
+     id="rect78-3"
+     height="10.3911"
+     width="5.0668998"
+     y="83.226997"
+     x="82.435501"
+     style="fill:url(#id17-4)" />
+</mask>
+<linearGradient
+   y2="90.978401"
+   x2="98.317703"
+   y1="84.9562"
+   x1="105.893"
+   gradientUnits="userSpaceOnUse"
+   id="linearGradient3673">
+  <stop
+     id="stop3675"
+     style="stop-opacity:1; stop-color:white"
+     offset="0" />
+  <stop
+     id="stop3677"
+     style="stop-opacity:0; stop-color:white"
+     offset="1" />
+</linearGradient>
+<mask
+   id="id14-8">
+  <linearGradient
+     y2="90.978401"
+     x2="98.317703"
+     y1="84.9562"
+     x1="105.893"
+     gradientUnits="userSpaceOnUse"
+     id="id15-3">
+    <stop
+       id="stop66-1"
+       style="stop-opacity:1; stop-color:white"
+       offset="0" />
+    <stop
+       id="stop68-8"
+       style="stop-opacity:0; stop-color:white"
+       offset="1" />
+  </linearGradient>
+  <rect
+     id="rect70-9"
+     height="7.5611"
+     width="9.066"
+     y="84.186699"
+     x="97.572502"
+     style="fill:url(#id15-3)" />
+</mask>
+<linearGradient
+   y2="95.373398"
+   x2="96.237297"
+   y1="85.097"
+   x1="109.484"
+   gradientUnits="userSpaceOnUse"
+   id="linearGradient3662">
+  <stop
+     id="stop3664"
+     style="stop-opacity:1; stop-color:white"
+     offset="0" />
+  <stop
+     id="stop3666"
+     style="stop-opacity:0; stop-color:white"
+     offset="1" />
+</linearGradient>
+<mask
+   id="id12-9">
+  <linearGradient
+     y2="95.373398"
+     x2="96.237297"
+     y1="85.097"
+     x1="109.484"
+     gradientUnits="userSpaceOnUse"
+     id="id13-7">
+    <stop
+       id="stop58-5"
+       style="stop-opacity:1; stop-color:white"
+       offset="0" />
+    <stop
+       id="stop60-3"
+       style="stop-opacity:0; stop-color:white"
+       offset="1" />
+  </linearGradient>
+  <rect
+     id="rect62-8"
+     height="12.2285"
+     width="14.9803"
+     y="84.120903"
+     x="95.370201"
+     style="fill:url(#id13-7)" />
+</mask>
+<linearGradient
+   y2="88.3964"
+   x2="45.027302"
+   y1="85.191399"
+   x1="42.6605"
+   gradientUnits="userSpaceOnUse"
+   id="linearGradient3651">
+  <stop
+     id="stop3653"
+     style="stop-opacity:1; stop-color:white"
+     offset="0" />
+  <stop
+     id="stop3655"
+     style="stop-opacity:0; stop-color:white"
+     offset="1" />
+</linearGradient>
+<mask
+   id="id10-7">
+  <linearGradient
+     y2="88.3964"
+     x2="45.027302"
+     y1="85.191399"
+     x1="42.6605"
+     gradientUnits="userSpaceOnUse"
+     id="id11-4">
+    <stop
+       id="stop50-1"
+       style="stop-opacity:1; stop-color:white"
+       offset="0" />
+    <stop
+       id="stop52-8"
+       style="stop-opacity:0; stop-color:white"
+       offset="1" />
+  </linearGradient>
+  <rect
+     id="rect54-5"
+     height="5.1496"
+     width="5.0612001"
+     y="84.219101"
+     x="41.313301"
+     style="fill:url(#id11-4)" />
+</mask>
+<linearGradient
+   y2="94.052696"
+   x2="46.064999"
+   y1="85.694099"
+   x1="39.1106"
+   gradientUnits="userSpaceOnUse"
+   id="linearGradient3640">
+  <stop
+     id="stop3642"
+     style="stop-opacity:1; stop-color:white"
+     offset="0" />
+  <stop
+     id="stop3644"
+     style="stop-opacity:0; stop-color:white"
+     offset="1" />
+</linearGradient>
+<mask
+   id="id8-2">
+  <linearGradient
+     y2="94.052696"
+     x2="46.064999"
+     y1="85.694099"
+     x1="39.1106"
+     gradientUnits="userSpaceOnUse"
+     id="id9-1">
+    <stop
+       id="stop42-7"
+       style="stop-opacity:1; stop-color:white"
+       offset="0" />
+    <stop
+       id="stop44-8"
+       style="stop-opacity:0; stop-color:white"
+       offset="1" />
+  </linearGradient>
+  <rect
+     id="rect46-5"
+     height="12.1484"
+     width="14.1734"
+     y="83.799202"
+     x="35.501099"
+     style="fill:url(#id9-1)" />
+</mask>
+<linearGradient
+   y2="97.205902"
+   x2="96.932098"
+   y1="82.476501"
+   x1="96.142097"
+   gradientUnits="userSpaceOnUse"
+   id="linearGradient3629">
+  <stop
+     id="stop3631"
+     style="stop-opacity:1; stop-color:white"
+     offset="0" />
+  <stop
+     id="stop3633"
+     style="stop-opacity:0; stop-color:white"
+     offset="1" />
+</linearGradient>
+<mask
+   id="id6-1">
+  <linearGradient
+     y2="97.205902"
+     x2="96.932098"
+     y1="82.476501"
+     x1="96.142097"
+     gradientUnits="userSpaceOnUse"
+     id="id7-7">
+    <stop
+       id="stop34-5"
+       style="stop-opacity:1; stop-color:white"
+       offset="0" />
+    <stop
+       id="stop36-9"
+       style="stop-opacity:0; stop-color:white"
+       offset="1" />
+  </linearGradient>
+  <rect
+     id="rect38-6"
+     height="14.4522"
+     width="30.0107"
+     y="82.615097"
+     x="81.5317"
+     style="fill:url(#id7-7)" />
+</mask>
+<linearGradient
+   y2="97.346802"
+   x2="50.137199"
+   y1="82.335602"
+   x1="49.353401"
+   gradientUnits="userSpaceOnUse"
+   id="linearGradient3618">
+  <stop
+     id="stop3620-3"
+     style="stop-opacity:1; stop-color:white"
+     offset="0" />
+  <stop
+     id="stop3622-3"
+     style="stop-opacity:0; stop-color:white"
+     offset="1" />
+</linearGradient>
+<mask
+   id="id4-4">
+  <linearGradient
+     y2="97.346802"
+     x2="50.137199"
+     y1="82.335602"
+     x1="49.353401"
+     gradientUnits="userSpaceOnUse"
+     id="id5-4">
+    <stop
+       id="stop26-7"
+       style="stop-opacity:1; stop-color:white"
+       offset="0" />
+    <stop
+       id="stop28-6"
+       style="stop-opacity:0; stop-color:white"
+       offset="1" />
+  </linearGradient>
+  <rect
+     id="rect30-3"
+     height="14.4522"
+     width="29.992701"
+     y="82.615097"
+     x="34.748901"
+     style="fill:url(#id5-4)" />
+</mask>
+<linearGradient
+   y2="96.7258"
+   x2="78.758698"
+   y1="89.459801"
+   x1="70.354897"
+   gradientUnits="userSpaceOnUse"
+   id="linearGradient3607">
+  <stop
+     id="stop3609"
+     style="stop-opacity:1; stop-color:white"
+     offset="0" />
+  <stop
+     id="stop3611"
+     style="stop-opacity:0; stop-color:white"
+     offset="1" />
+</linearGradient>
+<mask
+   id="id2-0">
+  <linearGradient
+     y2="96.7258"
+     x2="78.758698"
+     y1="89.459801"
+     x1="70.354897"
+     gradientUnits="userSpaceOnUse"
+     id="id3-3">
+    <stop
+       id="stop18-0"
+       style="stop-opacity:1; stop-color:white"
+       offset="0" />
+    <stop
+       id="stop20-4"
+       style="stop-opacity:0; stop-color:white"
+       offset="1" />
+  </linearGradient>
+  <rect
+     id="rect22-4"
+     height="20.8179"
+     width="12.7385"
+     y="82.6838"
+     x="68.1875"
+     style="fill:url(#id3-3)" />
+</mask>
+<linearGradient
+   y2="94.792503"
+   x2="65.6744"
+   y1="94.792503"
+   x1="83.948196"
+   gradientUnits="userSpaceOnUse"
+   id="linearGradient3596">
+  <stop
+     id="stop3598"
+     style="stop-color:#FFF500"
+     offset="0" />
+  <stop
+     id="stop3600"
+     style="stop-color:#F3AE00"
+     offset="1" />
+</linearGradient>
+<linearGradient
+   y2="103.748"
+   x2="81.069901"
+   y1="101.448"
+   x1="75.444702"
+   gradientUnits="userSpaceOnUse"
+   id="linearGradient3589">
+  <stop
+     id="stop3591"
+     style="stop-opacity:1; stop-color:white"
+     offset="0" />
+  <stop
+     id="stop3593"
+     style="stop-opacity:0; stop-color:white"
+     offset="1" />
+</linearGradient>
+<mask
+   id="id0-9">
+  <linearGradient
+     y2="103.748"
+     x2="81.069901"
+     y1="101.448"
+     x1="75.444702"
+     gradientUnits="userSpaceOnUse"
+     id="id1-8">
+    <stop
+       id="stop10-4"
+       style="stop-opacity:1; stop-color:white"
+       offset="0" />
+    <stop
+       id="stop12-8"
+       style="stop-opacity:0; stop-color:white"
+       offset="1" />
+  </linearGradient>
+  <rect
+     id="rect14-1"
+     height="9.8077002"
+     width="8.2557001"
+     y="97.694199"
+     x="74.129402"
+     style="fill:url(#id1-8)" />
+</mask>
+<linearGradient
+   y2="94.792503"
+   x2="65.6744"
+   y1="94.792503"
+   x1="83.948196"
+   gradientUnits="userSpaceOnUse"
+   id="id55-1">
+  <stop
+     id="stop228-1"
+     style="stop-color:#FFF500"
+     offset="0" />
+  <stop
+     id="stop230-5"
+     style="stop-color:#F3AE00"
+     offset="1" />
+</linearGradient>
+<linearGradient
+   id="linearGradient5047"
+   gradientUnits="userSpaceOnUse"
+   x1="128.826"
+   y1="131.308"
+   x2="116.524"
+   y2="110.835">
+  <stop
+     offset="0"
+     style="stop-color:#1A0D0E"
+     id="stop5049" />
+  <stop
+     offset="1"
+     style="stop-color:#c66714;stop-opacity:1"
+     id="stop5051" />
+</linearGradient>
+<linearGradient
+   y2="127.002"
+   x2="72.372398"
+   y1="132.248"
+   x1="45.526402"
+   gradientUnits="userSpaceOnUse"
+   id="id97-8">
+  <stop
+     id="stop342-5"
+     style="stop-color:#E77817"
+     offset="0" />
+  <stop
+     id="stop344-6"
+     style="stop-color:#c3bb84;stop-opacity:1"
+     offset="1" />
+</linearGradient>
+<radialGradient
+   fy="130.32201"
+   fx="75.147003"
+   r="27.4161"
+   cy="130.32201"
+   cx="75.147003"
+   gradientUnits="userSpaceOnUse"
+   id="id138-9">
+  <stop
+     id="stop535-6"
+     style="stop-color:#c33b13;stop-opacity:1"
+     offset="0" />
+  <stop
+     id="stop537-3"
+     style="stop-color:#781E19"
+     offset="1" />
+</radialGradient>
+<linearGradient
+   y2="175.125"
+   x2="109.982"
+   y1="202.207"
+   x1="117.053"
+   gradientUnits="userSpaceOnUse"
+   id="linearGradient3562">
+  <stop
+     id="stop3564"
+     style="stop-color:#1A0D0E"
+     offset="0" />
+  <stop
+     id="stop3566"
+     style="stop-color:#E77817"
+     offset="1" />
+</linearGradient>
+<linearGradient
+   y2="175.125"
+   x2="109.982"
+   y1="202.207"
+   x1="117.053"
+   gradientUnits="userSpaceOnUse"
+   id="linearGradient3555">
+  <stop
+     id="stop3557"
+     style="stop-color:#1A0D0E"
+     offset="0" />
+  <stop
+     id="stop3559"
+     style="stop-color:#E77817"
+     offset="1" />
+</linearGradient>
+<linearGradient
+   y2="175.125"
+   x2="109.982"
+   y1="202.207"
+   x1="117.053"
+   gradientUnits="userSpaceOnUse"
+   id="linearGradient3548">
+  <stop
+     id="stop3550"
+     style="stop-color:#1A0D0E"
+     offset="0" />
+  <stop
+     id="stop3552"
+     style="stop-color:#E77817"
+     offset="1" />
+</linearGradient>
+<linearGradient
+   y2="175.125"
+   x2="109.982"
+   y1="202.207"
+   x1="117.053"
+   gradientUnits="userSpaceOnUse"
+   id="id83-8">
+  <stop
+     id="stop314-5"
+     style="stop-color:#1A0D0E"
+     offset="0" />
+  <stop
+     id="stop316-0"
+     style="stop-color:#E77817"
+     offset="1" />
+</linearGradient>
+<linearGradient
+   y2="111.569"
+   x2="34.2696"
+   y1="111.569"
+   x1="155.966"
+   gradientUnits="userSpaceOnUse"
+   id="id56-9">
+  <stop
+     id="stop233-0"
+     style="stop-color:#e1b000;stop-opacity:1"
+     offset="0" />
+  <stop
+     id="stop235-8"
+     style="stop-color:#af4d1c;stop-opacity:1"
+     offset="1" />
+</linearGradient>
+<inkscape:perspective
+   sodipodi:type="inkscape:persp3d"
+   inkscape:vp_x="0 : 0.5 : 1"
+   inkscape:vp_y="0 : 1000 : 0"
+   inkscape:vp_z="1 : 0.5 : 1"
+   inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+   id="perspective3535" />
+
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+  
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+  
+  
+  
+  
+  
+  
+ <linearGradient
+   y2="177.205"
+   x2="109.303"
+   y1="176.645"
+   x1="112.152"
+   gradientUnits="userSpaceOnUse"
+   id="linearGradient4399"
+   xlink:href="#id106"
+   inkscape:collect="always" />
+<linearGradient
+   y2="176.887"
+   x2="112.361"
+   y1="176.321"
+   x1="115.189"
+   gradientUnits="userSpaceOnUse"
+   id="linearGradient4397"
+   xlink:href="#id106"
+   inkscape:collect="always" />
+<linearGradient
+   y2="177.096"
+   x2="115.458"
+   y1="176.571"
+   x1="118.03"
+   gradientUnits="userSpaceOnUse"
+   id="linearGradient4395"
+   xlink:href="#id106"
+   inkscape:collect="always" />
+<linearGradient
+   y2="174.303"
+   x2="81.9135"
+   y1="173.877"
+   x1="85.5758"
+   gradientUnits="userSpaceOnUse"
+   id="linearGradient4393"
+   xlink:href="#id106"
+   inkscape:collect="always" />
+<linearGradient
+   y2="110.835"
+   x2="116.524"
+   y1="131.308"
+   x1="128.826"
+   gradientUnits="userSpaceOnUse"
+   id="linearGradient4391"
+   xlink:href="#id67"
+   inkscape:collect="always" />
+<linearGradient
+   y2="118.687"
+   x2="128.212"
+   y1="168.049"
+   x1="139.687"
+   gradientUnits="userSpaceOnUse"
+   id="linearGradient4389"
+   xlink:href="#id58"
+   inkscape:collect="always" />
+<linearGradient
+   y2="139.762"
+   x2="143.615"
+   y1="134.628"
+   x1="91.134"
+   gradientUnits="userSpaceOnUse"
+   id="linearGradient4387"
+   xlink:href="#id87"
+   inkscape:collect="always" />
+<linearGradient
+   y2="94.7925"
+   x2="65.6744"
+   y1="94.7925"
+   x1="83.9482"
+   gradientUnits="userSpaceOnUse"
+   id="linearGradient4385"
+   xlink:href="#id55"
+   inkscape:collect="always" />
+<linearGradient
+   y2="103.7"
+   x2="75.4122"
+   y1="101.238"
+   x1="81.1023"
+   gradientUnits="userSpaceOnUse"
+   id="linearGradient4383"
+   xlink:href="#id55"
+   inkscape:collect="always" />
+<linearGradient
+   y2="127.002"
+   x2="72.3724"
+   y1="132.248"
+   x1="45.5264"
+   gradientUnits="userSpaceOnUse"
+   id="linearGradient4381"
+   xlink:href="#id97"
+   inkscape:collect="always" />
+<radialGradient
+   r="27.4161"
+   fy="130.322"
+   fx="75.147"
+   cy="130.322"
+   cx="75.147"
+   gradientUnits="userSpaceOnUse"
+   id="radialGradient4379"
+   xlink:href="#id138"
+   inkscape:collect="always" />
+<linearGradient
+   y2="175.125"
+   x2="109.982"
+   y1="202.207"
+   x1="117.053"
+   gradientUnits="userSpaceOnUse"
+   id="linearGradient4377"
+   xlink:href="#id83"
+   inkscape:collect="always" />
+<linearGradient
+   y2="175.826"
+   x2="116.497"
+   y1="205.733"
+   x1="126.406"
+   gradientUnits="userSpaceOnUse"
+   id="linearGradient4375"
+   xlink:href="#id83"
+   inkscape:collect="always" />
+<linearGradient
+   y2="175.929"
+   x2="123.175"
+   y1="207.462"
+   x1="137.505"
+   gradientUnits="userSpaceOnUse"
+   id="linearGradient4373"
+   xlink:href="#id83"
+   inkscape:collect="always" />
+<linearGradient
+   y2="174.005"
+   x2="128.974"
+   y1="206.581"
+   x1="149.606"
+   gradientUnits="userSpaceOnUse"
+   id="linearGradient4371"
+   xlink:href="#id83"
+   inkscape:collect="always" />
+<linearGradient
+   y2="111.569"
+   x2="34.2696"
+   y1="111.569"
+   x1="155.966"
+   gradientUnits="userSpaceOnUse"
+   id="linearGradient4369"
+   xlink:href="#id56"
+   inkscape:collect="always" />
+
+ <radialGradient
+   fy="-19.9185"
+   fx="248.255"
+   r="0.3552"
+   cy="-19.9185"
+   cx="248.255"
+   xlink:href="#id142"
+   gradientUnits="userSpaceOnUse"
+   id="id144">
+  </radialGradient>
+
+  <radialGradient
+   fy="-18.0226"
+   fx="243.171"
+   r="0.8707"
+   cy="-18.0226"
+   cx="243.171"
+   xlink:href="#id142"
+   gradientUnits="userSpaceOnUse"
+   id="id143">
+  </radialGradient>
+
+  <radialGradient
+   fy="-16.7101"
+   fx="241.762"
+   r="0.4905"
+   cy="-16.7101"
+   cx="241.762"
+   gradientUnits="userSpaceOnUse"
+   id="id142">
+   <stop
+   id="stop561"
+   style="stop-color:white"
+   offset="0" />
+
+   <stop
+   id="stop563"
+   style="stop-color:#1F1A17"
+   offset="1" />
+
+  </radialGradient>
+
+  <radialGradient
+   fy="-18.8861"
+   fx="247.079"
+   r="22.4989"
+   cy="-18.8861"
+   cx="247.079"
+   gradientUnits="userSpaceOnUse"
+   id="id141">
+   <stop
+   id="stop550"
+   style="stop-color:white"
+   offset="0" />
+
+   <stop
+   id="stop552"
+   style="stop-color:#75C5F0"
+   offset="0.631373" />
+
+   <stop
+   id="stop554"
+   style="stop-color:#007CC3"
+   offset="0.74902" />
+
+   <stop
+   id="stop556"
+   style="stop-color:#23297A"
+   offset="0.878431" />
+
+   <stop
+   id="stop558"
+   style="stop-color:#28166F"
+   offset="1" />
+
+  </radialGradient>
+
+  <radialGradient
+   fy="-17.7117"
+   fx="246.969"
+   r="17.236"
+   cy="-17.7117"
+   cx="246.969"
+   gradientUnits="userSpaceOnUse"
+   id="id140">
+   <stop
+   id="stop541"
+   style="stop-color:#FFF974"
+   offset="0" />
+
+   <stop
+   id="stop543"
+   style="stop-color:#EF9A48"
+   offset="0.141176" />
+
+   <stop
+   id="stop545"
+   style="stop-color:#FFF974"
+   offset="0.760784" />
+
+   <stop
+   id="stop547"
+   style="stop-color:#E77817"
+   offset="1" />
+
+  </radialGradient>
+
+  <radialGradient
+   fy="-6.235"
+   fx="250.876"
+   r="4.4334"
+   cy="-6.235"
+   cx="250.876"
+   xlink:href="#id137"
+   gradientUnits="userSpaceOnUse"
+   id="id139">
+  </radialGradient>
+
+  <radialGradient
+   fy="130.322"
+   fx="75.147"
+   r="27.4161"
+   cy="130.322"
+   cx="75.147"
+   gradientUnits="userSpaceOnUse"
+   id="id138">
+   <stop
+   id="stop535"
+   style="stop-color:#E77817"
+   offset="0" />
+
+   <stop
+   id="stop537"
+   style="stop-color:#781E19"
+   offset="1" />
+
+  </radialGradient>
+
+  <radialGradient
+   fy="-7.7064"
+   fx="250.339"
+   r="9.106"
+   cy="-7.7064"
+   cx="250.339"
+   gradientUnits="userSpaceOnUse"
+   id="id137">
+   <stop
+   id="stop524"
+   style="stop-color:#2C2065"
+   offset="0" />
+
+   <stop
+   id="stop526"
+   style="stop-color:#007CC3"
+   offset="0.521569" />
+
+   <stop
+   id="stop528"
+   style="stop-color:#007CC3"
+   offset="0.588235" />
+
+   <stop
+   id="stop530"
+   style="stop-color:#94CCDC"
+   offset="0.780392" />
+
+   <stop
+   id="stop532"
+   style="stop-color:#75C5F0"
+   offset="1" />
+
+  </radialGradient>
+
+  <radialGradient
+   fy="-12.32"
+   fx="245.749"
+   r="6.2371"
+   cy="-12.32"
+   cx="245.749"
+   gradientUnits="userSpaceOnUse"
+   id="id136">
+   <stop
+   id="stop517"
+   style="stop-color:white"
+   offset="0" />
+
+   <stop
+   id="stop519"
+   style="stop-color:white"
+   offset="0.341176" />
+
+   <stop
+   id="stop521"
+   style="stop-color:#1F1A17"
+   offset="1" />
+
+  </radialGradient>
+
+  <radialGradient
+   fy="-10.9792"
+   fx="245.932"
+   r="7.417"
+   cy="-10.9792"
+   cx="245.932"
+   xlink:href="#id128"
+   gradientUnits="userSpaceOnUse"
+   id="id135">
+  </radialGradient>
+
+  <radialGradient
+   fy="-8.0904"
+   fx="248.019"
+   r="12.6211"
+   cy="-8.0904"
+   cx="248.019"
+   gradientUnits="userSpaceOnUse"
+   id="id134">
+   <stop
+   id="stop503"
+   style="stop-color:white"
+   offset="0" />
+
+   <stop
+   id="stop505"
+   style="stop-color:white"
+   offset="0.0117647" />
+
+   <stop
+   id="stop507"
+   style="stop-color:#75C5F0"
+   offset="0.258824" />
+
+   <stop
+   id="stop509"
+   style="stop-color:#007CC3"
+   offset="0.509804" />
+
+   <stop
+   id="stop511"
+   style="stop-color:#00579C"
+   offset="0.721569" />
+
+   <stop
+   id="stop513"
+   style="stop-color:#28166F"
+   offset="1" />
+
+  </radialGradient>
+
+  <radialGradient
+   fy="-20.8934"
+   fx="246.586"
+   r="21.1084"
+   cy="-20.8934"
+   cx="246.586"
+   gradientUnits="userSpaceOnUse"
+   id="id133">
+   <stop
+   id="stop492"
+   style="stop-color:white"
+   offset="0" />
+
+   <stop
+   id="stop494"
+   style="stop-color:#007CC3"
+   offset="0.329412" />
+
+   <stop
+   id="stop496"
+   style="stop-color:white"
+   offset="0.611765" />
+
+   <stop
+   id="stop498"
+   style="stop-color:#007CC3"
+   offset="0.858824" />
+
+   <stop
+   id="stop500"
+   style="stop-color:#28166F"
+   offset="1" />
+
+  </radialGradient>
+
+  <radialGradient
+   fy="-8.8615"
+   fx="245.754"
+   r="10.1282"
+   cy="-8.8615"
+   cx="245.754"
+   xlink:href="#id128"
+   gradientUnits="userSpaceOnUse"
+   id="id132">
+  </radialGradient>
+
+  <radialGradient
+   fy="-11.1305"
+   fx="244.053"
+   r="5.9542"
+   cy="-11.1305"
+   cx="244.053"
+   gradientUnits="userSpaceOnUse"
+   id="id131">
+   <stop
+   id="stop484"
+   style="stop-color:white"
+   offset="0" />
+
+   <stop
+   id="stop486"
+   style="stop-color:white"
+   offset="0.501961" />
+
+   <stop
+   id="stop488"
+   style="stop-color:#1F1A17"
+   offset="1" />
+
+  </radialGradient>
+
+  <radialGradient
+   fy="-14.8849"
+   fx="251.939"
+   r="39.1796"
+   cy="-14.8849"
+   cx="251.939"
+   gradientUnits="userSpaceOnUse"
+   id="id130">
+   <stop
+   id="stop469"
+   style="stop-color:#28166F"
+   offset="0" />
+
+   <stop
+   id="stop471"
+   style="stop-color:#28166F"
+   offset="0.121569" />
+
+   <stop
+   id="stop473"
+   style="stop-color:#007CC3"
+   offset="0.34902" />
+
+   <stop
+   id="stop475"
+   style="stop-color:#75C5F0"
+   offset="0.501961" />
+
+   <stop
+   id="stop477"
+   style="stop-color:#0062A6"
+   offset="0.690196" />
+
+   <stop
+   id="stop479"
+   style="stop-color:#75C5F0"
+   offset="0.839216" />
+
+   <stop
+   id="stop481"
+   style="stop-color:#28166F"
+   offset="1" />
+
+  </radialGradient>
+
+  <radialGradient
+   fy="-0.5511"
+   fx="249.134"
+   r="3.1474"
+   cy="-0.5511"
+   cx="249.134"
+   gradientUnits="userSpaceOnUse"
+   id="id129">
+   <stop
+   id="stop460"
+   style="stop-color:white"
+   offset="0" />
+
+   <stop
+   id="stop462"
+   style="stop-color:white"
+   offset="0.258824" />
+
+   <stop
+   id="stop464"
+   style="stop-color:white"
+   offset="0.521569" />
+
+   <stop
+   id="stop466"
+   style="stop-color:#1F1A17"
+   offset="1" />
+
+  </radialGradient>
+
+  <radialGradient
+   fy="-10.5384"
+   fx="242.889"
+   r="7.4343"
+   cy="-10.5384"
+   cx="242.889"
+   gradientUnits="userSpaceOnUse"
+   id="id128">
+   <stop
+   id="stop451"
+   style="stop-color:#FFF974"
+   offset="0" />
+
+   <stop
+   id="stop453"
+   style="stop-color:#FADE69"
+   offset="0.419608" />
+
+   <stop
+   id="stop455"
+   style="stop-color:#EA9551"
+   offset="0.701961" />
+
+   <stop
+   id="stop457"
+   style="stop-color:#A94F29"
+   offset="1" />
+
+  </radialGradient>
+
+  <radialGradient
+   fy="-23.3266"
+   fx="250.612"
+   r="9.297"
+   cy="-23.3266"
+   cx="250.612"
+   gradientUnits="userSpaceOnUse"
+   id="id127">
+   <stop
+   id="stop440"
+   style="stop-color:#28166F"
+   offset="0" />
+
+   <stop
+   id="stop442"
+   style="stop-color:#007CC3"
+   offset="0.321569" />
+
+   <stop
+   id="stop444"
+   style="stop-color:#75C5F0"
+   offset="0.470588" />
+
+   <stop
+   id="stop446"
+   style="stop-color:#007CC3"
+   offset="0.631373" />
+
+   <stop
+   id="stop448"
+   style="stop-color:#28166F"
+   offset="1" />
+
+  </radialGradient>
+
+  <radialGradient
+   fy="-12.5974"
+   fx="250.954"
+   r="5.3942"
+   cy="-12.5974"
+   cx="250.954"
+   gradientUnits="userSpaceOnUse"
+   id="id126">
+   <stop
+   id="stop433"
+   style="stop-color:white"
+   offset="0" />
+
+   <stop
+   id="stop435"
+   style="stop-color:white"
+   offset="0.509804" />
+
+   <stop
+   id="stop437"
+   style="stop-color:#1F1A17"
+   offset="1" />
+
+  </radialGradient>
+
+  <radialGradient
+   fy="-7.7663"
+   fx="248.524"
+   r="10.8814"
+   cy="-7.7663"
+   cx="248.524"
+   gradientUnits="userSpaceOnUse"
+   id="id125">
+   <stop
+   id="stop424"
+   style="stop-color:white"
+   offset="0" />
+
+   <stop
+   id="stop426"
+   style="stop-color:white"
+   offset="0.180392" />
+
+   <stop
+   id="stop428"
+   style="stop-color:white"
+   offset="0.709804" />
+
+   <stop
+   id="stop430"
+   style="stop-color:#1F1A17"
+   offset="1" />
+
+  </radialGradient>
+
+  <radialGradient
+   fy="-8.5636"
+   fx="242.193"
+   r="2.9979"
+   cy="-8.5636"
+   cx="242.193"
+   xlink:href="#id122"
+   gradientUnits="userSpaceOnUse"
+   id="id124">
+  </radialGradient>
+
+  <radialGradient
+   fy="-7.7696"
+   fx="242.968"
+   r="1.0405"
+   cy="-7.7696"
+   cx="242.968"
+   xlink:href="#id122"
+   gradientUnits="userSpaceOnUse"
+   id="id123">
+  </radialGradient>
+
+  <radialGradient
+   fy="-8.9938"
+   fx="241.173"
+   r="3.865"
+   cy="-8.9938"
+   cx="241.173"
+   gradientUnits="userSpaceOnUse"
+   id="id122">
+   <stop
+   id="stop415"
+   style="stop-color:white"
+   offset="0" />
+
+   <stop
+   id="stop417"
+   style="stop-color:white"
+   offset="0.611765" />
+
+   <stop
+   id="stop419"
+   style="stop-color:#1F1A17"
+   offset="1" />
+
+  </radialGradient>
+
+  <radialGradient
+   fy="-2.9444"
+   fx="242.608"
+   r="10.0329"
+   cy="-2.9444"
+   cx="242.608"
+   gradientUnits="userSpaceOnUse"
+   id="id121">
+   <stop
+   id="stop406"
+   style="stop-color:white"
+   offset="0" />
+
+   <stop
+   id="stop408"
+   style="stop-color:white"
+   offset="0.258824" />
+
+   <stop
+   id="stop410"
+   style="stop-color:white"
+   offset="0.588235" />
+
+   <stop
+   id="stop412"
+   style="stop-color:#1F1A17"
+   offset="1" />
+
+  </radialGradient>
+
+  <radialGradient
+   fy="-11.9504"
+   fx="243.155"
+   r="4.4856"
+   cy="-11.9504"
+   cx="243.155"
+   gradientUnits="userSpaceOnUse"
+   id="id120">
+   <stop
+   id="stop399"
+   style="stop-color:white"
+   offset="0" />
+
+   <stop
+   id="stop401"
+   style="stop-color:white"
+   offset="0.690196" />
+
+   <stop
+   id="stop403"
+   style="stop-color:#1F1A17"
+   offset="1" />
+
+  </radialGradient>
+
+  <linearGradient
+   y2="-2.486"
+   x2="245.579"
+   y1="-1.9814"
+   x1="245.695"
+   xlink:href="#id102"
+   gradientUnits="userSpaceOnUse"
+   id="id119">
+  </linearGradient>
+
+  <linearGradient
+   y2="177.096"
+   x2="115.458"
+   y1="176.571"
+   x1="118.03"
+   xlink:href="#id106"
+   gradientUnits="userSpaceOnUse"
+   id="id118">
+  </linearGradient>
+
+  <linearGradient
+   y2="72.9321"
+   x2="402.262"
+   y1="72.4239"
+   x1="404.753"
+   xlink:href="#id106"
+   gradientUnits="userSpaceOnUse"
+   id="id117">
+  </linearGradient>
+
+  <linearGradient
+   y2="73.0377"
+   x2="396.301"
+   y1="72.4962"
+   x1="399.06"
+   xlink:href="#id106"
+   gradientUnits="userSpaceOnUse"
+   id="id116">
+  </linearGradient>
+
+  <linearGradient
+   y2="177.205"
+   x2="109.303"
+   y1="176.645"
+   x1="112.152"
+   xlink:href="#id106"
+   gradientUnits="userSpaceOnUse"
+   id="id115">
+  </linearGradient>
+
+  <linearGradient
+   y2="176.887"
+   x2="112.361"
+   y1="176.321"
+   x1="115.189"
+   xlink:href="#id106"
+   gradientUnits="userSpaceOnUse"
+   id="id114">
+  </linearGradient>
+
+  <linearGradient
+   y2="72.7303"
+   x2="399.262"
+   y1="72.1814"
+   x1="402.002"
+   xlink:href="#id106"
+   gradientUnits="userSpaceOnUse"
+   id="id113">
+  </linearGradient>
+
+  <linearGradient
+   y2="126.726"
+   x2="231.513"
+   y1="126.463"
+   x1="229.205"
+   xlink:href="#id106"
+   gradientUnits="userSpaceOnUse"
+   id="id112">
+  </linearGradient>
+
+  <linearGradient
+   y2="175.973"
+   x2="88.708"
+   y1="175.474"
+   x1="84.3238"
+   xlink:href="#id106"
+   gradientUnits="userSpaceOnUse"
+   id="id111">
+  </linearGradient>
+
+  <linearGradient
+   y2="71.8443"
+   x2="376.355"
+   y1="71.3611"
+   x1="372.109"
+   xlink:href="#id106"
+   gradientUnits="userSpaceOnUse"
+   id="id110">
+  </linearGradient>
+
+  <linearGradient
+   y2="174.303"
+   x2="81.9135"
+   y1="173.877"
+   x1="85.5758"
+   xlink:href="#id106"
+   gradientUnits="userSpaceOnUse"
+   id="id109">
+  </linearGradient>
+
+  <linearGradient
+   y2="126.004"
+   x2="227.408"
+   y1="125.725"
+   x1="225.086"
+   xlink:href="#id106"
+   gradientUnits="userSpaceOnUse"
+   id="id108">
+  </linearGradient>
+
+  <linearGradient
+   y2="174.603"
+   x2="80.912"
+   y1="174.073"
+   x1="76.5012"
+   xlink:href="#id106"
+   gradientUnits="userSpaceOnUse"
+   id="id107">
+  </linearGradient>
+
+  <linearGradient
+   y2="70.5181"
+   x2="368.805"
+   y1="70.0043"
+   x1="364.532"
+   gradientUnits="userSpaceOnUse"
+   id="id106">
+   <stop
+   id="stop381"
+   style="stop-color:#EF9BA0"
+   offset="0" />
+
+   <stop
+   id="stop383"
+   style="stop-color:#DA422B"
+   offset="1" />
+
+  </linearGradient>
+
+  <linearGradient
+   y2="4.1303"
+   x2="243.029"
+   y1="1.0795"
+   x1="241.722"
+   gradientUnits="userSpaceOnUse"
+   id="id105">
+   <stop
+   id="stop374"
+   style="stop-color:#DA251D"
+   offset="0" />
+
+   <stop
+   id="stop376"
+   style="stop-color:#FFF500"
+   offset="0.478431" />
+
+   <stop
+   id="stop378"
+   style="stop-color:#DA251D"
+   offset="1" />
+
+  </linearGradient>
+
+  <linearGradient
+   y2="173.469"
+   x2="316.434"
+   y1="161.604"
+   x1="296.908"
+   xlink:href="#id86"
+   gradientUnits="userSpaceOnUse"
+   id="id104">
+  </linearGradient>
+
+  <linearGradient
+   y2="103.7"
+   x2="75.4122"
+   y1="101.238"
+   x1="81.1023"
+   xlink:href="#id55"
+   gradientUnits="userSpaceOnUse"
+   id="id103">
+  </linearGradient>
+
+  <linearGradient
+   y2="-1.9268"
+   x2="248.736"
+   y1="-1.1579"
+   x1="248.913"
+   gradientUnits="userSpaceOnUse"
+   id="id102">
+   <stop
+   id="stop363"
+   style="stop-color:#064C92"
+   offset="0" />
+
+   <stop
+   id="stop365"
+   style="stop-color:#75C5F0"
+   offset="0.4" />
+
+   <stop
+   id="stop367"
+   style="stop-color:#75C5F0"
+   offset="0.580392" />
+
+   <stop
+   id="stop369"
+   style="stop-color:white"
+   offset="1" />
+
+  </linearGradient>
+
+  <linearGradient
+   y2="-3.3544"
+   x2="247.849"
+   y1="-3.6521"
+   x1="249.337"
+   xlink:href="#id57"
+   gradientUnits="userSpaceOnUse"
+   id="id101">
+  </linearGradient>
+
+  <linearGradient
+   y2="114.403"
+   x2="468.92"
+   y1="111.391"
+   x1="459.742"
+   xlink:href="#id86"
+   gradientUnits="userSpaceOnUse"
+   id="id100">
+  </linearGradient>
+
+  <linearGradient
+   y2="-25.1953"
+   x2="250.702"
+   y1="-23.896"
+   x1="252.119"
+   gradientUnits="userSpaceOnUse"
+   id="id99">
+   <stop
+   id="stop354"
+   style="stop-color:#EF9A48"
+   offset="0" />
+
+   <stop
+   id="stop356"
+   style="stop-color:#FDFFCE"
+   offset="0.501961" />
+
+   <stop
+   id="stop358"
+   style="stop-color:#EF9A48"
+   offset="1" />
+
+  </linearGradient>
+
+  <linearGradient
+   y2="3.9145"
+   x2="252.326"
+   y1="6.6198"
+   x1="247.456"
+   gradientUnits="userSpaceOnUse"
+   id="id98">
+   <stop
+   id="stop347"
+   style="stop-color:#DA251D"
+   offset="0" />
+
+   <stop
+   id="stop349"
+   style="stop-color:#FFF500"
+   offset="0.741176" />
+
+   <stop
+   id="stop351"
+   style="stop-color:#DA251D"
+   offset="1" />
+
+  </linearGradient>
+
+  <linearGradient
+   y2="127.002"
+   x2="72.3724"
+   y1="132.248"
+   x1="45.5264"
+   gradientUnits="userSpaceOnUse"
+   id="id97">
+   <stop
+   id="stop342"
+   style="stop-color:#E77817"
+   offset="0" />
+
+   <stop
+   id="stop344"
+   style="stop-color:#FFF500"
+   offset="1" />
+
+  </linearGradient>
+
+  <linearGradient
+   y2="97.436"
+   x2="215.964"
+   y1="97.562"
+   x1="206.673"
+   xlink:href="#id67"
+   gradientUnits="userSpaceOnUse"
+   id="id96">
+  </linearGradient>
+
+  <linearGradient
+   y2="17.9741"
+   x2="347.754"
+   y1="18.2055"
+   x1="330.667"
+   xlink:href="#id67"
+   gradientUnits="userSpaceOnUse"
+   id="id95">
+  </linearGradient>
+
+  <linearGradient
+   y2="120.349"
+   x2="59.1755"
+   y1="120.587"
+   x1="41.5347"
+   xlink:href="#id67"
+   gradientUnits="userSpaceOnUse"
+   id="id94">
+  </linearGradient>
+
+  <linearGradient
+   y2="160.832"
+   x2="472.812"
+   y1="141.92"
+   x1="322.107"
+   xlink:href="#id86"
+   gradientUnits="userSpaceOnUse"
+   id="id93">
+  </linearGradient>
+
+  <linearGradient
+   y2="-10.9095"
+   x2="246.473"
+   y1="-12.6362"
+   x1="246.098"
+   xlink:href="#id79"
+   gradientUnits="userSpaceOnUse"
+   id="id92">
+  </linearGradient>
+
+  <linearGradient
+   y2="171.826"
+   x2="398.34"
+   y1="172.57"
+   x1="394.901"
+   xlink:href="#id77"
+   gradientUnits="userSpaceOnUse"
+   id="id91">
+  </linearGradient>
+
+  <linearGradient
+   y2="185.066"
+   x2="386.154"
+   y1="186.248"
+   x1="380.668"
+   xlink:href="#id77"
+   gradientUnits="userSpaceOnUse"
+   id="id90">
+  </linearGradient>
+
+  <linearGradient
+   y2="179.354"
+   x2="394.165"
+   y1="180.282"
+   x1="389.808"
+   xlink:href="#id77"
+   gradientUnits="userSpaceOnUse"
+   id="id89">
+  </linearGradient>
+
+  <linearGradient
+   y2="174.005"
+   x2="128.974"
+   y1="206.581"
+   x1="149.606"
+   xlink:href="#id83"
+   gradientUnits="userSpaceOnUse"
+   id="id88">
+  </linearGradient>
+
+  <linearGradient
+   y2="139.762"
+   x2="143.615"
+   y1="134.628"
+   x1="91.134"
+   gradientUnits="userSpaceOnUse"
+   id="id87">
+   <stop
+   id="stop326"
+   style="stop-color:#781E19"
+   offset="0" />
+
+   <stop
+   id="stop328"
+   style="stop-color:#E77817"
+   offset="0.560784" />
+
+   <stop
+   id="stop330"
+   style="stop-color:#FFF500"
+   offset="1" />
+
+  </linearGradient>
+
+  <linearGradient
+   y2="154.192"
+   x2="445.849"
+   y1="144.321"
+   x1="424.41"
+   gradientUnits="userSpaceOnUse"
+   id="id86">
+   <stop
+   id="stop321"
+   style="stop-color:#A5D134"
+   offset="0" />
+
+   <stop
+   id="stop323"
+   style="stop-color:#D4E426"
+   offset="1" />
+
+  </linearGradient>
+
+  <linearGradient
+   y2="175.929"
+   x2="123.175"
+   y1="207.462"
+   x1="137.505"
+   xlink:href="#id83"
+   gradientUnits="userSpaceOnUse"
+   id="id85">
+  </linearGradient>
+
+  <linearGradient
+   y2="175.826"
+   x2="116.497"
+   y1="205.733"
+   x1="126.406"
+   xlink:href="#id83"
+   gradientUnits="userSpaceOnUse"
+   id="id84">
+  </linearGradient>
+
+  <linearGradient
+   y2="175.125"
+   x2="109.982"
+   y1="202.207"
+   x1="117.053"
+   gradientUnits="userSpaceOnUse"
+   id="id83">
+   <stop
+   id="stop314"
+   style="stop-color:#1A0D0E"
+   offset="0" />
+
+   <stop
+   id="stop316"
+   style="stop-color:#E77817"
+   offset="1" />
+
+  </linearGradient>
+
+  <linearGradient
+   y2="3.8676"
+   x2="253.16"
+   y1="4.5563"
+   x1="247.651"
+   gradientUnits="userSpaceOnUse"
+   id="id82">
+   <stop
+   id="stop305"
+   style="stop-color:#1F1A17"
+   offset="0" />
+
+   <stop
+   id="stop307"
+   style="stop-color:white"
+   offset="0.211765" />
+
+   <stop
+   id="stop309"
+   style="stop-color:white"
+   offset="0.831373" />
+
+   <stop
+   id="stop311"
+   style="stop-color:#1F1A17"
+   offset="1" />
+
+  </linearGradient>
+
+  <linearGradient
+   y2="174.82"
+   x2="397.171"
+   y1="177.801"
+   x1="352.994"
+   xlink:href="#id77"
+   gradientUnits="userSpaceOnUse"
+   id="id81">
+  </linearGradient>
+
+  <linearGradient
+   y2="176.762"
+   x2="354.11"
+   y1="175.482"
+   x1="340.951"
+   xlink:href="#id77"
+   gradientUnits="userSpaceOnUse"
+   id="id80">
+  </linearGradient>
+
+  <linearGradient
+   y2="-10.2373"
+   x2="245.592"
+   y1="-11.1769"
+   x1="245.388"
+   gradientUnits="userSpaceOnUse"
+   id="id79">
+   <stop
+   id="stop298"
+   style="stop-color:#E77817"
+   offset="0" />
+
+   <stop
+   id="stop300"
+   style="stop-color:#FFF974"
+   offset="1" />
+
+  </linearGradient>
+
+  <linearGradient
+   y2="-0.2224"
+   x2="242.532"
+   y1="5.0327"
+   x1="244.831"
+   gradientUnits="userSpaceOnUse"
+   id="id78">
+   <stop
+   id="stop289"
+   style="stop-color:#1F1A17"
+   offset="0" />
+
+   <stop
+   id="stop291"
+   style="stop-color:white"
+   offset="0.2" />
+
+   <stop
+   id="stop293"
+   style="stop-color:white"
+   offset="0.819608" />
+
+   <stop
+   id="stop295"
+   style="stop-color:#1F1A17"
+   offset="1" />
+
+  </linearGradient>
+
+  <linearGradient
+   y2="74.11"
+   x2="345.634"
+   y1="80.6882"
+   x1="302.397"
+   gradientUnits="userSpaceOnUse"
+   id="id77">
+   <stop
+   id="stop284"
+   style="stop-color:#D4E426"
+   offset="0" />
+
+   <stop
+   id="stop286"
+   style="stop-color:#79B82F"
+   offset="1" />
+
+  </linearGradient>
+
+  <linearGradient
+   y2="-21.4598"
+   x2="240.359"
+   y1="-25.5061"
+   x1="243.731"
+   gradientUnits="userSpaceOnUse"
+   id="id76">
+   <stop
+   id="stop273"
+   style="stop-color:#195189"
+   offset="0" />
+
+   <stop
+   id="stop275"
+   style="stop-color:#0085C5"
+   offset="0.25098" />
+
+   <stop
+   id="stop277"
+   style="stop-color:#DFEEFA"
+   offset="0.419608" />
+
+   <stop
+   id="stop279"
+   style="stop-color:#007CC3"
+   offset="0.74902" />
+
+   <stop
+   id="stop281"
+   style="stop-color:#00569B"
+   offset="1" />
+
+  </linearGradient>
+
+  <linearGradient
+   y2="92.4274"
+   x2="246.159"
+   y1="103.206"
+   x1="252.638"
+   xlink:href="#id67"
+   gradientUnits="userSpaceOnUse"
+   id="id75">
+  </linearGradient>
+
+  <linearGradient
+   y2="8.7607"
+   x2="403.293"
+   y1="28.5869"
+   x1="415.21"
+   xlink:href="#id67"
+   gradientUnits="userSpaceOnUse"
+   id="id74">
+  </linearGradient>
+
+  <linearGradient
+   y2="91.2197"
+   x2="248.604"
+   y1="101.999"
+   x1="255.083"
+   xlink:href="#id67"
+   gradientUnits="userSpaceOnUse"
+   id="id73">
+  </linearGradient>
+
+  <linearGradient
+   y2="108.543"
+   x2="121.164"
+   y1="129.014"
+   x1="133.469"
+   xlink:href="#id67"
+   gradientUnits="userSpaceOnUse"
+   id="id72">
+  </linearGradient>
+
+  <linearGradient
+   y2="10.9815"
+   x2="398.797"
+   y1="30.8071"
+   x1="410.714"
+   xlink:href="#id67"
+   gradientUnits="userSpaceOnUse"
+   id="id71">
+  </linearGradient>
+
+  <linearGradient
+   y2="93.6347"
+   x2="243.715"
+   y1="104.414"
+   x1="250.194"
+   xlink:href="#id67"
+   gradientUnits="userSpaceOnUse"
+   id="id70">
+  </linearGradient>
+
+  <linearGradient
+   y2="6.5386"
+   x2="407.789"
+   y1="26.366"
+   x1="419.706"
+   xlink:href="#id67"
+   gradientUnits="userSpaceOnUse"
+   id="id69">
+  </linearGradient>
+
+  <linearGradient
+   y2="113.128"
+   x2="111.881"
+   y1="133.601"
+   x1="124.184"
+   xlink:href="#id67"
+   gradientUnits="userSpaceOnUse"
+   id="id68">
+  </linearGradient>
+
+  <linearGradient
+   y2="110.835"
+   x2="116.524"
+   y1="131.308"
+   x1="128.826"
+   gradientUnits="userSpaceOnUse"
+   id="id67">
+   <stop
+   id="stop260"
+   style="stop-color:#1A0D0E"
+   offset="0" />
+
+   <stop
+   id="stop262"
+   style="stop-color:#E77817"
+   offset="1" />
+
+  </linearGradient>
+
+  <linearGradient
+   y2="21.2792"
+   x2="413.179"
+   y1="61.828"
+   x1="422.609"
+   xlink:href="#id58"
+   gradientUnits="userSpaceOnUse"
+   id="id66">
+  </linearGradient>
+
+  <linearGradient
+   y2="99.2335"
+   x2="251.534"
+   y1="121.28"
+   x1="256.661"
+   xlink:href="#id58"
+   gradientUnits="userSpaceOnUse"
+   id="id65">
+  </linearGradient>
+
+  <linearGradient
+   y2="123.761"
+   x2="126.73"
+   y1="165.63"
+   x1="136.467"
+   xlink:href="#id58"
+   gradientUnits="userSpaceOnUse"
+   id="id64">
+  </linearGradient>
+
+  <linearGradient
+   y2="129.654"
+   x2="124.016"
+   y1="160.672"
+   x1="131.229"
+   xlink:href="#id58"
+   gradientUnits="userSpaceOnUse"
+   id="id63">
+  </linearGradient>
+
+  <linearGradient
+   y2="102.336"
+   x2="250.105"
+   y1="118.669"
+   x1="253.903"
+   xlink:href="#id58"
+   gradientUnits="userSpaceOnUse"
+   id="id62">
+  </linearGradient>
+
+  <linearGradient
+   y2="96.5614"
+   x2="252.314"
+   y1="122.553"
+   x1="258.358"
+   xlink:href="#id58"
+   gradientUnits="userSpaceOnUse"
+   id="id61">
+  </linearGradient>
+
+  <linearGradient
+   y2="16.3643"
+   x2="414.613"
+   y1="64.1705"
+   x1="425.729"
+   xlink:href="#id58"
+   gradientUnits="userSpaceOnUse"
+   id="id60">
+  </linearGradient>
+
+  <linearGradient
+   y2="26.9847"
+   x2="410.55"
+   y1="57.0259"
+   x1="417.536"
+   xlink:href="#id58"
+   gradientUnits="userSpaceOnUse"
+   id="id59">
+  </linearGradient>
+
+  <linearGradient
+   y2="118.687"
+   x2="128.212"
+   y1="168.049"
+   x1="139.687"
+   gradientUnits="userSpaceOnUse"
+   id="id58">
+   <stop
+   id="stop247"
+   style="stop-color:#1A0D0E"
+   offset="0" />
+
+   <stop
+   id="stop249"
+   style="stop-color:#843E2A"
+   offset="1" />
+
+  </linearGradient>
+
+  <linearGradient
+   y2="-3.789"
+   x2="246.436"
+   y1="-3.789"
+   x1="245.074"
+   gradientUnits="userSpaceOnUse"
+   id="id57">
+   <stop
+   id="stop238"
+   style="stop-color:#064C92"
+   offset="0" />
+
+   <stop
+   id="stop240"
+   style="stop-color:#75C5F0"
+   offset="0.419608" />
+
+   <stop
+   id="stop242"
+   style="stop-color:#75C5F0"
+   offset="0.580392" />
+
+   <stop
+   id="stop244"
+   style="stop-color:#054990"
+   offset="1" />
+
+  </linearGradient>
+
+  <linearGradient
+   y2="111.569"
+   x2="34.2696"
+   y1="111.569"
+   x1="155.966"
+   gradientUnits="userSpaceOnUse"
+   id="id56">
+   <stop
+   id="stop233"
+   style="stop-color:#F8C300"
+   offset="0" />
+
+   <stop
+   id="stop235"
+   style="stop-color:#AF251C"
+   offset="1" />
+
+  </linearGradient>
+
+  <linearGradient
+   y2="94.7925"
+   x2="65.6744"
+   y1="94.7925"
+   x1="83.9482"
+   gradientUnits="userSpaceOnUse"
+   id="id55">
+   <stop
+   id="stop228"
+   style="stop-color:#FFF500"
+   offset="0" />
+
+   <stop
+   id="stop230"
+   style="stop-color:#F3AE00"
+   offset="1" />
+
+  </linearGradient>
+
+  <mask
+   id="id53">
+  <linearGradient
+   y2="-9.9508"
+   x2="373.676"
+   y1="-15.9426"
+   x1="371.792"
+   gradientUnits="userSpaceOnUse"
+   id="id54">
+   <stop
+   id="stop221"
+   style="stop-opacity:1; stop-color:white"
+   offset="0" />
+
+   <stop
+   id="stop223"
+   style="stop-opacity:0; stop-color:white"
+   offset="1" />
+
+  </linearGradient>
+
+      <rect
+   id="rect225"
+   height="10.0698"
+   width="4.9137"
+   y="-17.9816"
+   x="370.277"
+   style="fill:url(#id54)" />
+
+     </mask>
+
+     <mask
+   id="id51">
+  <linearGradient
+   y2="-10.4715"
+   x2="385.662"
+   y1="-16.3039"
+   x1="392.999"
+   gradientUnits="userSpaceOnUse"
+   id="id52">
+   <stop
+   id="stop213"
+   style="stop-opacity:1; stop-color:white"
+   offset="0" />
+
+   <stop
+   id="stop215"
+   style="stop-opacity:0; stop-color:white"
+   offset="1" />
+
+  </linearGradient>
+
+      <rect
+   id="rect217"
+   height="7.3292"
+   width="8.7865"
+   y="-17.0523"
+   x="384.937"
+   style="fill:url(#id52)" />
+
+     </mask>
+
+     <mask
+   id="id49">
+  <linearGradient
+   y2="-6.2149"
+   x2="383.647"
+   y1="-16.1675"
+   x1="396.476"
+   gradientUnits="userSpaceOnUse"
+   id="id50">
+   <stop
+   id="stop205"
+   style="stop-opacity:1; stop-color:white"
+   offset="0" />
+
+   <stop
+   id="stop207"
+   style="stop-opacity:0; stop-color:white"
+   offset="1" />
+
+  </linearGradient>
+
+      <rect
+   id="rect209"
+   height="11.8497"
+   width="14.5146"
+   y="-17.1161"
+   x="382.804"
+   style="fill:url(#id50)" />
+
+     </mask>
+
+     <mask
+   id="id47">
+  <linearGradient
+   y2="-12.972"
+   x2="334.051"
+   y1="-16.076"
+   x1="331.759"
+   gradientUnits="userSpaceOnUse"
+   id="id48">
+   <stop
+   id="stop197"
+   style="stop-opacity:1; stop-color:white"
+   offset="0" />
+
+   <stop
+   id="stop199"
+   style="stop-opacity:0; stop-color:white"
+   offset="1" />
+
+  </linearGradient>
+
+      <rect
+   id="rect201"
+   height="4.9935"
+   width="4.908"
+   y="-17.0208"
+   x="330.451"
+   style="fill:url(#id48)" />
+
+     </mask>
+
+     <mask
+   id="id45">
+  <linearGradient
+   y2="-7.4943"
+   x2="335.056"
+   y1="-15.5887"
+   x1="328.32"
+   gradientUnits="userSpaceOnUse"
+   id="id46">
+   <stop
+   id="stop189"
+   style="stop-opacity:1; stop-color:white"
+   offset="0" />
+
+   <stop
+   id="stop191"
+   style="stop-opacity:0; stop-color:white"
+   offset="1" />
+
+  </linearGradient>
+
+      <rect
+   id="rect193"
+   height="11.7719"
+   width="13.7331"
+   y="-17.4275"
+   x="324.822"
+   style="fill:url(#id46)" />
+
+     </mask>
+
+     <mask
+   id="id43">
+  <linearGradient
+   y2="-4.4401"
+   x2="384.32"
+   y1="-18.7055"
+   x1="383.555"
+   gradientUnits="userSpaceOnUse"
+   id="id44">
+   <stop
+   id="stop181"
+   style="stop-opacity:1; stop-color:white"
+   offset="0" />
+
+   <stop
+   id="stop183"
+   style="stop-opacity:0; stop-color:white"
+   offset="1" />
+
+  </linearGradient>
+
+      <rect
+   id="rect185"
+   height="13.9968"
+   width="29.0651"
+   y="-18.5712"
+   x="369.405"
+   style="fill:url(#id44)" />
+
+     </mask>
+
+     <mask
+   id="id41">
+  <linearGradient
+   y2="-4.3038"
+   x2="339"
+   y1="-18.8418"
+   x1="338.241"
+   gradientUnits="userSpaceOnUse"
+   id="id42">
+   <stop
+   id="stop173"
+   style="stop-opacity:1; stop-color:white"
+   offset="0" />
+
+   <stop
+   id="stop175"
+   style="stop-opacity:0; stop-color:white"
+   offset="1" />
+
+  </linearGradient>
+
+      <rect
+   id="rect177"
+   height="13.9968"
+   width="29.0477"
+   y="-18.5712"
+   x="324.096"
+   style="fill:url(#id42)" />
+
+     </mask>
+
+     <mask
+   id="id39">
+  <linearGradient
+   y2="-4.9052"
+   x2="366.719"
+   y1="-11.9422"
+   x1="358.58"
+   gradientUnits="userSpaceOnUse"
+   id="id40">
+   <stop
+   id="stop165"
+   style="stop-opacity:1; stop-color:white"
+   offset="0" />
+
+   <stop
+   id="stop167"
+   style="stop-opacity:0; stop-color:white"
+   offset="1" />
+
+  </linearGradient>
+
+     <rect
+   id="rect169"
+   height="20.1644"
+   width="12.3395"
+   y="-18.5059"
+   x="356.48"
+   style="fill:url(#id40)" />
+
+    </mask>
+
+    <mask
+   id="id37">
+  <linearGradient
+   y2="1.8957"
+   x2="368.957"
+   y1="-0.3315"
+   x1="363.51"
+   gradientUnits="userSpaceOnUse"
+   id="id38">
+   <stop
+   id="stop157"
+   style="stop-opacity:1; stop-color:white"
+   offset="0" />
+
+   <stop
+   id="stop159"
+   style="stop-opacity:0; stop-color:white"
+   offset="1" />
+
+  </linearGradient>
+
+     <rect
+   id="rect161"
+   height="9.5011"
+   width="7.9979"
+   y="-3.9685"
+   x="362.235"
+   style="fill:url(#id38)" />
+
+    </mask>
+
+    <clipPath
+   id="id36">
+       <path
+   id="path153"
+   d="M246.996 -16.1191l4.2989 -0.0845 0 2.4392 -4.2989 0.0845 0 -2.4392z" />
+
+      </clipPath>
+
+      <mask
+   id="id34">
+  <linearGradient
+   y2="82.2542"
+   x2="230.057"
+   y1="78.9964"
+   x1="229.032"
+   gradientUnits="userSpaceOnUse"
+   id="id35">
+   <stop
+   id="stop146"
+   style="stop-opacity:1; stop-color:white"
+   offset="0" />
+
+   <stop
+   id="stop148"
+   style="stop-opacity:0; stop-color:white"
+   offset="1" />
+
+  </linearGradient>
+
+      <rect
+   id="rect150"
+   height="5.5662"
+   width="2.7627"
+   y="77.8422"
+   x="228.163"
+   style="fill:url(#id35)" />
+
+     </mask>
+
+     <mask
+   id="id32">
+  <linearGradient
+   y2="81.9711"
+   x2="236.573"
+   y1="78.8001"
+   x1="240.562"
+   gradientUnits="userSpaceOnUse"
+   id="id33">
+   <stop
+   id="stop138"
+   style="stop-opacity:1; stop-color:white"
+   offset="0" />
+
+   <stop
+   id="stop140"
+   style="stop-opacity:0; stop-color:white"
+   offset="1" />
+
+  </linearGradient>
+
+      <rect
+   id="rect142"
+   height="4.0761"
+   width="4.8685"
+   y="78.3475"
+   x="236.134"
+   style="fill:url(#id33)" />
+
+     </mask>
+
+     <mask
+   id="id30">
+  <linearGradient
+   y2="84.2854"
+   x2="235.478"
+   y1="78.8742"
+   x1="242.453"
+   gradientUnits="userSpaceOnUse"
+   id="id31">
+   <stop
+   id="stop130"
+   style="stop-opacity:1; stop-color:white"
+   offset="0" />
+
+   <stop
+   id="stop132"
+   style="stop-opacity:0; stop-color:white"
+   offset="1" />
+
+  </linearGradient>
+
+      <rect
+   id="rect134"
+   height="6.5337"
+   width="7.9827"
+   y="78.3129"
+   x="234.974"
+   style="fill:url(#id31)" />
+
+     </mask>
+
+     <mask
+   id="id28">
+  <linearGradient
+   y2="80.6116"
+   x2="208.513"
+   y1="78.9238"
+   x1="207.267"
+   gradientUnits="userSpaceOnUse"
+   id="id29">
+   <stop
+   id="stop122"
+   style="stop-opacity:1; stop-color:white"
+   offset="0" />
+
+   <stop
+   id="stop124"
+   style="stop-opacity:0; stop-color:white"
+   offset="1" />
+
+  </linearGradient>
+
+      <rect
+   id="rect126"
+   height="2.8062"
+   width="2.7598"
+   y="78.3646"
+   x="206.51"
+   style="fill:url(#id29)" />
+
+     </mask>
+
+     <mask
+   id="id26">
+  <linearGradient
+   y2="83.5897"
+   x2="209.059"
+   y1="79.1889"
+   x1="205.397"
+   gradientUnits="userSpaceOnUse"
+   id="id27">
+   <stop
+   id="stop114"
+   style="stop-opacity:1; stop-color:white"
+   offset="0" />
+
+   <stop
+   id="stop116"
+   style="stop-opacity:0; stop-color:white"
+   offset="1" />
+
+  </linearGradient>
+
+      <rect
+   id="rect118"
+   height="6.4915"
+   width="7.5579"
+   y="78.1435"
+   x="203.449"
+   style="fill:url(#id27)" />
+
+     </mask>
+
+     <mask
+   id="id24">
+  <linearGradient
+   y2="85.2502"
+   x2="235.844"
+   y1="77.4944"
+   x1="235.428"
+   gradientUnits="userSpaceOnUse"
+   id="id25">
+   <stop
+   id="stop106"
+   style="stop-opacity:1; stop-color:white"
+   offset="0" />
+
+   <stop
+   id="stop108"
+   style="stop-opacity:0; stop-color:white"
+   offset="1" />
+
+  </linearGradient>
+
+      <rect
+   id="rect110"
+   height="7.6123"
+   width="15.8048"
+   y="77.5661"
+   x="227.733"
+   style="fill:url(#id25)" />
+
+     </mask>
+
+     <mask
+   id="id22">
+  <linearGradient
+   y2="85.3244"
+   x2="211.203"
+   y1="77.4202"
+   x1="210.791"
+   gradientUnits="userSpaceOnUse"
+   id="id23">
+   <stop
+   id="stop98"
+   style="stop-opacity:1; stop-color:white"
+   offset="0" />
+
+   <stop
+   id="stop100"
+   style="stop-opacity:0; stop-color:white"
+   offset="1" />
+
+  </linearGradient>
+
+      <rect
+   id="rect102"
+   height="7.6123"
+   width="15.7954"
+   y="77.5661"
+   x="203.099"
+   style="fill:url(#id23)" />
+
+     </mask>
+
+     <mask
+   id="id20">
+  <linearGradient
+   y2="84.9975"
+   x2="226.274"
+   y1="81.1715"
+   x1="221.849"
+   gradientUnits="userSpaceOnUse"
+   id="id21">
+   <stop
+   id="stop90"
+   style="stop-opacity:1; stop-color:white"
+   offset="0" />
+
+   <stop
+   id="stop92"
+   style="stop-opacity:0; stop-color:white"
+   offset="1" />
+
+  </linearGradient>
+
+     <rect
+   id="rect94"
+   height="10.9979"
+   width="6.7437"
+   y="77.5855"
+   x="220.69"
+   style="fill:url(#id21)" />
+
+    </mask>
+
+    <mask
+   id="id18">
+  <linearGradient
+   y2="88.6951"
+   x2="227.491"
+   y1="87.4841"
+   x1="224.529"
+   gradientUnits="userSpaceOnUse"
+   id="id19">
+   <stop
+   id="stop82"
+   style="stop-opacity:1; stop-color:white"
+   offset="0" />
+
+   <stop
+   id="stop84"
+   style="stop-opacity:0; stop-color:white"
+   offset="1" />
+
+  </linearGradient>
+
+     <rect
+   id="rect86"
+   height="5.2005"
+   width="4.3832"
+   y="85.4893"
+   x="223.819"
+   style="fill:url(#id19)" />
+
+    </mask>
+
+    <mask
+   id="id16">
+  <linearGradient
+   y2="91.516"
+   x2="85.9416"
+   y1="85.3292"
+   x1="83.9964"
+   gradientUnits="userSpaceOnUse"
+   id="id17">
+   <stop
+   id="stop74"
+   style="stop-opacity:1; stop-color:white"
+   offset="0" />
+
+   <stop
+   id="stop76"
+   style="stop-opacity:0; stop-color:white"
+   offset="1" />
+
+  </linearGradient>
+
+      <rect
+   id="rect78"
+   height="10.3911"
+   width="5.0669"
+   y="83.227"
+   x="82.4355"
+   style="fill:url(#id17)" />
+
+     </mask>
+
+     <mask
+   id="id14">
+  <linearGradient
+   y2="90.9784"
+   x2="98.3177"
+   y1="84.9562"
+   x1="105.893"
+   gradientUnits="userSpaceOnUse"
+   id="id15">
+   <stop
+   id="stop66"
+   style="stop-opacity:1; stop-color:white"
+   offset="0" />
+
+   <stop
+   id="stop68"
+   style="stop-opacity:0; stop-color:white"
+   offset="1" />
+
+  </linearGradient>
+
+      <rect
+   id="rect70"
+   height="7.5611"
+   width="9.066"
+   y="84.1867"
+   x="97.5725"
+   style="fill:url(#id15)" />
+
+     </mask>
+
+     <mask
+   id="id12">
+  <linearGradient
+   y2="95.3734"
+   x2="96.2373"
+   y1="85.097"
+   x1="109.484"
+   gradientUnits="userSpaceOnUse"
+   id="id13">
+   <stop
+   id="stop58"
+   style="stop-opacity:1; stop-color:white"
+   offset="0" />
+
+   <stop
+   id="stop60"
+   style="stop-opacity:0; stop-color:white"
+   offset="1" />
+
+  </linearGradient>
+
+      <rect
+   id="rect62"
+   height="12.2285"
+   width="14.9803"
+   y="84.1209"
+   x="95.3702"
+   style="fill:url(#id13)" />
+
+     </mask>
+
+     <mask
+   id="id10">
+  <linearGradient
+   y2="88.3964"
+   x2="45.0273"
+   y1="85.1914"
+   x1="42.6605"
+   gradientUnits="userSpaceOnUse"
+   id="id11">
+   <stop
+   id="stop50"
+   style="stop-opacity:1; stop-color:white"
+   offset="0" />
+
+   <stop
+   id="stop52"
+   style="stop-opacity:0; stop-color:white"
+   offset="1" />
+
+  </linearGradient>
+
+      <rect
+   id="rect54"
+   height="5.1496"
+   width="5.0612"
+   y="84.2191"
+   x="41.3133"
+   style="fill:url(#id11)" />
+
+     </mask>
+
+     <mask
+   id="id8">
+  <linearGradient
+   y2="94.0527"
+   x2="46.065"
+   y1="85.6941"
+   x1="39.1106"
+   gradientUnits="userSpaceOnUse"
+   id="id9">
+   <stop
+   id="stop42"
+   style="stop-opacity:1; stop-color:white"
+   offset="0" />
+
+   <stop
+   id="stop44"
+   style="stop-opacity:0; stop-color:white"
+   offset="1" />
+
+  </linearGradient>
+
+      <rect
+   id="rect46"
+   height="12.1484"
+   width="14.1734"
+   y="83.7992"
+   x="35.5011"
+   style="fill:url(#id9)" />
+
+     </mask>
+
+     <mask
+   id="id6">
+  <linearGradient
+   y2="97.2059"
+   x2="96.9321"
+   y1="82.4765"
+   x1="96.1421"
+   gradientUnits="userSpaceOnUse"
+   id="id7">
+   <stop
+   id="stop34"
+   style="stop-opacity:1; stop-color:white"
+   offset="0" />
+
+   <stop
+   id="stop36"
+   style="stop-opacity:0; stop-color:white"
+   offset="1" />
+
+  </linearGradient>
+
+      <rect
+   id="rect38"
+   height="14.4522"
+   width="30.0107"
+   y="82.6151"
+   x="81.5317"
+   style="fill:url(#id7)" />
+
+     </mask>
+
+     <mask
+   id="id4">
+  <linearGradient
+   y2="97.3468"
+   x2="50.1372"
+   y1="82.3356"
+   x1="49.3534"
+   gradientUnits="userSpaceOnUse"
+   id="id5">
+   <stop
+   id="stop26"
+   style="stop-opacity:1; stop-color:white"
+   offset="0" />
+
+   <stop
+   id="stop28"
+   style="stop-opacity:0; stop-color:white"
+   offset="1" />
+
+  </linearGradient>
+
+      <rect
+   id="rect30"
+   height="14.4522"
+   width="29.9927"
+   y="82.6151"
+   x="34.7489"
+   style="fill:url(#id5)" />
+
+     </mask>
+
+     <mask
+   id="id2">
+  <linearGradient
+   y2="96.7258"
+   x2="78.7587"
+   y1="89.4598"
+   x1="70.3549"
+   gradientUnits="userSpaceOnUse"
+   id="id3">
+   <stop
+   id="stop18"
+   style="stop-opacity:1; stop-color:white"
+   offset="0" />
+
+   <stop
+   id="stop20"
+   style="stop-opacity:0; stop-color:white"
+   offset="1" />
+
+  </linearGradient>
+
+     <rect
+   id="rect22"
+   height="20.8179"
+   width="12.7385"
+   y="82.6838"
+   x="68.1875"
+   style="fill:url(#id3)" />
+
+    </mask>
+
+    <mask
+   id="id0">
+  <linearGradient
+   y2="103.748"
+   x2="81.0699"
+   y1="101.448"
+   x1="75.4447"
+   gradientUnits="userSpaceOnUse"
+   id="id1">
+   <stop
+   id="stop10"
+   style="stop-opacity:1; stop-color:white"
+   offset="0" />
+
+   <stop
+   id="stop12"
+   style="stop-opacity:0; stop-color:white"
+   offset="1" />
+
+  </linearGradient>
+
+     <rect
+   id="rect14"
+   height="9.8077"
+   width="8.2557"
+   y="97.6942"
+   x="74.1294"
+   style="fill:url(#id1)" />
+
+    </mask>
+
+    <style
+   id="style6"
+   type="text/css">
+   
+    .str3 {stroke:#007CC3;stroke-width:0.0762}
+    .str2 {stroke:#0093DD;stroke-width:0.0762}
+    .str0 {stroke:#1F1A17;stroke-width:0.0762}
+    .str9 {stroke:#667AB3;stroke-width:0.0762}
+    .str6 {stroke:#72706F;stroke-width:0.0762}
+    .str4 {stroke:#838281;stroke-width:0.0762}
+    .str7 {stroke:#969594;stroke-width:0.0762}
+    .str1 {stroke:#AAA9A9;stroke-width:0.0762}
+    .str10 {stroke:#C2C1C1;stroke-width:0.0762}
+    .str5 {stroke:#DA251D;stroke-width:0.0762}
+    .str8 {stroke:#E77817;stroke-width:0.0762}
+    .fil3 {fill:none}
+    .fil16 {fill:#0093DD}
+    .fil5 {fill:#1F1A17}
+    .fil2 {fill:#969594}
+    .fil6 {fill:#AAA9A9}
+    .fil4 {fill:#DEDEDD}
+    .fil1 {fill:white}
+    .fil46 {fill:#69312C}
+    .fil15 {fill:url(#id55)}
+    .fil0 {fill:url(#id56)}
+    .fil59 {fill:url(#id57)}
+    .fil19 {fill:url(#id58)}
+    .fil81 {fill:url(#id59)}
+    .fil80 {fill:url(#id60)}
+    .fil32 {fill:url(#id61)}
+    .fil33 {fill:url(#id62)}
+    .fil20 {fill:url(#id63)}
+    .fil21 {fill:url(#id64)}
+    .fil34 {fill:url(#id65)}
+    .fil82 {fill:url(#id66)}
+    .fil22 {fill:url(#id67)}
+    .fil23 {fill:url(#id68)}
+    .fil79 {fill:url(#id69)}
+    .fil36 {fill:url(#id70)}
+    .fil84 {fill:url(#id71)}
+    .fil18 {fill:url(#id72)}
+    .fil31 {fill:url(#id73)}
+    .fil83 {fill:url(#id74)}
+    .fil35 {fill:url(#id75)}
+    .fil51 {fill:url(#id76)}
+    .fil77 {fill:url(#id77)}
+    .fil53 {fill:url(#id78)}
+    .fil65 {fill:url(#id79)}
+    .fil76 {fill:url(#id80)}
+    .fil96 {fill:url(#id81)}
+    .fil55 {fill:url(#id82)}
+    .fil10 {fill:url(#id83)}
+    .fil9 {fill:url(#id84)}
+    .fil8 {fill:url(#id85)}
+    .fil92 {fill:url(#id86)}
+    .fil17 {fill:url(#id87)}
+    .fil7 {fill:url(#id88)}
+    .fil95 {fill:url(#id89)}
+    .fil94 {fill:url(#id90)}
+    .fil97 {fill:url(#id91)}
+    .fil69 {fill:url(#id92)}
+    .fil85 {fill:url(#id93)}
+    .fil13 {fill:url(#id94)}
+    .fil78 {fill:url(#id95)}
+    .fil30 {fill:url(#id96)}
+    .fil12 {fill:url(#id97)}
+    .fil54 {fill:url(#id98)}
+    .fil48 {fill:url(#id99)}
+    .fil91 {fill:url(#id100)}
+    .fil68 {fill:url(#id101)}
+    .fil60 {fill:url(#id102)}
+    .fil14 {fill:url(#id103)}
+    .fil93 {fill:url(#id104)}
+    .fil52 {fill:url(#id105)}
+    .fil87 {fill:url(#id106)}
+    .fil25 {fill:url(#id107)}
+    .fil38 {fill:url(#id108)}
+    .fil26 {fill:url(#id109)}
+    .fil86 {fill:url(#id110)}
+    .fil24 {fill:url(#id111)}
+    .fil37 {fill:url(#id112)}
+    .fil88 {fill:url(#id113)}
+    .fil28 {fill:url(#id114)}
+    .fil29 {fill:url(#id115)}
+    .fil89 {fill:url(#id116)}
+    .fil90 {fill:url(#id117)}
+    .fil27 {fill:url(#id118)}
+    .fil58 {fill:url(#id119)}
+    .fil64 {fill:url(#id120)}
+    .fil57 {fill:url(#id121)}
+    .fil41 {fill:url(#id122)}
+    .fil39 {fill:url(#id123)}
+    .fil40 {fill:url(#id124)}
+    .fil73 {fill:url(#id125)}
+    .fil61 {fill:url(#id126)}
+    .fil44 {fill:url(#id127)}
+    .fil63 {fill:url(#id128)}
+    .fil56 {fill:url(#id129)}
+    .fil42 {fill:url(#id130)}
+    .fil75 {fill:url(#id131)}
+    .fil66 {fill:url(#id132)}
+    .fil72 {fill:url(#id133)}
+    .fil67 {fill:url(#id134)}
+    .fil62 {fill:url(#id135)}
+    .fil74 {fill:url(#id136)}
+    .fil71 {fill:url(#id137)}
+    .fil11 {fill:url(#id138)}
+    .fil70 {fill:url(#id139)}
+    .fil45 {fill:url(#id140)}
+    .fil43 {fill:url(#id141)}
+    .fil49 {fill:url(#id142)}
+    .fil50 {fill:url(#id143)}
+    .fil47 {fill:url(#id144)}
+   
+  </style>
+
+  <inkscape:perspective
+   id="perspective806"
+   inkscape:persp3d-origin="382.5 : 330 : 1"
+   inkscape:vp_z="765 : 495 : 1"
+   inkscape:vp_y="0 : 1000 : 0"
+   inkscape:vp_x="0 : 495 : 1"
+   sodipodi:type="inkscape:persp3d" />
+
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+  <linearGradient
+   gradientTransform="matrix(0.2149522,0,0,0.2369714,30.871779,266.01932)"
+   gradientUnits="userSpaceOnUse"
+   xlink:href="#linearGradient3989"
+   id="linearGradient9477"
+   y2="332.36218"
+   x2="152.87143"
+   y1="585.21936"
+   x1="460.01428" />
+<linearGradient
+   gradientTransform="matrix(0.3505596,0,0,0.3701598,22.984703,226.27699)"
+   gradientUnits="userSpaceOnUse"
+   xlink:href="#linearGradient2190"
+   id="linearGradient9474"
+   y2="322.8829"
+   x2="131.99297"
+   y1="451.83481"
+   x1="225.2822" />
+<linearGradient
+   gradientTransform="matrix(1.630872,0,0,1.562044,-66.69223,-169.1379)"
+   gradientUnits="userSpaceOnUse"
+   xlink:href="#linearGradient2190"
+   id="linearGradient9453"
+   y2="322.8829"
+   x2="131.99297"
+   y1="451.83481"
+   x1="225.2822" />
+<linearGradient
+   gradientTransform="translate(-30,-1.428557)"
+   gradientUnits="userSpaceOnUse"
+   xlink:href="#linearGradient3989"
+   id="linearGradient9451"
+   y2="332.36218"
+   x2="152.87143"
+   y1="585.21936"
+   x1="460.01428" />
+<linearGradient
+   gradientTransform="matrix(1.630872,0,0,1.562044,-66.69223,-169.1379)"
+   gradientUnits="userSpaceOnUse"
+   xlink:href="#linearGradient2190"
+   id="linearGradient5850"
+   y2="322.8829"
+   x2="131.99297"
+   y1="451.83481"
+   x1="225.2822" />
+<linearGradient
+   gradientTransform="translate(-30,-1.428557)"
+   gradientUnits="userSpaceOnUse"
+   xlink:href="#linearGradient3989"
+   id="linearGradient5848"
+   y2="332.36218"
+   x2="152.87143"
+   y1="585.21936"
+   x1="460.01428" />
+<linearGradient
+   gradientTransform="matrix(1.630872,0,0,1.562044,-66.69223,-169.1379)"
+   gradientUnits="userSpaceOnUse"
+   xlink:href="#linearGradient2190"
+   id="linearGradient5824"
+   y2="322.8829"
+   x2="131.99297"
+   y1="451.83481"
+   x1="225.2822" />
+<linearGradient
+   gradientTransform="translate(-30,-1.428557)"
+   gradientUnits="userSpaceOnUse"
+   xlink:href="#linearGradient3989"
+   id="linearGradient5822"
+   y2="332.36218"
+   x2="152.87143"
+   y1="585.21936"
+   x1="460.01428" />
+<linearGradient
+   gradientTransform="translate(-30,-1.428557)"
+   gradientUnits="userSpaceOnUse"
+   xlink:href="#linearGradient3989"
+   id="linearGradient3995"
+   y2="332.36218"
+   x2="152.87143"
+   y1="585.21936"
+   x1="460.01428" />
+<linearGradient
+   gradientTransform="matrix(1.630872,0,0,1.562044,-66.69223,-169.1379)"
+   gradientUnits="userSpaceOnUse"
+   xlink:href="#linearGradient2190"
+   id="linearGradient2196"
+   y2="322.8829"
+   x2="131.99297"
+   y1="451.83481"
+   x1="225.2822" />
+<linearGradient
+   id="linearGradient2190">
+  <stop
+     offset="0"
+     style="stop-color:#acbbff;stop-opacity:1"
+     id="stop2192" />
+  <stop
+     offset="1"
+     style="stop-color:#acbbff;stop-opacity:0"
+     id="stop2194" />
+</linearGradient>
+<linearGradient
+   id="linearGradient3989">
+  <stop
+     offset="0"
+     style="stop-color:#000000;stop-opacity:1"
+     id="stop3991" />
+  <stop
+     offset="1"
+     style="stop-color:#000000;stop-opacity:0"
+     id="stop3993" />
+</linearGradient>
+</defs>
   <sodipodi:namedview
      id="base"
      pagecolor="#ffffff"
@@ -2523,8 +6549,8 @@
      inkscape:pageopacity="0"
      inkscape:pageshadow="2"
      inkscape:zoom="1.9999999"
-     inkscape:cx="129.24816"
-     inkscape:cy="-53.192872"
+     inkscape:cx="-116.1054"
+     inkscape:cy="-179.36412"
      inkscape:document-units="px"
      inkscape:current-layer="layer1"
      width="16px"
@@ -5664,5 +9690,764 @@
          id="path2298"
          inkscape:connector-curvature="0" />
     </g>
+    <path
+       style="color:#000000;fill:#969696;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 245,136 c -38.68657,0.0916 -70,31.40484 -70,70 l 70.15625,0 L 245,136 z m -35,25 10,0 0,10 10,0 0,10 -10,0 0,10 -10,0 0,-10 -10,0 0,-10 10,0 0,-10 z"
+       id="custom_tree_background"
+       inkscape:connector-curvature="0" />
+    <text
+       xml:space="preserve"
+       style="font-size:4.49727678px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
+       x="175"
+       y="131"
+       id="text3638-3-1-0-5-2-8-8-2-8-6-1"><tspan
+         sodipodi:role="line"
+         id="tspan3640-1-2-4-7-9-4-9-0-9-4-8"
+         x="175"
+         y="131">%%custom_tree_background%%</tspan></text>
+    <g
+       transform="matrix(0,1,1,0,-257.9999,182.5)"
+       id="layer1-5">
+      <path
+         d="M 8.475,-1.4875 2.5,4.9999 8.475,11.488"
+         style="fill:none;stroke:url(#linearGradient3044);stroke-width:5;stroke-linecap:round;stroke-linejoin:round;enable-background:new"
+         id="path3169-2-3-5"
+         inkscape:connector-curvature="0" />
+      <path
+         d="M 19,5 6.5,4.9999"
+         style="fill:none;stroke:url(#linearGradient3046);stroke-width:6;stroke-linecap:round;stroke-linejoin:round;enable-background:new"
+         id="path3765-5"
+         inkscape:connector-curvature="0" />
+      <path
+         d="M 8.4376,-1.4502 2.5,4.9999 8.4377,11.45"
+         style="fill:none;stroke:url(#linearGradient3048);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;enable-background:new"
+         id="path4277-64"
+         inkscape:connector-curvature="0" />
+      <path
+         d="M 19,5 6.5,4.9999"
+         style="fill:none;stroke:url(#linearGradient3050);stroke-width:4;stroke-linecap:round;stroke-linejoin:round;enable-background:new"
+         id="path4279-5"
+         inkscape:connector-curvature="0" />
+      <path
+         d="M 8.9,10.469 6.5,8 C 5.5142,6.986 6.5,6.5 8,6.5 h 10.5 c 3,0 2.5,-3 0,-3 h -10 c -1.5,0 -3,0 -2,-1.5 l 2.3312,-2.1937 c 1.5,-2 -0.5,-2.5 -1.5,-1.5 L 2,4 C 1.5,4.5 1.4724,5.3333 2,6 l 5.4,5.9688 c 1,1 2.9787,0.02103 1.5,-1.5 z"
+         style="opacity:0.4;fill:none;stroke:url(#linearGradient4005);stroke-linecap:round;stroke-linejoin:round;enable-background:new"
+         id="path4454-7"
+         inkscape:connector-curvature="0" />
+      <path
+         d="m 6.5,2 2.4,-2.3312 c 1.5,-2 -0.5,-2.5 -1.5,-1.5 L 2,4 C 1.5,4.5 1.4724,5.3333 2,6 l 5.4,5.9 c 1,1 2.7957,0.13265 1.3625,-1.4312 L 6.5,7.9998"
+         style="opacity:0.4;fill:none;stroke:url(#linearGradient3052);stroke-linecap:round;stroke-linejoin:round;enable-background:new"
+         id="path4464-3"
+         inkscape:connector-curvature="0" />
+      <path
+         d="M 7.2625,-1.65 2,4"
+         style="opacity:0.51000001;fill:none;stroke:#f6daae;stroke-linecap:round;stroke-linejoin:round;enable-background:new"
+         id="path4466-7"
+         inkscape:connector-curvature="0" />
+    </g>
+    <rect
+       inkscape:label="#rect3636"
+       y="181"
+       x="-265"
+       height="24"
+       width="24"
+       id="up"
+       style="opacity:0;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+    <text
+       xml:space="preserve"
+       style="font-size:4.49727678px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
+       x="-265"
+       y="177"
+       id="text3638-3-3"><tspan
+         sodipodi:role="line"
+         id="tspan3640-1-8"
+         x="-265"
+         y="177">%%up%%</tspan></text>
+    <g
+       id="layer1-57"
+       transform="translate(-231.09946,181.05807)">
+      <g
+         transform="matrix(0.50043,0,0,0.51685,0.11475,-0.57818)"
+         style="stroke-width:1.88259995"
+         id="g3490-7">
+        <g
+           transform="matrix(0.021652,0,0,0.014857,43.008,42.685)"
+           style="stroke-width:104.95999908"
+           id="g5022-0">
+          <rect
+             x="-1559.3"
+             y="-150.7"
+             width="1339.6"
+             height="478.35999"
+             style="opacity:0.40206;fill:url(#linearGradient4532-7)"
+             id="rect4173-3" />
+          <path
+             d="m -219.62,-150.68 v 478.33 c 142.87,0.90045 345.4,-107.17 345.4,-239.2 0,-132.03 -159.44,-239.13 -345.4,-239.13 z"
+             style="opacity:0.40206;fill:url(#radialGradient4534-7)"
+             id="path5058-5"
+             inkscape:connector-curvature="0" />
+          <path
+             d="m -1559.3,-150.68 v 478.33 c -142.87,0.90045 -345.4,-107.17 -345.4,-239.2 0,-132.03 159.44,-239.13 345.4,-239.13 z"
+             style="opacity:0.40206;fill:url(#radialGradient4536-0)"
+             id="path5018-8"
+             inkscape:connector-curvature="0" />
+        </g>
+      </g>
+      <path
+         d="m 3.5134,0.5 c 4.1393,0.002518 12.829,0.007809 16.969,0.010328 -0.0037,6.0486 0.02118,15.962 0.01751,21.99 -5.6666,-0.0034 -11.333,-0.0069 -17,-0.01035 0.00447,-7.3299 0.00893,-14.66 0.013397,-21.99 z"
+         style="fill:url(#linearGradient4194);stroke:url(#linearGradient4196);stroke-linecap:round;stroke-linejoin:round"
+         id="path2855"
+         inkscape:connector-curvature="0" />
+      <path
+         d="m 19.028,12.429 c -0.08415,-0.04997 -0.14927,-0.03697 -0.19229,-0.0092 l -5.7296,3.6801 -1.0545,0.67922 -0.03247,0.01374 -1.2485,2.8377 3.0941,0.094 0.02569,-0.01734 1.0613,-0.67562 5.7281,-3.7118 C 20.8519,15.20859 20.57976,14.47153 20.06935,13.6635 19.68654,13.05751 19.2804,12.5789 19.02795,12.429 z"
+         style="opacity:0.15;fill:#0c0c0c;fill-rule:evenodd"
+         id="path2422"
+         inkscape:connector-curvature="0" />
+      <g
+         transform="matrix(1.0195,0,0,1,32.167,7.7733)"
+         style="fill:#999999"
+         id="g4198">
+        <path
+           d="m -25.666,-2.7733 h 1.1241 v 1 h -1.1241 v -1 z"
+           style="opacity:0.7;fill:#999999"
+           id="path6035"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m -24.388,-2.7733 h 1.0606 v 1 h -1.0606 v -1 z"
+           style="opacity:0.7;fill:#999999"
+           id="path6033"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m -23.175,-2.7733 h 0.93368 v 1 H -23.175 v -1 z"
+           style="opacity:0.7;fill:#999999"
+           id="path6031"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m -22.088,-2.7733 h 0.41011 v 1 H -22.088 v -1 z"
+           style="opacity:0.7;fill:#999999"
+           id="path6029"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m -21.525,-2.7733 h 0.91782 v 1 H -21.525 v -1 z"
+           style="opacity:0.7;fill:#999999"
+           id="path6027"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m -20.454,-2.7733 h 2.3775 v 1 h -2.3775 v -1 z"
+           style="opacity:0.7;fill:#999999"
+           id="path6025"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m -17.923,-2.7733 h 1.8063 v 1 h -1.8063 v -1 z"
+           style="opacity:0.7;fill:#999999"
+           id="path6023"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m -25.666,3.2267 h 1.1241 v 1 h -1.1241 v -1 z"
+           style="opacity:0.7;fill:#999999"
+           id="path6017"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m -24.388,3.2267 h 1.0606 v 1 h -1.0606 v -1 z"
+           style="opacity:0.7;fill:#999999"
+           id="path6015"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m -23.175,3.2267 h 0.93368 v 1 H -23.175 v -1 z"
+           style="opacity:0.7;fill:#999999"
+           id="path6013"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m -22.088,3.2267 h 0.41011 v 1 H -22.088 v -1 z"
+           style="opacity:0.7;fill:#999999"
+           id="path6011"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m -21.525,3.2267 h 0.91781 v 1 H -21.525 v -1 z"
+           style="opacity:0.7;fill:#999999"
+           id="path6009"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m -20.454,3.2267 h 2.3775 v 1 h -2.3775 v -1 z"
+           style="opacity:0.7;fill:#999999"
+           id="path6007"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m -17.923,3.2267 h 1.8063 v 1 h -1.8063 v -1 z"
+           style="opacity:0.7;fill:#999999"
+           id="path6005"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m -15.964,3.2267 h 0.5529 v 1 h -0.5529 v -1 z"
+           style="opacity:0.7;fill:#999999"
+           id="path6003"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m -15.258,3.2267 h 1.0923 v 1 h -1.0923 v -1 z"
+           style="opacity:0.7;fill:#999999"
+           id="path6001"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m -25.666,-0.77334 h 1.7428 v 1 h -1.7428 v -1 z"
+           style="opacity:0.7;fill:#999999"
+           id="path5999"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m -23.764,-0.77334 h 0.83849 v 1 H -23.764 v -1 z"
+           style="opacity:0.7;fill:#999999"
+           id="path5997"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m -22.766,-0.77334 h 0.39424 v 1 H -22.766 v -1 z"
+           style="opacity:0.7;fill:#999999"
+           id="path5995"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m -22.213,-0.77334 h 0.75916 v 1 H -22.213 v -1 z"
+           style="opacity:0.7;fill:#999999"
+           id="path5993"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m -21.295,-0.77334 h 0.75916 v 1 H -21.295 v -1 z"
+           style="opacity:0.7;fill:#999999"
+           id="path5991"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m -20.376,-0.77334 h 1.2193 v 1 h -1.2193 v -1 z"
+           style="opacity:0.7;fill:#999999"
+           id="path5989"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m -18.998,-0.77334 h 1.6 v 1 h -1.6 v -1 z"
+           style="opacity:0.7;fill:#999999"
+           id="path5987"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m -17.239,-0.77334 h 1.0765 v 1 h -1.0765 v -1 z"
+           style="opacity:0.7;fill:#999999"
+           id="path5985"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m -16.003,-0.77334 h 0.25145 v 1 H -16.003 v -1 z"
+           style="opacity:0.7;fill:#999999"
+           id="path5983"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m -25.666,1.2267 h 1.9967 v 1 h -1.9967 v -1 z"
+           style="opacity:0.7;fill:#999999"
+           id="path5981"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m -23.512,1.2267 h 2.1395 v 1 h -2.1395 v -1 z"
+           style="opacity:0.7;fill:#999999"
+           id="path5979"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m -21.216,1.2267 h 0.85436 v 1 H -21.216 v -1 z"
+           style="opacity:0.7;fill:#999999"
+           id="path5977"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m -20.205,1.2267 h 2.0125 v 1 h -2.0125 v -1 z"
+           style="opacity:0.7;fill:#999999"
+           id="path5975"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m -16.502,1.2267 h 0.53704 v 1 H -16.502 v -1 z"
+           style="opacity:0.7;fill:#999999"
+           id="path5973"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m -18.036,1.2267 h 1.3779 v 1 h -1.3779 v -1 z"
+           style="opacity:0.7;fill:#999999"
+           id="path5971"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m -15.808,1.2267 h 0.31492 v 1 H -15.808 v -1 z"
+           style="opacity:0.7;fill:#999999"
+           id="path5969"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m -15.337,1.2267 h 0.85436 v 1 H -15.337 v -1 z"
+           style="opacity:0.7;fill:#999999"
+           id="path5967"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m -25.666,9.2267 h 1.9967 v 1 h -1.9967 v -1 z"
+           style="opacity:0.7;fill:#999999"
+           id="path5965"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m -23.512,9.2267 h 2.1395 v 1 h -2.1395 v -1 z"
+           style="opacity:0.7;fill:#999999"
+           id="path5963"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m -21.216,9.2267 h 0.85436 v 1 H -21.216 v -1 z"
+           style="opacity:0.7;fill:#999999"
+           id="path5961"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m -20.205,9.2267 h 2.0125 v 1 h -2.0125 v -1 z"
+           style="opacity:0.7;fill:#999999"
+           id="path5959"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m -16.502,9.2267 h 0.53704 v 1 H -16.502 v -1 z"
+           style="opacity:0.7;fill:#999999"
+           id="path5957"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m -18.036,9.2267 h 1.3779 v 1 h -1.3779 v -1 z"
+           style="opacity:0.7;fill:#999999"
+           id="path5955"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m -15.808,9.2267 h 0.31492 v 1 H -15.808 v -1 z"
+           style="opacity:0.7;fill:#999999"
+           id="path5953"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m -15.337,9.2267 h 0.85436 v 1 H -15.337 v -1 z"
+           style="opacity:0.7;fill:#999999"
+           id="path5951"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m -25.666,5.2267 h 1.4414 v 1 h -1.4414 v -1 z"
+           style="opacity:0.7;fill:#999999"
+           id="path5949"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m -24.071,5.2267 h 2.3933 v 1 h -2.3933 v -1 z"
+           style="opacity:0.7;fill:#999999"
+           id="path5947"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m -21.525,5.2267 h 1.1558 v 1 h -1.1558 v -1 z"
+           style="opacity:0.7;fill:#999999"
+           id="path5945"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m -18.986,5.2267 h 0.91782 v 1 H -18.986 v -1 z"
+           style="opacity:0.7;fill:#999999"
+           id="path5943"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m -17.915,5.2267 h 1.4731 v 1 h -1.4731 v -1 z"
+           style="opacity:0.7;fill:#999999"
+           id="path5941"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m -16.289,5.2267 h 2.3933 v 1 h -2.3933 v -1 z"
+           style="opacity:0.7;fill:#999999"
+           id="path5939"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m -20.216,5.2267 h 1.0765 v 1 h -1.0765 v -1 z"
+           style="opacity:0.7;fill:#999999"
+           id="path5937"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m -25.666,7.2267 h 1.8063 v 1 h -1.8063 v -1 z"
+           style="opacity:0.7;fill:#999999"
+           id="path5935"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m -23.71,7.2267 h 0.56877 v 1 H -23.71 v -1 z"
+           style="opacity:0.7;fill:#999999"
+           id="path5933"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m -22.992,7.2267 h 1.2986 v 1 h -1.2986 v -1 z"
+           style="opacity:0.7;fill:#999999"
+           id="path5931"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m -21.544,7.2267 h 0.88609 v 1 H -21.544 v -1 z"
+           style="opacity:0.7;fill:#999999"
+           id="path5929"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m -20.509,7.2267 h 0.88608 v 1 H -20.509 v -1 z"
+           style="opacity:0.7;fill:#999999"
+           id="path5927"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m -19.474,7.2267 h 1.2827 v 1 h -1.2827 v -1 z"
+           style="opacity:0.7;fill:#999999"
+           id="path5925"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m -18.042,7.2267 h 0.26733 v 1 H -18.042 v -1 z"
+           style="opacity:0.7;fill:#999999"
+           id="path5923"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m -17.626,7.2267 h 1.6635 v 1 h -1.6635 v -1 z"
+           style="opacity:0.7;fill:#999999"
+           id="path5921"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m -15.813,7.2267 h 0.88609 v 1 H -15.813 v -1 z"
+           style="opacity:0.7;fill:#999999"
+           id="path5919"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m -25.666,11.227 h 0.72743 v 1 H -25.666 v -1 z"
+           style="opacity:0.7;fill:#999999"
+           id="path5917"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m -24.75,11.227 h 2.6472 v 1 H -24.75 v -1 z"
+           style="opacity:0.7;fill:#999999"
+           id="path5915"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m -18.374,11.227 h -0.72743 v 1 h 0.72743 v -1 z"
+           style="opacity:0.7;fill:#999999"
+           id="path6838"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m -19.29,11.227 h -2.6472 v 1 h 2.6472 v -1 z"
+           style="opacity:0.7;fill:#999999"
+           id="path6840"
+           inkscape:connector-curvature="0" />
+      </g>
+      <g
+         transform="matrix(0.8214,0,0,0.82339,10.976,6.2715)"
+         id="g8626">
+        <path
+           d="m 2.0488,11.037 c 0.28654,-0.20771 1.148,0.25639 1.9603,1.0619 0.81045,0.80363 1.2602,1.6413 1.0576,1.9306 -7.708e-4,0.0011 0.01977,0.01774 0.01898,0.01882 l 10.138,-10.18 c 0.258,-0.2581 -0.213,-1.1432 -1.051,-1.9744 -0.838,-0.8311 -1.728,-1.295 -1.986,-1.0366 l -10.138,10.18 z"
+           style="fill:url(#linearGradient3841);stroke:#0c0c0c;stroke-width:0.60798001;stroke-linejoin:round"
+           id="path3041"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m 10.565,2.4841 c 0.28654,-0.20771 1.148,0.25639 1.9603,1.0619 0.81044,0.80363 1.2602,1.6413 1.0576,1.9306 -7.69e-4,0.0011 0.01977,0.017738 0.01898,0.018821 l 1.552,-1.5571 c 0.409,-0.4086 -0.029,-1.0928 -0.981,-2.0447 -0.813,-0.8055 -1.674,-1.2696 -1.96,-1.0619 l -0.02525,0.025356 -1.6218,1.6271 z"
+           style="opacity:0.8;fill:#ffb6ed;stroke:#e28ccd;stroke-width:0.60798001;stroke-linejoin:round"
+           id="path3043"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m 2.0488,11.037 c 0.28654,-0.20771 1.148,0.25639 1.9603,1.0619 0.81044,0.80363 1.2602,1.6413 1.0576,1.9306 -7.714e-4,0.0011 0.01977,0.01774 0.01898,0.01882 l 6.982,-7.0109 0.02525,-0.025356 c 7.9e-4,-0.00108 -0.01975,-0.01772 -0.01898,-0.01882 0.203,-0.2885 -0.247,-1.1262 -1.058,-1.9298 -0.812,-0.8056 -1.6734,-1.2697 -1.9599,-1.062 l -0.025251,0.025355 -6.982,7.0109 z"
+           style="opacity:0.6;fill:#0c0c0c"
+           id="path3045"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m 9.1785,3.8767 c 0.28654,-0.20771 1.148,0.25639 1.9603,1.0619 0.81044,0.80363 1.2602,1.6413 1.0576,1.9306 -7.71e-4,0.0011 0.01977,0.017736 0.01898,0.01882 l 0.12626,-0.12678 c 7.9e-4,-0.00108 -0.01975,-0.01772 -0.01898,-0.01882 0.203,-0.2892 -0.246,-1.1269 -1.057,-1.9305 -0.812,-0.8056 -1.6737,-1.2697 -1.9602,-1.062 L 9.1792,3.8767 z"
+           style="fill:url(#linearGradient3843)"
+           id="path3047"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m 9.0628,3.9929 c 0.28654,-0.20771 1.148,0.25639 1.9603,1.0619 0.81044,0.80363 1.2602,1.6413 1.0576,1.9306 -7.71e-4,0.0011 0.01977,0.017738 0.01898,0.018822 l 0.126,-0.1268 c 7.9e-4,-0.00108 -0.01975,-0.017721 -0.01898,-0.018821 0.203,-0.2892 -0.247,-1.1269 -1.058,-1.9305 -0.812,-0.8056 -1.6734,-1.2697 -1.9599,-1.062 l -0.1263,0.1268 z"
+           style="fill:url(#linearGradient3845)"
+           id="path3049"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m 9.5806,3.473 c 0.28654,-0.20771 1.148,0.25639 1.9603,1.0619 0.81045,0.80363 1.2602,1.6413 1.0576,1.9306 -7.73e-4,0.0011 0.01977,0.017737 0.01898,0.01882 l 0.12626,-0.12678 c 7.91e-4,-0.00108 -0.01975,-0.017721 -0.01898,-0.01882 0.202,-0.2892 -0.247,-1.1269 -1.058,-1.9306 -0.812,-0.8055 -1.6736,-1.2696 -1.9601,-1.0619 l -0.1263,0.1268 z"
+           style="fill:url(#linearGradient3847)"
+           id="path3051"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m 9.4649,3.5891 c 0.28654,-0.20771 1.148,0.25639 1.9603,1.0619 0.81045,0.80363 1.2602,1.6413 1.0576,1.9306 -7.69e-4,0.0011 0.01977,0.017737 0.01898,0.018821 l 0.12626,-0.12678 c 7.9e-4,-0.00108 -0.01975,-0.01772 -0.01898,-0.01882 0.203,-0.2892 -0.247,-1.1269 -1.057,-1.9305 -0.813,-0.8055 -1.6743,-1.2696 -1.9608,-1.0619 l -0.1263,0.1267 z"
+           style="fill:url(#linearGradient3849)"
+           id="path3053"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m 9.9846,3.0673 c 0.2864,-0.2077 1.1484,0.2564 1.9604,1.0619 0.81045,0.80363 1.2602,1.6413 1.0576,1.9306 -7.7e-4,0.0011 0.01977,0.017738 0.01898,0.018821 l 0.126,-0.1268 C 13.148372,5.950741 13.12783,5.9341 13.1286,5.933 13.3306,5.6438 12.8816,4.8061 12.0706,4.0024 11.2586,3.1969 10.3966,2.7328 10.1106,2.9405 L 9.9842,3.0673 z"
+           style="fill:url(#linearGradient3851)"
+           id="path3055"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m 9.8689,3.1835 c 0.28654,-0.20771 1.148,0.25639 1.9603,1.0619 0.81044,0.80363 1.2602,1.6413 1.0576,1.9306 -7.71e-4,0.0011 0.01977,0.017737 0.01898,0.018821 l 0.12626,-0.12678 c 7.89e-4,-0.00108 -0.01975,-0.017722 -0.01898,-0.018821 0.203,-0.2892 -0.247,-1.1269 -1.057,-1.9306 -0.813,-0.8055 -1.674,-1.2696 -1.9608,-1.0619 l -0.1263,0.1268 z"
+           style="fill:url(#linearGradient3853)"
+           id="path3057"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m 0.25981,15.794 4.7719,-1.7255 0.039308,-0.03926 c 0.2026,-0.289 -0.2524,-1.127 -1.0629,-1.93 -0.8124,-0.806 -1.6727,-1.268 -1.9592,-1.06 l -1.7891,4.755 z"
+           style="fill:url(#linearGradient3855);fill-rule:evenodd;stroke:url(#linearGradient3857);stroke-width:0.60798001"
+           id="path3059"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m 0.74443,14.506 -0.48521,1.283 1.3014,-0.473 C 1.44692,15.182 1.34132,15.048 1.20622,14.914 1.05072,14.76 0.89917,14.633 0.74445,14.506 z"
+           style="fill:#0c0c0c;fill-rule:evenodd;stroke:#0c0c0c;stroke-width:0.60798001"
+           id="path3061"
+           inkscape:connector-curvature="0" />
+      </g>
+    </g>
+    <rect
+       inkscape:label="#rect3636"
+       y="181"
+       x="-231"
+       height="24"
+       width="24"
+       id="edit"
+       style="opacity:0;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+    <text
+       xml:space="preserve"
+       style="font-size:4.49727678px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
+       x="-231.67409"
+       y="177.06073"
+       id="text3638-3-3-2"><tspan
+         sodipodi:role="line"
+         id="tspan3640-1-8-0"
+         x="-231.67409"
+         y="177.06073">%%edit%%</tspan></text>
+    <g
+       style="fill-rule:evenodd"
+       id="g652"
+       transform="matrix(0.36763942,0,0,0.36763942,-270.23385,166.36126)">
+    <path
+   id="_70839568"
+   class="fil5"
+   d="m 245.14,76.1907 13.9222,-14.7283 c 0.0809,0.6801 0.1351,1.356 0.1601,2.0273 L 245.14,78.3993 c -0.4437,2.4162 -1.5951,4.4076 -3.4451,5.9744 -1.8593,1.5668 -3.9829,2.3501 -6.3802,2.3501 -2.8032,0 -5.04,-0.8777 -6.7295,-2.6238 -1.6896,-1.7555 -2.7372,-4.2945 -3.1431,-7.6356 0.3305,-0.4248 0.5003,-0.8306 0.5003,-1.2176 0,-0.5568 -0.2077,-0.9721 -0.6324,-1.2459 -0.4247,-0.2736 -1.0665,-0.4152 -1.9159,-0.4152 -1.7838,0 -2.6805,0.5758 -2.6805,1.7177 0,0.3871 0.1888,0.774 0.5568,1.161 -0.5757,3.5205 -1.68,6.116 -3.3034,7.7677 -1.6329,1.6611 -3.8792,2.4917 -6.739,2.4917 -2.7937,0 -5.1627,-1.0193 -7.0976,-3.058 -1.9349,-2.0292 -2.9069,-4.5303 -2.9069,-7.4751 l 17.95388,-14.916911 c 0.1275,0.7035 -0.14566,1.3868 -0.0287,1.9271 L 203.1865,76.1907 l 13.7895,0 c 1.6422,0 2.4634,-0.302 2.4634,-0.9156 l 0,-0.5285 c 0,-1.6611 1.3686,-2.4917 4.0963,-2.4917 1.0193,0 1.8781,0.236 2.605,0.7173 0.7172,0.5003 1.0759,1.0948 1.0759,1.7744 l 0,0.3586 c 0,0.7269 0.84,1.0855 2.5201,1.0855 z m -4.9834,1.3779 -8.2963,0 c -1.7556,0 -2.8788,0.1133 -3.379,0.3305 -0.5002,0.2265 -0.7457,0.7267 -0.7457,1.5195 0,1.444 0.7929,2.756 2.3691,3.9546 1.5762,1.1987 3.3129,1.8028 5.21,1.8028 1.8877,0 3.7281,-0.6985 5.5215,-2.1048 1.8026,-1.3969 2.6992,-2.8409 2.6992,-4.3133 0,-0.7929 -1.1231,-1.1893 -3.3788,-1.1893 z m -24.8039,0 -8.3813,0 c -1.7084,0 -2.7844,0.0661 -3.2186,0.1983 -0.434,0.1227 -0.6512,0.4529 -0.6512,0.991 0,1.4913 0.8967,2.9353 2.6806,4.3322 1.7932,1.3874 3.6526,2.0859 5.5874,2.0859 1.8971,0 3.6243,-0.6041 5.1817,-1.8028 1.5572,-1.1986 2.3407,-2.5389 2.3407,-4.0301 0,-0.7457 -0.2171,-1.2175 -0.6512,-1.444 -0.4343,-0.2172 -1.397,-0.3305 -2.8881,-0.3305 z"
+   style="fill:#1f1a17"
+   inkscape:connector-curvature="0"
+   sodipodi:nodetypes="cccccsccscssccscccccsssscssscsscscscsssscscscscs" />
+
+    <path
+   id="_69925256"
+   class="fil16"
+   style="fill:#0093dd"
+   d="m 205.782,83.0901 c 1.7932,1.3873 3.6526,2.0858 5.5874,2.0858 1.8971,0 3.6243,-0.604 5.1817,-1.8027 1.5572,-1.1986 2.3407,-2.5388 2.3407,-4.0301 0,-0.7457 -0.2171,-1.2175 -0.6512,-1.4441 -0.4342,-0.2171 -1.3969,-0.3304 -2.8881,-0.3304 l -8.3813,0 c -1.7084,0 -2.7844,0.0661 -3.2186,0.1983 -0.434,0.1226 -0.6512,0.4529 -0.6512,0.991 0,1.4913 0.8967,2.9354 2.6806,4.3322 z"
+   mask="url(#id22)"
+   inkscape:connector-curvature="0" />
+
+    <path
+   id="_102160928"
+   class="fil16"
+   style="fill:#0093dd"
+   d="m 227.736,79.4186 c 0,1.444 0.7929,2.756 2.3691,3.9546 1.5762,1.1987 3.3129,1.8027 5.2099,1.8027 1.8877,0 3.7282,-0.6985 5.5215,-2.1047 1.8027,-1.3969 2.6993,-2.8409 2.6993,-4.3133 0,-0.7929 -1.1231,-1.1893 -3.3788,-1.1893 l -8.2963,0 c -1.7556,0 -2.8788,0.1133 -3.379,0.3304 -0.5002,0.2266 -0.7457,0.7268 -0.7457,1.5196 z"
+   mask="url(#id24)"
+   inkscape:connector-curvature="0" />
+
+    <path
+   id="_102006768"
+   class="fil1"
+   style="fill:#ffffff"
+   d="m 203.559,78.8618 c 0.0792,0.2221 0.6379,1.9862 2.9444,3.7595 2.3066,1.7733 4.404,1.9137 4.404,1.9137 l 0,0 c 0,0 -3.0482,-1.7023 -4.1102,-2.9098 -1.062,-1.2074 -1.5803,-2.0926 -2.0079,-2.8379 -0.4277,-0.7454 -1.3432,-0.7296 -1.2303,0.0745 z"
+   mask="url(#id26)"
+   inkscape:connector-curvature="0" />
+
+    <path
+   id="_49335328"
+   class="fil1"
+   style="fill:#ffffff"
+   d="m 206.61,78.6036 c 0.0229,0.0846 0.2318,0.7226 0.9997,1.4637 0.768,0.7412 1.3655,1.0035 1.3655,1.0035 l -0.7343,-0.6097 0.9289,0.4597 c 0,0 -1.0843,-0.8877 -1.4958,-1.3468 -0.4116,-0.459 -0.5193,-0.7935 -0.6056,-0.9623 -0.0864,-0.1688 -0.4042,-0.2187 -0.4584,-0.0081 z"
+   mask="url(#id28)"
+   inkscape:connector-curvature="0" />
+
+    <path
+   id="_102104840"
+   class="fil1"
+   style="fill:#ffffff"
+   d="m 242.831,79.168 c -0.0957,0.2155 -0.7183,2.0591 -3.0646,3.7111 -2.3464,1.652 -4.2378,1.8675 -4.2378,1.8675 l -0.4549,-0.4788 c 0,0 3.711,-1.8436 5.0518,-3.352 1.3408,-1.5084 1.4845,-1.9154 1.4845,-1.9154 0.6599,-1.0187 1.3934,-0.5479 1.221,0.1676 z"
+   mask="url(#id30)"
+   inkscape:connector-curvature="0" />
+
+    <path
+   id="_102575136"
+   class="fil1"
+   style="fill:#ffffff"
+   d="m 240.841,79.0105 c -0.0569,0.128 -0.4266,1.2229 -1.82,2.204 -1.3935,0.9811 -2.5168,1.1091 -2.5168,1.1091 l -0.2702,-0.2844 c 0,0 2.204,-1.0949 3.0002,-1.9907 0.7963,-0.8958 0.8816,-1.1375 0.8816,-1.1375 0.4924,-0.7043 0.9573,-0.5546 0.7252,0.0995 z"
+   mask="url(#id32)"
+   inkscape:connector-curvature="0" />
+
+    <path
+   id="_102768136"
+   class="fil1"
+   style="fill:#ffffff"
+   d="m 228.303,78.2913 c -0.0134,0.1394 -0.2298,1.2745 0.5013,2.8139 0.7311,1.5395 1.6463,2.2032 1.6463,2.2032 l 0.3751,-0.1148 c 0,0 -1.3809,-2.037 -1.6339,-3.2085 -0.253,-1.1716 -0.0323,-2.0424 -0.0323,-2.0424 -0.315,-0.0102 -0.5765,0.122 -0.8565,0.3486 z"
+   mask="url(#id34)"
+   inkscape:connector-curvature="0" />
+
+   </g>
+    <rect
+       inkscape:label="#rect3636"
+       y="181"
+       x="-198"
+       height="24"
+       width="24"
+       id="debug"
+       style="opacity:0;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+    <text
+       xml:space="preserve"
+       style="font-size:4.49727678px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
+       x="-202"
+       y="177"
+       id="text3638-3-3-2-0"><tspan
+         sodipodi:role="line"
+         id="tspan3640-1-8-0-6"
+         x="-202"
+         y="177">%%debug%%</tspan></text>
+    <g
+       style="display:inline"
+       id="layer1-8"
+       transform="matrix(0.23162724,0,0,0.23162724,-186.03954,107.99446)">
+      <rect
+         style="opacity:0.74621211;fill:url(#linearGradient9477);fill-opacity:1;fill-rule:evenodd;stroke:none"
+         id="rect3108"
+         transform="matrix(0.9981479,-0.0608342,0.1048727,0.9944857,0,0)"
+         y="340.71729"
+         x="63.882298"
+         height="72.445557"
+         width="74.619125" />
+      <rect
+         style="fill:url(#linearGradient9474);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.31597084;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+         id="rect1307"
+         transform="matrix(0.9981479,-0.0608342,0.1048727,0.9944857,0,0)"
+         y="337.67053"
+         x="60.043865"
+         height="72.445557"
+         width="74.619125" />
+      <g
+         style="stroke:#000000;stroke-opacity:0.59230783"
+         id="g4884"
+         transform="matrix(0.2219064,-0.01352455,0.02485183,0.2356647,62.010554,262.81217)">
+        <path
+           style="fill:none;stroke:#000000;stroke-width:1.13866174px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.59230783"
+           id="path4870"
+           d="m 186.47628,304.64652 c 0,294.06348 0,298.06436 0,298.06436"
+           inkscape:connector-curvature="0" />
+        <use
+           xlink:href="#path4870"
+           height="1052.3622"
+           width="744.09448"
+           y="0"
+           x="0"
+           style="stroke:#000000;stroke-opacity:0.59230783"
+           id="use4872"
+           transform="translate(-48.94082,-4.83334e-5)" />
+        <use
+           xlink:href="#path4870"
+           height="1052.3622"
+           width="744.09448"
+           y="0"
+           x="0"
+           style="stroke:#000000;stroke-opacity:0.59230783"
+           id="use4874"
+           transform="translate(146.8225,-4.83334e-5)" />
+        <use
+           xlink:href="#path4870"
+           height="1052.3622"
+           width="744.09448"
+           y="0"
+           x="0"
+           style="stroke:#000000;stroke-opacity:0.59230783"
+           id="use4876"
+           transform="translate(48.94083,-4.83334e-5)" />
+        <use
+           xlink:href="#path4870"
+           height="1052.3622"
+           width="744.09448"
+           y="0"
+           x="0"
+           style="stroke:#000000;stroke-opacity:0.59230783"
+           id="use4878"
+           transform="translate(97.88164,-4.83334e-5)" />
+        <use
+           xlink:href="#path4870"
+           height="1052.3622"
+           width="744.09448"
+           y="0"
+           x="0"
+           style="stroke:#000000;stroke-opacity:0.59230783"
+           id="use4880"
+           transform="translate(195.7633,-4.83334e-5)" />
+        <use
+           xlink:href="#path4870"
+           height="1052.3622"
+           width="744.09448"
+           y="0"
+           x="0"
+           style="stroke:#000000;stroke-opacity:0.59230783"
+           id="use4882"
+           transform="translate(244.7041,-4.83334e-5)" />
+      </g>
+      <g
+         style="stroke:#000000;stroke-opacity:0.59230783"
+         id="g4893"
+         transform="matrix(0.02570346,0.2437405,-0.2145541,0.01307645,227.24128,291.2289)">
+        <path
+           style="fill:none;stroke:#000000;stroke-width:1.13866174px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.59230783"
+           id="path4895"
+           d="m 186.47628,304.64652 c 0,294.06348 0,298.06436 0,298.06436"
+           inkscape:connector-curvature="0" />
+        <use
+           xlink:href="#path4870"
+           height="1052.3622"
+           width="744.09448"
+           y="0"
+           x="0"
+           style="stroke:#000000;stroke-opacity:0.59230783"
+           id="use4897"
+           transform="translate(-48.94082,-4.83334e-5)" />
+        <use
+           xlink:href="#path4870"
+           height="1052.3622"
+           width="744.09448"
+           y="0"
+           x="0"
+           style="stroke:#000000;stroke-opacity:0.59230783"
+           id="use4899"
+           transform="translate(146.8225,-4.83334e-5)" />
+        <use
+           xlink:href="#path4870"
+           height="1052.3622"
+           width="744.09448"
+           y="0"
+           x="0"
+           style="stroke:#000000;stroke-opacity:0.59230783"
+           id="use4901"
+           transform="translate(48.94083,-4.83334e-5)" />
+        <use
+           xlink:href="#path4870"
+           height="1052.3622"
+           width="744.09448"
+           y="0"
+           x="0"
+           style="stroke:#000000;stroke-opacity:0.59230783"
+           id="use4903"
+           transform="translate(97.88164,-4.83334e-5)" />
+        <use
+           xlink:href="#path4870"
+           height="1052.3622"
+           width="744.09448"
+           y="0"
+           x="0"
+           style="stroke:#000000;stroke-opacity:0.59230783"
+           id="use4905"
+           transform="translate(195.7633,-4.83334e-5)" />
+        <use
+           xlink:href="#path4870"
+           height="1052.3622"
+           width="744.09448"
+           y="0"
+           x="0"
+           style="stroke:#000000;stroke-opacity:0.59230783"
+           id="use4907"
+           transform="translate(244.7041,-4.83334e-5)" />
+      </g>
+      <path
+         style="fill:none;stroke:#f90000;stroke-width:1.96257424;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+         id="path3079"
+         d="m 101.87045,376.48331 c 15.88269,-21.97532 15.54068,-22.2933 15.54068,-22.2933 l 11.1987,-2.03784 15.62825,-9.76202 8.0733,23.90355 11.92414,-15.63516 6.6307,13.14898"
+         inkscape:connector-curvature="0" />
+    </g>
+    <rect
+       inkscape:label="#rect3636"
+       y="181"
+       x="-166"
+       height="24"
+       width="24"
+       id="graph"
+       style="opacity:0;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+    <text
+       xml:space="preserve"
+       style="font-size:4.49727678px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
+       x="-168"
+       y="177"
+       id="text3638-3-3-2-0-9"><tspan
+         sodipodi:role="line"
+         id="tspan3640-1-8-0-6-8"
+         x="-168"
+         y="177">%%graph%%</tspan></text>
   </g>
 </svg>
Binary file Images/up.png has changed
--- a/PLCControler.py	Tue May 15 05:19:13 2012 +0900
+++ b/PLCControler.py	Mon May 21 10:02:54 2012 +0200
@@ -75,7 +75,12 @@
                    "InOut" :    (plcopen.interface_inOutVars,    ITEM_VAR_INOUT)
                   }
 
-LOCATIONS_ITEMS = [LOCATION_PLUGIN,
+POU_TYPES = {"program": ITEM_PROGRAM,
+             "functionBlock": ITEM_FUNCTIONBLOCK,
+             "function": ITEM_FUNCTION,
+            }
+
+LOCATIONS_ITEMS = [LOCATION_CONFNODE,
                    LOCATION_MODULE,
                    LOCATION_GROUP,
                    LOCATION_VAR_INPUT,
@@ -204,7 +209,7 @@
         self.ProgramOffset = 0
         self.NextCompiledProject = None
         self.CurrentCompiledProject = None
-        self.PluginTypes = []
+        self.ConfNodeTypes = []
         self.ProgramFilePath = ""
         
     def GetQualifierTypes(self):
@@ -376,135 +381,259 @@
                     resources["values"].append(resource_infos)
                 config_infos["values"] = [resources]
                 configurations["values"].append(config_infos)
-            infos["values"] = [{"name": PROPERTIES, "type": ITEM_PROPERTIES, "values": []},
-                               datatypes, pou_types["function"], pou_types["functionBlock"], 
+            infos["values"] = [datatypes, pou_types["function"], pou_types["functionBlock"], 
                                pou_types["program"], configurations]
             return infos
         return None
 
-    # Return project topology informations
-    def GetProjectTopology(self, debug = False):
-        project = self.GetProject(debug)
-        if project is not None:
-            infos = {"name": project.getname(), "type": ITEM_PROJECT, "values" : []}
-            for config in project.getconfigurations():
-                config_infos = {"name" : config.getname(), "type": ITEM_CONFIGURATION, "values" : []}
-                for resource in config.getresource():
-                    resource_infos = {"name" : resource.getname(), "type": ITEM_RESOURCE, "values": []}
-                    for task in resource.gettask():
-                        for pou in task.getpouInstance():
-                            instance_infos = self.GetPouTopology(pou.getname(), pou.gettypeName(), debug=debug)
-                            if instance_infos is not None:
-                                resource_infos["values"].append(instance_infos)
-                    for pou in resource.getpouInstance():
-                        instance_infos = self.GetPouTopology(pou.getname(), pou.gettypeName(), debug=debug)
-                        if instance_infos is not None:
-                            resource_infos["values"].append(instance_infos)
-                    for varlist in resource.getglobalVars():
-                        for variable in varlist.getvariable():
-                            vartype_content = variable.gettype().getcontent()
-                            if vartype_content["name"] == "derived":
-                                var_infos = self.GetPouTopology(variable.getname(), vartype_content["value"].getname(), True, debug)
-                                if var_infos is not None:
-                                    resource_infos["values"].append(var_infos)
-                            elif vartype_content["name"] in ["string", "wstring"]:
-                                resource_infos["values"].append({"name" : variable.getname(), 
-                                                                 "elmt_type" : vartype_content["name"].upper(),
-                                                                 "type" : ITEM_VAR_GLOBAL, "values" : []})
-                            else:
-                                resource_infos["values"].append({"name" : variable.getname(), 
-                                                                 "elmt_type" : vartype_content["name"], 
-                                                                 "type" : ITEM_VAR_GLOBAL, "values" : []})
-                    config_infos["values"].append(resource_infos)
-                for varlist in config.getglobalVars():
-                    for variable in varlist.getvariable():
-                        vartype_content = variable.gettype().getcontent()
-                        if vartype_content["name"] == "derived":
-                            var_infos = self.GetPouTopology(variable.getname(), vartype_content["value"].getname(), True, debug)
-                            if var_infos is not None:
-                                config_infos["values"].append(var_infos)
-                        elif vartype_content["name"] in ["string", "wstring"]:
-                            config_infos["values"].append({"name" : variable.getname(), 
-                                                           "elmt_type" : vartype_content["name"].upper(), 
-                                                           "type" : ITEM_VAR_GLOBAL, "values" : []})
-                        else:
-                            config_infos["values"].append({"name" : variable.getname(),
-                                                           "elmt_type" : vartype_content["name"], 
-                                                           "type" : ITEM_VAR_GLOBAL, "values" : []})
-                infos["values"].append(config_infos)
-            return infos
-        return None
-    
-    # Return pou topology informations
-    def GetPouTopology(self, name, type, global_var = False, debug = False):
-        project = self.GetProject(debug)
-        if project is not None:
-            pou = project.getpou(type)
+    def GetPouVariableInfos(self, project, variable, var_class, debug=False):
+        vartype_content = variable.gettype().getcontent()
+        if vartype_content["name"] == "derived":
+            var_type = vartype_content["value"].getname()
+            pou_type = None
+            pou = project.getpou(var_type)
             if pou is not None:
                 pou_type = pou.getpouType()
-                if pou_type == "function":
-                    return None
-                elif pou_type == "program":
-                    pou_infos = {"name" : name, "elmt_type" : type, "type" : ITEM_PROGRAM, 
-                                 "tagname" : self.ComputePouName(pou.getname()), "values" : []}
+            edit = debug = pou_type is not None
+            if pou_type is None:
+                block_infos = self.GetBlockType(var_type, debug = debug)
+                pou_type = block_infos["type"]
+            if pou_type is not None:
+                var_class = None
+                if pou_type == "program":
+                    var_class = ITEM_PROGRAM
+                elif pou_type != "function":
+                    var_class = ITEM_FUNCTIONBLOCK
+                if var_class is not None:
+                    return {"name": variable.getname(), 
+                            "type": var_type, 
+                            "class": var_class,
+                            "edit": edit,
+                            "debug": debug}
+            elif var_type in self.GetDataTypes(debug = debug):
+                return {"name": variable.getname(), 
+                        "type": var_type, 
+                        "class": var_class,
+                        "edit": False,
+                        "debug": False}
+        elif vartype_content["name"] in ["string", "wstring"]:
+            return {"name": variable.getname(), 
+                    "type": vartype_content["name"].upper(), 
+                    "class": var_class,
+                    "edit": False,
+                    "debug": True}
+        else:
+            return {"name": variable.getname(),
+                    "type": vartype_content["name"], 
+                    "class": var_class,
+                    "edit": False,
+                    "debug": True}
+        return None
+
+    def GetPouVariables(self, tagname, debug = False):
+        vars = []
+        pou_type = None
+        project = self.GetProject(debug)
+        if project is not None:
+            words = tagname.split("::")
+            if words[0] == "P":
+                pou = project.getpou(words[1])
+                if pou is not None:
+                    pou_type = pou.getpouType()
+                    if (pou_type in ["program", "functionBlock"] and 
+                        pou.interface is not None):
+                        # Extract variables from every varLists
+                        for varlist_type, varlist in pou.getvars():
+                            var_infos = VAR_CLASS_INFOS.get(varlist_type, None)
+                            if var_infos is not None:
+                                var_class = var_infos[1]
+                            else:
+                                var_class = ITEM_VAR_LOCAL
+                            for variable in varlist.getvariable():
+                                var_infos = self.GetPouVariableInfos(project, variable, var_class, debug)
+                                if var_infos is not None:
+                                    vars.append(var_infos)
+                        return {"class": POU_TYPES[pou_type],
+                                "type": words[1],
+                                "variables": vars,
+                                "edit": True,
+                                "debug": True}
                 else:
-                    pou_infos = {"name" : name, "elmt_type" : type, "type" : ITEM_FUNCTIONBLOCK, 
-                                 "tagname" : self.ComputePouName(pou.getname()), "values" : []}
-                if pou.getbodyType() == "SFC":
-                    for transition in pou.gettransitionList():
-                        pou_infos["values"].append({"name" : transition.getname(), 
-                            "elmt_type" : "TRANSITION", "type" : ITEM_TRANSITION, 
-                            "tagname" : self.ComputePouActionName(pou.getname(), transition.getname()),
-                            "values" : []})
-                    for action in pou.getactionList():
-                        pou_infos["values"].append({"name": action.getname(), 
-                            "elmt_type" : "ACTION", "type": ITEM_ACTION, 
-                            "tagname" : self.ComputePouActionName(pou.getname(), action.getname()),
-                            "values" : []})
-                if pou.interface:
-                    # Extract variables from every varLists
-                    for type, varlist in pou.getvars():
-                        infos = VAR_CLASS_INFOS.get(type, None)
-                        if infos is not None:
-                            current_var_class = infos[1]
-                        else:
-                            current_var_class = ITEM_VAR_LOCAL
-                        for variable in varlist.getvariable():
-                            vartype_content = variable.gettype().getcontent()
-                            if vartype_content["name"] == "derived":
-                                var_infos = self.GetPouTopology(variable.getname(), vartype_content["value"].getname())
-                                if var_infos is not None:
-                                    pou_infos["values"].append(var_infos)
-                            elif vartype_content["name"] in ["string", "wstring"]:
-                                pou_infos["values"].append({"name" : variable.getname(), 
-                                                            "elmt_type" : vartype_content["name"].upper(), 
-                                                            "type" : current_var_class, "values" : []})
-                            else:
-                                pou_infos["values"].append({"name" : variable.getname(), 
-                                                            "elmt_type" : vartype_content["name"], 
-                                                            "type" : current_var_class, "values" : []})
-                return pou_infos
-            block_infos = self.GetBlockType(type, debug = debug)
-            if block_infos is not None:
-                if block_infos["type"] == "function":
-                    return None
-                elif block_infos["type"] == "program":
-                    pou_infos = {"name" : name, "elmt_type" : type, "type" : ITEM_PROGRAM, "values" : []}
-                else:
-                    pou_infos = {"name" : name, "elmt_type" : type, "type" : ITEM_FUNCTIONBLOCK, "values" : []}
-                for varname, vartype, varmodifier in block_infos["inputs"]:
-                    pou_infos["values"].append({"name" : varname, "elmt_type" : vartype, "type" : ITEM_VAR_INPUT, "values" : []})
-                for varname, vartype, varmodifier in block_infos["outputs"]:
-                    pou_infos["values"].append({"name" : varname, "elmt_type" : vartype, "type" : ITEM_VAR_INPUT, "values" : []})
-                return pou_infos
+                    block_infos = self.GetBlockType(words[1], debug = debug)
+                    if (block_infos is not None and 
+                        block_infos["type"] in ["program", "functionBlock"]):
+                        for varname, vartype, varmodifier in block_infos["inputs"]:
+                            vars.append({"name" : varname, 
+                                         "type" : vartype, 
+                                         "class" : ITEM_VAR_INPUT,
+                                         "edit": False,
+                                         "debug": True})
+                        for varname, vartype, varmodifier in block_infos["outputs"]:
+                            vars.append({"name" : varname, 
+                                         "type" : vartype, 
+                                         "class" : ITEM_VAR_OUTPUT,
+                                         "edit": False,
+                                         "debug": True})
+                        return {"class": POU_TYPES[block_infos["type"]],
+                                "type": None,
+                                "variables": vars,
+                                "edit": False,
+                                "debug": False}
+            elif words[0] in ['C', 'R']:
+                if words[0] == 'C':
+                    pou_type = ITEM_CONFIGURATION
+                    element = project.getconfiguration(words[1])
+                    for resource in element.getresource():
+                        vars.append({"name": resource.getname(),
+                                     "type": None,
+                                     "class": ITEM_RESOURCE,
+                                     "edit": True,
+                                     "debug": False})
+                elif words[0] == 'R':
+                    pou_type = ITEM_RESOURCE
+                    element = project.getconfigurationResource(words[1], words[2])
+                    for task in element.gettask():
+                        for pou in task.getpouInstance():
+                            vars.append({"name": pou.getname(),
+                                         "type": pou.gettypeName(),
+                                         "class": ITEM_PROGRAM,
+                                         "edit": True,
+                                         "debug": True})
+                    for pou in element.getpouInstance():
+                        vars.append({"name": pou.getname(),
+                                     "type": pou.gettypeName(),
+                                     "class": ITEM_PROGRAM,
+                                     "edit": True,
+                                     "debug": True})
+                for varlist in element.getglobalVars():
+                    for variable in varlist.getvariable():
+                        var_infos = self.GetPouVariableInfos(project, variable, ITEM_VAR_GLOBAL, debug)
+                        if var_infos is not None:
+                            vars.append(var_infos)
+                return {"class": pou_type,
+                        "type": None,
+                        "variables": vars,
+                        "edit": True,
+                        "debug": False}
+        return None
+
+    def RecursiveSearchPouInstances(self, project, pou_type, parent_path, varlists, debug = False):
+        instances = []
+        for varlist in varlists:
+            for variable in varlist.getvariable():
+                vartype_content = variable.gettype().getcontent()
+                if vartype_content["name"] == "derived":
+                    var_path = "%s.%s" % (parent_path, variable.getname())
+                    var_type = vartype_content["value"].getname()
+                    if var_type == pou_type:
+                        instances.append(var_path)
+                    else:
+                        pou = project.getpou(var_type)
+                        if pou is not None:
+                            instances.extend(
+                                self.RecursiveSearchPouInstances(
+                                    project, pou_type, var_path, 
+                                    [varlist for type, varlist in pou.getvars()], 
+                                    debug))
+        return instances
+                        
+    def SearchPouInstances(self, tagname, debug = False):
+        project = self.GetProject(debug)
+        if project is not None:
+            words = tagname.split("::")
+            if words[0] == "P":
+                instances = []
+                for config in project.getconfigurations():
+                    config_name = config.getname()
+                    instances.extend(
+                        self.RecursiveSearchPouInstances(
+                            project, words[1], config_name, 
+                            config.getglobalVars(), debug))
+                    for resource in config.getresource():
+                        res_path = "%s.%s" % (config_name, resource.getname())
+                        instances.extend(
+                            self.RecursiveSearchPouInstances(
+                                project, words[1], res_path, 
+                                resource.getglobalVars(), debug))
+                        pou_instances = resource.getpouInstance()[:]
+                        for task in resource.gettask():
+                            pou_instances.extend(task.getpouInstance())
+                        for pou_instance in pou_instances:
+                            pou_path = "%s.%s" % (res_path, pou_instance.getname())
+                            pou_type = pou_instance.gettypeName()
+                            if pou_type == words[1]:
+                                instances.append(pou_path)
+                            pou = project.getpou(pou_type)
+                            if pou is not None:
+                                instances.extend(
+                                    self.RecursiveSearchPouInstances(
+                                        project, words[1], pou_path, 
+                                        [varlist for type, varlist in pou.getvars()], 
+                                        debug))
+                return instances
+            elif words[0] == 'C':
+                return [words[1]]
+            elif words[0] == 'R':
+                return ["%s.%s" % (words[1], words[2])]
+        return []
+    
+    def RecursiveGetPouInstanceTagName(self, project, pou_type, parts):
+        pou = project.getpou(pou_type)
+        if pou is not None:
+            if len(parts) == 0:
+                return self.ComputePouName(pou_type)
             
-            if type in self.GetDataTypes(debug = debug):
-                if global_var:
-                    return {"name" : name, "elmt_type" : type, "type" : ITEM_VAR_GLOBAL, "values" : []}
-                else:
-                    return {"name" : name, "elmt_type" : type, "type" : ITEM_VAR_LOCAL, "values" : []}
-        return None
-
+            for varlist_type, varlist in pou.getvars():
+                for variable in varlist.getvariable():
+                    vartype_content = variable.gettype().getcontent()
+                    if vartype_content["name"] == "derived":
+                        return self.RecursiveGetPouInstanceTagName(
+                                        project, 
+                                        vartype_content["value"].getname(),
+                                        parts[1:])
+        return None
+    
+    def GetPouInstanceTagName(self, instance_path, debug = False):
+        parts = instance_path.split(".")
+        if len(parts) == 1:
+            return self.ComputeConfigurationName(parts[0])
+        elif len(parts) == 2:
+            return self.ComputeConfigurationResourceName(parts[0], parts[1])
+        else:
+            project = self.GetProject(debug)
+            for config in project.getconfigurations():
+                if config.getname() == parts[0]:
+                    for resource in config.getresource():
+                        if resource.getname() == parts[1]:
+                            pou_instances = resource.getpouInstance()[:]
+                            for task in resource.gettask():
+                                pou_instances.extend(task.getpouInstance())
+                            for pou_instance in pou_instances:
+                                if pou_instance.getname() == parts[2]:
+                                    if len(parts) == 3:
+                                        return self.ComputePouName(
+                                                    pou_instance.gettypeName())
+                                    else:
+                                        return self.RecursiveGetPouInstanceTagName(
+                                                    project,
+                                                    pou_instance.gettypeName(),
+                                                    parts[3:])
+        return None
+    
+    def GetInstanceInfos(self, instance_path, debug = False):
+        tagname = self.GetPouInstanceTagName(instance_path)
+        if tagname is not None:
+            return self.GetPouVariables(tagname, debug)
+        else:
+            pou_path, var_name = instance_path.rsplit(".", 1)
+            tagname = self.GetPouInstanceTagName(pou_path)
+            if tagname is not None:
+                pou_infos = self.GetPouVariables(tagname, debug)
+                for var_infos in pou_infos["variables"]:
+                    if var_infos["name"] == var_name:
+                        return var_infos
+        return None
+    
     # Return if data type given by name is used by another data type or pou
     def DataTypeIsUsed(self, name, debug = False):
         project = self.GetProject(debug)
@@ -667,6 +796,15 @@
             self.Project.removepou(pou_name)
             self.BufferProject()
     
+    # Return the name of the configuration if only one exist
+    def GetProjectMainConfigurationName(self):
+        if self.Project is not None:
+            # Found the configuration corresponding to old name and change its name to new name
+            configurations = self.Project.getconfigurations()
+            if len(configurations) == 1:
+                return configurations[0].getname()
+        return None
+                
     # Add a configuration to Project
     def ProjectAddConfiguration(self, config_name):
         if self.Project is not None:
@@ -1129,7 +1267,7 @@
                 return tree, []
             datatype = project.getdataType(typename)
             if datatype is None:
-                datatype = self.GetPluginDataType(typename)
+                datatype = self.GetConfNodeDataType(typename)
             if datatype is not None:
                 tree = []
                 basetype_content = datatype.baseType.getcontent()
@@ -1251,28 +1389,28 @@
                     return returntype_content["name"]
         return None
 
-    # Function that add a new plugin to the plugin list
-    def AddPluginTypesList(self, typeslist):
-        self.PluginTypes.extend(typeslist)
+    # Function that add a new confnode to the confnode list
+    def AddConfNodeTypesList(self, typeslist):
+        self.ConfNodeTypes.extend(typeslist)
         
-    # Function that clear the plugin list
-    def ClearPluginTypes(self):
-        for i in xrange(len(self.PluginTypes)):
-            self.PluginTypes.pop(0)
-
-    def GetPluginBlockTypes(self):
-        return [{"name": _("%s POUs") % plugintypes["name"],
-                 "list": plugintypes["types"].GetCustomBlockTypes()}
-                for plugintypes in self.PluginTypes]
+    # Function that clear the confnode list
+    def ClearConfNodeTypes(self):
+        for i in xrange(len(self.ConfNodeTypes)):
+            self.ConfNodeTypes.pop(0)
+
+    def GetConfNodeBlockTypes(self):
+        return [{"name": _("%s POUs") % confnodetypes["name"],
+                 "list": confnodetypes["types"].GetCustomBlockTypes()}
+                for confnodetypes in self.ConfNodeTypes]
         
-    def GetPluginDataTypes(self, exclude = ""):
-        return [{"name": _("%s Data Types") % plugintypes["name"],
-                 "list": [datatype["name"] for datatype in plugintypes["types"].GetCustomDataTypes(exclude)]}
-                for plugintypes in self.PluginTypes]
-    
-    def GetPluginDataType(self, type):
-        for plugintype in self.PluginTypes:
-            datatype = plugintype["types"].getdataType(type)
+    def GetConfNodeDataTypes(self, exclude = ""):
+        return [{"name": _("%s Data Types") % confnodetypes["name"],
+                 "list": [datatype["name"] for datatype in confnodetypes["types"].GetCustomDataTypes(exclude)]}
+                for confnodetypes in self.ConfNodeTypes]
+    
+    def GetConfNodeDataType(self, type):
+        for confnodetype in self.ConfNodeTypes:
+            datatype = confnodetype["types"].getdataType(type)
             if datatype is not None:
                 return datatype
         return None
@@ -1283,7 +1421,7 @@
     # Function that returns the block definition associated to the block type given
     def GetBlockType(self, type, inputs = None, debug = False):
         result_blocktype = None
-        for category in BlockTypes + self.GetPluginBlockTypes():
+        for category in BlockTypes + self.GetConfNodeBlockTypes():
             for blocktype in category["list"]:
                 if blocktype["name"] == type:
                     if inputs is not None and inputs != "undefined":
@@ -1317,7 +1455,7 @@
                 type = self.GetPouType(name, debug)
         if type == "function" or words[0] == "T":
             blocktypes = []
-            for category in BlockTypes + self.GetPluginBlockTypes():
+            for category in BlockTypes + self.GetConfNodeBlockTypes():
                 cat = {"name" : category["name"], "list" : []}
                 for block in category["list"]:
                     if block["type"] == "function":
@@ -1325,7 +1463,7 @@
                 if len(cat["list"]) > 0:
                     blocktypes.append(cat)
         else:
-            blocktypes = [category for category in BlockTypes + self.GetPluginBlockTypes()]
+            blocktypes = [category for category in BlockTypes + self.GetConfNodeBlockTypes()]
         project = self.GetProject(debug)
         if project is not None:
             blocktypes.append({"name" : USER_DEFINED_POUS, "list": project.GetCustomBlockTypes(name, type == "function" or words[0] == "T")})
@@ -1334,7 +1472,7 @@
     # Return Function Block types checking for recursion
     def GetFunctionBlockTypes(self, tagname = "", debug = False):
         blocktypes = []
-        for category in BlockTypes + self.GetPluginBlockTypes():
+        for category in BlockTypes + self.GetConfNodeBlockTypes():
             for block in category["list"]:
                 if block["type"] == "functionBlock":
                     blocktypes.append(block["name"])
@@ -1381,8 +1519,8 @@
             result = project.GetBaseType(type)
             if result is not None:
                 return result
-        for plugintype in self.PluginTypes:
-            result = plugintype["types"].GetBaseType(type)
+        for confnodetype in self.ConfNodeTypes:
+            result = confnodetype["types"].GetBaseType(type)
             if result is not None:
                 return result
         return None
@@ -1406,8 +1544,8 @@
             project = self.GetProject(debug)
             if project is not None and project.IsOfType(type, reference):
                 return True
-            for plugintype in self.PluginTypes:
-                if plugintype["types"].IsOfType(type, reference):
+            for confnodetype in self.ConfNodeTypes:
+                if confnodetype["types"].IsOfType(type, reference):
                     return True
         return False
     
@@ -1423,7 +1561,7 @@
         if project is not None:
             datatype = project.getdataType(type)
             if datatype is None:
-                datatype = self.GetPluginDataType(type)
+                datatype = self.GetConfNodeDataType(type)
             if datatype is not None:
                 return project.IsLocatableType(datatype)
         return True
@@ -1433,7 +1571,7 @@
         if project is not None:
             datatype = project.getdataType(type)
             if datatype is None:
-                datatype = self.GetPluginDataType(type)
+                datatype = self.GetConfNodeDataType(type)
             if datatype is not None:
                 basetype_content = datatype.baseType.getcontent()
                 return basetype_content["name"] == "enum"
@@ -1448,8 +1586,8 @@
                 result = project.GetDataTypeRange(type)
                 if result is not None:
                     return result
-            for plugintype in self.PluginTypes:
-                result = plugintype["types"].GetDataTypeRange(type)
+            for confnodetype in self.ConfNodeTypes:
+                result = confnodetype["types"].GetDataTypeRange(type)
                 if result is not None:
                     return result
         return None
@@ -1460,8 +1598,8 @@
         project = self.GetProject(debug)
         if project is not None:
             subrange_basetypes.extend(project.GetSubrangeBaseTypes(exclude))
-        for plugintype in self.PluginTypes:
-            subrange_basetypes.extend(plugintype["types"].GetSubrangeBaseTypes(exclude))
+        for confnodetype in self.ConfNodeTypes:
+            subrange_basetypes.extend(confnodetype["types"].GetSubrangeBaseTypes(exclude))
         return DataTypeRange.keys() + subrange_basetypes
     
     # Return Enumerated Values
@@ -1472,8 +1610,8 @@
             values.extend(project.GetEnumeratedDataTypeValues(type))
             if type is None and len(values) > 0:
                 return values
-        for plugintype in self.PluginTypes:
-            values.extend(plugintype["types"].GetEnumeratedDataTypeValues(type))
+        for confnodetype in self.ConfNodeTypes:
+            values.extend(confnodetype["types"].GetEnumeratedDataTypeValues(type))
             if type is None and len(values) > 0:
                 return values
         return values
@@ -2739,7 +2877,7 @@
         for child in tree.childNodes:
             if child.nodeType == tree.ELEMENT_NODE and child.nodeName == "project":
                 try:
-                    result = self.Project.loadXMLTree(child, ["xmlns", "xmlns:xhtml", "xmlns:xsi", "xsi:schemaLocation"])
+                    result = self.Project.loadXMLTree(child)
                 except ValueError, e:
                     return _("Project file syntax error:\n\n") + str(e)
                 self.SetFilePath(filepath)
--- a/PLCGenerator.py	Tue May 15 05:19:13 2012 +0900
+++ b/PLCGenerator.py	Mon May 21 10:02:54 2012 +0200
@@ -821,6 +821,7 @@
                     otherInstances["outVariables&coils"].append(instance)
             orderedInstances.sort()
             otherInstances["outVariables&coils"].sort(SortInstances)
+            otherInstances["blocks"].sort(SortInstances)
             instances = [instance for (executionOrderId, instance) in orderedInstances]
             instances.extend(otherInstances["connectors"] + otherInstances["outVariables&coils"] + otherInstances["blocks"])
             for instance in instances:
--- a/PLCOpenEditor.py	Tue May 15 05:19:13 2012 +0900
+++ b/PLCOpenEditor.py	Mon May 21 10:02:54 2012 +0200
@@ -24,20 +24,14 @@
 
 from datetime import datetime
 import wx, wx.grid
-
-if wx.VERSION >= (2, 8, 0):
-    import wx.aui
-    USE_AUI = True
-else:
-    USE_AUI = False
-
+import wx.aui
 import os, re, platform, sys, time, traceback, getopt
 import cPickle
 
 CWD = os.path.split(os.path.realpath(__file__))[0]
 base_folder = os.path.split(CWD)[0]
 sys.path.append(base_folder)
-from docutils import *
+from docutil import *
 
 from types import TupleType
 
@@ -114,18 +108,18 @@
 from DataTypeEditor import *
 from PLCControler import *
 from SearchResultPanel import SearchResultPanel
-from controls import CustomGrid, CustomTable, LibraryPanel
+from controls import CustomGrid, CustomTable, CustomTree, LibraryPanel, PouInstanceVariablesPanel
 
 # Define PLCOpenEditor controls id
 [ID_PLCOPENEDITOR, ID_PLCOPENEDITORLEFTNOTEBOOK, 
  ID_PLCOPENEDITORBOTTOMNOTEBOOK, ID_PLCOPENEDITORRIGHTNOTEBOOK, 
- ID_PLCOPENEDITORTYPESTREE, ID_PLCOPENEDITORINSTANCESTREE, 
- ID_PLCOPENEDITORMAINSPLITTER, ID_PLCOPENEDITORSECONDSPLITTER, 
- ID_PLCOPENEDITORTHIRDSPLITTER, ID_PLCOPENEDITORLIBRARYPANEL, 
- ID_PLCOPENEDITORLIBRARYSEARCHCTRL, ID_PLCOPENEDITORLIBRARYTREE, 
- ID_PLCOPENEDITORLIBRARYCOMMENT, ID_PLCOPENEDITORTABSOPENED, 
- ID_PLCOPENEDITORTABSOPENED, ID_PLCOPENEDITOREDITORMENUTOOLBAR, 
- ID_PLCOPENEDITOREDITORTOOLBAR, 
+ ID_PLCOPENEDITORPROJECTTREE, ID_PLCOPENEDITORMAINSPLITTER, 
+ ID_PLCOPENEDITORSECONDSPLITTER, ID_PLCOPENEDITORTHIRDSPLITTER, 
+ ID_PLCOPENEDITORLIBRARYPANEL, ID_PLCOPENEDITORLIBRARYSEARCHCTRL, 
+ ID_PLCOPENEDITORLIBRARYTREE, ID_PLCOPENEDITORLIBRARYCOMMENT, 
+ ID_PLCOPENEDITORTABSOPENED, ID_PLCOPENEDITORTABSOPENED, 
+ ID_PLCOPENEDITOREDITORMENUTOOLBAR, ID_PLCOPENEDITOREDITORTOOLBAR, 
+ ID_PLCOPENEDITORPROJECTPANEL, 
 ] = [wx.NewId() for _init_ctrls in range(17)]
 
 # Define PLCOpenEditor FileMenu extra items id
@@ -270,8 +264,8 @@
     else:
         parent.Append(helpString=help, id=id, kind=kind, item=text)
 
-[TITLE, EDITORTOOLBAR, FILEMENU, EDITMENU, DISPLAYMENU, TYPESTREE, 
- INSTANCESTREE, LIBRARYTREE, SCALING, PAGETITLES
+[TITLE, EDITORTOOLBAR, FILEMENU, EDITMENU, DISPLAYMENU, PROJECTTREE, 
+ POUINSTANCEVARIABLESPANEL, LIBRARYTREE, SCALING, PAGETITLES
 ] = range(10)
 
 def GetShortcutKeyCallbackFunction(viewer_function):
@@ -285,20 +279,13 @@
             control.ProcessEvent(event)
     return ShortcutKeyFunction
 
-def GetParentName(tree, item, parent_type):
-    parent_item = tree.GetItemParent(item)
-    parent_item_type = tree.GetPyData(parent_item)
-    while parent_item_type != parent_type:
-        parent_item = tree.GetItemParent(parent_item)
-        parent_item_type = tree.GetPyData(parent_item)
-    return tree.GetItemText(parent_item)
-
 def GetDeleteElementFunction(remove_function, parent_type=None, check_function=None):
     def DeleteElementFunction(self, selected):
-        name = self.TypesTree.GetItemText(selected)
+        name = self.ProjectTree.GetItemText(selected)
         if check_function is None or not check_function(self.Controler, name):
             if parent_type is not None:
-                parent_name = GetParentName(self.TypesTree, selected, parent_type)
+                item_infos = self.ProjectTree.GetPyData(selected)
+                parent_name = item_infos["tagname"].split("::")[1]
                 remove_function(self.Controler, parent_name, name)
             else:
                 remove_function(self.Controler, name)
@@ -412,6 +399,19 @@
     def _init_coll_FileMenu_Items(self, parent):
         pass
     
+    def _init_coll_AddMenu_Items(self, parent, add_config=True):
+        AppendMenu(parent, help='', id=ID_PLCOPENEDITOREDITMENUADDDATATYPE,
+              kind=wx.ITEM_NORMAL, text=_(u'&Data Type'))
+        AppendMenu(parent, help='', id=ID_PLCOPENEDITOREDITMENUADDFUNCTION,
+              kind=wx.ITEM_NORMAL, text=_(u'&Function'))
+        AppendMenu(parent, help='', id=ID_PLCOPENEDITOREDITMENUADDFUNCTIONBLOCK,
+              kind=wx.ITEM_NORMAL, text=_(u'Function &Block'))
+        AppendMenu(parent, help='', id=ID_PLCOPENEDITOREDITMENUADDPROGRAM,
+              kind=wx.ITEM_NORMAL, text=_(u'&Program'))
+        if add_config:
+            AppendMenu(parent, help='', id=ID_PLCOPENEDITOREDITMENUADDCONFIGURATION,
+                  kind=wx.ITEM_NORMAL, text=_(u'&Configuration'))
+    
     def _init_coll_EditMenu_Items(self, parent):
         AppendMenu(parent, help='', id=wx.ID_UNDO,
               kind=wx.ITEM_NORMAL, text=_(u'Undo\tCTRL+Z'))
@@ -431,18 +431,9 @@
         AppendMenu(parent, help='', id=ID_PLCOPENEDITOREDITMENUSEARCHINPROJECT,
               kind=wx.ITEM_NORMAL, text=_(u'Search in Project\tCTRL+F'))
         parent.AppendSeparator()
-        addmenu = wx.Menu(title='')
-        parent.AppendMenu(wx.ID_ADD, _(u"&Add Element"), addmenu)
-        AppendMenu(addmenu, help='', id=ID_PLCOPENEDITOREDITMENUADDDATATYPE,
-              kind=wx.ITEM_NORMAL, text=_(u'&Data Type'))
-        AppendMenu(addmenu, help='', id=ID_PLCOPENEDITOREDITMENUADDFUNCTION,
-              kind=wx.ITEM_NORMAL, text=_(u'&Function'))
-        AppendMenu(addmenu, help='', id=ID_PLCOPENEDITOREDITMENUADDFUNCTIONBLOCK,
-              kind=wx.ITEM_NORMAL, text=_(u'Function &Block'))
-        AppendMenu(addmenu, help='', id=ID_PLCOPENEDITOREDITMENUADDPROGRAM,
-              kind=wx.ITEM_NORMAL, text=_(u'&Program'))
-        AppendMenu(addmenu, help='', id=ID_PLCOPENEDITOREDITMENUADDCONFIGURATION,
-              kind=wx.ITEM_NORMAL, text=_(u'&Configuration'))
+        add_menu = wx.Menu(title='')
+        self._init_coll_AddMenu_Items(add_menu)
+        parent.AppendMenu(wx.ID_ADD, _(u"&Add Element"), add_menu)
         AppendMenu(parent, help='', id=wx.ID_SELECTALL,
               kind=wx.ITEM_NORMAL, text=_(u'Select All\tCTRL+A'))
         AppendMenu(parent, help='', id=wx.ID_DELETE,
@@ -492,11 +483,10 @@
                   kind=wx.ITEM_RADIO, text=str(int(round(value * 100))) + "%")
             self.Bind(wx.EVT_MENU, self.GenerateZoomFunction(idx), id=new_id)
         
-        if USE_AUI:
-            parent.AppendSeparator()
-            AppendMenu(parent, help='', id=ID_PLCOPENEDITORDISPLAYMENURESETPERSPECTIVE,
-                  kind=wx.ITEM_NORMAL, text=_(u'Reset Perspective'))
-            self.Bind(wx.EVT_MENU, self.OnResetPerspective, id=ID_PLCOPENEDITORDISPLAYMENURESETPERSPECTIVE)
+        parent.AppendSeparator()
+        AppendMenu(parent, help='', id=ID_PLCOPENEDITORDISPLAYMENURESETPERSPECTIVE,
+              kind=wx.ITEM_NORMAL, text=_(u'Reset Perspective'))
+        self.Bind(wx.EVT_MENU, self.OnResetPerspective, id=ID_PLCOPENEDITORDISPLAYMENURESETPERSPECTIVE)
         
         self.Bind(wx.EVT_MENU, self.OnRefreshMenu, id=wx.ID_REFRESH)
         if self.EnableDebug:
@@ -534,103 +524,52 @@
         #                          Creating main structure
         #-----------------------------------------------------------------------
         
-        if USE_AUI:
-            self.AUIManager = wx.aui.AuiManager(self)
-            self.AUIManager.SetDockSizeConstraint(0.5, 0.5)
-            self.Panes = {}
-            
-            self.LeftNoteBook = wx.aui.AuiNotebook(self, ID_PLCOPENEDITORLEFTNOTEBOOK,
-                  style=wx.aui.AUI_NB_TOP|wx.aui.AUI_NB_TAB_SPLIT|wx.aui.AUI_NB_TAB_MOVE|
-                        wx.aui.AUI_NB_SCROLL_BUTTONS|wx.aui.AUI_NB_TAB_EXTERNAL_MOVE)
-            self.LeftNoteBook.Bind(wx.aui.EVT_AUINOTEBOOK_ALLOW_DND, 
-                    self.OnAllowNotebookDnD)
-            self.AUIManager.AddPane(self.LeftNoteBook, 
-                  wx.aui.AuiPaneInfo().Name("ProjectPane").
-                  Caption(_("Project")).Left().Layer(1).
-                  BestSize(wx.Size(300, 500)).CloseButton(False))
-            
-            self.BottomNoteBook = wx.aui.AuiNotebook(self, ID_PLCOPENEDITORBOTTOMNOTEBOOK,
-                  style=wx.aui.AUI_NB_TOP|wx.aui.AUI_NB_TAB_SPLIT|wx.aui.AUI_NB_TAB_MOVE|
-                        wx.aui.AUI_NB_SCROLL_BUTTONS|wx.aui.AUI_NB_TAB_EXTERNAL_MOVE)
-            self.BottomNoteBook.Bind(wx.aui.EVT_AUINOTEBOOK_ALLOW_DND, 
-                    self.OnAllowNotebookDnD)
-            self.AUIManager.AddPane(self.BottomNoteBook, 
-                  wx.aui.AuiPaneInfo().Name("ResultPane").
-                  Bottom().Layer(0).
-                  BestSize(wx.Size(800, 300)).CloseButton(False))
-            
-            self.RightNoteBook = wx.aui.AuiNotebook(self, ID_PLCOPENEDITORRIGHTNOTEBOOK,
-                  style=wx.aui.AUI_NB_TOP|wx.aui.AUI_NB_TAB_SPLIT|wx.aui.AUI_NB_TAB_MOVE|
-                        wx.aui.AUI_NB_SCROLL_BUTTONS|wx.aui.AUI_NB_TAB_EXTERNAL_MOVE)
-            self.RightNoteBook.Bind(wx.aui.EVT_AUINOTEBOOK_ALLOW_DND, 
-                    self.OnAllowNotebookDnD)
-            self.AUIManager.AddPane(self.RightNoteBook, 
-                  wx.aui.AuiPaneInfo().Name("LibraryPane").
-                  Right().Layer(0).
-                  BestSize(wx.Size(250, 400)).CloseButton(False))
-            
-            self.TabsOpened = wx.aui.AuiNotebook(self, ID_PLCOPENEDITORTABSOPENED, 
-                  style=wx.aui.AUI_NB_DEFAULT_STYLE|wx.aui.AUI_NB_WINDOWLIST_BUTTON)
-            self.TabsOpened.Bind(wx.aui.EVT_AUINOTEBOOK_PAGE_CHANGING,
-                    self.OnPouSelectedChanging)
-            self.TabsOpened.Bind(wx.aui.EVT_AUINOTEBOOK_PAGE_CHANGED,
-                    self.OnPouSelectedChanged)
-            self.TabsOpened.Bind(wx.aui.EVT_AUINOTEBOOK_PAGE_CLOSE,
-                    self.OnPageClose)
-            self.TabsOpened.Bind(wx.aui.EVT_AUINOTEBOOK_END_DRAG,
-                    self.OnPageDragged)
-            self.AUIManager.AddPane(self.TabsOpened, 
-                  wx.aui.AuiPaneInfo().CentrePane().Name("TabsPane"))
-        
-        else:
-            self.MainSplitter = wx.SplitterWindow(id=ID_PLCOPENEDITORMAINSPLITTER,
-                  name='MainSplitter', parent=self, point=wx.Point(0, 0),
-                  size=wx.Size(0, 0), style=wx.SP_3D)
-            self.MainSplitter.SetNeedUpdating(True)
-            self.MainSplitter.SetMinimumPaneSize(1)
-            
-            self.LeftNoteBook = wx.Notebook(id=ID_PLCOPENEDITORLEFTNOTEBOOK,
-                  name='LeftNoteBook', parent=self.MainSplitter, pos=wx.Point(0,
-                  0), size=wx.Size(0, 0), style=0)
-        
-            self.SecondSplitter = wx.SplitterWindow(id=ID_PLCOPENEDITORSECONDSPLITTER,
-                  name='SecondSplitter', parent=self.MainSplitter, point=wx.Point(0, 0),
-                  size=wx.Size(0, 0), style=wx.SP_3D)
-            self.SecondSplitter.SetMinimumPaneSize(1)
-                
-            self.MainSplitter.SplitVertically(self.LeftNoteBook, self.SecondSplitter, 200)
-            
-            self.ThirdSplitter = wx.SplitterWindow(id=ID_PLCOPENEDITORTHIRDSPLITTER,
-                  name='ThirdSplitter', parent=self.SecondSplitter, point=wx.Point(0, 0),
-                  size=wx.Size(0, 0), style=wx.SP_3D)
-            self.ThirdSplitter.SetMinimumPaneSize(1)
-            
-            self.BottomNoteBook = wx.Notebook(id=ID_PLCOPENEDITORBOTTOMNOTEBOOK,
-                  name='BottomNoteBook', parent=self.SecondSplitter, pos=wx.Point(0,
-                  0), size=wx.Size(0, 0), style=0)
-            
-            self.SecondSplitter.SplitHorizontally(self.ThirdSplitter, self.BottomNoteBook, -200)
-            
-            self.TabsOpened = wx.Notebook(id=ID_PLCOPENEDITORTABSOPENED,
-                  name='TabsOpened', parent=self.ThirdSplitter, pos=wx.Point(0,
-                  0), size=wx.Size(0, 0), style=0)
-            self.TabsOpened.SetImageList(self.TabsImageList)
-            if wx.VERSION >= (2, 6, 0):
-                self.TabsOpened.Bind(wx.EVT_NOTEBOOK_PAGE_CHANGING,
-                    self.OnPouSelectedChanging, id=ID_PLCOPENEDITORTABSOPENED)
-                self.TabsOpened.Bind(wx.EVT_NOTEBOOK_PAGE_CHANGED,
-                    self.OnPouSelectedChanged, id=ID_PLCOPENEDITORTABSOPENED)
-            else:
-                wx.EVT_NOTEBOOK_PAGE_CHANGING(self.TabsOpened, ID_PLCOPENEDITORTABSOPENED,
-                    self.OnPouSelectedChanging)
-                wx.EVT_NOTEBOOK_PAGE_CHANGED(self.TabsOpened, ID_PLCOPENEDITORTABSOPENED,
-                    self.OnPouSelectedChanged)
-            
-            self.RightNoteBook = wx.Notebook(id=ID_PLCOPENEDITORRIGHTNOTEBOOK,
-                  name='RightNoteBook', parent=self.ThirdSplitter, pos=wx.Point(0,
-                  0), size=wx.Size(0, 0), style=0)
-            
-            self.ThirdSplitter.SplitVertically(self.TabsOpened, self.RightNoteBook, -250)
+        self.AUIManager = wx.aui.AuiManager(self)
+        self.AUIManager.SetDockSizeConstraint(0.5, 0.5)
+        self.Panes = {}
+        
+        self.LeftNoteBook = wx.aui.AuiNotebook(self, ID_PLCOPENEDITORLEFTNOTEBOOK,
+              style=wx.aui.AUI_NB_TOP|wx.aui.AUI_NB_TAB_SPLIT|wx.aui.AUI_NB_TAB_MOVE|
+                    wx.aui.AUI_NB_SCROLL_BUTTONS|wx.aui.AUI_NB_TAB_EXTERNAL_MOVE)
+        self.LeftNoteBook.Bind(wx.aui.EVT_AUINOTEBOOK_ALLOW_DND, 
+                self.OnAllowNotebookDnD)
+        self.AUIManager.AddPane(self.LeftNoteBook, 
+              wx.aui.AuiPaneInfo().Name("ProjectPane").
+              Left().Layer(1).
+              BestSize(wx.Size(300, 500)).CloseButton(False))
+        
+        self.BottomNoteBook = wx.aui.AuiNotebook(self, ID_PLCOPENEDITORBOTTOMNOTEBOOK,
+              style=wx.aui.AUI_NB_TOP|wx.aui.AUI_NB_TAB_SPLIT|wx.aui.AUI_NB_TAB_MOVE|
+                    wx.aui.AUI_NB_SCROLL_BUTTONS|wx.aui.AUI_NB_TAB_EXTERNAL_MOVE)
+        self.BottomNoteBook.Bind(wx.aui.EVT_AUINOTEBOOK_ALLOW_DND, 
+                self.OnAllowNotebookDnD)
+        self.AUIManager.AddPane(self.BottomNoteBook, 
+              wx.aui.AuiPaneInfo().Name("ResultPane").
+              Bottom().Layer(0).
+              BestSize(wx.Size(800, 300)).CloseButton(False))
+        
+        self.RightNoteBook = wx.aui.AuiNotebook(self, ID_PLCOPENEDITORRIGHTNOTEBOOK,
+              style=wx.aui.AUI_NB_TOP|wx.aui.AUI_NB_TAB_SPLIT|wx.aui.AUI_NB_TAB_MOVE|
+                    wx.aui.AUI_NB_SCROLL_BUTTONS|wx.aui.AUI_NB_TAB_EXTERNAL_MOVE)
+        self.RightNoteBook.Bind(wx.aui.EVT_AUINOTEBOOK_ALLOW_DND, 
+                self.OnAllowNotebookDnD)
+        self.AUIManager.AddPane(self.RightNoteBook, 
+              wx.aui.AuiPaneInfo().Name("LibraryPane").
+              Right().Layer(0).
+              BestSize(wx.Size(250, 400)).CloseButton(False))
+        
+        self.TabsOpened = wx.aui.AuiNotebook(self, ID_PLCOPENEDITORTABSOPENED, 
+              style=wx.aui.AUI_NB_DEFAULT_STYLE|wx.aui.AUI_NB_WINDOWLIST_BUTTON)
+        self.TabsOpened.Bind(wx.aui.EVT_AUINOTEBOOK_PAGE_CHANGING,
+                self.OnPouSelectedChanging)
+        self.TabsOpened.Bind(wx.aui.EVT_AUINOTEBOOK_PAGE_CHANGED,
+                self.OnPouSelectedChanged)
+        self.TabsOpened.Bind(wx.aui.EVT_AUINOTEBOOK_PAGE_CLOSE,
+                self.OnPageClose)
+        self.TabsOpened.Bind(wx.aui.EVT_AUINOTEBOOK_END_DRAG,
+                self.OnPageDragged)
+        self.AUIManager.AddPane(self.TabsOpened, 
+              wx.aui.AuiPaneInfo().CentrePane().Name("TabsPane"))
         
         #-----------------------------------------------------------------------
         #                    Creating PLCopen Project Types Tree
@@ -638,91 +577,78 @@
         
         self.MainTabs = {}
         
-        self.TypesTree = wx.TreeCtrl(id=ID_PLCOPENEDITORTYPESTREE,
-                  name='TypesTree', parent=self.LeftNoteBook, 
+        self.ProjectPanel = wx.SplitterWindow(id=ID_PLCOPENEDITORPROJECTPANEL,
+                  name='ProjectPanel', parent=self.LeftNoteBook, point=wx.Point(0, 0),
+                  size=wx.Size(0, 0), style=wx.SP_3D)
+        
+        self.ProjectTree = CustomTree(id=ID_PLCOPENEDITORPROJECTTREE,
+                  name='ProjectTree', parent=self.ProjectPanel, 
                   pos=wx.Point(0, 0), size=wx.Size(0, 0),
                   style=wx.TR_HAS_BUTTONS|wx.TR_SINGLE|wx.SUNKEN_BORDER|wx.TR_EDIT_LABELS)
+        self.ProjectTree.SetBackgroundBitmap(wx.Bitmap(os.path.join(CWD, 'Images', 'custom_tree_background.png')),
+											 wx.ALIGN_RIGHT|wx.ALIGN_BOTTOM)
+        add_menu = wx.Menu()
+        self._init_coll_AddMenu_Items(add_menu)
+        self.ProjectTree.SetAddMenu(add_menu)
         if wx.Platform == '__WXMSW__':
-            self.Bind(wx.EVT_TREE_ITEM_RIGHT_CLICK, self.OnTypesTreeRightUp,
-                  id=ID_PLCOPENEDITORTYPESTREE)
-            self.Bind(wx.EVT_TREE_SEL_CHANGED, self.OnTypesTreeItemSelected,
-                  id=ID_PLCOPENEDITORTYPESTREE)
+            self.Bind(wx.EVT_TREE_ITEM_RIGHT_CLICK, self.OnProjectTreeRightUp,
+                  id=ID_PLCOPENEDITORPROJECTTREE)
+            self.Bind(wx.EVT_TREE_SEL_CHANGED, self.OnProjectTreeItemSelected,
+                  id=ID_PLCOPENEDITORPROJECTTREE)
         else:
             if wx.VERSION >= (2, 6, 0):
-                self.TypesTree.Bind(wx.EVT_RIGHT_UP, self.OnTypesTreeRightUp)
-                self.TypesTree.Bind(wx.EVT_LEFT_UP, self.OnTypesTreeLeftUp)
+                self.ProjectTree.Bind(wx.EVT_RIGHT_UP, self.OnProjectTreeRightUp)
+                self.ProjectTree.Bind(wx.EVT_LEFT_UP, self.OnProjectTreeLeftUp)
             else:
-                wx.EVT_RIGHT_UP(self.TypesTree, self.OnTypesTreeRightUp)
-                wx.EVT_LEFT_UP(self.TypesTree, self.OnTypesTreeLeftUp)
-            self.Bind(wx.EVT_TREE_SEL_CHANGING, self.OnTypesTreeItemChanging,
-                  id=ID_PLCOPENEDITORTYPESTREE)
-        self.Bind(wx.EVT_TREE_BEGIN_DRAG, self.OnTypesTreeBeginDrag,
-              id=ID_PLCOPENEDITORTYPESTREE)
-        self.Bind(wx.EVT_TREE_BEGIN_LABEL_EDIT, self.OnTypesTreeItemBeginEdit,
-              id=ID_PLCOPENEDITORTYPESTREE)
-        self.Bind(wx.EVT_TREE_END_LABEL_EDIT, self.OnTypesTreeItemEndEdit,
-              id=ID_PLCOPENEDITORTYPESTREE)
-        self.Bind(wx.EVT_TREE_ITEM_ACTIVATED, self.OnTypesTreeItemActivated,
-              id=ID_PLCOPENEDITORTYPESTREE)
-        
-        self.MainTabs["TypesTree"] = (self.TypesTree, _("Types"))
-        self.LeftNoteBook.AddPage(*self.MainTabs["TypesTree"])
+                wx.EVT_RIGHT_UP(self.ProjectTree, self.OnProjectTreeRightUp)
+                wx.EVT_LEFT_UP(self.ProjectTree, self.OnProjectTreeLeftUp)
+            self.Bind(wx.EVT_TREE_SEL_CHANGING, self.OnProjectTreeItemChanging,
+                  id=ID_PLCOPENEDITORPROJECTTREE)
+        self.Bind(wx.EVT_TREE_BEGIN_DRAG, self.OnProjectTreeBeginDrag,
+              id=ID_PLCOPENEDITORPROJECTTREE)
+        self.Bind(wx.EVT_TREE_BEGIN_LABEL_EDIT, self.OnProjectTreeItemBeginEdit,
+              id=ID_PLCOPENEDITORPROJECTTREE)
+        self.Bind(wx.EVT_TREE_END_LABEL_EDIT, self.OnProjectTreeItemEndEdit,
+              id=ID_PLCOPENEDITORPROJECTTREE)
+        self.Bind(wx.EVT_TREE_ITEM_ACTIVATED, self.OnProjectTreeItemActivated,
+              id=ID_PLCOPENEDITORPROJECTTREE)
         
         #-----------------------------------------------------------------------
-        #                  Creating PLCopen Project Instances Tree
+        #        Creating PLCopen Project POU Instance Variables Panel
         #-----------------------------------------------------------------------
         
-        self.InstancesTree = wx.TreeCtrl(id=ID_PLCOPENEDITORINSTANCESTREE,
-                  name='InstancesTree', parent=self.LeftNoteBook, 
-                  pos=wx.Point(0, 0), size=wx.Size(0, 0),
-                  style=wx.TR_HAS_BUTTONS|wx.TR_SINGLE|wx.SUNKEN_BORDER)
-        if self.EnableDebug:
-            if wx.VERSION >= (2, 6, 0):
-                self.InstancesTree.Bind(wx.EVT_RIGHT_UP, self.OnInstancesTreeRightUp)
-            else:
-                wx.EVT_RIGHT_UP(self.InstancesTree, self.OnInstancesTreeRightUp)
-            self.Bind(wx.EVT_TREE_BEGIN_DRAG, self.OnInstancesTreeBeginDrag,
-                  id=ID_PLCOPENEDITORINSTANCESTREE)
-            self.Bind(wx.EVT_TREE_ITEM_ACTIVATED, self.OnInstancesTreeItemActivated,
-                  id=ID_PLCOPENEDITORINSTANCESTREE)
-        
-        self.MainTabs["InstancesTree"] = (self.InstancesTree, _("Instances"))
-        self.LeftNoteBook.AddPage(*self.MainTabs["InstancesTree"])
+        self.PouInstanceVariablesPanel = PouInstanceVariablesPanel(self.ProjectPanel, self, self.Controler, self.EnableDebug)
+        
+        self.MainTabs["ProjectPanel"] = (self.ProjectPanel, _("Project"))
+        self.LeftNoteBook.AddPage(*self.MainTabs["ProjectPanel"])
+        
+        self.ProjectPanel.SplitHorizontally(self.ProjectTree, self.PouInstanceVariablesPanel, 300)
         
         #-----------------------------------------------------------------------
         #                            Creating Tool Bar
         #-----------------------------------------------------------------------
         
-        if USE_AUI:
-            MenuToolBar = wx.ToolBar(self, ID_PLCOPENEDITOREDITORMENUTOOLBAR, wx.DefaultPosition, wx.DefaultSize,
-                    wx.TB_FLAT | wx.TB_NODIVIDER | wx.NO_BORDER)
-            MenuToolBar.SetToolBitmapSize(wx.Size(25, 25))
-            MenuToolBar.Realize()
-            self.Panes["MenuToolBar"] = MenuToolBar
-            self.AUIManager.AddPane(MenuToolBar, wx.aui.AuiPaneInfo().
-                      Name("MenuToolBar").Caption(_("Menu ToolBar")).
-                      ToolbarPane().Top().
-                      LeftDockable(False).RightDockable(False))
-            
-            EditorToolBar = wx.ToolBar(self, ID_PLCOPENEDITOREDITORTOOLBAR, wx.DefaultPosition, wx.DefaultSize,
-                    wx.TB_FLAT | wx.TB_NODIVIDER | wx.NO_BORDER)
-            EditorToolBar.SetToolBitmapSize(wx.Size(25, 25))
-            EditorToolBar.AddRadioTool(ID_PLCOPENEDITOREDITORTOOLBARSELECTION, 
-                  wx.Bitmap(os.path.join(CWD, 'Images', 'select.png')), wx.NullBitmap, _("Select an object"))
-            EditorToolBar.Realize()
-            self.Panes["EditorToolBar"] = EditorToolBar
-            self.AUIManager.AddPane(EditorToolBar, wx.aui.AuiPaneInfo().
-                      Name("EditorToolBar").Caption(_("Editor ToolBar")).
-                      ToolbarPane().Top().Position(1).
-                      LeftDockable(False).RightDockable(False))
-            
-        else:
-            self.EditorToolBar = self.CreateToolBar(wx.TB_HORIZONTAL|wx.TB_FLAT|wx.NO_BORDER, 
-                  ID_PLCOPENEDITOREDITORTOOLBAR, 'EditorToolBar')
-            self.EditorToolBar.SetToolBitmapSize(wx.Size(25, 25))
-            self.EditorToolBar.AddRadioTool(ID_PLCOPENEDITOREDITORTOOLBARSELECTION, 
-                  wx.Bitmap(os.path.join(CWD, 'Images', 'select.png')), wx.NullBitmap, _("Select an object"))
-            self.EditorToolBar.Realize()
+        MenuToolBar = wx.ToolBar(self, ID_PLCOPENEDITOREDITORMENUTOOLBAR, wx.DefaultPosition, wx.DefaultSize,
+                wx.TB_FLAT | wx.TB_NODIVIDER | wx.NO_BORDER)
+        MenuToolBar.SetToolBitmapSize(wx.Size(25, 25))
+        MenuToolBar.Realize()
+        self.Panes["MenuToolBar"] = MenuToolBar
+        self.AUIManager.AddPane(MenuToolBar, wx.aui.AuiPaneInfo().
+                  Name("MenuToolBar").Caption(_("Menu ToolBar")).
+                  ToolbarPane().Top().
+                  LeftDockable(False).RightDockable(False))
+        
+        EditorToolBar = wx.ToolBar(self, ID_PLCOPENEDITOREDITORTOOLBAR, wx.DefaultPosition, wx.DefaultSize,
+                wx.TB_FLAT | wx.TB_NODIVIDER | wx.NO_BORDER)
+        EditorToolBar.SetToolBitmapSize(wx.Size(25, 25))
+        EditorToolBar.AddRadioTool(ID_PLCOPENEDITOREDITORTOOLBARSELECTION, 
+              wx.Bitmap(os.path.join(CWD, 'Images', 'select.png')), wx.NullBitmap, _("Select an object"))
+        EditorToolBar.Realize()
+        self.Panes["EditorToolBar"] = EditorToolBar
+        self.AUIManager.AddPane(EditorToolBar, wx.aui.AuiPaneInfo().
+                  Name("EditorToolBar").Caption(_("Editor ToolBar")).
+                  ToolbarPane().Top().Position(1).
+                  LeftDockable(False).RightDockable(False))
             
         self.Bind(wx.EVT_MENU, self.OnSelectionTool, 
               id=ID_PLCOPENEDITOREDITORTOOLBARSELECTION)
@@ -751,8 +677,7 @@
             self.MainTabs["DebugVariablePanel"] = (self.DebugVariablePanel, _("Debugger"))
             self.RightNoteBook.AddPage(*self.MainTabs["DebugVariablePanel"])
         
-        if USE_AUI:
-            self.AUIManager.Update()
+        self.AUIManager.Update()
     
     ## Constructor of the PLCOpenEditor class.
     #  @param parent The parent window.
@@ -805,8 +730,8 @@
             self.TreeImageDict[itemtype]=self.TreeImageList.Add(wx.Bitmap(os.path.join(CWD, 'Images', '%s.png'%imgname)))
         
         # Assign icon list to TreeCtrls
-        self.TypesTree.SetImageList(self.TreeImageList)
-        self.InstancesTree.SetImageList(self.TreeImageList)
+        self.ProjectTree.SetImageList(self.TreeImageList)
+        self.PouInstanceVariablesPanel.SetTreeImageList(self.TreeImageList)
         
         self.CurrentEditorToolBar = []
         self.CurrentMenu = None
@@ -814,8 +739,7 @@
         self.Highlights = {}
         self.DrawingMode = FREEDRAWING_MODE
         #self.DrawingMode = DRIVENDRAWING_MODE
-        if USE_AUI:
-            self.AuiTabCtrl = []
+        self.AuiTabCtrl = []
         self.DefaultPerspective = None
         
         # Initialize Printing configuring elements
@@ -924,17 +848,14 @@
         elif page_infos[0] == "editor":
             tagname = page_infos[1]
             page_ref = self.EditProjectElement(self.Controler.GetElementType(tagname), tagname)
-            page_ref.RefreshView()
-            return notebook.GetPageIndex(page_ref)
+            if page_ref is not None:
+                page_ref.RefreshView()
+                return notebook.GetPageIndex(page_ref)
         elif page_infos[0] == "debug":
             instance_path = page_infos[1]
-            item = self.GetInstancesTreeItem(self.InstancesTree.GetRootItem(), instance_path)
-            item_infos = self.InstancesTree.GetPyData(item)
-            if item_infos[1] is not None:
-                instance_type = item_infos[1]
-            else:
-                instance_type = self.InstancesTree.GetItemText(item).split(" (")[1].split(")")[0]
-            return notebook.GetPageIndex(self.OpenDebugViewer(item_infos[0], instance_path, instance_type))
+            instance_infos = self.Controler.GetInstanceInfos(instance_path, self.EnableDebug)
+            if instance_infos is not None:
+                return notebook.GetPageIndex(self.OpenDebugViewer(instance_infos["class"], instance_path, instance_infos["type"]))
         return None
             
     def LoadTabOrganization(self, notebook, tabs, mode="all", first_index=None):
@@ -967,7 +888,7 @@
                 wx.CallAfter(notebook.SetSelection, selected)
     
     def ResetPerspective(self):
-    	if USE_AUI and self.DefaultPerspective is not None:
+    	if self.DefaultPerspective is not None:
             self.AUIManager.LoadPerspective(self.DefaultPerspective["perspective"])
         
             for notebook in [self.LeftNoteBook, self.BottomNoteBook, self.RightNoteBook]:
@@ -992,36 +913,35 @@
             self.SetClientSize(frame_size)
         
     def RestoreLastOrganization(self):
-        if USE_AUI:
-            notebooks = {}
-            for notebook, entry_name in [(self.LeftNoteBook, "leftnotebook"),
-                                         (self.BottomNoteBook, "bottomnotebook"),
-                                         (self.RightNoteBook, "rightnotebook")]:
-                notebooks[entry_name] = self.SaveTabOrganization(notebook)
-            self.DefaultPerspective = {
-                "perspective": self.AUIManager.SavePerspective(),
-                "notebooks": notebooks,
-            }
-            
-            try:
-                if self.Config.HasEntry("perspective"):
-                    self.AUIManager.LoadPerspective(str(self.Config.Read("perspective")))
-            
-                if self.Config.HasEntry("notebooks"):
-                    notebooks = cPickle.loads(str(self.Config.Read("notebooks")))
-                    
-                    for notebook in [self.LeftNoteBook, self.BottomNoteBook, self.RightNoteBook]:
-                        for idx in xrange(notebook.GetPageCount()):
-                            notebook.RemovePage(0)
-                            
-                    for notebook, entry_name in [(self.LeftNoteBook, "leftnotebook"),
-                                                 (self.BottomNoteBook, "bottomnotebook"),
-                                                 (self.RightNoteBook, "rightnotebook")]:
-                        self.LoadTabOrganization(notebook, notebooks.get(entry_name))
-            except:
-        		self.ResetPerspective()
-        	
-            self.LoadProjectOrganization()
+        notebooks = {}
+        for notebook, entry_name in [(self.LeftNoteBook, "leftnotebook"),
+                                     (self.BottomNoteBook, "bottomnotebook"),
+                                     (self.RightNoteBook, "rightnotebook")]:
+            notebooks[entry_name] = self.SaveTabOrganization(notebook)
+        self.DefaultPerspective = {
+            "perspective": self.AUIManager.SavePerspective(),
+            "notebooks": notebooks,
+        }
+        
+        try:
+            if self.Config.HasEntry("perspective"):
+                self.AUIManager.LoadPerspective(str(self.Config.Read("perspective")))
+        
+            if self.Config.HasEntry("notebooks"):
+                notebooks = cPickle.loads(str(self.Config.Read("notebooks")))
+                
+                for notebook in [self.LeftNoteBook, self.BottomNoteBook, self.RightNoteBook]:
+                    for idx in xrange(notebook.GetPageCount()):
+                        notebook.RemovePage(0)
+                        
+                for notebook, entry_name in [(self.LeftNoteBook, "leftnotebook"),
+                                             (self.BottomNoteBook, "bottomnotebook"),
+                                             (self.RightNoteBook, "rightnotebook")]:
+                    self.LoadTabOrganization(notebook, notebooks.get(entry_name))
+        except:
+            self.ResetPerspective()
+        
+        self.LoadProjectOrganization()
     
     def SaveLastState(self):
         if not self.IsMaximized():
@@ -1029,17 +949,16 @@
         elif self.Config.HasEntry("framesize"):
             self.Config.DeleteEntry("framesize")
         
-        if USE_AUI:
-            notebooks = {}
-            for notebook, entry_name in [(self.LeftNoteBook, "leftnotebook"),
-                                         (self.BottomNoteBook, "bottomnotebook"),
-                                         (self.RightNoteBook, "rightnotebook")]:
-                notebooks[entry_name] = self.SaveTabOrganization(notebook)
-            self.Config.Write("notebooks", cPickle.dumps(notebooks))
-            
-            self.Config.Write("perspective", self.AUIManager.SavePerspective())
-        
-            self.SaveProjectOrganization()
+        notebooks = {}
+        for notebook, entry_name in [(self.LeftNoteBook, "leftnotebook"),
+                                     (self.BottomNoteBook, "bottomnotebook"),
+                                     (self.RightNoteBook, "rightnotebook")]:
+            notebooks[entry_name] = self.SaveTabOrganization(notebook)
+        self.Config.Write("notebooks", cPickle.dumps(notebooks))
+        
+        self.Config.Write("perspective", self.AUIManager.SavePerspective())
+    
+        self.SaveProjectOrganization()
         
         for i in xrange(self.TabsOpened.GetPageCount()):
             self.SavePageState(self.TabsOpened.GetPage(i))
@@ -1047,7 +966,7 @@
         self.Config.Flush()
 
     def SaveProjectOrganization(self):
-        if USE_AUI and self.Controler is not None:
+        if self.Controler is not None:
             tabs = []
             
             projects = {}
@@ -1066,7 +985,7 @@
             self.Config.Flush()
     
     def LoadProjectOrganization(self):
-        if USE_AUI and self.Controler is not None:
+        if self.Controler is not None:
             project = self.GetProjectConfiguration()
 		    
             try:
@@ -1093,8 +1012,8 @@
             FILEMENU : self.RefreshFileMenu,
             EDITMENU : self.RefreshEditMenu,
             DISPLAYMENU : self.RefreshDisplayMenu,
-            TYPESTREE : self.RefreshTypesTree,
-            INSTANCESTREE : self.RefreshInstancesTree, 
+            PROJECTTREE : self.RefreshProjectTree,
+            POUINSTANCEVARIABLESPANEL : self.RefreshPouInstanceVariablesPanel, 
             LIBRARYTREE : self.RefreshLibraryPanel,
             SCALING : self.RefreshScaling,
             PAGETITLES: self.RefreshPageTitles}
@@ -1102,8 +1021,12 @@
     ## Call PLCOpenEditor refresh functions.
     #  @param elements List of elements to refresh.
     def _Refresh(self, *elements):
-        for element in elements:
-            self.RefreshFunctions[element]()
+        try:
+            for element in elements:
+                self.RefreshFunctions[element]()
+        except wx.PyDeadObjectError:
+            # ignore exceptions caused by refresh while quitting
+            pass
 
     ## Callback function when AUINotebook Page closed with CloseButton
     #  @param event AUINotebook Event.
@@ -1145,7 +1068,7 @@
             editor = self.TabsOpened.GetPage(i)
             editor.RefreshScaling()
 
-    def ShowProperties(self):
+    def EditProjectSettings(self):
         old_values = self.Controler.GetProjectProperties()
         dialog = ProjectDialog(self)
         dialog.SetValues(old_values)
@@ -1155,7 +1078,7 @@
             if new_values != old_values:
                 self.Controler.SetProjectProperties(None, new_values)
                 self._Refresh(TITLE, EDITORTOOLBAR, FILEMENU, EDITMENU, DISPLAYMENU, 
-                              TYPESTREE, INSTANCESTREE, SCALING)
+                              PROJECTTREE, POUINSTANCEVARIABLESPANEL, SCALING)
         dialog.Destroy()
 
 #-------------------------------------------------------------------------------
@@ -1171,10 +1094,7 @@
         index = self.TabsImageListIndexes.get((icon1_name, icon2_name), None)
         # Return index or bitmap if found
         if index is not None:
-            if USE_AUI:
-                return self.TabsImageList.GetBitmap(index)
-            else:
-                return index
+            return self.TabsImageList.GetBitmap(index)
         if icon2_name is None:
             # Bitmap with only one icon
             bitmap = wx.Bitmap(os.path.join(CWD, 'Images', '%s.png'%icon1_name))
@@ -1199,10 +1119,7 @@
             index = self.TabsImageList.Add(bitmap)
             # Save bitmap index in ImageList in dictionary
             self.TabsImageListIndexes[(icon1_name, icon2_name)] = index
-        if USE_AUI:
-            return bitmap
-        else:
-            return index
+        return bitmap
     
     ## Function that add a tab in Notebook, calling refresh for tab DClick event
     # for wx.aui.AUINotebook.
@@ -1226,11 +1143,8 @@
     ## Function that fix difference in deleting all tabs between 
     # wx.Notebook and wx.aui.AUINotebook.
     def DeleteAllPages(self):
-        if USE_AUI:
-            for idx in xrange(self.TabsOpened.GetPageCount()):
-                self.TabsOpened.DeletePage(0)
-        else:
-            self.TabsOpened.DeleteAllPages()
+        for idx in xrange(self.TabsOpened.GetPageCount()):
+            self.TabsOpened.DeletePage(0)
         self.RefreshTabCtrlEvent()
 
     ## Function that fix difference in setting picture on tab between 
@@ -1239,10 +1153,7 @@
     #  @param bitmap wx.Bitmap to define on tab.
     #  @return True if operation succeeded
     def SetPageBitmap(self, idx, bitmap):
-        if USE_AUI:
-            return self.TabsOpened.SetPageBitmap(idx, bitmap)
-        else:
-            return self.TabsOpened.SetPageImage(idx, bitmap)
+        return self.TabsOpened.SetPageBitmap(idx, bitmap)
 
 #-------------------------------------------------------------------------------
 #                         Dialog Message Functions
@@ -1277,8 +1188,9 @@
 
     def ResetView(self):
         self.DeleteAllPages()
-        self.TypesTree.DeleteAllItems()
-        self.InstancesTree.DeleteAllItems()
+        self.ProjectTree.DeleteAllItems()
+        self.ProjectTree.Enable(False)
+        self.PouInstanceVariablesPanel.ResetView()
         self.LibraryPanel.ResetTree()
         self.LibraryPanel.SetControler(None)
         self.Controler = None
@@ -1425,7 +1337,7 @@
             window.Undo()
         else:
             self.Controler.LoadPrevious()
-        self._Refresh(TITLE, FILEMENU, EDITMENU, TYPESTREE, INSTANCESTREE, LIBRARYTREE, 
+        self._Refresh(TITLE, FILEMENU, EDITMENU, PROJECTTREE, POUINSTANCEVARIABLESPANEL, LIBRARYTREE, 
                       SCALING, PAGETITLES)    
     
     def OnRedoMenu(self, event):
@@ -1435,7 +1347,7 @@
             window.Redo()
         else:
             self.Controler.LoadNext()
-        self._Refresh(TITLE, FILEMENU, EDITMENU, TYPESTREE, INSTANCESTREE, LIBRARYTREE, 
+        self._Refresh(TITLE, FILEMENU, EDITMENU, PROJECTTREE, POUINSTANCEVARIABLESPANEL, LIBRARYTREE, 
                       SCALING, PAGETITLES)
     
     def OnEnableUndoRedoMenu(self, event):
@@ -1468,16 +1380,15 @@
     
     def OnDeleteMenu(self, event):
         window = self.FindFocus()
-        if window == self.TypesTree or window is None:
-            selected = self.TypesTree.GetSelection()
+        if window == self.ProjectTree or window is None:
+            selected = self.ProjectTree.GetSelection()
             if selected.IsOk():
-                type = self.TypesTree.GetPyData(selected)
-                function = self.DeleteFunctions.get(type, None)
+                function = self.DeleteFunctions.get(self.ProjectTree.GetPyData(selected)["type"], None)
                 if function is not None:
                     function(self, selected)
                     self.CloseTabsWithoutModel()
-                    self._Refresh(TITLE, EDITORTOOLBAR, FILEMENU, EDITMENU, TYPESTREE, 
-                                  INSTANCESTREE, LIBRARYTREE)
+                    self._Refresh(TITLE, EDITORTOOLBAR, FILEMENU, EDITMENU, PROJECTTREE, 
+                                  POUINSTANCEVARIABLESPANEL, LIBRARYTREE)
         elif isinstance(window, (Viewer, TextViewer)):
             event = wx.KeyEvent(wx.EVT_CHAR._getEvtType())
             event.m_keyCode = wx.WXK_DELETE
@@ -1555,19 +1466,22 @@
         event.Allow()
     
     def RefreshTabCtrlEvent(self):
-        if USE_AUI:
-            auitabctrl = []
-            for child in self.TabsOpened.GetChildren():
-                if isinstance(child, wx.aui.AuiTabCtrl):
-                    auitabctrl.append(child)
-                    if child not in self.AuiTabCtrl:
-                        child.Bind(wx.EVT_LEFT_DCLICK, self.GetTabsOpenedDClickFunction(child))
-            self.AuiTabCtrl = auitabctrl
-            if self.TabsOpened.GetPageCount() == 0:
-                pane = self.AUIManager.GetPane(self.TabsOpened)
-                if pane.IsMaximized():
-                    self.AUIManager.RestorePane(pane)
-                self.AUIManager.Update()
+        auitabctrl = []
+        for child in self.TabsOpened.GetChildren():
+            if isinstance(child, wx.aui.AuiTabCtrl):
+                auitabctrl.append(child)
+                if child not in self.AuiTabCtrl:
+                    child.Bind(wx.EVT_LEFT_DCLICK, self.GetTabsOpenedDClickFunction(child))
+        self.AuiTabCtrl = auitabctrl
+        if self.TabsOpened.GetPageCount() == 0:
+            pane = self.AUIManager.GetPane(self.TabsOpened)
+            if pane.IsMaximized():
+                self.AUIManager.RestorePane(pane)
+            self.AUIManager.Update()
+    
+    def EnsureTabVisible(self, tab):
+        notebook = tab.GetParent()
+        notebook.SetSelection(notebook.GetPageIndex(tab))
     
     def OnPouSelectedChanging(self, event):
         if not self.Starting:
@@ -1583,11 +1497,19 @@
             selected = self.TabsOpened.GetSelection()
             if selected >= 0:
                 window = self.TabsOpened.GetPage(selected)
+                tagname = window.GetTagName()
                 if not window.IsDebugging():
-                    wx.CallAfter(self.SelectTypesTreeItem, window.GetTagName())
+                    wx.CallAfter(self.SelectProjectTreeItem, tagname)
+                    wx.CallAfter(self.PouInstanceVariablesPanel.SetPouType, tagname)
                     window.RefreshView()
+                    self.EnsureTabVisible(self.LibraryPanel)
                 else:
-                    wx.CallAfter(self.SelectInstancesTreeItem, window.GetInstancePath())
+                    instance_path = window.GetInstancePath()
+                    if tagname == "":
+                        instance_path = instance_path.rsplit(".", 1)[0]
+                        tagname = self.Controler.GetPouInstanceTagName(instance_path, self.EnableDebug)
+                    self.EnsureTabVisible(self.DebugVariablePanel)
+                    wx.CallAfter(self.PouInstanceVariablesPanel.SetPouType, tagname, instance_path)
             wx.CallAfter(self._Refresh, FILEMENU, EDITMENU, DISPLAYMENU, EDITORTOOLBAR)
         event.Skip()
 
@@ -1596,18 +1518,15 @@
         if selected >= 0:
             window = self.TabsOpened.GetPage(selected)
             if not window.IsDebugging():
-                self.SelectTypesTreeItem(window.GetTagName())
+                self.SelectProjectTreeItem(window.GetTagName())
             else:
-                self.SelectInstancesTreeItem(window.GetInstancePath())
-            if USE_AUI:
-                for child in self.TabsOpened.GetChildren():
-                    if isinstance(child, wx.aui.AuiTabCtrl):
-                        active_page = child.GetActivePage()
-                        if active_page >= 0:
-                            window = child.GetWindowFromIdx(active_page)
-                            window.RefreshView()
-            else:
-                window.RefreshView()
+                self.PouInstanceVariablesPanel.SetPouType(window.GetTagName(), window.GetInstancePath())
+            for child in self.TabsOpened.GetChildren():
+                if isinstance(child, wx.aui.AuiTabCtrl):
+                    active_page = child.GetActivePage()
+                    if active_page >= 0:
+                        window = child.GetWindowFromIdx(active_page)
+                        window.RefreshView()
             self._Refresh(FILEMENU, EDITMENU, DISPLAYMENU, EDITORTOOLBAR)
     
     def RefreshEditorNames(self, old_tagname, new_tagname):
@@ -1647,109 +1566,118 @@
 #                         Types Tree Management Functions
 #-------------------------------------------------------------------------------
 
-    def RefreshTypesTree(self):
+    def RefreshProjectTree(self):
         infos = self.Controler.GetProjectInfos()
-        root = self.TypesTree.GetRootItem()
+        root = self.ProjectTree.GetRootItem()
         if not root.IsOk():
-            root = self.TypesTree.AddRoot(infos["name"])
-        self.GenerateTypesTreeBranch(root, infos)
-        self.TypesTree.Expand(root)
+            root = self.ProjectTree.AddRoot(infos["name"])
+        self.GenerateProjectTreeBranch(root, infos)
+        self.ProjectTree.Expand(root)
 
     def ResetSelectedItem(self):
         self.SelectedItem = None
 
-    def GenerateTypesTreeBranch(self, root, infos, topology=False):
+    def GenerateProjectTreeBranch(self, root, infos):
         to_delete = []
         item_name = infos["name"]
         if infos["type"] in ITEMS_UNEDITABLE:
-            item_name = _(item_name)
-        self.TypesTree.SetItemText(root, item_name)
-        self.TypesTree.SetPyData(root, infos["type"])
+        	if len(infos["values"]) == 1:
+        		return self.GenerateProjectTreeBranch(root, infos["values"][0])
+        	item_name = _(item_name)
+        self.ProjectTree.SetItemText(root, item_name)
+        self.ProjectTree.SetPyData(root, infos)
         highlight_colours = self.Highlights.get(infos.get("tagname", None), (wx.WHITE, wx.BLACK))
-        self.TypesTree.SetItemBackgroundColour(root, highlight_colours[0])
-        self.TypesTree.SetItemTextColour(root, highlight_colours[1])
+        self.ProjectTree.SetItemBackgroundColour(root, highlight_colours[0])
+        self.ProjectTree.SetItemTextColour(root, highlight_colours[1])
         if infos["type"] == ITEM_POU:
-            self.TypesTree.SetItemImage(root, self.TreeImageDict[self.Controler.GetPouBodyType(infos["name"])])
+            self.ProjectTree.SetItemImage(root, self.TreeImageDict[self.Controler.GetPouBodyType(infos["name"])])
+        elif infos.has_key("icon") and infos["icon"] is not None:
+            icon_path = infos["icon"]
+            if not self.TreeImageDict.has_key(icon_path):
+                self.TreeImageDict[icon_path] = self.TreeImageList.Add(wx.Bitmap(icon_path))
+            self.ProjectTree.SetItemImage(root, self.TreeImageDict[icon_path])
+        elif self.TreeImageDict.has_key(infos["type"]):
+            self.ProjectTree.SetItemImage(root, self.TreeImageDict[infos["type"]])      
+        
+        if wx.VERSION >= (2, 6, 0):
+            item, root_cookie = self.ProjectTree.GetFirstChild(root)
         else:
-            self.TypesTree.SetItemImage(root, self.TreeImageDict[infos["type"]])      
-            
-        if wx.VERSION >= (2, 6, 0):
-            item, root_cookie = self.TypesTree.GetFirstChild(root)
-        else:
-            item, root_cookie = self.TypesTree.GetFirstChild(root, 0)
+            item, root_cookie = self.ProjectTree.GetFirstChild(root, 0)
         for values in infos["values"]:
-            if not item.IsOk():
-                item = self.TypesTree.AppendItem(root, "")
-                if wx.Platform != '__WXMSW__':
-                    item, root_cookie = self.TypesTree.GetNextChild(root, root_cookie)
-            self.GenerateTypesTreeBranch(item, values)
-            item, root_cookie = self.TypesTree.GetNextChild(root, root_cookie)
+            if values["type"] not in ITEMS_UNEDITABLE or len(values["values"]) > 0:
+                if not item.IsOk():
+                    item = self.ProjectTree.AppendItem(root, "")
+                    if wx.Platform != '__WXMSW__':
+                        item, root_cookie = self.ProjectTree.GetNextChild(root, root_cookie)
+                self.GenerateProjectTreeBranch(item, values)
+                item, root_cookie = self.ProjectTree.GetNextChild(root, root_cookie)
         while item.IsOk():
             to_delete.append(item)
-            item, root_cookie = self.TypesTree.GetNextChild(root, root_cookie)
+            item, root_cookie = self.ProjectTree.GetNextChild(root, root_cookie)
         for item in to_delete:
-            self.TypesTree.Delete(item)
-
-    def SelectTypesTreeItem(self, tagname):
-        if self.TypesTree is not None:
-            root = self.TypesTree.GetRootItem()
+            self.ProjectTree.Delete(item)
+
+    def SelectProjectTreeItem(self, tagname):
+        if self.ProjectTree is not None:
+            root = self.ProjectTree.GetRootItem()
             if root.IsOk():
                 words = tagname.split("::")
                 if words[0] == "D":
-                    return self.RecursiveTypesTreeItemSelection(root, [(words[1], ITEM_DATATYPE)])
+                    return self.RecursiveProjectTreeItemSelection(root, [(words[1], ITEM_DATATYPE)])
                 elif words[0] == "P":
-                    return self.RecursiveTypesTreeItemSelection(root, [(words[1], ITEM_POU)])
+                    return self.RecursiveProjectTreeItemSelection(root, [(words[1], ITEM_POU)])
                 elif words[0] == "T":
-                    return self.RecursiveTypesTreeItemSelection(root, [(words[1], ITEM_POU), (words[2], ITEM_TRANSITION)])
+                    return self.RecursiveProjectTreeItemSelection(root, [(words[1], ITEM_POU), (words[2], ITEM_TRANSITION)])
                 elif words[0] == "A":
-                    return self.RecursiveTypesTreeItemSelection(root, [(words[1], ITEM_POU), (words[2], ITEM_ACTION)])
+                    return self.RecursiveProjectTreeItemSelection(root, [(words[1], ITEM_POU), (words[2], ITEM_ACTION)])
                 elif words[0] == "C":
-                    return self.RecursiveTypesTreeItemSelection(root, [(words[1], ITEM_CONFIGURATION)])
+                    return self.RecursiveProjectTreeItemSelection(root, [(words[1], ITEM_CONFIGURATION)])
                 elif words[0] == "R":
-                    return self.RecursiveTypesTreeItemSelection(root, [(words[1], ITEM_CONFIGURATION), (words[2], ITEM_RESOURCE)])
+                    return self.RecursiveProjectTreeItemSelection(root, [(words[1], ITEM_CONFIGURATION), (words[2], ITEM_RESOURCE)])
         return False
 
-    def RecursiveTypesTreeItemSelection(self, root, items):
+    def RecursiveProjectTreeItemSelection(self, root, items):
         found = False
         if wx.VERSION >= (2, 6, 0):
-            item, root_cookie = self.TypesTree.GetFirstChild(root)
+            item, root_cookie = self.ProjectTree.GetFirstChild(root)
         else:
-            item, root_cookie = self.TypesTree.GetFirstChild(root, 0)
+            item, root_cookie = self.ProjectTree.GetFirstChild(root, 0)
         while item.IsOk() and not found:
-            if (self.TypesTree.GetItemText(item), self.TypesTree.GetPyData(item)) == items[0]:
+            item_infos = self.ProjectTree.GetPyData(item)
+            if (item_infos["name"].split(":")[-1].strip(), item_infos["type"]) == items[0]:
                 if len(items) == 1:
                     self.SelectedItem = item
-                    self.TypesTree.SelectItem(item)
+                    self.ProjectTree.SelectItem(item)
                     wx.CallAfter(self.ResetSelectedItem)
                     return True
                 else:
-                    found = self.RecursiveTypesTreeItemSelection(item, items[1:])
+                    found = self.RecursiveProjectTreeItemSelection(item, items[1:])
             else:
-                found = self.RecursiveTypesTreeItemSelection(item, items)
-            item, root_cookie = self.TypesTree.GetNextChild(root, root_cookie)
+                found = self.RecursiveProjectTreeItemSelection(item, items)
+            item, root_cookie = self.ProjectTree.GetNextChild(root, root_cookie)
         return found
 
-    def OnTypesTreeBeginDrag(self, event):
+    def OnProjectTreeBeginDrag(self, event):
         if wx.Platform == '__WXMSW__':
             self.SelectedItem = event.GetItem()
-        if self.SelectedItem is not None and self.TypesTree.GetPyData(self.SelectedItem) == ITEM_POU:
-            block_name = self.TypesTree.GetItemText(self.SelectedItem)
+        if self.SelectedItem is not None and self.ProjectTree.GetPyData(self.SelectedItem)["type"] == ITEM_POU:
+            block_name = self.ProjectTree.GetItemText(self.SelectedItem)
             block_type = self.Controler.GetPouType(block_name)
             if block_type != "program":
                 data = wx.TextDataObject(str((block_name, block_type, "")))
-                dragSource = wx.DropSource(self.TypesTree)
+                dragSource = wx.DropSource(self.ProjectTree)
                 dragSource.SetData(data)
                 dragSource.DoDragDrop()
             self.ResetSelectedItem()
 
-    def OnTypesTreeItemBeginEdit(self, event):
+    def OnProjectTreeItemBeginEdit(self, event):
         selected = event.GetItem()
-        if self.TypesTree.GetPyData(selected) in ITEMS_UNEDITABLE:
+        if self.ProjectTree.GetPyData(selected)["type"] in ITEMS_UNEDITABLE:
             event.Veto()
         else:
             event.Skip()
 
-    def OnTypesTreeItemEndEdit(self, event):
+    def OnProjectTreeItemEndEdit(self, event):
         message = None
         abort = False
         new_name = event.GetLabel()
@@ -1760,11 +1688,11 @@
                 message = _("\"%s\" is a keyword. It can't be used!")%new_name
             else:
                 item = event.GetItem()
-                old_name = self.TypesTree.GetItemText(item)
-                itemtype = self.TypesTree.GetPyData(item)
-                if itemtype == ITEM_PROJECT:
+                old_name = self.ProjectTree.GetItemText(item)
+                item_infos = self.ProjectTree.GetPyData(item)
+                if item_infos["type"] == ITEM_PROJECT:
                     self.Controler.SetProjectProperties(name = new_name)
-                elif itemtype == ITEM_DATATYPE:
+                elif item_infos["type"] == ITEM_DATATYPE:
                     if new_name.upper() in [name.upper() for name in self.Controler.GetProjectDataTypeNames() if name != old_name]:
                         message = _("\"%s\" data type already exists!")%new_name
                         abort = True
@@ -1773,7 +1701,7 @@
                         self.RefreshEditorNames(self.Controler.ComputeDataTypeName(old_name), 
                                                 self.Controler.ComputeDataTypeName(new_name))
                         self.RefreshPageTitles()
-                elif itemtype == ITEM_POU:
+                elif item_infos["type"] == ITEM_POU:
                     if new_name.upper() in [name.upper() for name in self.Controler.GetProjectPouNames() if name != old_name]:
                         message = _("\"%s\" pou already exists!")%new_name
                         abort = True
@@ -1788,29 +1716,29 @@
                                                 self.Controler.ComputePouName(new_name))
                         self.RefreshLibraryPanel()
                         self.RefreshPageTitles()
-                elif itemtype == ITEM_TRANSITION:
-                    pou_name = GetParentName(self.TypesTree, item, ITEM_POU)
+                elif item_infos["type"] == ITEM_TRANSITION:
                     if new_name.upper() in [name.upper() for name in self.Controler.GetProjectPouNames()]:
                         message = _("A POU named \"%s\" already exists!")%new_name
                     elif new_name.upper() in [name.upper() for name in self.Controler.GetProjectPouVariables(pou_name) if name != old_name]:
                         message = _("A variable with \"%s\" as name already exists in this pou!")%new_name
                     else:
-                        self.Controler.ChangePouTransitionName(pou_name, old_name, new_name)
-                        self.RefreshEditorNames(self.Controler.ComputePouTransitionName(pou_name, old_name), 
-                                                self.Controler.ComputePouTransitionName(pou_name, new_name))
+                        words = item_infos["tagname"].split("::")
+                        self.Controler.ChangePouTransitionName(words[1], old_name, new_name)
+                        self.RefreshEditorNames(self.Controler.ComputePouTransitionName(words[1], old_name), 
+                                                self.Controler.ComputePouTransitionName(words[1], new_name))
                         self.RefreshPageTitles()
-                elif itemtype == ITEM_ACTION:
-                    pou_name = GetParentName(self.TypesTree, item, ITEM_POU)
+                elif item_infos["type"] == ITEM_ACTION:
                     if new_name.upper() in [name.upper() for name in self.Controler.GetProjectPouNames()]:
                         message = _("A POU named \"%s\" already exists!")%new_name
                     elif new_name.upper() in [name.upper() for name in self.Controler.GetProjectPouVariables(pou_name) if name != old_name]:
                         message = _("A variable with \"%s\" as name already exists in this pou!")%new_name
                     else:
-                        self.Controler.ChangePouActionName(pou_name, old_name, new_name)
-                        self.RefreshEditorNames(self.Controler.ComputePouActionName(pou_name, old_name), 
-                                                self.Controler.ComputePouActionName(pou_name, new_name))
+                        words = item_infos["tagname"].split("::")
+                        self.Controler.ChangePouActionName(words[1], old_name, new_name)
+                        self.RefreshEditorNames(self.Controler.ComputePouActionName(words[1], old_name), 
+                                                self.Controler.ComputePouActionName(words[1], new_name))
                         self.RefreshPageTitles()
-                elif itemtype == ITEM_CONFIGURATION:
+                elif item_infos["type"] == ITEM_CONFIGURATION:
                     if new_name.upper() in [name.upper() for name in self.Controler.GetProjectConfigNames() if name != old_name]:
                         message = _("\"%s\" config already exists!")%new_name
                         abort = True
@@ -1829,8 +1757,7 @@
                         self.RefreshEditorNames(self.Controler.ComputeConfigurationName(old_name), 
                                                 self.Controler.ComputeConfigurationName(new_name))
                         self.RefreshPageTitles()
-                elif itemtype == ITEM_RESOURCE:
-                    config_name = GetParentName(self.TypesTree, item, ITEM_CONFIGURATION)
+                elif item_infos["type"] == ITEM_RESOURCE:
                     if new_name.upper() in [name.upper() for name in self.Controler.GetProjectConfigNames()]:
                         message = _("\"%s\" config already exists!")%new_name
                         abort = True
@@ -1845,79 +1772,57 @@
                             abort = True
                         messageDialog.Destroy()
                     if not abort:
-                        self.Controler.ChangeConfigurationResourceName(config_name, old_name, new_name)
-                        self.RefreshEditorNames(self.Controler.ComputeConfigurationResourceName(config_name, old_name), 
-                                                self.Controler.ComputeConfigurationResourceName(config_name, new_name))
+                        words = item_infos["tagname"].split("::")
+                        self.Controler.ChangeConfigurationResourceName(words[1], old_name, new_name)
+                        self.RefreshEditorNames(self.Controler.ComputeConfigurationResourceName(words[1], old_name), 
+                                                self.Controler.ComputeConfigurationResourceName(words[1], new_name))
                         self.RefreshPageTitles()
             if message or abort:
                 if message:
                     self.ShowErrorMessage(message)
                 item = event.GetItem()
-                wx.CallAfter(self.TypesTree.EditLabel, item)
+                wx.CallAfter(self.ProjectTree.EditLabel, item)
                 event.Veto()
             else:
-                wx.CallAfter(self.RefreshTypesTree)
+                wx.CallAfter(self.RefreshProjectTree)
                 self.RefreshEditor()
                 self._Refresh(TITLE, FILEMENU, EDITMENU)
                 event.Skip()
     
-    def OnTypesTreeItemActivated(self, event):
+    def OnProjectTreeItemActivated(self, event):
         selected = event.GetItem()
-        name = self.TypesTree.GetItemText(selected)
-        data = self.TypesTree.GetPyData(selected)
-        if UNEDITABLE_NAMES_DICT.get(name, name) == "Properties":
-            self.ShowProperties()
-        if data == ITEM_DATATYPE:
-            self.EditProjectElement(data, self.Controler.ComputeDataTypeName(name))
-        elif data == ITEM_POU:
-            self.EditProjectElement(data, self.Controler.ComputePouName(name))
-        elif data == ITEM_CONFIGURATION:
-            self.EditProjectElement(data, self.Controler.ComputeConfigurationName(name))
-        elif data == ITEM_RESOURCE:
-            config_name = GetParentName(self.TypesTree, selected, ITEM_CONFIGURATION)
-            self.EditProjectElement(data, self.Controler.ComputeConfigurationResourceName(config_name, name))
-        elif data in [ITEM_TRANSITION, ITEM_ACTION]:
-            pou_name = GetParentName(self.TypesTree, selected, ITEM_POU)
-            if data == ITEM_TRANSITION:
-                tagname = self.Controler.ComputePouTransitionName(pou_name, name)
-            elif data == ITEM_ACTION:
-                tagname = self.Controler.ComputePouActionName(pou_name, name)
-            self.EditProjectElement(data, tagname)
+        name = self.ProjectTree.GetItemText(selected)
+        item_infos = self.ProjectTree.GetPyData(selected)
+        if item_infos["type"] == ITEM_PROJECT:
+            self.EditProjectSettings()
+        elif item_infos["type"] in [ITEM_DATATYPE, ITEM_POU,
+                                    ITEM_CONFIGURATION, ITEM_RESOURCE,
+                                    ITEM_TRANSITION, ITEM_ACTION]:
+            self.EditProjectElement(item_infos["type"], item_infos["tagname"])
         event.Skip()
     
-    def TypesTreeItemSelect(self, select_item):
-        name = self.TypesTree.GetItemText(select_item)
-        data = self.TypesTree.GetPyData(select_item)
-        if data == ITEM_DATATYPE:
-            self.EditProjectElement(data, self.Controler.ComputeDataTypeName(name), True)
-        elif data == ITEM_POU:
-            self.EditProjectElement(data, self.Controler.ComputePouName(name), True)
-        elif data == ITEM_CONFIGURATION:
-            self.EditProjectElement(data, self.Controler.ComputeConfigurationName(name), True)
-        elif data == ITEM_RESOURCE:
-            config_name = GetParentName(self.TypesTree, select_item, ITEM_CONFIGURATION)
-            self.EditProjectElement(data, self.Controler.ComputeConfigurationResourceName(config_name, name), True)
-        elif data in [ITEM_TRANSITION, ITEM_ACTION]:
-            pou_name = GetParentName(self.TypesTree, select_item, ITEM_POU)
-            if data == ITEM_TRANSITION:
-                tagname = self.Controler.ComputePouTransitionName(pou_name, name)
-            elif data == ITEM_ACTION:
-                tagname = self.Controler.ComputePouActionName(pou_name, name)
-            self.EditProjectElement(data, tagname, True)
-    
-    def OnTypesTreeLeftUp(self, event):
+    def ProjectTreeItemSelect(self, select_item):
+        name = self.ProjectTree.GetItemText(select_item)
+        item_infos = self.ProjectTree.GetPyData(select_item)
+        if item_infos["type"] in [ITEM_DATATYPE, ITEM_POU,
+                                  ITEM_CONFIGURATION, ITEM_RESOURCE,
+                                  ITEM_TRANSITION, ITEM_ACTION]:
+            self.EditProjectElement(item_infos["type"], item_infos["tagname"], True)
+            self.PouInstanceVariablesPanel.SetPouType(item_infos["tagname"])
+        
+    def OnProjectTreeLeftUp(self, event):
         if self.SelectedItem is not None:
-            self.TypesTree.SelectItem(self.SelectedItem)
-            self.TypesTreeItemSelect(self.SelectedItem)
+            self.ProjectTree.SelectItem(self.SelectedItem)
+            self.ProjectTreeItemSelect(self.SelectedItem)
             wx.CallAfter(self.ResetSelectedItem)
         event.Skip()
     
-    def OnTypesTreeItemSelected(self, event):
-        self.TypesTreeItemSelect(event.GetItem())
+    def OnProjectTreeItemSelected(self, event):
+        self.ProjectTreeItemSelect(event.GetItem())
         event.Skip()
     
-    def OnTypesTreeItemChanging(self, event):
-        if self.TypesTree.GetPyData(event.GetItem()) not in ITEMS_UNEDITABLE and self.SelectedItem is None:
+    def OnProjectTreeItemChanging(self, event):
+        if self.ProjectTree.GetPyData(event.GetItem())["type"] not in ITEMS_UNEDITABLE and self.SelectedItem is None:
             self.SelectedItem = event.GetItem()
             event.Veto()
         else:
@@ -1996,18 +1901,18 @@
                 self.RefreshPageTitles()
             return new_window
     
-    def OnTypesTreeRightUp(self, event):
+    def OnProjectTreeRightUp(self, event):
         if wx.Platform == '__WXMSW__':
             item = event.GetItem()
         else:
-            item, flags = self.TypesTree.HitTest(wx.Point(event.GetX(), event.GetY()))
-        self.TypesTree.SelectItem(item)
-        self.TypesTreeItemSelect(item)
-        name = self.TypesTree.GetItemText(item)
-        type = self.TypesTree.GetPyData(item)
+            item, flags = self.ProjectTree.HitTest(wx.Point(event.GetX(), event.GetY()))
+        self.ProjectTree.SelectItem(item)
+        self.ProjectTreeItemSelect(item)
+        name = self.ProjectTree.GetItemText(item)
+        item_infos = self.ProjectTree.GetPyData(item)
         
         menu = None
-        if type in ITEMS_UNEDITABLE:
+        if item_infos["type"] in ITEMS_UNEDITABLE:
             name = UNEDITABLE_NAMES_DICT[name]
             
             if name == "Data Types":
@@ -2039,37 +1944,41 @@
                 menu = wx.Menu(title='')
                 new_id = wx.NewId()
                 AppendMenu(menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text=_("Add Transition"))
-                parent = self.TypesTree.GetItemParent(item)
-                parent_type = self.TypesTree.GetPyData(parent)
+                parent = self.ProjectTree.GetItemParent(item)["type"]
+                parent_type = self.ProjectTree.GetPyData(parent)
                 while parent_type != ITEM_POU:
-                    parent = self.TypesTree.GetItemParent(parent)
-                    parent_type = self.TypesTree.GetPyData(parent)
-                self.Bind(wx.EVT_MENU, self.GenerateAddTransitionFunction(self.TypesTree.GetItemText(parent)), id=new_id)
+                    parent = self.ProjectTree.GetItemParent(parent)
+                    parent_type = self.ProjectTree.GetPyData(parent)["type"]
+                self.Bind(wx.EVT_MENU, self.GenerateAddTransitionFunction(self.ProjectTree.GetItemText(parent)), id=new_id)
             
             elif name == "Actions":
                 menu = wx.Menu(title='')
                 new_id = wx.NewId()
                 AppendMenu(menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text=_("Add Action"))
-                parent = self.TypesTree.GetItemParent(item)
-                parent_type = self.TypesTree.GetPyData(parent)
+                parent = self.ProjectTree.GetItemParent(item)
+                parent_type = self.ProjectTree.GetPyData(parent)["type"]
                 while parent_type != ITEM_POU:
-                    parent = self.TypesTree.GetItemParent(parent)
-                    parent_type = self.TypesTree.GetPyData(parent)
-                self.Bind(wx.EVT_MENU, self.GenerateAddActionFunction(self.TypesTree.GetItemText(parent)), id=new_id)
+                    parent = self.ProjectTree.GetItemParent(parent)
+                    parent_type = self.ProjectTree.GetPyData(parent)["type"]
+                self.Bind(wx.EVT_MENU, self.GenerateAddActionFunction(self.ProjectTree.GetItemText(parent)), id=new_id)
             
             elif name == "Resources":
                 menu = wx.Menu(title='')
                 new_id = wx.NewId()
                 AppendMenu(menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text=_("Add Resource"))
-                parent = self.TypesTree.GetItemParent(item)
-                parent_type = self.TypesTree.GetPyData(parent)
-                while parent_type != ITEM_CONFIGURATION:
-                    parent = self.TypesTree.GetItemParent(parent)
-                    parent_type = self.TypesTree.GetPyData(parent)
-                self.Bind(wx.EVT_MENU, self.GenerateAddResourceFunction(self.TypesTree.GetItemText(parent)), id=new_id)
+                parent = self.ProjectTree.GetItemParent(item)
+                parent_type = self.ProjectTree.GetPyData(parent)["type"]
+                while parent_type not in [ITEM_CONFIGURATION, ITEM_PROJECT]:
+                    parent = self.ProjectTree.GetItemParent(parent)
+                    parent_type = self.ProjectTree.GetPyData(parent)["type"]
+                if parent_type == ITEM_PROJECT:
+                    parent_name = None
+                else:
+                    parent_name = self.ProjectTree.GetItemText(parent)
+                self.Bind(wx.EVT_MENU, self.GenerateAddResourceFunction(parent_name), id=new_id)
             
         else:
-            if type == ITEM_POU:
+            if item_infos["type"] == ITEM_POU:
                 menu = wx.Menu(title='')
                 if self.Controler.GetPouBodyType(name) == "SFC":
                     new_id = wx.NewId()
@@ -2099,13 +2008,13 @@
                 AppendMenu(menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text=_("Rename"))
                 self.Bind(wx.EVT_MENU, self.OnRenamePouMenu, id=new_id)
             
-            elif type == ITEM_CONFIGURATION:
+            elif item_infos["type"] == ITEM_CONFIGURATION:
                 menu = wx.Menu(title='')
                 new_id = wx.NewId()
                 AppendMenu(menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text=_("Add Resource"))
                 self.Bind(wx.EVT_MENU, self.GenerateAddResourceFunction(name), id=new_id)
             
-            elif type in [ITEM_DATATYPE, ITEM_TRANSITION, ITEM_ACTION, ITEM_RESOURCE]:
+            elif item_infos["type"] in [ITEM_DATATYPE, ITEM_TRANSITION, ITEM_ACTION, ITEM_RESOURCE]:
                 menu = wx.Menu(title='')
                 
             if menu is not None:
@@ -2124,83 +2033,11 @@
 #                         Instances Tree Management Functions
 #-------------------------------------------------------------------------------
 
-    def RefreshInstancesTree(self):
-        infos = self.Controler.GetProjectTopology(self.EnableDebug)
-        root = self.InstancesTree.GetRootItem()
-        if not root.IsOk():
-            root = self.InstancesTree.AddRoot(infos["name"])
-        self.GenerateInstancesTreeBranch(root, infos)
-        self.InstancesTree.Expand(root)
-
-    def GenerateInstancesTreeBranch(self, root, infos):
-        to_delete = []
-        if infos.get("elmt_type", None) is not None:
-            self.InstancesTree.SetItemText(root, "%s (%s)"%(infos["name"], infos["elmt_type"]))
-        else:
-            self.InstancesTree.SetItemText(root, infos["name"])
-        self.InstancesTree.SetPyData(root, (infos["type"], infos.get("tagname", None)))
-        self.InstancesTree.SetItemImage(root, self.TreeImageDict[infos["type"]])
-            
-        if wx.VERSION >= (2, 6, 0):
-            item, root_cookie = self.InstancesTree.GetFirstChild(root)
-        else:
-            item, root_cookie = self.InstancesTree.GetFirstChild(root, 0)
-        for values in infos["values"]:
-            if not item.IsOk():
-                item = self.InstancesTree.AppendItem(root, "")
-                if wx.Platform != '__WXMSW__':
-                    item, root_cookie = self.InstancesTree.GetNextChild(root, root_cookie)
-            self.GenerateInstancesTreeBranch(item, values)
-            item, root_cookie = self.InstancesTree.GetNextChild(root, root_cookie)
-        while item.IsOk():
-            to_delete.append(item)
-            item, root_cookie = self.InstancesTree.GetNextChild(root, root_cookie)
-        for item in to_delete:
-            self.InstancesTree.Delete(item)
-        if infos["type"] in [ITEM_CONFIGURATION, ITEM_RESOURCE]:
-            self.InstancesTree.Expand(root)
-
-    def OnInstancesTreeBeginDrag(self, event):
-        if self.Controler.DebugAvailable():
-            selected_item = event.GetItem()
-            selected_infos = self.InstancesTree.GetPyData(selected_item)
-            if selected_item is not None and selected_infos[0] in ITEMS_VARIABLE:
-                var_path = self.InstancesTree.GetItemText(selected_item).split(" (")[0]
-                parent_item = self.InstancesTree.GetItemParent(selected_item)
-                while self.InstancesTree.GetPyData(parent_item)[0] != ITEM_PROJECT:
-                    parent_name = self.InstancesTree.GetItemText(parent_item).split(" (")[0]
-                    var_path = "%s.%s"%(parent_name, var_path)
-                    parent_item = self.InstancesTree.GetItemParent(parent_item)
-                data = wx.TextDataObject(str((var_path, "debug")))
-                dragSource = wx.DropSource(self.InstancesTree)
-                dragSource.SetData(data)
-                dragSource.DoDragDrop()
-            event.Skip()
-        else:
-            event.Veto()
-
-    def OnInstancesTreeItemActivated(self, event):
-        if self.Controler.DebugAvailable():
-            selected_item = event.GetItem()
-            selected_infos = self.InstancesTree.GetPyData(selected_item)
-            if selected_item is not None and (
-                selected_infos[0] in [ITEM_FUNCTIONBLOCK, ITEM_PROGRAM, ITEM_TRANSITION, ITEM_ACTION] or
-                selected_infos[0] in ITEMS_VARIABLE):
-                
-                instance_path, var_type = self.InstancesTree.GetItemText(selected_item).split(" (")
-                if selected_infos[1] is not None:
-                    instance_type = selected_infos[1]
-                else:
-                    instance_type = var_type.split(")")[0]
-                parent_item = self.InstancesTree.GetItemParent(selected_item)
-                while self.InstancesTree.GetPyData(parent_item)[0] != ITEM_PROJECT:
-                    parent_name = self.InstancesTree.GetItemText(parent_item).split(" (")[0]
-                    instance_path = "%s.%s"%(parent_name, instance_path)
-                    parent_item = self.InstancesTree.GetItemParent(parent_item)
-                
-                self.OpenDebugViewer(selected_infos[0], instance_path, instance_type)
-        
-        event.Skip()
+    def GetTreeImage(self, var_class):
+        return self.TreeImageDict[var_class]
+    
+    def RefreshPouInstanceVariablesPanel(self):
+        self.PouInstanceVariablesPanel.RefreshView()
 
     def OpenDebugViewer(self, instance_category, instance_path, instance_type):
         openedidx = self.IsOpened(instance_path)
@@ -2267,66 +2104,6 @@
         self.RefreshPageTitles()
         return new_window
 
-    def OnInstancesTreeRightUp(self, event):
-        if self.Controler.DebugAvailable():
-            if wx.Platform == '__WXMSW__':
-                selected_item = event.GetItem()
-            else:
-                selected_item = self.InstancesTree.GetSelection()
-            selected_infos = self.InstancesTree.GetPyData(selected_item)
-            if selected_item is not None and selected_infos[0] in ITEMS_VARIABLE:
-                var_path, var_type = self.InstancesTree.GetItemText(selected_item).split(" (")
-                var_type = var_type.split(")")[0]
-                
-                if self.Controler.IsOfType(var_type, "ANY_NUM", True) or\
-                   self.Controler.IsOfType(var_type, "ANY_BIT", True):
-                    parent_item = self.InstancesTree.GetItemParent(selected_item)
-                    while self.InstancesTree.GetPyData(parent_item)[0] != ITEM_PROJECT:
-                        parent_name = self.InstancesTree.GetItemText(parent_item).split(" (")[0]
-                        var_path = "%s.%s"%(parent_name, var_path)
-                        parent_item = self.InstancesTree.GetItemParent(parent_item)
-                    
-                    menu = wx.Menu(title='')
-                    new_id = wx.NewId()
-                    AppendMenu(menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text=_("Graphic Panel"))
-                    self.Bind(wx.EVT_MENU, self.AddVariableGraphicFunction(var_path), id=new_id)
-                    new_id = wx.NewId()
-                    AppendMenu(menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text=_("CSV Log"))
-                    self.PopupMenu(menu)
-        event.Skip()
-
-    def AddVariableGraphicFunction(self, iec_path):
-        def AddVariableGraphic(event):
-            self.OpenGraphicViewer(iec_path)
-            event.Skip()
-        return AddVariableGraphic
-
-    def GetInstancesTreeItem(self, root, instancepath):
-        paths = instancepath.split(".", 1)
-        if wx.VERSION >= (2, 6, 0):
-            item, root_cookie = self.InstancesTree.GetFirstChild(root)
-        else:
-            item, root_cookie = self.InstancesTree.GetFirstChild(root, 0)
-        while item.IsOk():
-            name = self.InstancesTree.GetItemText(item).split(" (")[0]
-            if name == paths[0]:
-                if len(paths) == 1:
-                    return item
-                else:
-                    return self.GetInstancesTreeItem(item, paths[1])
-            item, root_cookie = self.InstancesTree.GetNextChild(root, root_cookie)
-        return None
-    
-    def SelectInstancesTreeItem(self, instancepath):
-        if self.InstancesTree is not None:
-            root = self.InstancesTree.GetRootItem()
-            if root.IsOk():
-                item = self.GetInstancesTreeItem(root, instancepath)
-                if item is not None:
-                    self.InstancesTree.SelectItem(item)
-                    return True
-        return False
-    
     def ResetGraphicViewers(self):
         for i in xrange(self.TabsOpened.GetPageCount()):
             editor = self.TabsOpened.GetPage(i)
@@ -2337,18 +2114,11 @@
         if self.EnableDebug:
             idxs = range(self.TabsOpened.GetPageCount())
             idxs.reverse()
-            root = None
-            if self.InstancesTree is not None:
-                root = self.InstancesTree.GetRootItem()
-                if not root.IsOk():
-                    root = None
             for idx in idxs:
                 editor = self.TabsOpened.GetPage(idx)
                 if editor.IsDebugging():
-                    item = None
-                    if root is not None:
-                        item = self.GetInstancesTreeItem(root, editor.GetInstancePath())
-                    if item is None:
+                    instance_infos = self.Controler.GetInstanceInfos(editor.GetInstancePath(), self.EnableDebug)
+                    if instance_infos is None:
                         self.TabsOpened.DeletePage(idx)
                     elif isinstance(editor, GraphicViewer):
                         editor.ResetView(True)
@@ -2356,9 +2126,10 @@
                         editor.RefreshView()
             self.DebugVariablePanel.UnregisterObsoleteData()
     
-    def AddDebugVariable(self, iec_path):
+    def AddDebugVariable(self, iec_path, force=False):
         if self.EnableDebug:
-            self.DebugVariablePanel.InsertValue(iec_path)
+            self.DebugVariablePanel.InsertValue(iec_path, force=force)
+            self.EnsureTabVisible(self.DebugVariablePanel)
             
 #-------------------------------------------------------------------------------
 #                         Library Panel Management Function
@@ -2384,14 +2155,10 @@
                 if callback is not None:
                     self.Bind(wx.EVT_TOOL, callback, id=id)
         MenuToolBar.Realize()
-        if USE_AUI:
-            self.AUIManager.GetPane("MenuToolBar").BestSize(MenuToolBar.GetBestSize())
+        self.AUIManager.GetPane("MenuToolBar").BestSize(MenuToolBar.GetBestSize())
 
     def ResetEditorToolBar(self):
-        if USE_AUI:
-            EditorToolBar = self.Panes["EditorToolBar"]
-        else:
-            EditorToolBar = self.EditorToolBar
+        EditorToolBar = self.Panes["EditorToolBar"]
         
         for item in self.CurrentEditorToolBar:
             if wx.VERSION >= (2, 6, 0):
@@ -2404,9 +2171,8 @@
         
         if EditorToolBar:
             EditorToolBar.Realize()
-            if USE_AUI:
-                self.AUIManager.GetPane("EditorToolBar").BestSize(EditorToolBar.GetBestSize())
-                self.AUIManager.Update()
+            self.AUIManager.GetPane("EditorToolBar").BestSize(EditorToolBar.GetBestSize())
+            self.AUIManager.Update()
 
     def RefreshEditorToolBar(self):
         selected = self.TabsOpened.GetSelection()
@@ -2421,10 +2187,7 @@
             self.ResetEditorToolBar()
             self.CurrentMenu = menu
             self.CurrentEditorToolBar = []
-            if USE_AUI:
-                EditorToolBar = self.Panes["EditorToolBar"]
-            else:
-                EditorToolBar = self.EditorToolBar
+            EditorToolBar = self.Panes["EditorToolBar"]
             if EditorToolBar:
                 for radio, modes, id, method, picture, help in EditorToolBarItems[menu]:
                     if modes & self.DrawingMode:
@@ -2435,9 +2198,8 @@
                         self.Bind(wx.EVT_MENU, getattr(self, method), id=id)
                         self.CurrentEditorToolBar.append(id)
                 EditorToolBar.Realize()
-                if USE_AUI:
-                    self.AUIManager.GetPane("EditorToolBar").BestSize(EditorToolBar.GetBestSize())
-                    self.AUIManager.Update()
+                self.AUIManager.GetPane("EditorToolBar").BestSize(EditorToolBar.GetBestSize())
+                self.AUIManager.Update()
         elif not menu:
             self.ResetEditorToolBar()
             self.CurrentMenu = menu
@@ -2453,19 +2215,13 @@
         if selected != -1:
             window = self.TabsOpened.GetPage(selected)
             window.SetMode(MODE_SELECTION)
-        if USE_AUI:
-            EditorToolBar = self.Panes["EditorToolBar"]
-        else:
-            EditorToolBar = self.EditorToolBar
+        EditorToolBar = self.Panes["EditorToolBar"]
         if EditorToolBar:
             EditorToolBar.ToggleTool(ID_PLCOPENEDITOREDITORTOOLBARSELECTION, False)
             EditorToolBar.ToggleTool(ID_PLCOPENEDITOREDITORTOOLBARSELECTION, True)
         
     def ResetToolToggle(self, id):
-        if USE_AUI:
-            tool = self.Panes["EditorToolBar"].FindById(id)
-        else:
-            tool = self.EditorToolBar.FindById(id)
+        tool = self.Panes["EditorToolBar"].FindById(id)
         tool.SetToggle(False)
 
     def OnSelectionTool(self, event):
@@ -2599,7 +2355,7 @@
         if dialog.ShowModal() == wx.ID_OK:
             tagname = self.Controler.ProjectAddDataType(dialog.GetValue())
             if tagname is not None:
-                self._Refresh(TITLE, FILEMENU, EDITMENU, TYPESTREE)
+                self._Refresh(TITLE, FILEMENU, EDITMENU, PROJECTTREE)
                 self.EditProjectElement(ITEM_DATATYPE, tagname)
         dialog.Destroy()
 
@@ -2612,7 +2368,7 @@
                 values = dialog.GetValues()
                 tagname = self.Controler.ProjectAddPou(values["pouName"], values["pouType"], values["language"])
                 if tagname is not None:
-                    self._Refresh(TITLE, FILEMENU, EDITMENU, TYPESTREE, LIBRARYTREE)
+                    self._Refresh(TITLE, FILEMENU, EDITMENU, PROJECTTREE, LIBRARYTREE)
                     self.EditProjectElement(ITEM_POU, tagname)
             dialog.Destroy()
         return OnAddPouMenu
@@ -2626,7 +2382,7 @@
                 values = dialog.GetValues()
                 tagname = self.Controler.ProjectAddPouTransition(pou_name, values["transitionName"], values["language"])
                 if tagname is not None:
-                    self._Refresh(TITLE, FILEMENU, EDITMENU, TYPESTREE)
+                    self._Refresh(TITLE, FILEMENU, EDITMENU, PROJECTTREE)
                     self.EditProjectElement(ITEM_TRANSITION, tagname)
             dialog.Destroy()
         return OnAddTransitionMenu
@@ -2640,7 +2396,7 @@
                 values = dialog.GetValues()
                 tagname = self.Controler.ProjectAddPouAction(pou_name, values["actionName"], values["language"])
                 if tagname is not None:
-                    self._Refresh(TITLE, FILEMENU, EDITMENU, TYPESTREE)
+                    self._Refresh(TITLE, FILEMENU, EDITMENU, PROJECTTREE)
                     self.EditProjectElement(ITEM_ACTION, tagname)
             dialog.Destroy()
         return OnAddActionMenu
@@ -2653,7 +2409,7 @@
             value = dialog.GetValue()
             tagname = self.Controler.ProjectAddConfiguration(value)
             if tagname is not None:
-                self._Refresh(TITLE, FILEMENU, EDITMENU, TYPESTREE, INSTANCESTREE)
+                self._Refresh(TITLE, FILEMENU, EDITMENU, PROJECTTREE, POUINSTANCEVARIABLESPANEL)
                 self.EditProjectElement(ITEM_CONFIGURATION, tagname)
         dialog.Destroy()
 
@@ -2666,22 +2422,22 @@
                 value = dialog.GetValue()
                 tagname = self.Controler.ProjectAddConfigurationResource(config_name, value)
                 if tagname is not None:
-                    self._Refresh(TITLE, FILEMENU, EDITMENU, TYPESTREE, INSTANCESTREE)
+                    self._Refresh(TITLE, FILEMENU, EDITMENU, PROJECTTREE, POUINSTANCEVARIABLESPANEL)
                     self.EditProjectElement(ITEM_RESOURCE, tagname)
             dialog.Destroy()
         return OnAddResourceMenu
 
     def GenerateChangePouTypeFunction(self, name, new_type):
         def OnChangePouTypeMenu(event):
-            selected = self.TypesTree.GetSelection()
-            if self.TypesTree.GetPyData(selected) == ITEM_POU: 
+            selected = self.ProjectTree.GetSelection()
+            if self.ProjectTree.GetPyData(selected)["type"] == ITEM_POU: 
                 self.Controler.ProjectChangePouType(name, new_type)
-                self._Refresh(TITLE, EDITORTOOLBAR, FILEMENU, EDITMENU, TYPESTREE, LIBRARYTREE)
+                self._Refresh(TITLE, EDITORTOOLBAR, FILEMENU, EDITMENU, PROJECTTREE, LIBRARYTREE)
         return OnChangePouTypeMenu
 
     def OnCopyPou(self, event):
-        selected = self.TypesTree.GetSelection()
-        pou_name = self.TypesTree.GetItemText(selected)
+        selected = self.ProjectTree.GetSelection()
+        pou_name = self.ProjectTree.GetItemText(selected)
         
         pou_xml = self.Controler.GetPouXml(pou_name)
         if pou_xml is not None:
@@ -2689,9 +2445,9 @@
             self._Refresh(EDITMENU)
 
     def OnPastePou(self, event):
-        selected = self.TypesTree.GetSelection()
-
-        pou_type = self.TypesTree.GetItemText(selected)
+        selected = self.ProjectTree.GetSelection()
+
+        pou_type = self.ProjectTree.GetItemText(selected)
         pou_type = UNEDITABLE_NAMES_DICT[pou_type] # one of 'Functions', 'Function Blocks' or 'Programs'
         pou_type = {'Functions': 'function', 'Function Blocks': 'functionBlock', 'Programs': 'program'}[pou_type]
 
@@ -2704,106 +2460,94 @@
             message.ShowModal()
             message.Destroy()
         else:
-            self._Refresh(TITLE, EDITORTOOLBAR, FILEMENU, EDITMENU, TYPESTREE, LIBRARYTREE)
+            self._Refresh(TITLE, EDITORTOOLBAR, FILEMENU, EDITMENU, PROJECTTREE, LIBRARYTREE)
 
 #-------------------------------------------------------------------------------
 #                        Remove Project Elements Functions
 #-------------------------------------------------------------------------------
 
     def OnRemoveDataTypeMenu(self, event):
-        selected = self.TypesTree.GetSelection()
-        if self.TypesTree.GetPyData(selected) == ITEM_DATATYPE:
-            name = self.TypesTree.GetItemText(selected)
+        selected = self.ProjectTree.GetSelection()
+        if self.ProjectTree.GetPyData(selected)["type"] == ITEM_DATATYPE:
+            name = self.ProjectTree.GetItemText(selected)
             if not self.Controler.DataTypeIsUsed(name):
                 self.Controler.ProjectRemoveDataType(name)
                 tagname = self.Controler.ComputeDataTypeName(name)
                 idx = self.IsOpened(tagname)
                 if idx is not None:
                     self.TabsOpened.DeletePage(idx)
-                self._Refresh(TITLE, EDITORTOOLBAR, FILEMENU, EDITMENU, TYPESTREE)
+                self._Refresh(TITLE, EDITORTOOLBAR, FILEMENU, EDITMENU, PROJECTTREE)
             else:
                 self.ShowErrorMessage(_("\"%s\" is used by one or more POUs. It can't be removed!"))
 
     def OnRenamePouMenu(self, event):
-        selected = self.TypesTree.GetSelection()
-        if self.TypesTree.GetPyData(selected) == ITEM_POU: 
-            wx.CallAfter(self.TypesTree.EditLabel, selected)
+        selected = self.ProjectTree.GetSelection()
+        if self.ProjectTree.GetPyData(selected)["type"] == ITEM_POU: 
+            wx.CallAfter(self.ProjectTree.EditLabel, selected)
 
     def OnRemovePouMenu(self, event):
-        selected = self.TypesTree.GetSelection()
-        if self.TypesTree.GetPyData(selected) == ITEM_POU:
-            name = self.TypesTree.GetItemText(selected)
+        selected = self.ProjectTree.GetSelection()
+        if self.ProjectTree.GetPyData(selected)["type"] == ITEM_POU:
+            name = self.ProjectTree.GetItemText(selected)
             if not self.Controler.PouIsUsed(name):
                 self.Controler.ProjectRemovePou(name)
                 tagname = self.Controler.ComputePouName(name)
                 idx = self.IsOpened(tagname)
                 if idx is not None:
                     self.TabsOpened.DeletePage(idx)
-                self._Refresh(TITLE, EDITORTOOLBAR, FILEMENU, EDITMENU, TYPESTREE, INSTANCESTREE, LIBRARYTREE)
+                self._Refresh(TITLE, EDITORTOOLBAR, FILEMENU, EDITMENU, PROJECTTREE, POUINSTANCEVARIABLESPANEL, LIBRARYTREE)
             else:
                 self.ShowErrorMessage(_("\"%s\" is used by one or more POUs. It can't be removed!"))
 
     def OnRemoveTransitionMenu(self, event):
-        selected = self.TypesTree.GetSelection()
-        if self.TypesTree.GetPyData(selected) == ITEM_TRANSITION: 
-            transition = self.TypesTree.GetItemText(selected)
-            item = self.TypesTree.GetItemParent(selected)
-            item_type = self.TypesTree.GetPyData(item)
-            while item_type != ITEM_POU:
-                item = self.TypesTree.GetItemParent(item)
-                item_type = self.TypesTree.GetPyData(item)
-            pou_name = self.TypesTree.GetItemText(item)
+        selected = self.ProjectTree.GetSelection()
+        item_infos = self.ProjectTree.GetPyData(selected)
+        if item_infos["type"] == ITEM_TRANSITION: 
+            transition = self.ProjectTree.GetItemText(selected)
+            pou_name = item_infos["tagname"].split("::")[1]
             self.Controler.ProjectRemovePouTransition(pou_name, transition)
             tagname = self.Controler.ComputePouTransitionName(pou_name, transition)
             idx = self.IsOpened(tagname)
             if idx is not None:
                 self.TabsOpened.DeletePage(idx)
-            self._Refresh(TITLE, FILEMENU, EDITMENU, TYPESTREE)
+            self._Refresh(TITLE, FILEMENU, EDITMENU, PROJECTTREE)
 
     def OnRemoveActionMenu(self, event):
-        selected = self.TypesTree.GetSelection()
-        if self.TypesTree.GetPyData(selected) == ITEM_ACTION: 
-            action = self.TypesTree.GetItemText(selected)
-            item = self.TypesTree.GetItemParent(selected)
-            item_type = self.TypesTree.GetPyData(item)
-            while item_type != ITEM_POU:
-                item = self.TypesTree.GetItemParent(item)
-                item_type = self.TypesTree.GetPyData(item)
-            pou_name = self.TypesTree.GetItemText(item)
+        selected = self.ProjectTree.GetSelection()
+        item_infos = self.ProjectTree.GetPyData(selected)
+        if item_infos["type"] == ITEM_ACTION: 
+            action = self.ProjectTree.GetItemText(selected)
+            pou_name = item_infos["tagname"].split("::")[1]
             self.Controler.ProjectRemovePouAction(pou_name, action)
             tagname = self.Controler.ComputePouActionName(pou_name, action)
             idx = self.IsOpened(tagname)
             if idx is not None:
                 self.TabsOpened.DeletePage(idx)
-            self._Refresh(TITLE, FILEMENU, EDITMENU, TYPESTREE)
+            self._Refresh(TITLE, FILEMENU, EDITMENU, PROJECTTREE)
 
     def OnRemoveConfigurationMenu(self, event):
-        selected = self.TypesTree.GetSelection()
-        if self.TypesTree.GetPyData(selected) == ITEM_CONFIGURATION: 
-            name = self.TypesTree.GetItemText(selected)
+        selected = self.ProjectTree.GetSelection()
+        if self.ProjectTree.GetPyData(selected)["type"] == ITEM_CONFIGURATION: 
+            name = self.ProjectTree.GetItemText(selected)
             self.Controler.ProjectRemoveConfiguration(name)
             tagname = self.Controler.ComputeConfigurationName(name)
             idx = self.IsOpened(tagname)
             if idx is not None:
                 self.TabsOpened.DeletePage(idx)
-            self._Refresh(TITLE, FILEMENU, EDITMENU, TYPESTREE, INSTANCESTREE)
+            self._Refresh(TITLE, FILEMENU, EDITMENU, PROJECTTREE, POUINSTANCEVARIABLESPANEL)
 
     def OnRemoveResourceMenu(self, event):
-        selected = self.TypesTree.GetSelection()
-        if self.TypesTree.GetPyData(selected) == ITEM_RESOURCE:
-            resource = self.TypesTree.GetItemText(selected)
-            item = self.TypesTree.GetItemParent(selected)
-            item_type = self.TypesTree.GetPyData(item)
-            while item_type != ITEM_CONFIGURATION:
-                item = self.TypesTree.GetItemParent(item)
-                item_type = self.TypesTree.GetPyData(item)
-            config_name = self.TypesTree.GetItemText(item)
+        selected = self.ProjectTree.GetSelection()
+        item_infos = self.ProjectTree.GetPyData(selected)
+        if item_infos["type"] == ITEM_RESOURCE:
+            resource = self.ProjectTree.GetItemText(selected)
+            config_name = item_infos["tagname"].split("::")[1]
             self.Controler.ProjectRemoveConfigurationResource(config_name, resource)
             tagname = self.Controler.ComputeConfigurationResourceName(config_name, selected)
             idx = self.IsOpened(tagname)
             if idx is not None:
                 self.TabsOpened.DeletePage(idx)
-            self._Refresh(TITLE, FILEMENU, EDITMENU, TYPESTREE, INSTANCESTREE)
+            self._Refresh(TITLE, FILEMENU, EDITMENU, PROJECTTREE, POUINSTANCEVARIABLESPANEL)
     
     def OnPLCOpenEditorMenu(self, event):
         wx.MessageBox(_("No documentation available.\nComing soon."))
@@ -2820,11 +2564,11 @@
 #-------------------------------------------------------------------------------
 
     def ShowHighlight(self, infos, start, end, highlight_type):
-        self.SelectTypesTreeItem(infos[0])
+        self.SelectProjectTreeItem(infos[0])
         if infos[1] == "name":
             self.Highlights[infos[0]] = highlight_type
-            self.RefreshTypesTree()
-            self.TypesTree.Unselect()
+            self.RefreshProjectTree()
+            self.ProjectTree.Unselect()
         else:
             self.EditProjectElement(self.Controler.GetElementType(infos[0]), infos[0])
             selected = self.TabsOpened.GetSelection()
@@ -2843,7 +2587,7 @@
             self.Highlights = {}
         else:
             self.Highlights = dict([(name, highlight) for name, highlight in self.Highlights.iteritems() if highlight != highlight_type])
-        self.RefreshTypesTree()
+        self.RefreshProjectTree()
         for i in xrange(self.TabsOpened.GetPageCount()):
             viewer = self.TabsOpened.GetPage(i)
             viewer.ClearHighlights(highlight_type)
@@ -2944,11 +2688,14 @@
         # Open the filepath if defined
         if fileOpen is not None and os.path.isfile(fileOpen):
             # Create a new controller
-            self.Controler = PLCControler()
-            result = self.Controler.OpenXMLFile(fileOpen)
+            controler = PLCControler()
+            result = controler.OpenXMLFile(fileOpen)
             if result is None:
-            	self.LibraryPanel.SetControler(self.Controler)
-                self._Refresh(TYPESTREE, INSTANCESTREE, LIBRARYTREE)
+                self.Controler = controler
+            	self.LibraryPanel.SetControler(controler)
+                self.ProjectTree.Enable(True)
+                self.PouInstanceVariablesPanel.SetController(controler)
+                self._Refresh(PROJECTTREE, POUINSTANCEVARIABLESPANEL, LIBRARYTREE)
         
         # Define PLCOpenEditor icon
         self.SetIcon(wx.Icon(os.path.join(CWD,"Images", "poe.ico"),wx.BITMAP_TYPE_ICO))
@@ -2962,8 +2709,7 @@
 
     def OnCloseFrame(self, event):
         if self.Controler is None or self.CheckSaveBeforeClosing(_("Close Application")):
-            if USE_AUI:
-                self.AUIManager.UnInit()
+            self.AUIManager.UnInit()
             
             self.SaveLastState()
             
@@ -3038,7 +2784,7 @@
             self.Controler = PLCControler()
             self.Controler.CreateNewProject(properties)
             self.LibraryPanel.SetControler(self.Controler)
-            self._Refresh(TITLE, FILEMENU, EDITMENU, TYPESTREE, INSTANCESTREE, 
+            self._Refresh(TITLE, FILEMENU, EDITMENU, PROJECTTREE, POUINSTANCEVARIABLESPANEL, 
                           LIBRARYTREE)
 
     def OnOpenProjectMenu(self, event):
@@ -3059,12 +2805,15 @@
             filepath = dialog.GetPath()
             if os.path.isfile(filepath):
                 self.ResetView()
-                self.Controler = PLCControler()
-                result = self.Controler.OpenXMLFile(filepath)
+                controler = PLCControler()
+                result = controler.OpenXMLFile(filepath)
                 if result is None:
-                    self.LibraryPanel.SetControler(self.Controler)
+                    self.Controler = controler
+                    self.LibraryPanel.SetControler(controler)
+                    self.ProjectTree.Enable(True)
+                    self.PouInstanceVariablesPanel.SetController(controler)
                     self.LoadProjectOrganization()
-                    self._Refresh(TYPESTREE, INSTANCESTREE, LIBRARYTREE)
+                    self._Refresh(PROJECTTREE, LIBRARYTREE)
             self._Refresh(TITLE, EDITORTOOLBAR, FILEMENU, EDITMENU)
         dialog.Destroy()
         
--- a/RessourceEditor.py	Tue May 15 05:19:13 2012 +0900
+++ b/RessourceEditor.py	Mon May 21 10:02:54 2012 +0200
@@ -502,7 +502,7 @@
 
     def OnInstancesGridCellChange(self, event):
         self.RefreshModel()
-        self.ParentWindow.RefreshInstancesTree()
+        self.ParentWindow.RefreshPouInstanceVariablesPanel()
         self.InstancesGrid.RefreshButtons()
         event.Skip()
 
--- a/TextViewer.py	Tue May 15 05:19:13 2012 +0900
+++ b/TextViewer.py	Mon May 21 10:02:54 2012 +0200
@@ -247,7 +247,8 @@
         return {"cursor_pos": self.Editor.GetCurrentPos()}
     
     def SetState(self, state):
-        self.Editor.GotoPos(state["cursor_pos"])
+        if self:
+            self.Editor.GotoPos(state.get("cursor_pos", 0))
         
     def OnModification(self, event):
         if not self.DisableEvents:
--- a/Viewer.py	Tue May 15 05:19:13 2012 +0900
+++ b/Viewer.py	Mon May 21 10:02:54 2012 +0200
@@ -691,9 +691,10 @@
                 "zoom": self.CurrentScale}
 
     def SetState(self, state):
-        self.SetScale(state["zoom"])
-        self.Scroll(*state["position"])
-        self.RefreshVisibleElements()
+        if self:
+            self.SetScale(state["zoom"])
+            self.Scroll(*state["position"])
+            self.RefreshVisibleElements()
         
     def GetLogicalDC(self, buffered=False):
         if buffered:
@@ -1966,7 +1967,7 @@
             self.RefreshScrollBars()
             self.RefreshVisibleElements()
             self.RefreshVariablePanel()
-            self.ParentWindow.RefreshInstancesTree()
+            self.ParentWindow.RefreshPouInstanceVariablesPanel()
             block.Refresh()
         dialog.Destroy()
     
@@ -2277,7 +2278,7 @@
             self.RefreshScrollBars()
             self.RefreshVisibleElements()
             self.RefreshVariablePanel()
-            self.ParentWindow.RefreshInstancesTree()
+            self.ParentWindow.RefreshPouInstanceVariablesPanel()
             if old_values["executionOrder"] != new_values["executionOrder"]:
                 self.RefreshView()
             else:
@@ -2690,7 +2691,7 @@
         for element in elements:
             element.RefreshModel()
         wx.CallAfter(self.RefreshVariablePanel)
-        wx.CallAfter(self.ParentWindow.RefreshInstancesTree)
+        wx.CallAfter(self.ParentWindow.RefreshPouInstanceVariablesPanel)
         
     def DeleteVariable(self, variable):
         connectors = variable.GetConnectors()
@@ -2828,7 +2829,7 @@
             self.RefreshBuffer()
             self.RefreshScrollBars()
             self.RefreshVariablePanel()
-            self.ParentWindow.RefreshInstancesTree()
+            self.ParentWindow.RefreshPouInstanceVariablesPanel()
             self.RefreshRect(self.GetScrolledRect(rect), False)
         
     def Copy(self):
@@ -2856,7 +2857,7 @@
                 self.RefreshBuffer()
                 self.RefreshView(selection=result)
                 self.RefreshVariablePanel()
-                self.ParentWindow.RefreshInstancesTree()
+                self.ParentWindow.RefreshPouInstanceVariablesPanel()
             else:
                 message = wx.MessageDialog(self.Editor, result, "Error", wx.OK|wx.ICON_ERROR)
                 message.ShowModal()
--- a/controls/CustomTable.py	Tue May 15 05:19:13 2012 +0900
+++ b/controls/CustomTable.py	Mon May 21 10:02:54 2012 +0200
@@ -1,3 +1,6 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
 #This library is free software; you can redistribute it and/or
 #modify it under the terms of the GNU General Public
 #License as published by the Free Software Foundation; either
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/controls/CustomTree.py	Mon May 21 10:02:54 2012 +0200
@@ -0,0 +1,105 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+#This library is free software; you can redistribute it and/or
+#modify it under the terms of the GNU General Public
+#License as published by the Free Software Foundation; either
+#version 2.1 of the License, or (at your option) any later version.
+#
+#This library is distributed in the hope that it will be useful,
+#but WITHOUT ANY WARRANTY; without even the implied warranty of
+#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#General Public License for more details.
+#
+#You should have received a copy of the GNU General Public
+#License along with this library; if not, write to the Free Software
+#Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+import wx
+
+class CustomTree(wx.TreeCtrl):
+    
+    def __init__(self, *args, **kwargs):
+        wx.TreeCtrl.__init__(self, *args, **kwargs)
+        self.SetBackgroundStyle(wx.BG_STYLE_CUSTOM)
+        
+        self.BackgroundBitmap = None
+        self.BackgroundAlign = wx.ALIGN_LEFT|wx.ALIGN_TOP
+        
+        self.AddMenu = None
+        self.Enabled = False
+        
+        if wx.Platform == '__WXMSW__':
+            self.Bind(wx.EVT_ERASE_BACKGROUND, self.OnEraseBackground)
+        else:
+            self.Bind(wx.EVT_PAINT, self.OnPaint)
+            self.Bind(wx.EVT_SIZE, self.OnResize)
+            self.Bind(wx.EVT_SCROLL, self.OnScroll)
+        self.Bind(wx.EVT_LEFT_UP, self.OnLeftUp)
+    
+    def SetBackgroundBitmap(self, bitmap, align):
+        self.BackgroundBitmap = bitmap
+        self.BackgroundAlign = align
+    
+    def SetAddMenu(self, add_menu):
+        self.AddMenu = add_menu
+    
+    def Enable(self, enabled):
+        self.Enabled = enabled
+    
+    def GetBitmapRect(self):
+        client_size = self.GetClientSize()
+        bitmap_size = self.BackgroundBitmap.GetSize()
+        
+        if self.BackgroundAlign & wx.ALIGN_RIGHT:
+            x = client_size[0] - bitmap_size[0]
+        elif self.BackgroundAlign & wx.ALIGN_CENTER_HORIZONTAL:
+            x = (client_size[0] - bitmap_size[0]) / 2
+        else:
+            x = 0
+        
+        if self.BackgroundAlign & wx.ALIGN_BOTTOM:
+            y = client_size[1] - bitmap_size[1]
+        elif self.BackgroundAlign & wx.ALIGN_CENTER_VERTICAL:
+            y = (client_size[1] - bitmap_size[1]) / 2
+        else:
+            y = 0
+        
+        return wx.Rect(x, y, bitmap_size[0], bitmap_size[1])
+    
+    def RefreshBackground(self, refresh_base=False):
+        dc = wx.ClientDC(self)
+        dc.Clear()
+        
+        bitmap_rect = self.GetBitmapRect()
+        dc.DrawBitmap(self.BackgroundBitmap, bitmap_rect.x, bitmap_rect.y)
+        
+        if refresh_base:
+            self.Refresh(False)
+    
+    def OnEraseBackground(self, event):
+        self.RefreshBackground(True)
+    
+    def OnLeftUp(self, event):
+        if self.Enabled:
+            pos = event.GetPosition()
+            item, flags = self.HitTest(pos)
+            
+            bitmap_rect = self.GetBitmapRect()
+            if (bitmap_rect.InsideXY(pos.x, pos.y) or 
+                flags & wx.TREE_HITTEST_NOWHERE) and self.AddMenu is not None:
+                self.PopupMenuXY(self.AddMenu, pos.x, pos.y)
+        event.Skip()
+
+    def OnScroll(self, event):
+        print "scroll event"
+        self.RefreshBackground(True)
+        event.Skip()
+
+    def OnResize(self, event):
+        self.RefreshBackground(True)
+        event.Skip()
+    
+    def OnPaint(self, event):
+        self.RefreshBackground()
+        event.Skip()
\ No newline at end of file
--- a/controls/EditorPanel.py	Tue May 15 05:19:13 2012 +0900
+++ b/controls/EditorPanel.py	Mon May 21 10:02:54 2012 +0200
@@ -65,7 +65,7 @@
         elif self.VariableEditor is not None:
             self.Initialize(self.VariableEditor)
         elif self.Editor is not None:
-            self.Initialize(self.Editor)        
+            self.Initialize(self.Editor)
         
     def __init__(self, parent, tagname, window, controler, debug=False):
         self.ParentWindow = window
@@ -137,10 +137,10 @@
         if self.VariableEditor is not None:
             self.VariableEditor.RefreshView()
     
-    def GetPluginMenuItems(self):
+    def GetConfNodeMenuItems(self):
         return self.MenuItems
     
-    def RefreshPluginMenu(self, plugin_menu):
+    def RefreshConfNodeMenu(self, confnode_menu):
         pass
     
     def _Refresh(self, *args):
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/controls/PouInstanceVariablesPanel.py	Mon May 21 10:02:54 2012 +0200
@@ -0,0 +1,318 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+#This file is part of PLCOpenEditor, a library implementing an IEC 61131-3 editor
+#based on the plcopen standard. 
+#
+#Copyright (C) 2012: Edouard TISSERANT and Laurent BESSARD
+#
+#See COPYING file for copyrights details.
+#
+#This library is free software; you can redistribute it and/or
+#modify it under the terms of the GNU General Public
+#License as published by the Free Software Foundation; either
+#version 2.1 of the License, or (at your option) any later version.
+#
+#This library is distributed in the hope that it will be useful,
+#but WITHOUT ANY WARRANTY; without even the implied warranty of
+#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#General Public License for more details.
+#
+#You should have received a copy of the GNU General Public
+#License along with this library; if not, write to the Free Software
+#Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+import wx
+import wx.lib.buttons
+import wx.lib.agw.customtreectrl as CT
+
+from PLCControler import ITEMS_VARIABLE, ITEM_CONFIGURATION, ITEM_RESOURCE, ITEM_POU
+
+class PouInstanceVariablesPanel(wx.Panel):
+    
+    def __init__(self, parent, window, controller, debug):
+        wx.Panel.__init__(self, name='PouInstanceTreePanel', 
+                parent=parent, pos=wx.Point(0, 0), 
+                size=wx.Size(0, 0), style=wx.TAB_TRAVERSAL)
+        
+        self.ParentButton = wx.lib.buttons.GenBitmapButton(
+              name='ParentButton', parent=self, 
+              bitmap=window.GenerateBitmap("up"), 
+              pos=wx.Point(0, 0), size=wx.Size(28, 28), 
+              style=wx.NO_BORDER)
+        self.Bind(wx.EVT_BUTTON, self.OnParentButtonClick, 
+                self.ParentButton)
+        
+        self.InstanceChoice = wx.ComboBox(name='InstanceChoice', 
+              parent=self, pos=wx.Point(0, 0),
+              size=wx.Size(0, 28), style=wx.CB_READONLY)
+        self.Bind(wx.EVT_COMBOBOX, self.OnInstanceChoiceChanged,
+                self.InstanceChoice)
+        self.InstanceChoice.Bind(wx.EVT_LEFT_DOWN, self.OnInstanceChoiceLeftDown)
+        
+        self.DebugButton = wx.lib.buttons.GenBitmapButton(
+              name='DebugButton', parent=self, 
+              bitmap=window.GenerateBitmap("debug"), 
+              pos=wx.Point(0, 0), size=wx.Size(28, 28), 
+              style=wx.NO_BORDER)
+        self.Bind(wx.EVT_BUTTON, self.OnDebugButtonClick, 
+                self.DebugButton)
+        
+        self.VariablesList = CT.CustomTreeCtrl(
+              name='VariablesList', parent=self,
+              pos=wx.Point(0, 0), size=wx.Size(0, 0), 
+              style=wx.SUNKEN_BORDER,
+              agwStyle=CT.TR_NO_BUTTONS|
+                       CT.TR_SINGLE|
+                       CT.TR_HAS_VARIABLE_ROW_HEIGHT|
+                       CT.TR_HIDE_ROOT|
+                       CT.TR_NO_LINES|
+                       getattr(CT, "TR_ALIGN_WINDOWS_RIGHT", CT.TR_ALIGN_WINDOWS))
+        self.VariablesList.SetIndent(0)
+        self.VariablesList.SetSpacing(5)
+        self.VariablesList.DoSelectItem = lambda *x,**y:True
+        self.VariablesList.Bind(CT.EVT_TREE_ITEM_ACTIVATED,
+                self.OnVariablesListItemActivated)
+        self.VariablesList.Bind(wx.EVT_LEFT_DOWN, self.OnVariablesListLeftDown)
+        
+        buttons_sizer = wx.FlexGridSizer(cols=3, hgap=0, rows=1, vgap=0)
+        buttons_sizer.AddWindow(self.ParentButton, 0, border=0, flag=0)
+        buttons_sizer.AddWindow(self.InstanceChoice, 0, border=0, flag=wx.GROW)
+        buttons_sizer.AddWindow(self.DebugButton, 0, border=0, flag=0)
+        buttons_sizer.AddGrowableCol(1)
+        buttons_sizer.AddGrowableRow(0)
+        
+        main_sizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=0)
+        main_sizer.AddSizer(buttons_sizer, 0, border=0, flag=wx.GROW)
+        main_sizer.AddWindow(self.VariablesList, 0, border=0, flag=wx.GROW)
+        main_sizer.AddGrowableCol(0)
+        main_sizer.AddGrowableRow(1)
+        
+        self.SetSizer(main_sizer)
+        
+        self.ParentWindow = window
+        self.Controller = controller
+        self.Debug = debug
+        if not self.Debug:
+            self.DebugButton.Hide()
+        
+        self.PouTagName = None
+        self.PouInfos = None
+        self.PouInstance = None
+        
+    def __del__(self):
+        self.Controller = None
+    
+    def SetTreeImageList(self, tree_image_list):
+        self.VariablesList.SetImageList(tree_image_list)
+    
+    def SetController(self, controller):
+        self.Controller = controller
+    
+        self.RefreshView()
+    
+    def SetPouType(self, tagname, pou_instance=None):
+        self.PouTagName = tagname
+        if pou_instance is not None:
+            self.PouInstance = pou_instance
+        
+        self.RefreshView()
+    
+    def ResetView(self):
+        self.Controller = None
+        
+        self.PouTagName = None
+        self.PouInfos = None
+        self.PouInstance = None
+        
+        self.RefreshView()
+    
+    def RefreshView(self):
+        self.VariablesList.DeleteAllItems()
+        self.InstanceChoice.Clear()
+        self.InstanceChoice.SetValue("")
+        
+        if self.PouTagName is not None:
+            self.PouInfos = self.Controller.GetPouVariables(self.PouTagName, self.Debug)
+        else:
+            self.PouInfos = None
+        if self.PouInfos is not None:
+            root = self.VariablesList.AddRoot("")
+            for var_infos in self.PouInfos["variables"]:
+                if var_infos.get("type", None) is not None:
+                    text = "%(name)s (%(type)s)" % var_infos
+                else:
+                    text = var_infos["name"]
+                
+                panel = wx.Panel(self.VariablesList)
+                    
+                buttons = []
+                if var_infos["class"] in ITEMS_VARIABLE:
+                    if (var_infos["debug"] and self.Debug and
+                        (self.Controller.IsOfType(var_infos["type"], "ANY_NUM", True) or
+                         self.Controller.IsOfType(var_infos["type"], "ANY_BIT", True))):
+                        graph_button = wx.lib.buttons.GenBitmapButton(name="graph", 
+                              parent=panel, bitmap=self.ParentWindow.GenerateBitmap("graph"), 
+                              pos=wx.Point(0, 0), size=wx.Size(28, 28), style=wx.NO_BORDER)
+                        self.Bind(wx.EVT_BUTTON, self.GenGraphButtonCallback(var_infos), graph_button)
+                        buttons.append(graph_button)
+                elif var_infos["edit"]:
+                    edit_button = wx.lib.buttons.GenBitmapButton(name="edit", 
+                          parent=panel, bitmap=self.ParentWindow.GenerateBitmap("edit"), 
+                          pos=wx.Point(0, 0), size=wx.Size(28, 28), style=wx.NO_BORDER)
+                    self.Bind(wx.EVT_BUTTON, self.GenEditButtonCallback(var_infos), edit_button)
+                    buttons.append(edit_button)
+                
+                if var_infos["debug"] and self.Debug:
+                    debug_button = wx.lib.buttons.GenBitmapButton(name="debug", 
+                          parent=panel, bitmap=self.ParentWindow.GenerateBitmap("debug"), 
+                          pos=wx.Point(0, 0), size=wx.Size(28, 28), style=wx.NO_BORDER)
+                    self.Bind(wx.EVT_BUTTON, self.GenDebugButtonCallback(var_infos), debug_button)
+                    buttons.append(debug_button)
+                
+                button_num = len(buttons)
+                if button_num > 0:
+                    panel.SetSize(wx.Size(button_num * 32, 28))
+                    panel.SetBackgroundColour(self.VariablesList.GetBackgroundColour())
+                    panel_sizer = wx.BoxSizer(wx.HORIZONTAL)
+                    panel.SetSizer(panel_sizer)
+                    
+                    for button in buttons:
+                        panel_sizer.AddWindow(button, 0, border=4, flag=wx.LEFT)
+                else:
+                    panel.Destroy()
+                    panel = None
+                
+                item = self.VariablesList.AppendItem(root, text, wnd=panel)
+                self.VariablesList.SetItemImage(item, self.ParentWindow.GetTreeImage(var_infos["class"]))
+                self.VariablesList.SetPyData(item, var_infos)
+            
+            instances = self.Controller.SearchPouInstances(self.PouTagName, self.Debug)
+            for instance in instances:
+                self.InstanceChoice.Append(instance)
+            if len(instances) == 1:
+                self.PouInstance = instances[0]
+            if self.PouInfos["class"] in [ITEM_CONFIGURATION, ITEM_RESOURCE]:
+                self.PouInstance = None
+                self.InstanceChoice.SetSelection(0)
+            elif self.PouInstance in instances:
+                self.InstanceChoice.SetStringSelection(self.PouInstance)
+            else:
+                self.PouInstance = None
+                self.InstanceChoice.SetValue(_("Select an instance"))
+        
+        self.RefreshButtons()
+        
+    def RefreshButtons(self):
+        enabled = self.InstanceChoice.GetSelection() != -1
+        self.ParentButton.Enable(enabled and self.PouInfos["class"] != ITEM_CONFIGURATION)
+        self.DebugButton.Enable(enabled and self.PouInfos["debug"] and self.Debug)
+        
+        root = self.VariablesList.GetRootItem()
+        if root is not None and root.IsOk():
+            item, item_cookie = self.VariablesList.GetFirstChild(root)
+            while item is not None and item.IsOk():
+                panel = self.VariablesList.GetItemWindow(item)
+                if panel is not None:
+                    for child in panel.GetChildren():
+                        if child.GetName() != "edit":
+                            child.Enable(enabled)
+                item, item_cookie = self.VariablesList.GetNextChild(root, item_cookie)
+    
+    def GenEditButtonCallback(self, infos):
+        def EditButtonCallback(event):
+            var_class = infos["class"]
+            if var_class == ITEM_RESOURCE:
+                tagname = self.Controller.ComputeConfigurationResourceName(
+                    self.InstanceChoice.GetStringSelection(), 
+                    infos["name"])
+            else:
+                var_class = ITEM_POU
+                tagname = self.Controller.ComputePouName(infos["type"])
+            self.ParentWindow.EditProjectElement(var_class, tagname)
+            event.Skip()
+        return EditButtonCallback
+    
+    def GenDebugButtonCallback(self, infos):
+        def DebugButtonCallback(event):
+            if self.InstanceChoice.GetSelection() != -1:
+                var_class = infos["class"]
+                var_path = "%s.%s" % (self.InstanceChoice.GetStringSelection(), 
+                                      infos["name"])
+                if var_class in ITEMS_VARIABLE:
+                    self.ParentWindow.AddDebugVariable(var_path, force=True)
+                else:
+                    self.ParentWindow.OpenDebugViewer(
+                        infos["class"],
+                        var_path,
+                        self.Controller.ComputePouName(infos["type"]))
+            event.Skip()
+        return DebugButtonCallback
+    
+    def GenGraphButtonCallback(self, infos):
+        def GraphButtonCallback(event):
+            if self.InstanceChoice.GetSelection() != -1:
+                if infos["class"] in ITEMS_VARIABLE:
+                    var_path = "%s.%s" % (self.InstanceChoice.GetStringSelection(), 
+                                          infos["name"])
+                    self.ParentWindow.OpenGraphicViewer(var_path)
+            event.Skip()
+        return GraphButtonCallback
+    
+    def ShowInstanceChoicePopup(self):
+        self.InstanceChoice.SetFocusFromKbd()
+        size = self.InstanceChoice.GetSize()
+        event = wx.MouseEvent(wx.EVT_LEFT_DOWN._getEvtType())
+        event.m_x = size.width / 2
+        event.m_y = size.height / 2
+        event.SetEventObject(self.InstanceChoice)
+        #event = wx.KeyEvent(wx.EVT_KEY_DOWN._getEvtType())
+        #event.m_keyCode = wx.WXK_SPACE
+        self.InstanceChoice.GetEventHandler().ProcessEvent(event)
+    
+    def OnParentButtonClick(self, event):
+        if self.InstanceChoice.GetSelection() != -1:
+            parent_path = self.InstanceChoice.GetStringSelection().rsplit(".", 1)[0]
+            tagname = self.Controller.GetPouInstanceTagName(parent_path, self.Debug)
+            if tagname is not None:
+                wx.CallAfter(self.SetPouType, tagname, parent_path)
+                wx.CallAfter(self.ParentWindow.SelectProjectTreeItem, tagname)
+        event.Skip()
+        
+    def OnInstanceChoiceChanged(self, event):
+        self.RefreshButtons()
+        event.Skip()
+        
+    def OnDebugButtonClick(self, event):
+        if self.InstanceChoice.GetSelection() != -1:
+            self.ParentWindow.OpenDebugViewer(
+                self.PouInfos["class"],
+                self.InstanceChoice.GetStringSelection(),
+                self.PouTagName)
+        event.Skip()
+        
+    def OnVariablesListItemActivated(self, event):
+        if self.InstanceChoice.GetSelection() != -1:
+            instance_path = self.InstanceChoice.GetStringSelection()
+            selected_item = event.GetItem()
+            if selected_item is not None and selected_item.IsOk():
+                item_infos = self.VariablesList.GetPyData(selected_item)
+                if item_infos is not None and item_infos["class"] not in ITEMS_VARIABLE:
+                    if item_infos["class"] == ITEM_RESOURCE:
+                        tagname = self.Controller.ComputeConfigurationResourceName(
+                                       instance_path, 
+                                       item_infos["name"])
+                    else:
+                        tagname = self.Controller.ComputePouName(item_infos["type"])
+                    item_path = "%s.%s" % (instance_path, item_infos["name"])
+                    wx.CallAfter(self.SetPouType, tagname, item_path)
+                    wx.CallAfter(self.ParentWindow.SelectProjectTreeItem, tagname)
+        event.Skip()
+    
+    def OnVariablesListLeftDown(self, event):
+        if self.InstanceChoice.GetSelection() == -1:
+            wx.CallAfter(self.ShowInstanceChoicePopup)
+        event.Skip()
+        
+    def OnInstanceChoiceLeftDown(self, event):
+        event.Skip()
--- a/controls/VariablePanel.py	Tue May 15 05:19:13 2012 +0900
+++ b/controls/VariablePanel.py	Mon May 21 10:02:54 2012 +0200
@@ -43,7 +43,7 @@
         parent.Append(helpString=help, id=id, kind=kind, item=text)
 
 [TITLE, TOOLBAR, FILEMENU, EDITMENU, DISPLAYMENU, TYPESTREE, 
- INSTANCESTREE, LIBRARYTREE, SCALING
+ POUINSTANCEVARIABLESPANEL, LIBRARYTREE, SCALING
 ] = range(9)
 
 #-------------------------------------------------------------------------------
@@ -644,7 +644,7 @@
         self.Controler.SetPouInterfaceReturnType(words[1], self.ReturnType.GetStringSelection())
         self.Controler.BufferProject()
         self.ParentWindow.RefreshView(variablepanel = False)
-        self.ParentWindow._Refresh(TITLE, FILEMENU, EDITMENU, INSTANCESTREE, LIBRARYTREE)
+        self.ParentWindow._Refresh(TITLE, FILEMENU, EDITMENU, POUINSTANCEVARIABLESPANEL, LIBRARYTREE)
         event.Skip()
     
     def OnDescriptionChanged(self, event):
@@ -653,7 +653,7 @@
         new_description = self.Description.GetValue()
         if new_description != old_description:
             self.Controler.SetPouDescription(words[1], new_description)
-            self.ParentWindow._Refresh(TITLE, FILEMENU, EDITMENU, INSTANCESTREE, LIBRARYTREE)
+            self.ParentWindow._Refresh(TITLE, FILEMENU, EDITMENU, POUINSTANCEVARIABLESPANEL, LIBRARYTREE)
         event.Skip()
     
     def OnClassFilter(self, event):
@@ -695,7 +695,7 @@
                     self.Controler.UpdateEditedElementUsedVariable(self.TagName, old_value, value)
                 self.Controler.BufferProject()
                 self.ParentWindow.RefreshView(variablepanel = False)
-                self.ParentWindow._Refresh(TITLE, FILEMENU, EDITMENU, INSTANCESTREE, LIBRARYTREE)
+                self.ParentWindow._Refresh(TITLE, FILEMENU, EDITMENU, POUINSTANCEVARIABLESPANEL, LIBRARYTREE)
                 event.Skip()
         else:
             self.SaveValues()
@@ -738,17 +738,17 @@
 
             type_menu.AppendMenu(wx.NewId(), _("User Data Types"), datatype_menu)
             
-            for category in self.Controler.GetPluginDataTypes():
+            for category in self.Controler.GetConfNodeDataTypes():
                
                if len(category["list"]) > 0:
-                   # build a submenu containing plugin types
-                   plugin_datatype_menu = wx.Menu(title='')
+                   # build a submenu containing confnode types
+                   confnode_datatype_menu = wx.Menu(title='')
                    for datatype in category["list"]:
                        new_id = wx.NewId()
-                       AppendMenu(plugin_datatype_menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text=datatype)
+                       AppendMenu(confnode_datatype_menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text=datatype)
                        self.Bind(wx.EVT_MENU, self.GetVariableTypeFunction(datatype), id=new_id)
                    
-                   type_menu.AppendMenu(wx.NewId(), category["name"], plugin_datatype_menu)
+                   type_menu.AppendMenu(wx.NewId(), category["name"], confnode_datatype_menu)
 
             # build a submenu containing function block types
             bodytype = self.Controler.GetEditedElementBodyType(self.TagName)
@@ -789,7 +789,7 @@
             self.SaveValues(False)
             self.ParentWindow.RefreshView(variablepanel = False)
             self.Controler.BufferProject()
-            self.ParentWindow._Refresh(TITLE, FILEMENU, EDITMENU, INSTANCESTREE, LIBRARYTREE)
+            self.ParentWindow._Refresh(TITLE, FILEMENU, EDITMENU, POUINSTANCEVARIABLESPANEL, LIBRARYTREE)
         return VariableTypeFunction
     
     def VariableArrayTypeFunction(self, event):
@@ -803,7 +803,7 @@
             self.SaveValues(False)
             self.ParentWindow.RefreshView(variablepanel = False)
             self.Controler.BufferProject()
-            self.ParentWindow._Refresh(TITLE, FILEMENU, EDITMENU, INSTANCESTREE, LIBRARYTREE)
+            self.ParentWindow._Refresh(TITLE, FILEMENU, EDITMENU, POUINSTANCEVARIABLESPANEL, LIBRARYTREE)
         dialog.Destroy()
     
     def OnVariablesGridCellLeftClick(self, event):
@@ -840,7 +840,7 @@
             self.Controler.SetPouInterfaceVars(words[1], self.Values)
         if buffer:
             self.Controler.BufferProject()
-            self.ParentWindow._Refresh(TITLE, FILEMENU, EDITMENU, INSTANCESTREE, LIBRARYTREE)            
+            self.ParentWindow._Refresh(TITLE, FILEMENU, EDITMENU, POUINSTANCEVARIABLESPANEL, LIBRARYTREE)            
 
 #-------------------------------------------------------------------------------
 #                        Highlights showing functions
--- a/controls/__init__.py	Tue May 15 05:19:13 2012 +0900
+++ b/controls/__init__.py	Mon May 21 10:02:54 2012 +0200
@@ -32,3 +32,5 @@
 from LocationCellEditor import LocationCellEditor
 from VariablePanel import VariablePanel
 from LibraryPanel import LibraryPanel
+from PouInstanceVariablesPanel import PouInstanceVariablesPanel
+from CustomTree import CustomTree
--- a/dialogs/BrowseLocationsDialog.py	Tue May 15 05:19:13 2012 +0900
+++ b/dialogs/BrowseLocationsDialog.py	Mon May 21 10:02:54 2012 +0200
@@ -22,7 +22,7 @@
 import wx
 
 from plcopen.structures import LOCATIONDATATYPES
-from PLCControler import LOCATION_PLUGIN, LOCATION_MODULE, LOCATION_GROUP, LOCATION_VAR_INPUT, LOCATION_VAR_OUTPUT, LOCATION_VAR_MEMORY
+from PLCControler import LOCATION_CONFNODE, LOCATION_MODULE, LOCATION_GROUP, LOCATION_VAR_INPUT, LOCATION_VAR_OUTPUT, LOCATION_VAR_MEMORY
 
 CWD = os.path.split(os.path.split(os.path.realpath(__file__))[0])[0]
 
@@ -131,7 +131,7 @@
         
         # Icons for items
         for imgname, itemtype in [
-            ("CONFIGURATION", LOCATION_PLUGIN), 
+            ("CONFIGURATION", LOCATION_CONFNODE), 
             ("RESOURCE",      LOCATION_MODULE), 
             ("PROGRAM",       LOCATION_GROUP), 
             ("VAR_INPUT",     LOCATION_VAR_INPUT), 
@@ -157,7 +157,7 @@
         root = self.LocationsTree.GetRootItem()
         if not root.IsOk():
             if wx.Platform == '__WXMSW__':
-                root = self.LocationsTree.AddRoot(_('Plugins'))
+                root = self.LocationsTree.AddRoot(_('ConfNodes'))
             else:
                 root = self.LocationsTree.AddRoot("")
         self.GenerateLocationsTreeBranch(root, self.Locations)
@@ -171,7 +171,7 @@
             item, root_cookie = self.LocationsTree.GetFirstChild(root, 0)
         for loc_infos in locations:
             infos = loc_infos.copy()
-            if infos["type"] in [LOCATION_PLUGIN, LOCATION_MODULE, LOCATION_GROUP] or\
+            if infos["type"] in [LOCATION_CONFNODE, LOCATION_MODULE, LOCATION_GROUP] or\
                infos["type"] in self.Filter and (infos["IEC_type"] == self.VarType or
                infos["IEC_type"] is None and LOCATION_SIZES[self.VarType] == infos["size"]):
                 children = [child for child in infos.pop("children")]
@@ -193,7 +193,7 @@
     
     def OnLocationsTreeItemActivated(self, event):
         infos = self.LocationsTree.GetPyData(event.GetItem())
-        if infos["type"] not in [LOCATION_PLUGIN, LOCATION_MODULE, LOCATION_GROUP]:
+        if infos["type"] not in [LOCATION_CONFNODE, LOCATION_MODULE, LOCATION_GROUP]:
             wx.CallAfter(self.EndModal, wx.ID_OK)
         event.Skip()
     
@@ -210,7 +210,7 @@
         var_infos = None
         if selected.IsOk():
             var_infos = self.LocationsTree.GetPyData(selected)
-        if var_infos is None or var_infos["type"] in [LOCATION_PLUGIN, LOCATION_MODULE, LOCATION_GROUP]:
+        if var_infos is None or var_infos["type"] in [LOCATION_CONFNODE, LOCATION_MODULE, LOCATION_GROUP]:
             message = wx.MessageDialog(self, _("A location must be selected!"), _("Error"), wx.OK|wx.ICON_ERROR)
             message.ShowModal()
             message.Destroy()
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/docutil/__init__.py	Mon May 21 10:02:54 2012 +0200
@@ -0,0 +1,27 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+#This file is part of PLCOpenEditor, a library implementing an IEC 61131-3 editor
+#based on the plcopen standard. 
+#
+#Copyright (C) 2007: Edouard TISSERANT and Laurent BESSARD
+#
+#See COPYING file for copyrights details.
+#
+#This library is free software; you can redistribute it and/or
+#modify it under the terms of the GNU General Public
+#License as published by the Free Software Foundation; either
+#version 2.1 of the License, or (at your option) any later version.
+#
+#This library is distributed in the hope that it will be useful,
+#but WITHOUT ANY WARRANTY; without even the implied warranty of
+#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#General Public License for more details.
+#
+#You should have received a copy of the GNU General Public
+#License along with this library; if not, write to the Free Software
+#Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+from dochtml import *
+from docpdf import *
+from docsvg import *
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/docutil/dochtml.py	Mon May 21 10:02:54 2012 +0200
@@ -0,0 +1,96 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+#This file is part of PLCOpenEditor, a library implementing an IEC 61131-3 editor
+#based on the plcopen standard. 
+#
+#Copyright (C) 2007: Edouard TISSERANT and Laurent BESSARD
+#
+#See COPYING file for copyrights details.
+#
+#This library is free software; you can redistribute it and/or
+#modify it under the terms of the GNU General Public
+#License as published by the Free Software Foundation; either
+#version 2.1 of the License, or (at your option) any later version.
+#
+#This library is distributed in the hope that it will be useful,
+#but WITHOUT ANY WARRANTY; without even the implied warranty of
+#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#General Public License for more details.
+#
+#You should have received a copy of the GNU General Public
+#License along with this library; if not, write to the Free Software
+#Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+import wx, os, wx.html, subprocess
+
+HtmlFrameOpened = []
+
+def OpenHtmlFrame(self, title, file, size):
+        if title not in HtmlFrameOpened:
+            HtmlFrameOpened.append(title)
+            window = HtmlFrame(self, HtmlFrameOpened)
+            window.SetTitle(title)
+            window.SetHtmlPage(file)
+            window.SetClientSize(size)
+            window.Show()
+
+[ID_HTMLFRAME, ID_HTMLFRAMEHTMLCONTENT] = [wx.NewId() for _init_ctrls in range(2)]
+EVT_HTML_URL_CLICK = wx.NewId()
+
+class HtmlWindowUrlClick(wx.PyEvent):
+    def __init__(self, linkinfo):
+        wx.PyEvent.__init__(self)
+        self.SetEventType(EVT_HTML_URL_CLICK)
+        self.linkinfo = (linkinfo.GetHref(), linkinfo.GetTarget())
+        
+class UrlClickHtmlWindow(wx.html.HtmlWindow):
+    """ HTML window that generates and OnLinkClicked event.
+
+    Use this to avoid having to override HTMLWindow
+    """
+    def OnLinkClicked(self, linkinfo):
+        wx.PostEvent(self, HtmlWindowUrlClick(linkinfo))
+    
+    def Bind(self, event, handler, source=None, id=wx.ID_ANY, id2=wx.ID_ANY):
+        if event == HtmlWindowUrlClick:
+            self.Connect(-1, -1, EVT_HTML_URL_CLICK, handler)
+        else:
+            wx.html.HtmlWindow.Bind(event, handler, source=source, id=id, id2=id2)
+
+class HtmlFrame(wx.Frame):
+        def _init_ctrls(self, prnt):
+            wx.Frame.__init__(self, id=ID_HTMLFRAME, name='HtmlFrame',
+                  parent=prnt, pos=wx.Point(320, 231), size=wx.Size(853, 616),
+                  style=wx.DEFAULT_FRAME_STYLE, title='')
+            self.Bind(wx.EVT_CLOSE, self.OnCloseFrame)
+            
+            self.HtmlContent = UrlClickHtmlWindow(id=ID_HTMLFRAMEHTMLCONTENT,
+                  name='HtmlContent', parent=self, pos=wx.Point(0, 0),
+                  size=wx.Size(-1, -1), style=wx.html.HW_SCROLLBAR_AUTO|wx.html.HW_NO_SELECTION)
+            self.HtmlContent.Bind(HtmlWindowUrlClick, self.OnLinkClick)
+
+        def __init__(self, parent, opened):
+            self._init_ctrls(parent)
+            self.HtmlFrameOpened = opened
+            
+        def SetHtmlCode(self, htmlcode):
+            self.HtmlContent.SetPage(htmlcode)
+            
+        def SetHtmlPage(self, htmlpage):
+            self.HtmlContent.LoadPage(htmlpage)
+            
+        def OnCloseFrame(self, event):
+            self.HtmlFrameOpened.remove(self.GetTitle())
+            event.Skip()
+        
+        def OnLinkClick(self, event):
+            url = event.linkinfo[0]
+            try:
+                if wx.Platform == '__WXMSW__':
+                    import webbrowser
+                    webbrowser.open(url)
+                elif subprocess.call("firefox %s"%url, shell=True) != 0:
+                    wx.MessageBox("""Firefox browser not found.\nPlease point your browser at :\n%s""" % url)
+            except ImportError:
+                wx.MessageBox('Please point your browser at: %s' % url)
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/docutil/docpdf.py	Mon May 21 10:02:54 2012 +0200
@@ -0,0 +1,78 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+#This file is part of PLCOpenEditor, a library implementing an IEC 61131-3 editor
+#based on the plcopen standard. 
+#
+#Copyright (C) 2007: Edouard TISSERANT and Laurent BESSARD
+#
+#See COPYING file for copyrights details.
+#
+#This library is free software; you can redistribute it and/or
+#modify it under the terms of the GNU General Public
+#License as published by the Free Software Foundation; either
+#version 2.1 of the License, or (at your option) any later version.
+#
+#This library is distributed in the hope that it will be useful,
+#but WITHOUT ANY WARRANTY; without even the implied warranty of
+#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#General Public License for more details.
+#
+#You should have received a copy of the GNU General Public
+#License along with this library; if not, write to the Free Software
+#Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+import wx, os
+
+readerexepath = None
+    
+def get_acroversion():
+    " Return version of Adobe Acrobat executable or None"
+    import _winreg
+    adobesoft = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, r'Software\Adobe')
+    for index in range(_winreg.QueryInfoKey(adobesoft)[0]):
+        key = _winreg.EnumKey(adobesoft, index)
+        if "acrobat" in key.lower():
+            acrokey = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, 'Software\\Adobe\\%s' % key)
+            for index in range(_winreg.QueryInfoKey(acrokey)[0]):
+                numver = _winreg.EnumKey(acrokey, index)
+                try:
+                    res = _winreg.QueryValue(_winreg.HKEY_LOCAL_MACHINE, 'Software\\Adobe\\%s\\%s\\InstallPath' % (key, numver))
+                    return res
+                except:
+                    pass
+    return None
+
+def open_win_pdf(readerexepath, pdffile, pagenum = None):
+    if pagenum != None :
+        os.spawnl(os.P_DETACH, readerexepath, "AcroRd32.exe", "/A", "page=%d=OpenActions" % pagenum, '"%s"'%pdffile)
+    else:
+        os.spawnl(os.P_DETACH, readerexepath, "AcroRd32.exe", '"%s"'%pdffile)
+
+def open_lin_pdf(readerexepath, pdffile, pagenum = None):
+    if pagenum == None :
+        os.system("%s -remote DS301 %s &"%(readerexepath, pdffile))
+    else:
+    	print "Open pdf %s at page %d"%(pdffile, pagenum)
+        os.system("%s -remote DS301 %s %d &"%(readerexepath, pdffile, pagenum))
+
+def open_pdf(pdffile, pagenum = None):
+    if wx.Platform == '__WXMSW__' :
+        try:
+            readerpath = get_acroversion()
+        except:
+            wx.MessageBox("Acrobat Reader is not found or installed !")
+            return None
+        
+        readerexepath = os.path.join(readerpath, "AcroRd32.exe")
+        if(os.path.isfile(readerexepath)):
+            open_win_pdf(readerexepath, pdffile, pagenum)
+        else:
+            return None
+    else:
+        readerexepath = os.path.join("/usr/bin","xpdf")
+        if(os.path.isfile(readerexepath)):
+            open_lin_pdf(readerexepath, pdffile, pagenum)
+        else:
+            wx.MessageBox("xpdf is not found or installed !")
+            return None
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/docutil/docsvg.py	Mon May 21 10:02:54 2012 +0200
@@ -0,0 +1,63 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+#This file is part of PLCOpenEditor, a library implementing an IEC 61131-3 editor
+#based on the plcopen standard. 
+#
+#Copyright (C) 2007: Edouard TISSERANT and Laurent BESSARD
+#
+#See COPYING file for copyrights details.
+#
+#This library is free software; you can redistribute it and/or
+#modify it under the terms of the GNU General Public
+#License as published by the Free Software Foundation; either
+#version 2.1 of the License, or (at your option) any later version.
+#
+#This library is distributed in the hope that it will be useful,
+#but WITHOUT ANY WARRANTY; without even the implied warranty of
+#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#General Public License for more details.
+#
+#You should have received a copy of the GNU General Public
+#License along with this library; if not, write to the Free Software
+#Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+import wx, os, subprocess
+
+def get_inkscape_path():
+    """ Return the Inkscape path """
+    import _winreg
+    svgexepath = _winreg.QueryValue(_winreg.HKEY_LOCAL_MACHINE,
+                 'Software\\Classes\\svgfile\\shell\\Inkscape\\command')
+    svgexepath = svgexepath.replace('"%1"', '')
+    return svgexepath.replace('"', '')
+
+def open_win_svg(svgexepath, svgfile):
+    """ Open Inkscape on Windows platform """
+    popenargs = [svgexepath]
+    if svgfile is not None :
+        popenargs.append(svgfile)
+    subprocess.Popen(popenargs).pid
+
+def open_lin_svg(svgexepath, svgfile):
+    """ Open Inkscape on Linux platform """
+    if os.path.isfile("/usr/bin/inkscape"):
+        os.system("%s %s &"%(svgexepath , svgfile))
+    
+def open_svg(svgfile):
+    """ Generic function to open SVG file """
+    if wx.Platform == '__WXMSW__' :
+        svgexepath = get_inkscape_path()
+        try:
+            open_win_svg(svgexepath , svgfile)
+        except:
+            wx.MessageBox("Inkscape is not found or installed !")
+            return None
+    else:
+        svgexepath = os.path.join("/usr/bin","inkscape")
+        if(os.path.isfile(svgexepath)):
+            open_lin_svg(svgexepath, svgfile)
+        else:
+            wx.MessageBox("Inkscape is not found or installed !")
+            return None
+
--- a/docutils/__init__.py	Tue May 15 05:19:13 2012 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-
-#This file is part of PLCOpenEditor, a library implementing an IEC 61131-3 editor
-#based on the plcopen standard. 
-#
-#Copyright (C) 2007: Edouard TISSERANT and Laurent BESSARD
-#
-#See COPYING file for copyrights details.
-#
-#This library is free software; you can redistribute it and/or
-#modify it under the terms of the GNU General Public
-#License as published by the Free Software Foundation; either
-#version 2.1 of the License, or (at your option) any later version.
-#
-#This library is distributed in the hope that it will be useful,
-#but WITHOUT ANY WARRANTY; without even the implied warranty of
-#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-#General Public License for more details.
-#
-#You should have received a copy of the GNU General Public
-#License along with this library; if not, write to the Free Software
-#Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-
-from dochtml import *
-from docpdf import *
-from docsvg import *
\ No newline at end of file
--- a/docutils/dochtml.py	Tue May 15 05:19:13 2012 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,96 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-
-#This file is part of PLCOpenEditor, a library implementing an IEC 61131-3 editor
-#based on the plcopen standard. 
-#
-#Copyright (C) 2007: Edouard TISSERANT and Laurent BESSARD
-#
-#See COPYING file for copyrights details.
-#
-#This library is free software; you can redistribute it and/or
-#modify it under the terms of the GNU General Public
-#License as published by the Free Software Foundation; either
-#version 2.1 of the License, or (at your option) any later version.
-#
-#This library is distributed in the hope that it will be useful,
-#but WITHOUT ANY WARRANTY; without even the implied warranty of
-#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-#General Public License for more details.
-#
-#You should have received a copy of the GNU General Public
-#License along with this library; if not, write to the Free Software
-#Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-
-import wx, os, wx.html, subprocess
-
-HtmlFrameOpened = []
-
-def OpenHtmlFrame(self, title, file, size):
-        if title not in HtmlFrameOpened:
-            HtmlFrameOpened.append(title)
-            window = HtmlFrame(self, HtmlFrameOpened)
-            window.SetTitle(title)
-            window.SetHtmlPage(file)
-            window.SetClientSize(size)
-            window.Show()
-
-[ID_HTMLFRAME, ID_HTMLFRAMEHTMLCONTENT] = [wx.NewId() for _init_ctrls in range(2)]
-EVT_HTML_URL_CLICK = wx.NewId()
-
-class HtmlWindowUrlClick(wx.PyEvent):
-    def __init__(self, linkinfo):
-        wx.PyEvent.__init__(self)
-        self.SetEventType(EVT_HTML_URL_CLICK)
-        self.linkinfo = (linkinfo.GetHref(), linkinfo.GetTarget())
-        
-class UrlClickHtmlWindow(wx.html.HtmlWindow):
-    """ HTML window that generates and OnLinkClicked event.
-
-    Use this to avoid having to override HTMLWindow
-    """
-    def OnLinkClicked(self, linkinfo):
-        wx.PostEvent(self, HtmlWindowUrlClick(linkinfo))
-    
-    def Bind(self, event, handler, source=None, id=wx.ID_ANY, id2=wx.ID_ANY):
-        if event == HtmlWindowUrlClick:
-            self.Connect(-1, -1, EVT_HTML_URL_CLICK, handler)
-        else:
-            wx.html.HtmlWindow.Bind(event, handler, source=source, id=id, id2=id2)
-
-class HtmlFrame(wx.Frame):
-        def _init_ctrls(self, prnt):
-            wx.Frame.__init__(self, id=ID_HTMLFRAME, name='HtmlFrame',
-                  parent=prnt, pos=wx.Point(320, 231), size=wx.Size(853, 616),
-                  style=wx.DEFAULT_FRAME_STYLE, title='')
-            self.Bind(wx.EVT_CLOSE, self.OnCloseFrame)
-            
-            self.HtmlContent = UrlClickHtmlWindow(id=ID_HTMLFRAMEHTMLCONTENT,
-                  name='HtmlContent', parent=self, pos=wx.Point(0, 0),
-                  size=wx.Size(-1, -1), style=wx.html.HW_SCROLLBAR_AUTO|wx.html.HW_NO_SELECTION)
-            self.HtmlContent.Bind(HtmlWindowUrlClick, self.OnLinkClick)
-
-        def __init__(self, parent, opened):
-            self._init_ctrls(parent)
-            self.HtmlFrameOpened = opened
-            
-        def SetHtmlCode(self, htmlcode):
-            self.HtmlContent.SetPage(htmlcode)
-            
-        def SetHtmlPage(self, htmlpage):
-            self.HtmlContent.LoadPage(htmlpage)
-            
-        def OnCloseFrame(self, event):
-            self.HtmlFrameOpened.remove(self.GetTitle())
-            event.Skip()
-        
-        def OnLinkClick(self, event):
-            url = event.linkinfo[0]
-            try:
-                if wx.Platform == '__WXMSW__':
-                    import webbrowser
-                    webbrowser.open(url)
-                elif subprocess.call("firefox %s"%url, shell=True) != 0:
-                    wx.MessageBox("""Firefox browser not found.\nPlease point your browser at :\n%s""" % url)
-            except ImportError:
-                wx.MessageBox('Please point your browser at: %s' % url)
\ No newline at end of file
--- a/docutils/docpdf.py	Tue May 15 05:19:13 2012 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,78 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-
-#This file is part of PLCOpenEditor, a library implementing an IEC 61131-3 editor
-#based on the plcopen standard. 
-#
-#Copyright (C) 2007: Edouard TISSERANT and Laurent BESSARD
-#
-#See COPYING file for copyrights details.
-#
-#This library is free software; you can redistribute it and/or
-#modify it under the terms of the GNU General Public
-#License as published by the Free Software Foundation; either
-#version 2.1 of the License, or (at your option) any later version.
-#
-#This library is distributed in the hope that it will be useful,
-#but WITHOUT ANY WARRANTY; without even the implied warranty of
-#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-#General Public License for more details.
-#
-#You should have received a copy of the GNU General Public
-#License along with this library; if not, write to the Free Software
-#Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-
-import wx, os
-
-readerexepath = None
-    
-def get_acroversion():
-    " Return version of Adobe Acrobat executable or None"
-    import _winreg
-    adobesoft = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, r'Software\Adobe')
-    for index in range(_winreg.QueryInfoKey(adobesoft)[0]):
-        key = _winreg.EnumKey(adobesoft, index)
-        if "acrobat" in key.lower():
-            acrokey = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, 'Software\\Adobe\\%s' % key)
-            for index in range(_winreg.QueryInfoKey(acrokey)[0]):
-                numver = _winreg.EnumKey(acrokey, index)
-                try:
-                    res = _winreg.QueryValue(_winreg.HKEY_LOCAL_MACHINE, 'Software\\Adobe\\%s\\%s\\InstallPath' % (key, numver))
-                    return res
-                except:
-                    pass
-    return None
-
-def open_win_pdf(readerexepath, pdffile, pagenum = None):
-    if pagenum != None :
-        os.spawnl(os.P_DETACH, readerexepath, "AcroRd32.exe", "/A", "page=%d=OpenActions" % pagenum, '"%s"'%pdffile)
-    else:
-        os.spawnl(os.P_DETACH, readerexepath, "AcroRd32.exe", '"%s"'%pdffile)
-
-def open_lin_pdf(readerexepath, pdffile, pagenum = None):
-    if pagenum == None :
-        os.system("%s -remote DS301 %s &"%(readerexepath, pdffile))
-    else:
-    	print "Open pdf %s at page %d"%(pdffile, pagenum)
-        os.system("%s -remote DS301 %s %d &"%(readerexepath, pdffile, pagenum))
-
-def open_pdf(pdffile, pagenum = None):
-    if wx.Platform == '__WXMSW__' :
-        try:
-            readerpath = get_acroversion()
-        except:
-            wx.MessageBox("Acrobat Reader is not found or installed !")
-            return None
-        
-        readerexepath = os.path.join(readerpath, "AcroRd32.exe")
-        if(os.path.isfile(readerexepath)):
-            open_win_pdf(readerexepath, pdffile, pagenum)
-        else:
-            return None
-    else:
-        readerexepath = os.path.join("/usr/bin","xpdf")
-        if(os.path.isfile(readerexepath)):
-            open_lin_pdf(readerexepath, pdffile, pagenum)
-        else:
-            wx.MessageBox("xpdf is not found or installed !")
-            return None
--- a/docutils/docsvg.py	Tue May 15 05:19:13 2012 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,63 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-
-#This file is part of PLCOpenEditor, a library implementing an IEC 61131-3 editor
-#based on the plcopen standard. 
-#
-#Copyright (C) 2007: Edouard TISSERANT and Laurent BESSARD
-#
-#See COPYING file for copyrights details.
-#
-#This library is free software; you can redistribute it and/or
-#modify it under the terms of the GNU General Public
-#License as published by the Free Software Foundation; either
-#version 2.1 of the License, or (at your option) any later version.
-#
-#This library is distributed in the hope that it will be useful,
-#but WITHOUT ANY WARRANTY; without even the implied warranty of
-#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-#General Public License for more details.
-#
-#You should have received a copy of the GNU General Public
-#License along with this library; if not, write to the Free Software
-#Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-
-import wx, os, subprocess
-
-def get_inkscape_path():
-    """ Return the Inkscape path """
-    import _winreg
-    svgexepath = _winreg.QueryValue(_winreg.HKEY_LOCAL_MACHINE,
-                 'Software\\Classes\\svgfile\\shell\\Inkscape\\command')
-    svgexepath = svgexepath.replace('"%1"', '')
-    return svgexepath.replace('"', '')
-
-def open_win_svg(svgexepath, svgfile):
-    """ Open Inkscape on Windows platform """
-    popenargs = [svgexepath]
-    if svgfile is not None :
-        popenargs.append(svgfile)
-    subprocess.Popen(popenargs).pid
-
-def open_lin_svg(svgexepath, svgfile):
-    """ Open Inkscape on Linux platform """
-    if os.path.isfile("/usr/bin/inkscape"):
-        os.system("%s %s &"%(svgexepath , svgfile))
-    
-def open_svg(svgfile):
-    """ Generic function to open SVG file """
-    if wx.Platform == '__WXMSW__' :
-        svgexepath = get_inkscape_path()
-        try:
-            open_win_svg(svgexepath , svgfile)
-        except:
-            wx.MessageBox("Inkscape is not found or installed !")
-            return None
-    else:
-        svgexepath = os.path.join("/usr/bin","inkscape")
-        if(os.path.isfile(svgexepath)):
-            open_lin_svg(svgexepath, svgfile)
-        else:
-            wx.MessageBox("Inkscape is not found or installed !")
-            return None
-
--- a/graphics/FBD_Objects.py	Tue May 15 05:19:13 2012 +0900
+++ b/graphics/FBD_Objects.py	Mon May 21 10:02:54 2012 +0200
@@ -263,6 +263,7 @@
             self.Pen = MiterPen(self.Colour)
             
             # Extract the inputs properties and create or modify the corresponding connector
+            idx = 0
             for idx, (input_name, input_type, input_modifier) in enumerate(inputs):
                 if idx < len(self.Inputs):
                     connector = self.Inputs[idx]
@@ -280,6 +281,7 @@
             self.Inputs = self.Inputs[:idx + 1]
             
             # Extract the outputs properties and create or modify the corresponding connector
+            idx = 0
             for idx, (output_name, output_type, output_modifier) in enumerate(outputs):
                 if idx < len(self.Outputs):
                     connector = self.Outputs[idx]
--- a/plcopen/plcopen.py	Tue May 15 05:19:13 2012 +0900
+++ b/plcopen/plcopen.py	Mon May 21 10:02:54 2012 +0200
@@ -234,8 +234,10 @@
             self.contentHeader.setauthor(contentheader["authorName"])
         if contentheader.has_key("language"):
             self.contentHeader.setlanguage(contentheader["language"])
-        self.contentHeader.setpageSize(*contentheader["pageSize"])
-        self.contentHeader.setscaling(contentheader["scaling"])
+        if contentheader.has_key("pageSize"):
+            self.contentHeader.setpageSize(*contentheader["pageSize"])
+        if contentheader.has_key("scaling"):
+            self.contentHeader.setscaling(contentheader["scaling"])
     setattr(cls, "setcontentHeader", setcontentHeader)
     
     def getdataTypes(self):
--- a/xmlclass/xmlclass.py	Tue May 15 05:19:13 2012 +0900
+++ b/xmlclass/xmlclass.py	Mon May 21 10:02:54 2012 +0200
@@ -1238,15 +1238,16 @@
         classmembers["setElementValue"] = generateSetElementValue(self, classinfos)
         classmembers["singleLineAttributes"] = True
         classmembers["compatibility"] = lambda x, y: None
+        classmembers["extraAttrs"] = {}
         
         class_definition = classobj(str(classname), bases, classmembers)
         setattr(class_definition, "__setattr__", generateSetattrMethod(self, class_definition, classinfos))
         class_infos = {"type": COMPILEDCOMPLEXTYPE,
-                "name": classname,
-                "check": generateClassCheckFunction(class_definition),
-                "initial": generateClassCreateFunction(class_definition),
-                "extract": generateClassExtractFunction(class_definition),
-                "generate": class_definition.generateXMLText}
+                       "name": classname,
+                       "check": generateClassCheckFunction(class_definition),
+                       "initial": generateClassCreateFunction(class_definition),
+                       "extract": generateClassExtractFunction(class_definition),
+                       "generate": class_definition.generateXMLText}
         
         if self.FileName is not None:
             self.ComputedClasses[self.FileName][classname] = class_definition
@@ -1410,6 +1411,7 @@
     elements = dict([(element["name"], element) for element in classinfos["elements"]])
     
     def loadXMLTreeMethod(self, tree, extras=[], derived=False):
+        self.extraAttrs = {}
         self.compatibility(tree)
         if not derived:
             children_structure = ""
@@ -1430,8 +1432,8 @@
             if attributes.has_key(attrname):
                 attributes[attrname]["attr_type"] = FindTypeInfos(factory, attributes[attrname]["attr_type"])
                 object.__setattr__(self, attrname, attributes[attrname]["attr_type"]["extract"](attr))
-            elif not classinfos.has_key("base") and attrname not in extras:
-                raise ValueError("Invalid attribute \"%s\" for \"%s\" element!" % (attrname, tree.nodeName))
+            elif not classinfos.has_key("base") and not attrname in extras and not self.extraAttrs.has_key(attrname):
+                self.extraAttrs[attrname] = GetAttributeValue(attr)
             required_attributes.pop(attrname, None)
         if len(required_attributes) > 0:
             raise ValueError("Required attributes %s missing for \"%s\" element!" % (", ".join(["\"%s\""%name for name in required_attributes]), tree.nodeName))
@@ -1489,8 +1491,10 @@
             text = u''
         
         first = True
+        
         if not classinfos.has_key("base"):
-            for attr, value in extras.items():
+            extras.update(self.extraAttrs)
+            for attr, value in extras.iteritems():
                 if not first and not self.singleLineAttributes:
                     text += u'\n%s' % (ind2)
                 text += u' %s=%s' % (attr, quoteattr(value))
@@ -1643,7 +1647,7 @@
                 elif element["elmt_type"]["type"] == SIMPLETYPE:
                     children.append({"name": element_name, "require": element["minOccurs"] != 0, 
                         "type": gettypeinfos(element["elmt_type"]["basename"], 
-                                              element["elmt_type"]["facets"]),
+                                             element["elmt_type"]["facets"]),
                         "value": getattr(self, element_name, None)})
                 else:
                     instance = getattr(self, element_name, None)
@@ -1677,6 +1681,9 @@
                         setattr(self, parts[0], elements[parts[0]]["elmt_type"]["extract"](value, False))
                 else:
                     instance = getattr(self, parts[0], None)
+                    if instance is None and elements[parts[0]]["minOccurs"] == 0:
+                        instance = elements[parts[0]]["elmt_type"]["initial"]()
+                        setattr(self, parts[0], instance)
                     if instance != None:
                         if len(parts) > 1:
                             instance.setElementValue(parts[1], value)
@@ -1702,6 +1709,7 @@
 """
 def generateInitMethod(factory, classinfos):
     def initMethod(self):
+        self.extraAttrs = {}
         if classinfos.has_key("base"):
             classinfos["base"].__init__(self)
         for attribute in classinfos["attributes"]:
@@ -1837,14 +1845,8 @@
 """
 This function generate the classes from a class factory
 """
-def GenerateClasses(factory, declare=False):
+def GenerateClasses(factory):
     ComputedClasses = factory.CreateClasses()
-    #factory.PrintClasses()
-    if declare:
-        for ClassName, Class in pluginClasses.items():
-            sys._getframe(1).f_locals[ClassName] = Class
-        for TypeName, Type in pluginTypes.items():
-            sys._getframe(1).f_locals[TypeName] = Type
     if factory.FileName is not None and len(ComputedClasses) == 1:
         globals().update(ComputedClasses[factory.FileName])
         return ComputedClasses[factory.FileName]
--- a/xmlclass/xsdschema.py	Tue May 15 05:19:13 2012 +0900
+++ b/xmlclass/xsdschema.py	Mon May 21 10:02:54 2012 +0200
@@ -1086,17 +1086,17 @@
 """
 This function opens the xsd file and generate the classes from the xml tree
 """
-def GenerateClassesFromXSD(filepath, declare=False):
+def GenerateClassesFromXSD(filepath):
     xsdfile = open(filepath, 'r')
     factory = XSDClassFactory(minidom.parse(xsdfile), filepath)
     xsdfile.close()
-    return GenerateClasses(factory, declare)
+    return GenerateClasses(factory)
 
 """
 This function generate the classes from the xsd given as a string
 """
-def GenerateClassesFromXSDstring(xsdstring, declare=False):
-    return GenerateClasses(XSDClassFactory(minidom.parseString(xsdstring)), declare)
+def GenerateClassesFromXSDstring(xsdstring):
+    return GenerateClasses(XSDClassFactory(minidom.parseString(xsdstring)))
 
 
 #-------------------------------------------------------------------------------