merrol 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (82) hide show
  1. data/.autotest +7 -0
  2. data/.gitignore +4 -0
  3. data/.rspec +2 -0
  4. data/LICENSE +23 -0
  5. data/README.md +58 -0
  6. data/ROADMAP.md +22 -0
  7. data/Rakefile +63 -0
  8. data/autotest/discover.rb +2 -0
  9. data/bin/m +9 -0
  10. data/config/commands.yml +150 -0
  11. data/config/language.yml +47 -0
  12. data/config/messages.yml +3 -0
  13. data/config/settings.yml +3 -0
  14. data/config/snippets/rails.yml +22 -0
  15. data/config/snippets/rspec.yml +35 -0
  16. data/config/snippets/ruby.yml +97 -0
  17. data/config/styles/Railscasts.xml +121 -0
  18. data/config/templates/rails.yml +21 -0
  19. data/config/templates/rspec.yml +6 -0
  20. data/data/images/merrol.svg +412 -0
  21. data/data/images/merrol2.svg +531 -0
  22. data/data/images/modified.svg +156 -0
  23. data/data/images/saved.svg +156 -0
  24. data/lib/merrol/controllers/controller.rb +26 -0
  25. data/lib/merrol/controllers/edit_controller.rb +24 -0
  26. data/lib/merrol/controllers/file_controller.rb +61 -0
  27. data/lib/merrol/controllers/help_controller.rb +6 -0
  28. data/lib/merrol/controllers/main_controller.rb +26 -0
  29. data/lib/merrol/controllers/search_controller.rb +5 -0
  30. data/lib/merrol/controllers/tools_controller.rb +28 -0
  31. data/lib/merrol/gtk/bin.rb +11 -0
  32. data/lib/merrol/gtk/image.rb +8 -0
  33. data/lib/merrol/gtk/list_view.rb +43 -0
  34. data/lib/merrol/gtk/source_view.rb +22 -0
  35. data/lib/merrol/gtk/widget.rb +12 -0
  36. data/lib/merrol/gtk/window.rb +18 -0
  37. data/lib/merrol/keyboard_map.rb +136 -0
  38. data/lib/merrol/lib/application.rb +29 -0
  39. data/lib/merrol/lib/commands.rb +40 -0
  40. data/lib/merrol/lib/file.rb +6 -0
  41. data/lib/merrol/lib/shortcut.rb +35 -0
  42. data/lib/merrol/lib/widget_builder.rb +49 -0
  43. data/lib/merrol/lib/yaml.rb +10 -0
  44. data/lib/merrol/models/source_model.rb +44 -0
  45. data/lib/merrol/views/edit.yml +50 -0
  46. data/lib/merrol/views/file_list.yml +11 -0
  47. data/lib/merrol/views/file_path.yml +8 -0
  48. data/lib/merrol/views/file_status.yml +6 -0
  49. data/lib/merrol/views/hbox.yml +6 -0
  50. data/lib/merrol/views/main.yml +9 -0
  51. data/lib/merrol/views/scroll_bars.yml +15 -0
  52. data/lib/merrol/views/status_bar.yml +7 -0
  53. data/lib/merrol.rb +16 -0
  54. data/lib/prerequisites.rb +54 -0
  55. data/merrol.gemspec +24 -0
  56. data/spec/controllers/controller_spec.rb +27 -0
  57. data/spec/controllers/edit_controller_spec.rb +38 -0
  58. data/spec/controllers/file_controller_spec.rb +209 -0
  59. data/spec/controllers/main_controller_spec.rb +20 -0
  60. data/spec/gtk/bin_spec.rb +13 -0
  61. data/spec/gtk/list_view_spec.rb +114 -0
  62. data/spec/gtk/source_view_spec.rb +41 -0
  63. data/spec/gtk/widget_spec.rb +37 -0
  64. data/spec/gtk/window_spec.rb +28 -0
  65. data/spec/integration/000_startup_spec.rb +14 -0
  66. data/spec/integration/001_load_from_commandline_spec.rb +25 -0
  67. data/spec/integration/002_loading_and_saving_spec.rb +35 -0
  68. data/spec/integration/003_tab_file_switching_spec.rb +49 -0
  69. data/spec/integration/ideas_spec.rb +23 -0
  70. data/spec/integration_helper.rb +11 -0
  71. data/spec/lib/application_spec.rb +57 -0
  72. data/spec/lib/commands_spec.rb +63 -0
  73. data/spec/lib/file_spec.rb +9 -0
  74. data/spec/lib/shortcut_spec.rb +59 -0
  75. data/spec/lib/widget_builder_spec.rb +77 -0
  76. data/spec/lib/yaml_spec.rb +26 -0
  77. data/spec/models/source_model_spec.rb +80 -0
  78. data/spec/spec_helper.rb +18 -0
  79. data/spec/support/actions.rb +28 -0
  80. data/spec/support/expectations.rb +46 -0
  81. data/spec/support/setup.rb +32 -0
  82. metadata +224 -0
@@ -0,0 +1,21 @@
1
+ model:
2
+ match_path: app/models/
3
+ content: |
4
+ class <basename.camelize> < ActiveRecord::Base
5
+ <>
6
+ end
7
+
8
+ controller:
9
+ match_path: app/controllers/
10
+ content: |
11
+ class <basename.camilize> < ApplicationController
12
+ <>
13
+ end
14
+
15
+ controller:
16
+ match_path: app/controllers/admin
17
+ content: |
18
+ class <basename.camilize> < AdminController
19
+ <>
20
+ end
21
+
@@ -0,0 +1,6 @@
1
+ match_path: _spec.rb$
2
+ content: |
3
+ require 'spec_helper'
4
+
5
+ describe<>
6
+
@@ -0,0 +1,412 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <!-- Created with Inkscape (http://www.inkscape.org/) -->
3
+
4
+ <svg
5
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
6
+ xmlns:cc="http://creativecommons.org/ns#"
7
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
8
+ xmlns:svg="http://www.w3.org/2000/svg"
9
+ xmlns="http://www.w3.org/2000/svg"
10
+ xmlns:xlink="http://www.w3.org/1999/xlink"
11
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
12
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
13
+ width="48.000000px"
14
+ height="48.000000px"
15
+ id="svg6361"
16
+ sodipodi:version="0.32"
17
+ inkscape:version="0.47 r22583"
18
+ sodipodi:docname="merrol.svg"
19
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
20
+ version="1.1">
21
+ <defs
22
+ id="defs3">
23
+ <linearGradient
24
+ id="linearGradient3699">
25
+ <stop
26
+ id="stop3701"
27
+ offset="0"
28
+ style="stop-color:#ffffff;stop-opacity:0.74336284;" />
29
+ <stop
30
+ id="stop3703"
31
+ offset="1"
32
+ style="stop-color:#dbdbdb;stop-opacity:0.71681416;" />
33
+ </linearGradient>
34
+ <linearGradient
35
+ id="linearGradient3636">
36
+ <stop
37
+ style="stop-color:#ff0000;stop-opacity:1;"
38
+ offset="0"
39
+ id="stop3638" />
40
+ <stop
41
+ style="stop-color:#ff0000;stop-opacity:0;"
42
+ offset="1"
43
+ id="stop3640" />
44
+ </linearGradient>
45
+ <inkscape:perspective
46
+ sodipodi:type="inkscape:persp3d"
47
+ inkscape:vp_x="0 : 24 : 1"
48
+ inkscape:vp_y="0 : 1000 : 0"
49
+ inkscape:vp_z="48 : 24 : 1"
50
+ inkscape:persp3d-origin="24 : 16 : 1"
51
+ id="perspective52" />
52
+ <linearGradient
53
+ id="linearGradient2256">
54
+ <stop
55
+ style="stop-color:#ff0202;stop-opacity:1;"
56
+ offset="0"
57
+ id="stop2258" />
58
+ <stop
59
+ style="stop-color:#ff9b9b;stop-opacity:1;"
60
+ offset="1"
61
+ id="stop2260" />
62
+ </linearGradient>
63
+ <linearGradient
64
+ id="linearGradient2248">
65
+ <stop
66
+ style="stop-color:#ffffff;stop-opacity:0.66371679;"
67
+ offset="0"
68
+ id="stop2250" />
69
+ <stop
70
+ style="stop-color:#ffffff;stop-opacity:0;"
71
+ offset="1"
72
+ id="stop2252" />
73
+ </linearGradient>
74
+ <linearGradient
75
+ id="linearGradient9647">
76
+ <stop
77
+ style="stop-color:#ffffff;stop-opacity:1;"
78
+ offset="0"
79
+ id="stop9649" />
80
+ <stop
81
+ style="stop-color:#dbdbdb;stop-opacity:1;"
82
+ offset="1"
83
+ id="stop9651" />
84
+ </linearGradient>
85
+ <linearGradient
86
+ inkscape:collect="always"
87
+ id="linearGradient21644">
88
+ <stop
89
+ style="stop-color:#000000;stop-opacity:1;"
90
+ offset="0"
91
+ id="stop21646" />
92
+ <stop
93
+ style="stop-color:#000000;stop-opacity:0;"
94
+ offset="1"
95
+ id="stop21648" />
96
+ </linearGradient>
97
+ <radialGradient
98
+ inkscape:collect="always"
99
+ xlink:href="#linearGradient21644"
100
+ id="radialGradient21650"
101
+ cx="25.125"
102
+ cy="36.75"
103
+ fx="25.125"
104
+ fy="36.75"
105
+ r="15.75"
106
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.595238,-2.300678e-15,14.87500)"
107
+ gradientUnits="userSpaceOnUse" />
108
+ <linearGradient
109
+ inkscape:collect="always"
110
+ id="linearGradient7895">
111
+ <stop
112
+ style="stop-color:#ffffff;stop-opacity:1;"
113
+ offset="0"
114
+ id="stop7897" />
115
+ <stop
116
+ style="stop-color:#ffffff;stop-opacity:0;"
117
+ offset="1"
118
+ id="stop7899" />
119
+ </linearGradient>
120
+ <linearGradient
121
+ id="linearGradient4981">
122
+ <stop
123
+ style="stop-color:#9e0000;stop-opacity:1;"
124
+ offset="0"
125
+ id="stop4983" />
126
+ <stop
127
+ style="stop-color:#b30000;stop-opacity:1.0000000;"
128
+ offset="1.0000000"
129
+ id="stop4985" />
130
+ </linearGradient>
131
+ <linearGradient
132
+ id="linearGradient15762"
133
+ inkscape:collect="always">
134
+ <stop
135
+ id="stop15764"
136
+ offset="0"
137
+ style="stop-color:#ffffff;stop-opacity:1;" />
138
+ <stop
139
+ id="stop15766"
140
+ offset="1"
141
+ style="stop-color:#ffffff;stop-opacity:0;" />
142
+ </linearGradient>
143
+ <linearGradient
144
+ id="linearGradient14236">
145
+ <stop
146
+ id="stop14238"
147
+ offset="0.0000000"
148
+ style="stop-color:#ed4040;stop-opacity:1.0000000;" />
149
+ <stop
150
+ id="stop14240"
151
+ offset="1.0000000"
152
+ style="stop-color:#a40000;stop-opacity:1.0000000;" />
153
+ </linearGradient>
154
+ <linearGradient
155
+ id="linearGradient11780">
156
+ <stop
157
+ style="stop-color:#ff8b8b;stop-opacity:1.0000000;"
158
+ offset="0.0000000"
159
+ id="stop11782" />
160
+ <stop
161
+ style="stop-color:#ec1b1b;stop-opacity:1.0000000;"
162
+ offset="1.0000000"
163
+ id="stop11784" />
164
+ </linearGradient>
165
+ <linearGradient
166
+ id="linearGradient11014">
167
+ <stop
168
+ style="stop-color:#a80000;stop-opacity:1.0000000;"
169
+ offset="0.0000000"
170
+ id="stop11016" />
171
+ <stop
172
+ style="stop-color:#c60000;stop-opacity:1.0000000;"
173
+ offset="0.0000000"
174
+ id="stop13245" />
175
+ <stop
176
+ style="stop-color:#e50000;stop-opacity:1.0000000;"
177
+ offset="1.0000000"
178
+ id="stop11018" />
179
+ </linearGradient>
180
+ <linearGradient
181
+ y2="9.6507530"
182
+ x2="9.8940229"
183
+ y1="5.3855424"
184
+ x1="5.7365270"
185
+ gradientTransform="matrix(-1.000000,0.000000,0.000000,-1.000000,31.72170,31.29079)"
186
+ gradientUnits="userSpaceOnUse"
187
+ id="linearGradient15772"
188
+ xlink:href="#linearGradient15762"
189
+ inkscape:collect="always" />
190
+ <linearGradient
191
+ inkscape:collect="always"
192
+ xlink:href="#linearGradient11780"
193
+ id="linearGradient2057"
194
+ x1="15.737001"
195
+ y1="12.503600"
196
+ x2="53.570126"
197
+ y2="47.374317"
198
+ gradientUnits="userSpaceOnUse"
199
+ gradientTransform="matrix(1.04829,0,0,1.04829,-1.1587651,-0.97118982)" />
200
+ <linearGradient
201
+ inkscape:collect="always"
202
+ xlink:href="#linearGradient4981"
203
+ id="linearGradient4987"
204
+ x1="17.808485"
205
+ y1="7.5428391"
206
+ x2="43.797836"
207
+ y2="45.996929"
208
+ gradientUnits="userSpaceOnUse"
209
+ gradientTransform="matrix(1.04829,0,0,1.04829,-1.1587651,-0.97118982)" />
210
+ <linearGradient
211
+ inkscape:collect="always"
212
+ xlink:href="#linearGradient7895"
213
+ id="linearGradient7901"
214
+ x1="15.578875"
215
+ y1="16.285088"
216
+ x2="32.166405"
217
+ y2="28.394291"
218
+ gradientUnits="userSpaceOnUse" />
219
+ <linearGradient
220
+ inkscape:collect="always"
221
+ xlink:href="#linearGradient4981"
222
+ id="linearGradient2243"
223
+ gradientUnits="userSpaceOnUse"
224
+ x1="23.995985"
225
+ y1="20.105337"
226
+ x2="41.047836"
227
+ y2="37.959785"
228
+ gradientTransform="matrix(0.988373,0.000000,0.000000,0.988373,0.279002,0.278984)" />
229
+ <radialGradient
230
+ inkscape:collect="always"
231
+ xlink:href="#linearGradient2248"
232
+ id="radialGradient2254"
233
+ cx="16.75"
234
+ cy="10.666344"
235
+ fx="16.75"
236
+ fy="10.666344"
237
+ r="21.25"
238
+ gradientTransform="matrix(4.3555997,0,0,3.3531892,-56.556204,-23.519079)"
239
+ gradientUnits="userSpaceOnUse" />
240
+ <linearGradient
241
+ inkscape:collect="always"
242
+ xlink:href="#linearGradient2256"
243
+ id="linearGradient3642"
244
+ x1="12.820313"
245
+ y1="11.087891"
246
+ x2="36.529297"
247
+ y2="45.793945"
248
+ gradientUnits="userSpaceOnUse" />
249
+ <linearGradient
250
+ inkscape:collect="always"
251
+ xlink:href="#linearGradient2256"
252
+ id="linearGradient3644"
253
+ gradientUnits="userSpaceOnUse"
254
+ x1="21.320314"
255
+ y1="13.712891"
256
+ x2="24.674805"
257
+ y2="35.793945"
258
+ gradientTransform="matrix(1.1681209,0,0,1.0948619,-4.1483505,-2.8174149)" />
259
+ <radialGradient
260
+ inkscape:collect="always"
261
+ xlink:href="#linearGradient9647"
262
+ id="radialGradient3654"
263
+ cx="24.674805"
264
+ cy="33.798439"
265
+ fx="24.674805"
266
+ fy="33.798439"
267
+ r="12.004492"
268
+ gradientTransform="matrix(1.5208589,-9.1108084e-8,1.350338e-7,1.980239,-12.852097,-33.999156)"
269
+ gradientUnits="userSpaceOnUse" />
270
+ <linearGradient
271
+ inkscape:collect="always"
272
+ xlink:href="#linearGradient4981"
273
+ id="linearGradient3681"
274
+ gradientUnits="userSpaceOnUse"
275
+ gradientTransform="matrix(1.04829,0,0,1.04829,-1.1587651,-0.97118982)"
276
+ x1="17.808485"
277
+ y1="7.5428391"
278
+ x2="43.797836"
279
+ y2="45.996929" />
280
+ <linearGradient
281
+ inkscape:collect="always"
282
+ xlink:href="#linearGradient4981"
283
+ id="linearGradient3685"
284
+ gradientUnits="userSpaceOnUse"
285
+ gradientTransform="matrix(1.04829,0,0,1.04829,-1.1587651,-0.97118982)"
286
+ x1="17.808485"
287
+ y1="7.5428391"
288
+ x2="43.797836"
289
+ y2="45.996929" />
290
+ <linearGradient
291
+ inkscape:collect="always"
292
+ xlink:href="#linearGradient9647"
293
+ id="linearGradient3689"
294
+ gradientUnits="userSpaceOnUse"
295
+ gradientTransform="matrix(1.04829,0,0,1.04829,-1.1587651,-0.97118982)"
296
+ x1="17.808485"
297
+ y1="7.5428391"
298
+ x2="43.797836"
299
+ y2="45.996929" />
300
+ <linearGradient
301
+ inkscape:collect="always"
302
+ xlink:href="#linearGradient3699"
303
+ id="linearGradient3697"
304
+ x1="0.94460499"
305
+ y1="24.1875"
306
+ x2="47.055393"
307
+ y2="24.1875"
308
+ gradientUnits="userSpaceOnUse" />
309
+ </defs>
310
+ <sodipodi:namedview
311
+ inkscape:guide-bbox="true"
312
+ showguides="true"
313
+ id="base"
314
+ pagecolor="#ffffff"
315
+ bordercolor="#666666"
316
+ borderopacity="0.15294118"
317
+ inkscape:pageopacity="0.0"
318
+ inkscape:pageshadow="2"
319
+ inkscape:zoom="16"
320
+ inkscape:cx="14.669877"
321
+ inkscape:cy="25.616403"
322
+ inkscape:current-layer="layer1"
323
+ showgrid="false"
324
+ inkscape:grid-bbox="true"
325
+ inkscape:document-units="px"
326
+ inkscape:window-width="1920"
327
+ inkscape:window-height="1112"
328
+ inkscape:window-x="0"
329
+ inkscape:window-y="25"
330
+ inkscape:showpageshadow="false"
331
+ inkscape:window-maximized="1" />
332
+ <metadata
333
+ id="metadata4">
334
+ <rdf:RDF>
335
+ <cc:Work
336
+ rdf:about="">
337
+ <dc:format>image/svg+xml</dc:format>
338
+ <dc:type
339
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
340
+ <dc:title></dc:title>
341
+ <dc:date>2005-10-16</dc:date>
342
+ <dc:creator>
343
+ <cc:Agent>
344
+ <dc:title>Andreas Nilsson</dc:title>
345
+ </cc:Agent>
346
+ </dc:creator>
347
+ <dc:subject>
348
+ <rdf:Bag>
349
+ <rdf:li>stop</rdf:li>
350
+ <rdf:li>halt</rdf:li>
351
+ <rdf:li>error</rdf:li>
352
+ </rdf:Bag>
353
+ </dc:subject>
354
+ <cc:license
355
+ rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
356
+ <dc:contributor>
357
+ <cc:Agent>
358
+ <dc:title>Jakub Steiner</dc:title>
359
+ </cc:Agent>
360
+ </dc:contributor>
361
+ </cc:Work>
362
+ <cc:License
363
+ rdf:about="http://creativecommons.org/licenses/publicdomain/">
364
+ <cc:permits
365
+ rdf:resource="http://creativecommons.org/ns#Reproduction" />
366
+ <cc:permits
367
+ rdf:resource="http://creativecommons.org/ns#Distribution" />
368
+ <cc:permits
369
+ rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
370
+ </cc:License>
371
+ </rdf:RDF>
372
+ </metadata>
373
+ <g
374
+ id="layer1"
375
+ inkscape:label="Layer 1"
376
+ inkscape:groupmode="layer">
377
+ <path
378
+ d="M 15.1875,1.65625 1.46875,15.25 l 0,18 L 15,46.71875 l 18.28125,0 13.25,-12.59375 0,-18.75 -13.4375,-13.71875 -17.90625,0 z"
379
+ id="path3687"
380
+ style="fill:url(#linearGradient3689);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient3697);stroke-width:1.04829001000000011;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
381
+ inkscape:original="M 15.1875 1.65625 L 1.46875 15.25 L 1.46875 33.25 L 15 46.71875 L 33.28125 46.71875 L 46.53125 34.125 L 46.53125 15.375 L 33.09375 1.65625 L 15.1875 1.65625 z "
382
+ inkscape:radius="0"
383
+ sodipodi:type="inkscape:offset"
384
+ transform="matrix(1.0352412,0,0,1.0352412,-0.84578902,-0.85239675)" />
385
+ <path
386
+ sodipodi:type="inkscape:offset"
387
+ inkscape:radius="0"
388
+ inkscape:original="M 15.1875 1.65625 L 1.46875 15.25 L 1.46875 33.25 L 15 46.71875 L 33.28125 46.71875 L 46.53125 34.125 L 46.53125 15.375 L 33.09375 1.65625 L 15.1875 1.65625 z "
389
+ style="fill:url(#linearGradient3685);fill-opacity:1;fill-rule:evenodd;stroke:#870000;stroke-width:1.04829001000000011;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
390
+ id="path3683"
391
+ d="M 15.1875,1.65625 1.46875,15.25 l 0,18 L 15,46.71875 l 18.28125,0 13.25,-12.59375 0,-18.75 -13.4375,-13.71875 -17.90625,0 z" />
392
+ <path
393
+ style="opacity:0.81318683;fill:none;stroke:url(#linearGradient2057);stroke-width:1.04829025;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1"
394
+ d="m 15.635527,2.698184 17.011553,0 12.839343,13.022251 0,17.940732 -12.430606,12.003789 -17.577955,0 -12.9580947,-12.87207 0,-17.153282 13.1157597,-12.94142 z"
395
+ id="path9482"
396
+ sodipodi:nodetypes="ccccccccc" />
397
+ <path
398
+ style="opacity:0.28977272;fill:url(#radialGradient2254);fill-opacity:1;fill-rule:evenodd;stroke:none"
399
+ d="M 15.286284,1.9116076 1.7240322,15.342823 l 0,17.820929 3.0793518,3.046593 C 22.375387,36.270674 22.076231,22.56299 46.276355,23.761901 l 0,-8.288042 -13.300178,-13.5622514 -17.689893,0 z"
400
+ id="path2241"
401
+ sodipodi:nodetypes="cccccccc" />
402
+ <g
403
+ style="font-size:28px;font-style:normal;font-weight:bold;fill:#ffffff;fill-opacity:1;stroke:url(#linearGradient3642);stroke-linejoin:round;stroke-opacity:1;font-family:Bitstream Vera Sans;-inkscape-font-specification:Andale Mono Bold"
404
+ id="text2857"
405
+ transform="matrix(1.04829,0,0,1.04829,-1.9329101,1.8874626)">
406
+ <path
407
+ d="m 11.411386,9.8697257 7.825495,0 5.429939,11.9600823 5.461877,-11.9600823 7.809527,0 0,22.3484403 -5.813227,0 0,-16.345948 -5.493818,12.049898 -3.896778,0 -5.493818,-12.049898 0,16.345948 -5.829197,0 0,-22.3484403"
408
+ id="path2862"
409
+ style="fill:url(#radialGradient3654);fill-opacity:1;stroke:url(#linearGradient3644);stroke-width:1.47016776;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
410
+ </g>
411
+ </g>
412
+ </svg>