coupler 0.0.1-java

Sign up to get free protection for your applications and to get access to all the features.
Files changed (258) hide show
  1. data/.document +5 -0
  2. data/.gitmodules +3 -0
  3. data/.rvmrc +1 -0
  4. data/.vimrc +40 -0
  5. data/Gemfile +27 -0
  6. data/Gemfile.lock +71 -0
  7. data/LICENSE +20 -0
  8. data/NOTES +6 -0
  9. data/README.rdoc +18 -0
  10. data/Rakefile +42 -0
  11. data/TODO +11 -0
  12. data/VERSION +1 -0
  13. data/bin/coupler +7 -0
  14. data/db/.gitignore +6 -0
  15. data/db/migrate/001_initial_schema.rb +166 -0
  16. data/db/migrate/002_stub.rb +4 -0
  17. data/db/migrate/003_stub.rb +4 -0
  18. data/db/migrate/004_create_comparisons.rb +28 -0
  19. data/db/migrate/005_move_database_name.rb +19 -0
  20. data/db/migrate/006_upgrade_comparisons.rb +34 -0
  21. data/db/migrate/007_add_which_to_comparisons.rb +23 -0
  22. data/db/migrate/008_add_result_field_to_transformations.rb +33 -0
  23. data/db/migrate/009_add_generated_flag_to_fields.rb +13 -0
  24. data/db/migrate/010_create_imports.rb +24 -0
  25. data/db/migrate/011_add_primary_key_type.rb +13 -0
  26. data/db/migrate/012_add_transformed_with_to_resources.rb +13 -0
  27. data/db/migrate/013_add_run_count_to_scenarios.rb +13 -0
  28. data/db/migrate/014_add_last_accessed_at_to_some_tables.rb +13 -0
  29. data/db/migrate/015_add_run_number_to_results.rb +15 -0
  30. data/db/migrate/016_fix_scenario_run_count.rb +27 -0
  31. data/db/migrate/017_rename_comparison_columns.rb +14 -0
  32. data/db/migrate/018_fix_scenario_linkage_type.rb +8 -0
  33. data/db/migrate/019_add_columns_to_imports.rb +24 -0
  34. data/db/migrate/020_rename_import_columns.rb +12 -0
  35. data/db/migrate/021_add_fields_to_connections.rb +15 -0
  36. data/db/migrate/022_remove_database_name_from_resources.rb +11 -0
  37. data/features/connections.feature +28 -0
  38. data/features/matchers.feature +35 -0
  39. data/features/projects.feature +11 -0
  40. data/features/resources.feature +62 -0
  41. data/features/scenarios.feature +45 -0
  42. data/features/step_definitions/coupler_steps.rb +145 -0
  43. data/features/step_definitions/matchers_steps.rb +26 -0
  44. data/features/step_definitions/resources_steps.rb +12 -0
  45. data/features/step_definitions/scenarios_steps.rb +7 -0
  46. data/features/step_definitions/transformations_steps.rb +3 -0
  47. data/features/support/env.rb +128 -0
  48. data/features/transformations.feature +22 -0
  49. data/features/wizard.feature +10 -0
  50. data/gfx/coupler-header.svg +213 -0
  51. data/gfx/coupler-sidebar.svg +656 -0
  52. data/gfx/coupler.svg +184 -0
  53. data/gfx/icon.svg +75 -0
  54. data/lib/coupler/base.rb +63 -0
  55. data/lib/coupler/config.rb +128 -0
  56. data/lib/coupler/data_uploader.rb +20 -0
  57. data/lib/coupler/database.rb +31 -0
  58. data/lib/coupler/extensions/connections.rb +57 -0
  59. data/lib/coupler/extensions/exceptions.rb +58 -0
  60. data/lib/coupler/extensions/imports.rb +43 -0
  61. data/lib/coupler/extensions/jobs.rb +21 -0
  62. data/lib/coupler/extensions/matchers.rb +64 -0
  63. data/lib/coupler/extensions/projects.rb +62 -0
  64. data/lib/coupler/extensions/resources.rb +89 -0
  65. data/lib/coupler/extensions/results.rb +100 -0
  66. data/lib/coupler/extensions/scenarios.rb +50 -0
  67. data/lib/coupler/extensions/transformations.rb +70 -0
  68. data/lib/coupler/extensions/transformers.rb +58 -0
  69. data/lib/coupler/extensions.rb +16 -0
  70. data/lib/coupler/helpers.rb +121 -0
  71. data/lib/coupler/import_buffer.rb +48 -0
  72. data/lib/coupler/logger.rb +16 -0
  73. data/lib/coupler/models/common_model.rb +104 -0
  74. data/lib/coupler/models/comparison.rb +166 -0
  75. data/lib/coupler/models/connection.rb +59 -0
  76. data/lib/coupler/models/field.rb +55 -0
  77. data/lib/coupler/models/import.rb +238 -0
  78. data/lib/coupler/models/job.rb +42 -0
  79. data/lib/coupler/models/jobify.rb +17 -0
  80. data/lib/coupler/models/matcher.rb +36 -0
  81. data/lib/coupler/models/project.rb +40 -0
  82. data/lib/coupler/models/resource.rb +287 -0
  83. data/lib/coupler/models/result.rb +92 -0
  84. data/lib/coupler/models/scenario/runner.rb +357 -0
  85. data/lib/coupler/models/scenario.rb +115 -0
  86. data/lib/coupler/models/transformation.rb +117 -0
  87. data/lib/coupler/models/transformer/runner.rb +28 -0
  88. data/lib/coupler/models/transformer.rb +110 -0
  89. data/lib/coupler/models.rb +30 -0
  90. data/lib/coupler/runner.rb +76 -0
  91. data/lib/coupler/scheduler.rb +56 -0
  92. data/lib/coupler.rb +34 -0
  93. data/log/.gitignore +1 -0
  94. data/misc/README +5 -0
  95. data/misc/jruby-json.license +57 -0
  96. data/misc/rack-flash.license +22 -0
  97. data/script/dbconsole.rb +5 -0
  98. data/src/edu/vanderbilt/coupler/Main.java +116 -0
  99. data/src/edu/vanderbilt/coupler/jruby.properties +1 -0
  100. data/tasks/annotations.rake +84 -0
  101. data/tasks/db.rake +120 -0
  102. data/tasks/environment.rake +12 -0
  103. data/tasks/jeweler.rake +43 -0
  104. data/tasks/package.rake +58 -0
  105. data/tasks/rdoc.rake +13 -0
  106. data/tasks/test.rake +63 -0
  107. data/tasks/vendor.rake +43 -0
  108. data/test/README.txt +6 -0
  109. data/test/config.yml +9 -0
  110. data/test/coupler/models/test_import.rb +221 -0
  111. data/test/factories.rb +91 -0
  112. data/test/fixtures/duplicate-keys.csv +5 -0
  113. data/test/fixtures/no-headers.csv +50 -0
  114. data/test/fixtures/people.csv +51 -0
  115. data/test/fixtures/varying-row-size.csv +4 -0
  116. data/test/helper.rb +156 -0
  117. data/test/integration/extensions/test_connections.rb +80 -0
  118. data/test/integration/extensions/test_imports.rb +94 -0
  119. data/test/integration/extensions/test_jobs.rb +52 -0
  120. data/test/integration/extensions/test_matchers.rb +134 -0
  121. data/test/integration/extensions/test_projects.rb +82 -0
  122. data/test/integration/extensions/test_resources.rb +150 -0
  123. data/test/integration/extensions/test_results.rb +89 -0
  124. data/test/integration/extensions/test_scenarios.rb +88 -0
  125. data/test/integration/extensions/test_transformations.rb +113 -0
  126. data/test/integration/extensions/test_transformers.rb +80 -0
  127. data/test/integration/test_field.rb +45 -0
  128. data/test/integration/test_import.rb +78 -0
  129. data/test/integration/test_running_scenarios.rb +379 -0
  130. data/test/integration/test_transformation.rb +56 -0
  131. data/test/integration/test_transforming.rb +154 -0
  132. data/test/table_sets.rb +76 -0
  133. data/test/unit/models/test_common_model.rb +130 -0
  134. data/test/unit/models/test_comparison.rb +619 -0
  135. data/test/unit/models/test_connection.rb +115 -0
  136. data/test/unit/models/test_field.rb +99 -0
  137. data/test/unit/models/test_import.rb +130 -0
  138. data/test/unit/models/test_job.rb +115 -0
  139. data/test/unit/models/test_matcher.rb +82 -0
  140. data/test/unit/models/test_project.rb +102 -0
  141. data/test/unit/models/test_resource.rb +564 -0
  142. data/test/unit/models/test_result.rb +90 -0
  143. data/test/unit/models/test_scenario.rb +199 -0
  144. data/test/unit/models/test_transformation.rb +193 -0
  145. data/test/unit/models/test_transformer.rb +188 -0
  146. data/test/unit/test_base.rb +60 -0
  147. data/test/unit/test_data_uploader.rb +27 -0
  148. data/test/unit/test_database.rb +23 -0
  149. data/test/unit/test_helpers.rb +58 -0
  150. data/test/unit/test_logger.rb +10 -0
  151. data/test/unit/test_models.rb +12 -0
  152. data/test/unit/test_runner.rb +76 -0
  153. data/test/unit/test_scheduler.rb +66 -0
  154. data/uploads/.gitignore +2 -0
  155. data/vendor/java/.gitignore +5 -0
  156. data/webroot/public/css/960.css +1 -0
  157. data/webroot/public/css/dataTables.css +1057 -0
  158. data/webroot/public/css/jquery-ui.css +572 -0
  159. data/webroot/public/css/jquery.treeview.css +68 -0
  160. data/webroot/public/css/reset.css +1 -0
  161. data/webroot/public/css/style.css +504 -0
  162. data/webroot/public/css/text.css +1 -0
  163. data/webroot/public/favicon.ico +0 -0
  164. data/webroot/public/images/12_col.gif +0 -0
  165. data/webroot/public/images/16_col.gif +0 -0
  166. data/webroot/public/images/add.png +0 -0
  167. data/webroot/public/images/ajax-loader.gif +0 -0
  168. data/webroot/public/images/cog.png +0 -0
  169. data/webroot/public/images/coupler.png +0 -0
  170. data/webroot/public/images/foo.png +0 -0
  171. data/webroot/public/images/hammer.png +0 -0
  172. data/webroot/public/images/header.png +0 -0
  173. data/webroot/public/images/home.gif +0 -0
  174. data/webroot/public/images/jobs.gif +0 -0
  175. data/webroot/public/images/sidebar-bottom.png +0 -0
  176. data/webroot/public/images/sidebar.png +0 -0
  177. data/webroot/public/images/treeview-default-line.gif +0 -0
  178. data/webroot/public/images/treeview-default.gif +0 -0
  179. data/webroot/public/images/ui-anim_basic_16x16.gif +0 -0
  180. data/webroot/public/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  181. data/webroot/public/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  182. data/webroot/public/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  183. data/webroot/public/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  184. data/webroot/public/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  185. data/webroot/public/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  186. data/webroot/public/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  187. data/webroot/public/images/ui-bg_highlight-hard_30_565356_1x100.png +0 -0
  188. data/webroot/public/images/ui-bg_highlight-hard_75_888588_1x100.png +0 -0
  189. data/webroot/public/images/ui-bg_highlight-soft_30_6e3b3a_1x100.png +0 -0
  190. data/webroot/public/images/ui-bg_highlight-soft_35_8e8b8e_1x100.png +0 -0
  191. data/webroot/public/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  192. data/webroot/public/images/ui-icons_222222_256x240.png +0 -0
  193. data/webroot/public/images/ui-icons_2e83ff_256x240.png +0 -0
  194. data/webroot/public/images/ui-icons_454545_256x240.png +0 -0
  195. data/webroot/public/images/ui-icons_888888_256x240.png +0 -0
  196. data/webroot/public/images/ui-icons_cd0a0a_256x240.png +0 -0
  197. data/webroot/public/images/ui-icons_ffffff_256x240.png +0 -0
  198. data/webroot/public/js/ajaxupload.js +673 -0
  199. data/webroot/public/js/application.js +40 -0
  200. data/webroot/public/js/jquery-ui.combobox.js +98 -0
  201. data/webroot/public/js/jquery-ui.js +9867 -0
  202. data/webroot/public/js/jquery-ui.min.js +559 -0
  203. data/webroot/public/js/jquery.dataTables.min.js +587 -0
  204. data/webroot/public/js/jquery.min.js +154 -0
  205. data/webroot/public/js/jquery.timeago.js +140 -0
  206. data/webroot/public/js/jquery.tooltip.min.js +19 -0
  207. data/webroot/public/js/jquery.treeview.min.js +15 -0
  208. data/webroot/public/js/resource.js +11 -0
  209. data/webroot/public/js/results.js +56 -0
  210. data/webroot/public/js/transformations.js +95 -0
  211. data/webroot/views/connections/index.erb +5 -0
  212. data/webroot/views/connections/list.erb +34 -0
  213. data/webroot/views/connections/new.erb +55 -0
  214. data/webroot/views/connections/show.erb +36 -0
  215. data/webroot/views/imports/edit.erb +60 -0
  216. data/webroot/views/imports/form.erb +81 -0
  217. data/webroot/views/imports/new.erb +89 -0
  218. data/webroot/views/index.erb +12 -0
  219. data/webroot/views/jobs/index.erb +7 -0
  220. data/webroot/views/jobs/list.erb +24 -0
  221. data/webroot/views/layout.erb +38 -0
  222. data/webroot/views/matchers/form.erb +250 -0
  223. data/webroot/views/matchers/list.erb +32 -0
  224. data/webroot/views/projects/form.erb +14 -0
  225. data/webroot/views/projects/index.erb +96 -0
  226. data/webroot/views/projects/show.erb +24 -0
  227. data/webroot/views/resources/edit.erb +88 -0
  228. data/webroot/views/resources/index.erb +5 -0
  229. data/webroot/views/resources/list.erb +27 -0
  230. data/webroot/views/resources/new.erb +121 -0
  231. data/webroot/views/resources/show.erb +86 -0
  232. data/webroot/views/resources/transform.erb +2 -0
  233. data/webroot/views/results/csv.erb +12 -0
  234. data/webroot/views/results/details.erb +15 -0
  235. data/webroot/views/results/index.erb +2 -0
  236. data/webroot/views/results/list.erb +22 -0
  237. data/webroot/views/results/record.erb +24 -0
  238. data/webroot/views/results/show.erb +68 -0
  239. data/webroot/views/scenarios/index.erb +5 -0
  240. data/webroot/views/scenarios/list.erb +20 -0
  241. data/webroot/views/scenarios/new.erb +99 -0
  242. data/webroot/views/scenarios/run.erb +2 -0
  243. data/webroot/views/scenarios/show.erb +50 -0
  244. data/webroot/views/sidebar.erb +106 -0
  245. data/webroot/views/transformations/create.erb +115 -0
  246. data/webroot/views/transformations/for.erb +16 -0
  247. data/webroot/views/transformations/index.erb +2 -0
  248. data/webroot/views/transformations/list.erb +29 -0
  249. data/webroot/views/transformations/new.erb +126 -0
  250. data/webroot/views/transformations/preview.erb +46 -0
  251. data/webroot/views/transformers/edit.erb +6 -0
  252. data/webroot/views/transformers/form.erb +58 -0
  253. data/webroot/views/transformers/index.erb +2 -0
  254. data/webroot/views/transformers/list.erb +25 -0
  255. data/webroot/views/transformers/new.erb +5 -0
  256. data/webroot/views/transformers/preview.erb +23 -0
  257. data/webroot/views/transformers/show.erb +0 -0
  258. metadata +558 -0
@@ -0,0 +1,22 @@
1
+ Feature: managing transformations
2
+
3
+ Background:
4
+ Given that I have created a connection called "My Connection"
5
+ And that I have created a transformer called "My Transformer"
6
+ And that I have created a project called "My Project"
7
+ And that I have added the "People" resource
8
+
9
+ Scenario: adding transformations
10
+ When I go to the transformations page
11
+ And I click the "New transformation" link
12
+ And I fill in the form:
13
+ | Field | first_name |
14
+ | Transformer | My Transformer |
15
+ And I click the "Submit" button
16
+ Then it should show me a confirmation notice
17
+
18
+ Scenario: deleting a transformation
19
+ Given that I have added a transformation for "first_name"
20
+ When I go to the transformations page
21
+ And I click the "Delete" link
22
+ Then there should be no more transformations
@@ -0,0 +1,10 @@
1
+ Feature: running Coupler for the first time
2
+
3
+ Scenario: very first use
4
+ When I go to the front page
5
+ And I click the "create a project" link
6
+ And I fill in the form:
7
+ | Name | My Project |
8
+ | Description | This is my first project |
9
+ And I click the "Submit" button
10
+ And I click the "add a resource" link
@@ -0,0 +1,213 @@
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="336.28171"
14
+ height="38.50975"
15
+ id="svg2"
16
+ version="1.1"
17
+ inkscape:version="0.48.0 r9654"
18
+ sodipodi:docname="coupler-header.svg"
19
+ inkscape:export-filename="/home/stephej1/Projects/coupler/webroot/public/images/header.png"
20
+ inkscape:export-xdpi="90"
21
+ inkscape:export-ydpi="90">
22
+ <defs
23
+ id="defs4">
24
+ <linearGradient
25
+ inkscape:collect="always"
26
+ id="linearGradient4181">
27
+ <stop
28
+ style="stop-color:#ffffff;stop-opacity:1;"
29
+ offset="0"
30
+ id="stop4183" />
31
+ <stop
32
+ style="stop-color:#ffffff;stop-opacity:0;"
33
+ offset="1"
34
+ id="stop4185" />
35
+ </linearGradient>
36
+ <linearGradient
37
+ inkscape:collect="always"
38
+ id="linearGradient3816">
39
+ <stop
40
+ style="stop-color:#ffffff;stop-opacity:1;"
41
+ offset="0"
42
+ id="stop3818" />
43
+ <stop
44
+ style="stop-color:#ffffff;stop-opacity:0;"
45
+ offset="1"
46
+ id="stop3820" />
47
+ </linearGradient>
48
+ <linearGradient
49
+ inkscape:collect="always"
50
+ xlink:href="#linearGradient3816"
51
+ id="linearGradient3822"
52
+ x1="275.29694"
53
+ y1="101.97794"
54
+ x2="275.29694"
55
+ y2="128.96725"
56
+ gradientUnits="userSpaceOnUse" />
57
+ <linearGradient
58
+ gradientTransform="translate(226.429,59.821211)"
59
+ inkscape:collect="always"
60
+ xlink:href="#linearGradient3816-2"
61
+ id="linearGradient3822-5"
62
+ x1="275.29694"
63
+ y1="101.97794"
64
+ x2="275.29694"
65
+ y2="128.96725"
66
+ gradientUnits="userSpaceOnUse" />
67
+ <linearGradient
68
+ inkscape:collect="always"
69
+ id="linearGradient3816-2">
70
+ <stop
71
+ style="stop-color:#ffffff;stop-opacity:1;"
72
+ offset="0"
73
+ id="stop3818-2" />
74
+ <stop
75
+ style="stop-color:#ffffff;stop-opacity:0;"
76
+ offset="1"
77
+ id="stop3820-1" />
78
+ </linearGradient>
79
+ <linearGradient
80
+ inkscape:collect="always"
81
+ xlink:href="#linearGradient4181"
82
+ id="linearGradient4187"
83
+ x1="275.41302"
84
+ y1="102.34733"
85
+ x2="275.41302"
86
+ y2="127.83308"
87
+ gradientUnits="userSpaceOnUse"
88
+ gradientTransform="translate(-4.027436e-6,-7.4744141e-6)" />
89
+ <filter
90
+ inkscape:collect="always"
91
+ id="filter4193"
92
+ x="-0.012545455"
93
+ width="1.0250909"
94
+ y="-0.27599999"
95
+ height="1.552"
96
+ color-interpolation-filters="sRGB">
97
+ <feGaussianBlur
98
+ inkscape:collect="always"
99
+ stdDeviation="1.725"
100
+ id="feGaussianBlur4195" />
101
+ </filter>
102
+ <filter
103
+ inkscape:collect="always"
104
+ id="filter4235"
105
+ color-interpolation-filters="sRGB">
106
+ <feGaussianBlur
107
+ inkscape:collect="always"
108
+ stdDeviation="0.92"
109
+ id="feGaussianBlur4237" />
110
+ </filter>
111
+ <filter
112
+ inkscape:collect="always"
113
+ id="filter3880">
114
+ <feGaussianBlur
115
+ inkscape:collect="always"
116
+ stdDeviation="0.91"
117
+ id="feGaussianBlur3882" />
118
+ </filter>
119
+ </defs>
120
+ <sodipodi:namedview
121
+ id="base"
122
+ pagecolor="#ffffff"
123
+ bordercolor="#666666"
124
+ borderopacity="1.0"
125
+ inkscape:pageopacity="0.0"
126
+ inkscape:pageshadow="2"
127
+ inkscape:zoom="2.8284271"
128
+ inkscape:cx="195.44249"
129
+ inkscape:cy="-27.676392"
130
+ inkscape:document-units="px"
131
+ inkscape:current-layer="layer1"
132
+ showgrid="false"
133
+ fit-margin-top="0"
134
+ fit-margin-left="0"
135
+ fit-margin-right="0"
136
+ fit-margin-bottom="0"
137
+ inkscape:window-width="1920"
138
+ inkscape:window-height="1000"
139
+ inkscape:window-x="0"
140
+ inkscape:window-y="26"
141
+ inkscape:window-maximized="1"
142
+ inkscape:snap-midpoints="true" />
143
+ <metadata
144
+ id="metadata7">
145
+ <rdf:RDF>
146
+ <cc:Work
147
+ rdf:about="">
148
+ <dc:format>image/svg+xml</dc:format>
149
+ <dc:type
150
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
151
+ <dc:title />
152
+ </cc:Work>
153
+ </rdf:RDF>
154
+ </metadata>
155
+ <g
156
+ inkscape:label="Layer 1"
157
+ inkscape:groupmode="layer"
158
+ id="layer1"
159
+ transform="translate(-110.5,-106.63575)">
160
+ <path
161
+ style="opacity:0.75;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;filter:url(#filter3880)"
162
+ d="m 127.5545,110.90105 c -4.65198,0.36939 -8.92578,2.67492 -12.03125,5.90625 -3.03348,2.74476 -4.96875,6.68063 -4.96875,11.09375 0,8.28427 6.71573,15 15,15 l 300,0 c 4.62811,0 8.7797,-2.08046 11.53125,-5.375 0.0189,-0.0226 0.0437,-0.0397 0.0625,-0.0625 3.24376,-3.17502 5.33378,-7.36582 5.40625,-11.5625 0,-8.28427 -6.71573,-15 -15,-15 l -300,0 z"
163
+ id="rect2985-7-4"
164
+ inkscape:connector-curvature="0"
165
+ transform="matrix(0.98836194,0,0,1,5.1504758,0)" />
166
+ <path
167
+ style="fill:#a06d6c;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
168
+ d="m 127.5545,110.90105 c -9.1339,0.72527 -16.86067,8.82875 -17,17 0,8.28427 6.71573,15 15,15 l 300,0 c 9.12925,-0.70969 16.85906,-8.83807 17,-17 0,-8.28427 -6.71573,-15 -15,-15 z"
169
+ id="rect2985-7"
170
+ inkscape:connector-curvature="0"
171
+ sodipodi:nodetypes="ccsccsc" />
172
+ <g
173
+ id="g4130"
174
+ transform="translate(-26.516504,-123.39013)">
175
+ <rect
176
+ height="30"
177
+ y="236.29076"
178
+ x="152.07143"
179
+ width="300"
180
+ id="rect2985"
181
+ style="fill:#6e3b3a;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
182
+ <path
183
+ transform="matrix(0.59396972,0,0,0.59396972,90.870997,115.21951)"
184
+ sodipodi:end="10.995574"
185
+ sodipodi:start="4.712389"
186
+ d="m 103.03556,203.83405 c 13.9473,0 25.25381,11.30651 25.25381,25.25381 0,13.9473 -11.30651,25.25381 -25.25381,25.25381 -13.947296,0 -25.253812,-11.30651 -25.253812,-25.25381 0,-13.94729 11.306513,-25.25381 25.253802,-25.25381 l 1e-5,25.25381 z"
187
+ sodipodi:ry="25.253813"
188
+ sodipodi:rx="25.253813"
189
+ sodipodi:cy="229.08786"
190
+ sodipodi:cx="103.03556"
191
+ id="path3755"
192
+ style="fill:#6e3b3a;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
193
+ sodipodi:type="arc" />
194
+ <path
195
+ transform="matrix(0.59396972,0,0,0.59396972,390.871,115.21993)"
196
+ sodipodi:end="10.995574"
197
+ sodipodi:start="4.712389"
198
+ d="m 103.03556,203.83405 c 13.9473,0 25.25381,11.30651 25.25381,25.25381 0,13.9473 -11.30651,25.25381 -25.25381,25.25381 -13.947296,0 -25.253812,-11.30651 -25.253812,-25.25381 0,-13.94729 11.306513,-25.25381 25.253802,-25.25381 l 1e-5,25.25381 z"
199
+ sodipodi:ry="25.253813"
200
+ sodipodi:rx="25.253813"
201
+ sodipodi:cy="229.08786"
202
+ sodipodi:cx="103.03556"
203
+ id="path3755-9"
204
+ style="fill:#6e3b3a;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
205
+ sodipodi:type="arc" />
206
+ </g>
207
+ <path
208
+ style="opacity:0.5;fill:url(#linearGradient4187);fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;filter:url(#filter4193)"
209
+ d="m 125.5545,112.90063 c -8.28427,0 -15,6.71573 -15,15 l 330,0 c 0,-8.28427 -6.71573,-15 -15,-15 l -300,0 z"
210
+ id="rect2985-3"
211
+ inkscape:connector-curvature="0" />
212
+ </g>
213
+ </svg>