Merge lp:~morphis/network-manager/add-snappy-support into lp:~phablet-team/network-manager/snappy
- add-snappy-support
- Merge into snappy
Status: | Merged |
---|---|
Approved by: | Tony Espy |
Approved revision: | 978 |
Merged at revision: | 972 |
Proposed branch: | lp:~morphis/network-manager/add-snappy-support |
Merge into: | lp:~phablet-team/network-manager/snappy |
Diff against target: |
4420 lines (+4353/-0) 12 files modified
debian/patches/add-snappy-support.patch (+691/-0) debian/patches/fix-code-to-build-with-werror.patch (+547/-0) debian/patches/series (+3/-0) parts/plugins/x-autotools.py (+129/-0) snapcraft.yaml (+239/-0) snappy/bin/dhclient (+32/-0) snappy/bin/dnsmasq (+41/-0) snappy/bin/networkmanager (+37/-0) snappy/conf/NetworkManager.conf (+6/-0) snappy/conf/dnsmasq-dbus.conf (+10/-0) snappy/conf/org.freedesktop.NetworkManager.conf (+152/-0) snappy/icon.svg (+2466/-0) |
To merge this branch: | bzr merge lp:~morphis/network-manager/add-snappy-support |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Tony Espy | Approve | ||
Simon Fels | Pending | ||
Review via email: mp+289514@code.launchpad.net |
Commit message
Import snappy support from our 15.04 work
This is fully converted to snapcraft 2.x syntax now but still runs fully
unconfined. Also this doesn't include ModemManager as for the snappy 16
series we still have to find out whether we go with it or ofono as default.
Additionaly this is putting the snappy build configuration next to our
debian to both together and build stuff from the same base (patches,
config, ...).
Description of the change
Still some things we need to debate like
- version number (took the nm version + -<n>)
- Applying all debian/patches/ or not
but is fine for a first drop and we can move on from what we have then in that branch by defining further work items.
- 976. By Simon Fels
-
Remove left over ModemManager udev rules
Tony Espy (awe) wrote : | # |
Also note that the bluez snap uses the ~bluetooth team, perhaps we should use ~network-manager here instead of ~phablet-team?
Simon Fels (morphis) wrote : | # |
Thanks a lot for the first review round!
For 1: I must say I don't really like us separating stuff into multiple different approaches per product. We already have separate packaging branches for desktop and touch and adding a third one for snappy doesn't really scale. That there are debian patches which might not apply to snappy, stale patches etc. but those things are all sth we have to solve over time. We have to find one common approach for all projects we're doing and apply that to all projects the same way.
Also respect that we're already shipping snappy packages for 15.04 with the exact same approach we're doing here but just having the debian package unpacked in another git repo. So this is only a continuation of what we've done before but in a more packed way. I would really like to bring all the different work we're doing as close as possible together rather than investing a huge amount of time for development, testing, reviewing for all different projects. There will be always project specific development/
I am fine with adding the debian packaging version number.
For 2: Adding --enable-snappy was done with the aim to align our packaging as described for 1). The debian package would simply build with --disable-snappy.
For 3: I removed ModemManager as
* It needs to be in its own snap. The NetworkManager snap/part
then just interacts with. What we did for 15.04 was a
quick hack and is nothing we should just continue to do
without discussing what we really want.
* Its a per device decision if a telephony snap should be
installed or not.
* There are different components we can use to bring
telephony into the game and we still haven't decided
which horse we will ride for snappy (ofono, ModemManager)
* This MP isn't aiming for feature completeness. Its just
bringing the basic work from 15.04 to series 16 and
leaving stuff out we don't know if we want it or not.
Also I left ofono in place as I simply copied the configflags from the debian packaging which have ofono enabled by default. That is again sth which needs to be reworked in follow up stories after we have decided where our way goes to.
For 4: I added that patch simply because all the wonderful patches we did on top of upstream doesn't build with -Werror (deprecated glib functions, ignoring const, unused variables) which is the default on xenial. I am sure you fixed some or most of them already with your 1.2 work and lets not bother with this patch too much. Its just there to get stuff building for the time being but the right way is to rework all those patches.
For 5: That icon is what we had in 15.04 for the network-manager snap. Its a more colorful networking one coming from the default icon set on desktop??
For 6: None yet. But the best would be if we get rid of them by telling the build not to install things into arch specific directories as that doesn't make much sense with snappy. Its currently a bit of a mess how those things are handled within the snap configuration but that is up for later.
For 7: Works as it s...
- 977. By Simon Fels
-
Move snappy icon to its folder
- 978. By Simon Fels
-
Reflect debian version also in our snap version
Tony Espy (awe) : | # |
Tony Espy (awe) wrote : | # |
Approved; discussion on most of the above points will happen separately.
Preview Diff
1 | === added file 'debian/patches/add-snappy-support.patch' |
2 | --- debian/patches/add-snappy-support.patch 1970-01-01 00:00:00 +0000 |
3 | +++ debian/patches/add-snappy-support.patch 2016-03-30 06:28:14 +0000 |
4 | @@ -0,0 +1,691 @@ |
5 | +Index: build/configure.ac |
6 | +=================================================================== |
7 | +--- build.orig/configure.ac |
8 | ++++ build/configure.ac |
9 | +@@ -758,6 +758,15 @@ fi |
10 | + AM_CONDITIONAL(BUILD_NMTUI, test "$build_nmtui" = yes) |
11 | + |
12 | + |
13 | ++AC_ARG_ENABLE(snappy, AS_HELP_STRING([--enable-snappy], [enable Ubuntu Snappy support]), |
14 | ++ [enable_snappy=${enableval}], [enable_snappy=yes]) |
15 | ++if (test "${enable_snappy}" = "yes"); then |
16 | ++ AC_DEFINE(WITH_SNAPPY, 1, [Define if you want Ubuntu Snappy support]) |
17 | ++else |
18 | ++ AC_DEFINE(WITH_SNAPPY, 0, [Define if you want Ubuntu Snappy support]) |
19 | ++fi |
20 | ++AM_CONDITIONAL(WITH_SNAPPY, test "${enable_snappy}" = "yes") |
21 | ++ |
22 | + NM_COMPILER_WARNINGS |
23 | + |
24 | + dnl ------------------------- |
25 | +@@ -921,6 +930,7 @@ else |
26 | + echo " policykit: no" |
27 | + fi |
28 | + echo " selinux: $have_selinux" |
29 | ++echo " Ubuntu snappy: ${enable_snappy}" |
30 | + echo |
31 | + |
32 | + echo "Features:" |
33 | +Index: build/src/Makefile.am |
34 | +=================================================================== |
35 | +--- build.orig/src/Makefile.am |
36 | ++++ build/src/Makefile.am |
37 | +@@ -38,6 +38,11 @@ AM_CPPFLAGS = \ |
38 | + -DG_LOG_DOMAIN=\""NetworkManager"\" \ |
39 | + -DNM_VERSION_MAX_ALLOWED=NM_VERSION_NEXT_STABLE |
40 | + |
41 | ++if WITH_SNAPPY |
42 | ++AM_CPPFLAGS += \ |
43 | ++ -DSNAPPY= |
44 | ++endif |
45 | ++ |
46 | + # add each subdirectory that contains a libNM source file. $(sort) is being used |
47 | + # primarily for its side effect of removing duplicates. |
48 | + AM_CPPFLAGS += $(foreach d,$(sort $(dir $(libNetworkManager_la_SOURCES))),-I$(top_srcdir)/src/$d) |
49 | +Index: build/src/devices/nm-device.c |
50 | +=================================================================== |
51 | +--- build.orig/src/devices/nm-device.c |
52 | ++++ build/src/devices/nm-device.c |
53 | +@@ -78,6 +78,8 @@ static void impl_device_disconnect (NMDe |
54 | + |
55 | + #include "nm-device-glue.h" |
56 | + |
57 | ++#include "snappy.h" |
58 | ++ |
59 | + static void nm_device_config_device_interface_init (NMConfigDeviceInterface *iface); |
60 | + |
61 | + G_DEFINE_ABSTRACT_TYPE_WITH_CODE (NMDevice, nm_device, G_TYPE_OBJECT, |
62 | +@@ -4454,6 +4456,12 @@ send_arps (NMDevice *self, const char *m |
63 | + NMIP4Address *addr; |
64 | + guint32 ipaddr; |
65 | + GError *error = NULL; |
66 | ++ char *path = NULL; |
67 | ++ |
68 | ++ if (get_snap_app_path()) { |
69 | ++ path = g_strdup_printf("%s/usr/bin/arping", get_snap_app_path()); |
70 | ++ argv[0] = path; |
71 | ++ } |
72 | + |
73 | + connection = nm_device_get_connection (self); |
74 | + if (!connection) |
75 | +@@ -4482,6 +4490,9 @@ send_arps (NMDevice *self, const char *m |
76 | + g_clear_error (&error); |
77 | + } |
78 | + } |
79 | ++ |
80 | ++ if (path) |
81 | ++ g_free(path); |
82 | + } |
83 | + |
84 | + static gboolean |
85 | +Index: build/src/dhcp-manager/nm-dhcp-dhclient.c |
86 | +=================================================================== |
87 | +--- build.orig/src/dhcp-manager/nm-dhcp-dhclient.c |
88 | ++++ build/src/dhcp-manager/nm-dhcp-dhclient.c |
89 | +@@ -40,20 +40,21 @@ |
90 | + #include "nm-dhcp-dhclient-utils.h" |
91 | + #include "nm-dhcp-manager.h" |
92 | + #include "nm-posix-signals.h" |
93 | ++#include "snappy.h" |
94 | + |
95 | + G_DEFINE_TYPE (NMDHCPDhclient, nm_dhcp_dhclient, NM_TYPE_DHCP_CLIENT) |
96 | + |
97 | + #define NM_DHCP_DHCLIENT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DHCP_DHCLIENT, NMDHCPDhclientPrivate)) |
98 | + |
99 | + typedef struct { |
100 | +- const char *path; |
101 | ++ char *path; |
102 | + char *conf_file; |
103 | + const char *def_leasefile; |
104 | + char *lease_file; |
105 | + char *pid_file; |
106 | + } NMDHCPDhclientPrivate; |
107 | + |
108 | +-const char * |
109 | ++char * |
110 | + nm_dhcp_dhclient_get_path (const char *try_first) |
111 | + { |
112 | + static const char *dhclient_paths[] = { |
113 | +@@ -66,7 +67,7 @@ nm_dhcp_dhclient_get_path (const char *t |
114 | + const char **path = dhclient_paths; |
115 | + |
116 | + if (strlen (try_first) && g_file_test (try_first, G_FILE_TEST_EXISTS)) |
117 | +- return try_first; |
118 | ++ return g_strdup (try_first); |
119 | + |
120 | + while (*path != NULL) { |
121 | + if (g_file_test (*path, G_FILE_TEST_EXISTS)) |
122 | +@@ -74,7 +75,7 @@ nm_dhcp_dhclient_get_path (const char *t |
123 | + path++; |
124 | + } |
125 | + |
126 | +- return *path; |
127 | ++ return g_strdup(*path); |
128 | + } |
129 | + |
130 | + /** |
131 | +@@ -97,9 +98,14 @@ get_dhclient_leasefile (const char *ifac |
132 | + char **out_preferred_path) |
133 | + { |
134 | + char *path; |
135 | ++ char *base_path = NMSTATEDIR; |
136 | ++ |
137 | ++ if (get_snap_app_data_path()) |
138 | ++ base_path = (char *) get_snap_app_data_path(); |
139 | + |
140 | + /* /var/lib/NetworkManager is the preferred leasefile path */ |
141 | +- path = g_strdup_printf (NMSTATEDIR "/dhclient%s-%s-%s.lease", |
142 | ++ path = g_strdup_printf ("%s/dhclient%s-%s-%s.lease", |
143 | ++ base_path, |
144 | + ipv6 ? "6" : "", |
145 | + uuid, |
146 | + iface); |
147 | +@@ -274,12 +280,16 @@ create_dhclient_config (const char *ifac |
148 | + const char *hostname) |
149 | + { |
150 | + char *orig = NULL, *new = NULL; |
151 | ++ char *base_path = NMSTATEDIR; |
152 | + GError *error = NULL; |
153 | + gboolean success = FALSE; |
154 | + |
155 | + g_return_val_if_fail (iface != NULL, NULL); |
156 | + |
157 | +- new = g_strdup_printf (NMSTATEDIR "/dhclient%s-%s.conf", is_ip6 ? "6" : "", iface); |
158 | ++ if (get_snap_app_data_path()) |
159 | ++ base_path = (char *) get_snap_app_data_path(); |
160 | ++ |
161 | ++ new = g_strdup_printf ("%s/dhclient%s-%s.conf", base_path, is_ip6 ? "6" : "", iface); |
162 | + nm_log_dbg (is_ip6 ? LOGD_DHCP6 : LOGD_DHCP4, |
163 | + "(%s): creating composite dhclient config %s", |
164 | + iface, new); |
165 | +@@ -351,9 +361,15 @@ dhclient_start (NMDHCPClient *client, |
166 | + return -1; |
167 | + } |
168 | + |
169 | +- pid_file = g_strdup_printf ("/run/sendsigs.omit.d/network-manager.dhclient%s-%s.pid", |
170 | +- ipv6 ? "6" : "", |
171 | +- iface); |
172 | ++ if (get_snap_app_data_path()) |
173 | ++ pid_file = g_strdup_printf ("%s/run/sendsigs.omit.d/network-manager.dhclient%s-%s.pid", |
174 | ++ get_snap_app_data_path(), |
175 | ++ ipv6 ? "6" : "", |
176 | ++ iface); |
177 | ++ else |
178 | ++ pid_file = g_strdup_printf ("/run/sendsigs.omit.d/network-manager.dhclient%s-%s.pid", |
179 | ++ ipv6 ? "6" : "", |
180 | ++ iface); |
181 | + |
182 | + /* Kill any existing dhclient from the pidfile */ |
183 | + binary_name = g_path_get_basename (priv->path); |
184 | +@@ -406,6 +422,8 @@ dhclient_start (NMDHCPClient *client, |
185 | + } |
186 | + } |
187 | + |
188 | ++ nm_log_warn (log_domain, "dhclient: building argv array; binary path is: %s", priv->path); |
189 | ++ |
190 | + argv = g_ptr_array_new (); |
191 | + g_ptr_array_add (argv, (gpointer) priv->path); |
192 | + |
193 | +@@ -427,17 +445,22 @@ dhclient_start (NMDHCPClient *client, |
194 | + g_ptr_array_add (argv, (gpointer) "-sf"); /* Set script file */ |
195 | + g_ptr_array_add (argv, (gpointer) nm_dhcp_helper_path); |
196 | + |
197 | ++ nm_log_warn (log_domain, "dhclient: building argv array; -sf <helper_path> is: %s", nm_dhcp_helper_path); |
198 | ++ |
199 | + if (pid_file) { |
200 | + g_ptr_array_add (argv, (gpointer) "-pf"); /* Set pid file */ |
201 | + g_ptr_array_add (argv, (gpointer) pid_file); |
202 | ++ nm_log_warn (log_domain, "dhclient: building argv array; -pf <pid_file> is: %s", pid_file); |
203 | + } |
204 | + |
205 | + g_ptr_array_add (argv, (gpointer) "-lf"); /* Set lease file */ |
206 | + g_ptr_array_add (argv, (gpointer) priv->lease_file); |
207 | ++ nm_log_warn (log_domain, "dhclient: building argv array; -lf <lease_file> is: %s", priv->lease_file); |
208 | + |
209 | + if (priv->conf_file) { |
210 | + g_ptr_array_add (argv, (gpointer) "-cf"); /* Set interface config file */ |
211 | + g_ptr_array_add (argv, (gpointer) priv->conf_file); |
212 | ++ nm_log_warn (log_domain, "dhclient: building argv array; -cf <config_file> is: %s", priv->conf_file); |
213 | + } |
214 | + |
215 | + /* Usually the system bus address is well-known; but if it's supposed |
216 | +@@ -603,8 +626,15 @@ nm_dhcp_dhclient_init (NMDHCPDhclient *s |
217 | + { |
218 | + NMDHCPDhclientPrivate *priv = NM_DHCP_DHCLIENT_GET_PRIVATE (self); |
219 | + const char **iter = &def_leasefiles[0]; |
220 | ++ char *dhclient_path = DHCLIENT_PATH; |
221 | ++ |
222 | ++ if (get_snap_app_path()) |
223 | ++ dhclient_path = g_strdup_printf("%s/sbin/dhclient", get_snap_app_path()); |
224 | ++ |
225 | ++ priv->path = nm_dhcp_dhclient_get_path (dhclient_path); |
226 | + |
227 | +- priv->path = nm_dhcp_dhclient_get_path (DHCLIENT_PATH); |
228 | ++ if (get_snap_app_path ()) |
229 | ++ g_free (dhclient_path); |
230 | + |
231 | + while (iter && *iter) { |
232 | + if (g_file_test (*iter, G_FILE_TEST_EXISTS)) { |
233 | +@@ -627,6 +657,7 @@ dispose (GObject *object) |
234 | + g_free (priv->pid_file); |
235 | + g_free (priv->conf_file); |
236 | + g_free (priv->lease_file); |
237 | ++ g_free (priv->path); |
238 | + |
239 | + G_OBJECT_CLASS (nm_dhcp_dhclient_parent_class)->dispose (object); |
240 | + } |
241 | +Index: build/src/main.c |
242 | +=================================================================== |
243 | +--- build.orig/src/main.c |
244 | ++++ build/src/main.c |
245 | +@@ -55,6 +55,7 @@ |
246 | + #include "nm-posix-signals.h" |
247 | + #include "nm-session-monitor.h" |
248 | + #include "nm-dispatcher.h" |
249 | ++#include "snappy.h" |
250 | + |
251 | + #if !defined(NM_DIST_VERSION) |
252 | + # define NM_DIST_VERSION VERSION |
253 | +@@ -63,6 +64,9 @@ |
254 | + #define NM_DEFAULT_PID_FILE NMRUNDIR "/NetworkManager.pid" |
255 | + #define NM_DEFAULT_SYSTEM_STATE_FILE NMSTATEDIR "/NetworkManager.state" |
256 | + |
257 | ++extern const char* get_snap_app_path(); |
258 | ++extern const char* get_snap_app_data_path(); |
259 | ++ |
260 | + /* |
261 | + * Globals |
262 | + */ |
263 | +@@ -355,6 +359,7 @@ main (int argc, char *argv[]) |
264 | + GError *error = NULL; |
265 | + gboolean wrote_pidfile = FALSE; |
266 | + char *bad_domains = NULL; |
267 | ++ char *run_dir, *state_dir; |
268 | + |
269 | + GOptionEntry options[] = { |
270 | + { "version", 'V', 0, G_OPTION_ARG_NONE, &show_version, N_("Print NetworkManager version and exit"), NULL }, |
271 | +@@ -476,18 +481,37 @@ main (int argc, char *argv[]) |
272 | + g_free (path); |
273 | + } |
274 | + |
275 | ++ if (get_snap_app_data_path()) { |
276 | ++ run_dir = g_strdup_printf("%s/var/run/", get_snap_app_data_path()); |
277 | ++ state_dir = g_strdup_printf("%s/var/lib/", get_snap_app_data_path()); |
278 | ++ } else { |
279 | ++ run_dir = g_strdup (NMRUNDIR); |
280 | ++ state_dir = g_strdup (NMSTATEDIR); |
281 | ++ } |
282 | ++ |
283 | ++ nm_log_warn (LOGD_CORE, "run_dir: '%s", run_dir); |
284 | ++ nm_log_warn (LOGD_CORE, "state_dir: '%s", state_dir); |
285 | ++ |
286 | + /* Setup runtime directory */ |
287 | +- if (g_mkdir_with_parents (NMRUNDIR, 0755) != 0) { |
288 | +- nm_log_err (LOGD_CORE, "Cannot create '%s': %s", NMRUNDIR, strerror (errno)); |
289 | ++ if (g_mkdir_with_parents (run_dir, 0755) != 0) { |
290 | ++ nm_log_err (LOGD_CORE, "Cannot create '%s': %s", run_dir, strerror (errno)); |
291 | ++ g_free (run_dir); |
292 | ++ g_free (state_dir); |
293 | + exit (1); |
294 | + } |
295 | + |
296 | ++ g_free (run_dir); |
297 | ++ |
298 | + /* Ensure state directory exists */ |
299 | +- if (g_mkdir_with_parents (NMSTATEDIR, 0755) != 0) { |
300 | +- nm_log_err (LOGD_CORE, "Cannot create '%s': %s", NMSTATEDIR, strerror (errno)); |
301 | ++ if (g_mkdir_with_parents (state_dir, 0755) != 0) { |
302 | ++ nm_log_err (LOGD_CORE, "Cannot create '%s': %s", state_dir, strerror (errno)); |
303 | ++ g_free (run_dir); |
304 | ++ g_free (state_dir); |
305 | + exit (1); |
306 | + } |
307 | + |
308 | ++ g_free (state_dir); |
309 | ++ |
310 | + pidfile = pidfile ? pidfile : g_strdup (NM_DEFAULT_PID_FILE); |
311 | + state_file = state_file ? state_file : g_strdup (NM_DEFAULT_SYSTEM_STATE_FILE); |
312 | + |
313 | +@@ -561,7 +585,10 @@ main (int argc, char *argv[]) |
314 | + g_log_set_always_fatal (fatal_mask); |
315 | + } |
316 | + |
317 | ++#ifndef SNAPPY |
318 | ++ /* FIXME: this causes us to segfault in a snappy environment */ |
319 | + nm_logging_syslog_openlog (debug); |
320 | ++#endif |
321 | + |
322 | + #if !GLIB_CHECK_VERSION (2, 35, 0) |
323 | + g_type_init (); |
324 | +@@ -593,6 +620,7 @@ main (int argc, char *argv[]) |
325 | + |
326 | + /* Initialize our DBus service & connection */ |
327 | + dbus_mgr = nm_dbus_manager_get (); |
328 | ++ |
329 | + g_assert (dbus_mgr != NULL); |
330 | + |
331 | + vpn_manager = nm_vpn_manager_get (); |
332 | +Index: build/src/nm-activation-request.c |
333 | +=================================================================== |
334 | +--- build.orig/src/nm-activation-request.c |
335 | ++++ build/src/nm-activation-request.c |
336 | +@@ -37,6 +37,7 @@ |
337 | + #include "nm-active-connection.h" |
338 | + #include "nm-settings-connection.h" |
339 | + #include "nm-posix-signals.h" |
340 | ++#include "snappy.h" |
341 | + |
342 | + |
343 | + G_DEFINE_TYPE (NMActRequest, nm_act_request, NM_TYPE_ACTIVE_CONNECTION) |
344 | +@@ -228,8 +229,13 @@ nm_act_request_set_shared (NMActRequest |
345 | + char *envp[1] = { NULL }; |
346 | + gs_strfreev char **argv = NULL; |
347 | + gs_free char *cmd = NULL; |
348 | ++ char *base_path = ""; |
349 | + |
350 | +- cmd = g_strdup_printf ("%s --table %s %s %s", |
351 | ++ if (get_snap_app_path()) |
352 | ++ base_path = get_snap_app_path(); |
353 | ++ |
354 | ++ cmd = g_strdup_printf ("%s%s --table %s %s %s", |
355 | ++ base_path, |
356 | + IPTABLES_PATH, |
357 | + rule->table, |
358 | + shared ? "--insert" : "--delete", |
359 | +Index: build/src/nm-manager.c |
360 | +=================================================================== |
361 | +--- build.orig/src/nm-manager.c |
362 | ++++ build/src/nm-manager.c |
363 | +@@ -70,7 +70,7 @@ |
364 | + #include "nm-sleep-monitor.h" |
365 | + #include "nm-connectivity.h" |
366 | + #include "nm-policy.h" |
367 | +- |
368 | ++#include "snappy.h" |
369 | + |
370 | + #define NM_AUTOIP_DBUS_SERVICE "org.freedesktop.nm_avahi_autoipd" |
371 | + #define NM_AUTOIP_DBUS_IFACE "org.freedesktop.nm_avahi_autoipd" |
372 | +@@ -2022,13 +2022,25 @@ load_device_factories (NMManager *self) |
373 | + const char *item; |
374 | + char *path; |
375 | + GSList *iter; |
376 | ++ char *plugin_dir; |
377 | ++ |
378 | ++ /* FIXME: hard-coded arch path... */ |
379 | ++ if (get_snap_app_path()) |
380 | ++ plugin_dir = g_strdup_printf("%s/usr/lib/NetworkManager/", |
381 | ++ get_snap_app_path()); |
382 | ++ else |
383 | ++ plugin_dir = g_strdup (NMPLUGINDIR); |
384 | ++ |
385 | ++ nm_log_warn (LOGD_HW, "load_device_factories: about to open plugin directory %s", plugin_dir); |
386 | ++ |
387 | ++ dir = g_dir_open (plugin_dir, 0, &error); |
388 | + |
389 | +- dir = g_dir_open (NMPLUGINDIR, 0, &error); |
390 | + if (!dir) { |
391 | + nm_log_warn (LOGD_HW, "Failed to open plugin directory %s: %s", |
392 | +- NMPLUGINDIR, |
393 | ++ plugin_dir, |
394 | + (error && error->message) ? error->message : "(unknown)"); |
395 | + g_clear_error (&error); |
396 | ++ g_free (plugin_dir); |
397 | + return; |
398 | + } |
399 | + |
400 | +@@ -2045,7 +2057,11 @@ load_device_factories (NMManager *self) |
401 | + if (g_str_has_suffix (item, ".la")) |
402 | + continue; |
403 | + |
404 | +- path = g_module_build_path (NMPLUGINDIR, item); |
405 | ++ if (get_snap_app_path()) |
406 | ++ path = g_module_build_path(plugin_dir, item); |
407 | ++ else |
408 | ++ path = g_module_build_path (NMPLUGINDIR, item); |
409 | ++ |
410 | + g_assert (path); |
411 | + plugin = g_module_open (path, G_MODULE_BIND_LOCAL); |
412 | + g_free (path); |
413 | +@@ -2113,8 +2129,11 @@ load_device_factories (NMManager *self) |
414 | + nm_log_info (LOGD_HW, "Loaded device plugin: %s", g_module_name (plugin)); |
415 | + }; |
416 | + g_dir_close (dir); |
417 | ++ g_free (plugin_dir); |
418 | + |
419 | + priv->factories = g_slist_reverse (priv->factories); |
420 | ++ |
421 | ++ nm_log_warn (LOGD_HW, "load_device_factories: all done"); |
422 | + } |
423 | + |
424 | + static void |
425 | +Index: build/src/ppp-manager/nm-ppp-manager.c |
426 | +=================================================================== |
427 | +--- build.orig/src/ppp-manager/nm-ppp-manager.c |
428 | ++++ build/src/ppp-manager/nm-ppp-manager.c |
429 | +@@ -53,6 +53,7 @@ |
430 | + #include "nm-dbus-manager.h" |
431 | + #include "nm-logging.h" |
432 | + #include "nm-posix-signals.h" |
433 | ++#include "snappy.h" |
434 | + |
435 | + static void impl_ppp_manager_need_secrets (NMPPPManager *manager, |
436 | + DBusGMethodInvocation *context); |
437 | +@@ -972,7 +973,16 @@ create_pppd_cmd_line (NMPPPManager *self |
438 | + nm_cmd_line_add_string (cmd, priv->dbus_path); |
439 | + |
440 | + nm_cmd_line_add_string (cmd, "plugin"); |
441 | +- nm_cmd_line_add_string (cmd, NM_PPPD_PLUGIN); |
442 | ++ |
443 | ++ if (get_snap_app_path()) { |
444 | ++ gchar *plugin_path = g_strdup_printf("%s%s", |
445 | ++ get_snap_app_path(), |
446 | ++ NM_PPPD_PLUGIN); |
447 | ++ nm_cmd_line_add_string (cmd, plugin_path); |
448 | ++ g_free(plugin_path); |
449 | ++ } else { |
450 | ++ nm_cmd_line_add_string (cmd, NM_PPPD_PLUGIN); |
451 | ++ } |
452 | + |
453 | + return cmd; |
454 | + } |
455 | +Index: build/src/settings/nm-settings.c |
456 | +=================================================================== |
457 | +--- build.orig/src/settings/nm-settings.c |
458 | ++++ build/src/settings/nm-settings.c |
459 | +@@ -68,6 +68,7 @@ |
460 | + #include "nm-connection-provider.h" |
461 | + #include "nm-config.h" |
462 | + #include "NetworkManagerUtils.h" |
463 | ++#include "snappy.h" |
464 | + |
465 | + /* LINKER CRACKROCK */ |
466 | + #define EXPORT(sym) void * __export_##sym = &sym; |
467 | +@@ -124,7 +125,6 @@ static void connection_provider_init (NM |
468 | + G_DEFINE_TYPE_EXTENDED (NMSettings, nm_settings, G_TYPE_OBJECT, 0, |
469 | + G_IMPLEMENT_INTERFACE (NM_TYPE_CONNECTION_PROVIDER, connection_provider_init)) |
470 | + |
471 | +- |
472 | + typedef struct { |
473 | + NMDBusManager *dbus_mgr; |
474 | + |
475 | +@@ -615,6 +615,15 @@ load_plugins (NMSettings *self, const ch |
476 | + const char **iter; |
477 | + gboolean keyfile_added = FALSE; |
478 | + gboolean success = TRUE; |
479 | ++ char *plugin_dir = NULL; |
480 | ++ |
481 | ++ if (get_snap_app_path()) { |
482 | ++ plugin_dir = g_strdup_printf ("%s/usr/lib/NetworkManager/", get_snap_app_path()); |
483 | ++ } |
484 | ++ else |
485 | ++ plugin_dir = g_strdup (NMPLUGINDIR); |
486 | ++ |
487 | ++ nm_log_warn (LOGD_HW, "load_plugins: about to open plugin directory %s", plugin_dir); |
488 | + |
489 | + for (iter = plugins; iter && *iter; iter++) { |
490 | + GModule *plugin; |
491 | +@@ -645,7 +654,7 @@ load_plugins (NMSettings *self, const ch |
492 | + } |
493 | + |
494 | + full_name = g_strdup_printf ("nm-settings-plugin-%s", pname); |
495 | +- path = g_module_build_path (NMPLUGINDIR, full_name); |
496 | ++ path = g_module_build_path (plugin_dir, full_name); |
497 | + |
498 | + plugin = g_module_open (path, G_MODULE_BIND_LOCAL); |
499 | + if (!plugin) { |
500 | +@@ -690,6 +699,9 @@ load_plugins (NMSettings *self, const ch |
501 | + |
502 | + g_slist_free_full (list, g_object_unref); |
503 | + |
504 | ++ if (plugin_dir) |
505 | ++ g_free (plugin_dir); |
506 | ++ |
507 | + return success; |
508 | + } |
509 | + |
510 | +@@ -1754,6 +1766,8 @@ nm_settings_new (GError **error) |
511 | + NMSettings *self; |
512 | + NMSettingsPrivate *priv; |
513 | + |
514 | ++ nm_log_warn (LOGD_HW, "nm_settings_new"); |
515 | ++ |
516 | + self = g_object_new (NM_TYPE_SETTINGS, NULL); |
517 | + |
518 | + priv = NM_SETTINGS_GET_PRIVATE (self); |
519 | +@@ -1761,8 +1775,11 @@ nm_settings_new (GError **error) |
520 | + priv->config = nm_config_get (); |
521 | + priv->dbus_mgr = nm_dbus_manager_get (); |
522 | + |
523 | ++ nm_log_warn (LOGD_HW, "nm_settings_new: about to call load_plugins"); |
524 | ++ |
525 | + /* Load the plugins; fail if a plugin is not found. */ |
526 | + if (!load_plugins (self, nm_config_get_plugins (priv->config), error)) { |
527 | ++ fprintf (stderr, "load settings plugins - FAILED!!!\n"); |
528 | + g_object_unref (self); |
529 | + return NULL; |
530 | + } |
531 | +Index: build/src/settings/plugins/keyfile/plugin.c |
532 | +=================================================================== |
533 | +--- build.orig/src/settings/plugins/keyfile/plugin.c |
534 | ++++ build/src/settings/plugins/keyfile/plugin.c |
535 | +@@ -44,6 +44,7 @@ |
536 | + #include "writer.h" |
537 | + #include "common.h" |
538 | + #include "utils.h" |
539 | ++#include "snappy.h" |
540 | + |
541 | + static char *plugin_get_hostname (SCPluginKeyfile *plugin); |
542 | + static void system_config_interface_init (NMSystemConfigInterface *system_config_interface_class); |
543 | +@@ -282,7 +283,17 @@ setup_monitoring (NMSystemConfigInterfac |
544 | + GFileMonitor *monitor; |
545 | + |
546 | + if (nm_config_get_monitor_connection_files (nm_config_get ())) { |
547 | +- file = g_file_new_for_path (KEYFILE_DIR); |
548 | ++ |
549 | ++ if (get_snap_app_data_path()) { |
550 | ++ char *keyfile_dir = NULL; |
551 | ++ keyfile_dir = g_strdup_printf("%s/%s", get_snap_app_data_path(), |
552 | ++ KEYFILE_DIR); |
553 | ++ file = g_file_new_for_path (keyfile_dir); |
554 | ++ g_free(keyfile_dir); |
555 | ++ } else { |
556 | ++ file = g_file_new_for_path (KEYFILE_DIR); |
557 | ++ } |
558 | ++ |
559 | + monitor = g_file_monitor_directory (file, G_FILE_MONITOR_NONE, NULL, NULL); |
560 | + g_object_unref (file); |
561 | + |
562 | +@@ -316,7 +327,16 @@ read_connections (NMSystemConfigInterfac |
563 | + GHashTableIter iter; |
564 | + gpointer data; |
565 | + |
566 | +- dir = g_dir_open (KEYFILE_DIR, 0, &error); |
567 | ++ if (get_snap_app_data_path()) { |
568 | ++ char *keyfile_dir = NULL; |
569 | ++ keyfile_dir = g_strdup_printf("%s/%s", get_snap_app_data_path(), |
570 | ++ KEYFILE_DIR); |
571 | ++ dir = g_dir_open (keyfile_dir, 0, &error); |
572 | ++ g_free(keyfile_dir); |
573 | ++ } else { |
574 | ++ dir = g_dir_open (KEYFILE_DIR, 0, &error); |
575 | ++ } |
576 | ++ |
577 | + if (!dir) { |
578 | + nm_log_warn (LOGD_SETTINGS, "Cannot read directory '%s': (%d) %s", |
579 | + KEYFILE_DIR, |
580 | +@@ -341,7 +361,10 @@ read_connections (NMSystemConfigInterfac |
581 | + if (nm_keyfile_plugin_utils_should_ignore_file (item)) |
582 | + continue; |
583 | + |
584 | +- full_path = g_build_filename (KEYFILE_DIR, item, NULL); |
585 | ++ if (get_snap_app_data_path()) |
586 | ++ full_path = g_build_filename (get_snap_app_data_path(), KEYFILE_DIR, item, NULL); |
587 | ++ else |
588 | ++ full_path = g_build_filename (KEYFILE_DIR, item, NULL); |
589 | + |
590 | + connection = g_hash_table_lookup (oldconns, full_path); |
591 | + if (connection) { |
592 | +Index: build/src/settings/plugins/keyfile/writer.c |
593 | +=================================================================== |
594 | +--- build.orig/src/settings/plugins/keyfile/writer.c |
595 | ++++ build/src/settings/plugins/keyfile/writer.c |
596 | +@@ -48,6 +48,7 @@ |
597 | + #include "writer.h" |
598 | + #include "common.h" |
599 | + #include "utils.h" |
600 | ++#include "snappy.h" |
601 | + |
602 | + /* Some setting properties also contain setting names, such as |
603 | + * NMSettingConnection's 'type' property (which specifies the base type of the |
604 | +@@ -1124,12 +1125,26 @@ nm_keyfile_plugin_write_connection (NMCo |
605 | + char **out_path, |
606 | + GError **error) |
607 | + { |
608 | +- return _internal_write_connection (connection, |
609 | +- KEYFILE_DIR, |
610 | ++ gboolean ret; |
611 | ++ char *keyfile_dir = NULL; |
612 | ++ |
613 | ++ if (get_snap_app_data_path()) |
614 | ++ keyfile_dir = g_strdup_printf("%s%s", |
615 | ++ get_snap_app_data_path(), |
616 | ++ KEYFILE_DIR); |
617 | ++ else |
618 | ++ keyfile_dir = g_strdup(KEYFILE_DIR); |
619 | ++ |
620 | ++ ret = _internal_write_connection (connection, |
621 | ++ keyfile_dir, |
622 | + 0, 0, |
623 | + existing_path, |
624 | + out_path, |
625 | + error); |
626 | ++ |
627 | ++ g_free(keyfile_dir); |
628 | ++ |
629 | ++ return ret; |
630 | + } |
631 | + |
632 | + gboolean |
633 | +Index: build/src/snappy.h |
634 | +=================================================================== |
635 | +--- /dev/null |
636 | ++++ build/src/snappy.h |
637 | +@@ -0,0 +1,45 @@ |
638 | ++/* NetworkManager -- Network link manager |
639 | ++ * |
640 | ++ * This program is free software; you can redistribute it and/or modify |
641 | ++ * it under the terms of the GNU General Public License as published by |
642 | ++ * the Free Software Foundation; either version 2 of the License, or |
643 | ++ * (at your option) any later version. |
644 | ++ * |
645 | ++ * This program is distributed in the hope that it will be useful, |
646 | ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of |
647 | ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
648 | ++ * GNU General Public License for more details. |
649 | ++ * |
650 | ++ * You should have received a copy of the GNU General Public License along |
651 | ++ * with this program; if not, write to the Free Software Foundation, Inc., |
652 | ++ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. |
653 | ++ * |
654 | ++ * Copyright (C) 2015 Canonical Ltd. |
655 | ++ */ |
656 | ++ |
657 | ++#ifndef SNAPPY_H_ |
658 | ++#define SNAPPY_H_ |
659 | ++ |
660 | ++#include <stdlib.h> |
661 | ++ |
662 | ++static const char* get_snap_app_data_path() |
663 | ++{ |
664 | ++ static char *path = NULL; |
665 | ++ |
666 | ++ if (!path) |
667 | ++ path = getenv("SNAP_APP_DATA_PATH"); |
668 | ++ |
669 | ++ return path; |
670 | ++} |
671 | ++ |
672 | ++static const char* get_snap_app_path() |
673 | ++{ |
674 | ++ static char *path = NULL; |
675 | ++ |
676 | ++ if (!path) |
677 | ++ path = getenv("SNAP_APP_PATH"); |
678 | ++ |
679 | ++ return path; |
680 | ++} |
681 | ++ |
682 | ++#endif |
683 | +Index: build/src/dhcp-manager/nm-dhcp-dhclient.h |
684 | +=================================================================== |
685 | +--- build.orig/src/dhcp-manager/nm-dhcp-dhclient.h |
686 | ++++ build/src/dhcp-manager/nm-dhcp-dhclient.h |
687 | +@@ -45,7 +45,7 @@ GSList *nm_dhcp_dhclient_get_lease_ip_co |
688 | + const char *uuid, |
689 | + gboolean ipv6); |
690 | + |
691 | +-const char *nm_dhcp_dhclient_get_path (const char *try_first); |
692 | ++char *nm_dhcp_dhclient_get_path (const char *try_first); |
693 | + |
694 | + #endif /* NM_DHCP_DHCLIENT_H */ |
695 | + |
696 | |
697 | === added file 'debian/patches/fix-code-to-build-with-werror.patch' |
698 | --- debian/patches/fix-code-to-build-with-werror.patch 1970-01-01 00:00:00 +0000 |
699 | +++ debian/patches/fix-code-to-build-with-werror.patch 2016-03-30 06:28:14 +0000 |
700 | @@ -0,0 +1,547 @@ |
701 | +Index: build/libgsystem/Makefile-libgsystem.am |
702 | +=================================================================== |
703 | +--- build.orig/libgsystem/Makefile-libgsystem.am |
704 | ++++ build/libgsystem/Makefile-libgsystem.am |
705 | +@@ -37,6 +37,6 @@ libgsystem_la_SOURCES = \ |
706 | + $(libgsystem_srcpath)/libgsystem.h \ |
707 | + $(NULL) |
708 | + |
709 | +-libgsystem_la_CFLAGS = $(AM_CFLAGS) $(libgsystem_cflags) |
710 | ++libgsystem_la_CFLAGS = $(AM_CFLAGS) $(libgsystem_cflags) -Wno-deprecated-declarations |
711 | + libgsystem_la_LDFLAGS = -avoid-version -Bsymbolic-functions -export-symbols-regex "^gs_" -no-undefined -export-dynamic |
712 | + libgsystem_la_LIBADD = $(libgsystem_libs) |
713 | +Index: build/src/NetworkManagerUtils.c |
714 | +=================================================================== |
715 | +--- build.orig/src/NetworkManagerUtils.c |
716 | ++++ build/src/NetworkManagerUtils.c |
717 | +@@ -19,7 +19,6 @@ |
718 | + * Copyright (C) 2005 - 2008 Novell, Inc. |
719 | + */ |
720 | + |
721 | +-#include <glib.h> |
722 | + #include <errno.h> |
723 | + #include <fcntl.h> |
724 | + #include <string.h> |
725 | +@@ -27,6 +26,8 @@ |
726 | + #include <stdlib.h> |
727 | + #include <resolv.h> |
728 | + |
729 | ++#include <glib.h> |
730 | ++ |
731 | + #include "NetworkManagerUtils.h" |
732 | + #include "nm-utils.h" |
733 | + #include "nm-logging.h" |
734 | +Index: build/src/devices/nm-device.c |
735 | +=================================================================== |
736 | +--- build.orig/src/devices/nm-device.c |
737 | ++++ build/src/devices/nm-device.c |
738 | +@@ -3808,7 +3808,7 @@ ip6_use_tempaddr (void) |
739 | + ret = use_tempaddr_clamp (tmp); |
740 | + |
741 | + done: |
742 | +- sysctl_data = g_string_free (sysctl_data, TRUE); |
743 | ++ sysctl_data = (GString*) g_string_free (sysctl_data, TRUE); |
744 | + g_clear_error (&error); |
745 | + g_key_file_free (keyfile); |
746 | + |
747 | +Index: build/src/devices/wwan/nm-modem-ofono.c |
748 | +=================================================================== |
749 | +--- build.orig/src/devices/wwan/nm-modem-ofono.c |
750 | ++++ build/src/devices/wwan/nm-modem-ofono.c |
751 | +@@ -35,6 +35,7 @@ |
752 | + #include "nm-modem.h" |
753 | + #include "nm-dbus-manager.h" |
754 | + #include "NetworkManagerUtils.h" |
755 | ++#include "nm-utils.h" |
756 | + |
757 | + G_DEFINE_TYPE (NMModemOfono, nm_modem_ofono, NM_TYPE_MODEM) |
758 | + |
759 | +@@ -63,17 +64,6 @@ typedef struct { |
760 | + |
761 | + } NMModemOfonoPrivate; |
762 | + |
763 | +-#define NM_OFONO_ERROR (nm_ofono_error_quark ()) |
764 | +- |
765 | +-static GQuark |
766 | +-nm_ofono_error_quark (void) |
767 | +-{ |
768 | +- static GQuark quark = 0; |
769 | +- if (!quark) |
770 | +- quark = g_quark_from_static_string ("nm-ofono-error"); |
771 | +- return quark; |
772 | +-} |
773 | +- |
774 | + static gboolean |
775 | + ip_string_to_network_address (const gchar *str, |
776 | + guint32 *out) |
777 | +@@ -141,7 +131,6 @@ disconnect_done (DBusGProxy *proxy, DBus |
778 | + { |
779 | + SimpleDisconnectContext *ctx = (SimpleDisconnectContext*) user_data; |
780 | + NMModemOfono *self = ctx->self; |
781 | +- NMModemOfonoPrivate *priv = NM_MODEM_OFONO_GET_PRIVATE (self); |
782 | + GError *error = NULL; |
783 | + |
784 | + nm_log_dbg (LOGD_MB, "in %s", __func__); |
785 | +@@ -199,7 +188,7 @@ deactivate (NMModem *_self, NMDevice *de |
786 | + NM_MODEM_CLASS (nm_modem_ofono_parent_class)->deactivate (_self, device); |
787 | + } |
788 | + |
789 | +-DBusGProxy * |
790 | ++static DBusGProxy * |
791 | + get_ofono_proxy (NMModemOfono *self, const char *path, const char *interface) |
792 | + { |
793 | + NMModemOfonoPrivate *priv = NM_MODEM_OFONO_GET_PRIVATE (self); |
794 | +@@ -238,7 +227,6 @@ static void |
795 | + get_ofono_conn_manager_properties_done (DBusGProxy *proxy, DBusGProxyCall *call_id, gpointer user_data) |
796 | + { |
797 | + NMModemOfono *self = NM_MODEM_OFONO (user_data); |
798 | +- NMModemOfonoPrivate *priv = NM_MODEM_OFONO_GET_PRIVATE (self); |
799 | + GError *error = NULL; |
800 | + GHashTable *properties = NULL; |
801 | + GValue *value = NULL; |
802 | +@@ -310,12 +298,9 @@ static void |
803 | + get_ofono_sim_properties_done (DBusGProxy *proxy, DBusGProxyCall *call_id, gpointer user_data) |
804 | + { |
805 | + NMModemOfono *self = NM_MODEM_OFONO (user_data); |
806 | +- NMModemOfonoPrivate *priv = NM_MODEM_OFONO_GET_PRIVATE (self); |
807 | +- NMModemState state = nm_modem_get_state (NM_MODEM (self)); |
808 | + GError *error = NULL; |
809 | + GHashTable *properties = NULL; |
810 | + GValue *value = NULL; |
811 | +- const gchar *value_str; |
812 | + |
813 | + nm_log_dbg (LOGD_MB, "in %s", __func__); |
814 | + |
815 | +@@ -360,17 +345,12 @@ ofono_context_added (DBusGProxy *proxy, |
816 | + GValue *prop, |
817 | + gpointer user_data) |
818 | + { |
819 | +- NMModemOfono *self = NM_MODEM_OFONO (user_data); |
820 | +- |
821 | + nm_log_dbg (LOGD_MB, "context %s added", path); |
822 | + } |
823 | + |
824 | + static void |
825 | + ofono_context_removed (DBusGProxy *proxy, const char *path, gpointer user_data) |
826 | + { |
827 | +- NMModemOfono *self = NM_MODEM_OFONO (user_data); |
828 | +- NMModemOfonoPrivate *priv = NM_MODEM_OFONO_GET_PRIVATE (self); |
829 | +- |
830 | + nm_log_dbg (LOGD_MB, "context %s removed", path); |
831 | + } |
832 | + |
833 | +@@ -695,7 +675,6 @@ context_properties_changed (DBusGProxy * |
834 | + gpointer user_data) |
835 | + { |
836 | + NMModemOfono *self = NM_MODEM_OFONO (user_data); |
837 | +- NMModemOfonoPrivate *priv = NM_MODEM_OFONO_GET_PRIVATE (self); |
838 | + |
839 | + if (g_strcmp0("Settings", key) == 0) { |
840 | + ofono_context_get_ip_properties (self); |
841 | +@@ -708,8 +687,8 @@ do_context_activate (NMModemOfono *self, |
842 | + NMModemOfonoPrivate *priv = NM_MODEM_OFONO_GET_PRIVATE (self); |
843 | + GValue value = G_VALUE_INIT; |
844 | + |
845 | +- g_return_val_if_fail (self != NULL, FALSE); |
846 | +- g_return_val_if_fail (NM_IS_MODEM_OFONO (self), FALSE); |
847 | ++ g_return_if_fail (self != NULL); |
848 | ++ g_return_if_fail (NM_IS_MODEM_OFONO (self)); |
849 | + |
850 | + nm_log_dbg (LOGD_MB, "in %s", __func__); |
851 | + |
852 | +@@ -762,66 +741,6 @@ do_context_activate (NMModemOfono *self, |
853 | + |
854 | + } |
855 | + |
856 | +-static void |
857 | +-context_set_property (gpointer key, gpointer value, gpointer user_data) |
858 | +-{ |
859 | +- NMModemOfono *self = NM_MODEM_OFONO (user_data); |
860 | +- NMModemOfonoPrivate *priv = NM_MODEM_OFONO_GET_PRIVATE (self); |
861 | +- GValue val = G_VALUE_INIT; |
862 | +- |
863 | +- nm_log_dbg (LOGD_MB, "%s -- setting context prop: %s == %s", |
864 | +- __func__, |
865 | +- (char*)key, |
866 | +- (char*)value); |
867 | +- |
868 | +- g_value_init (&val, G_TYPE_STRING); |
869 | +- g_value_set_string (&val, (char*)value); |
870 | +- |
871 | +- if (!priv->property_error) { |
872 | +- dbus_g_proxy_call_with_timeout (priv->context_proxy, |
873 | +- "SetProperty", |
874 | +- 20000, |
875 | +- &priv->property_error, |
876 | +- G_TYPE_STRING, (char*)key, |
877 | +- G_TYPE_VALUE, &val, |
878 | +- G_TYPE_INVALID); |
879 | +- } else { |
880 | +- nm_log_warn (LOGD_MB, "could not set context property '%s': %s", (char*)key, |
881 | +- priv->property_error |
882 | +- && priv->property_error->message |
883 | +- ? priv->property_error->message : "(unknown)"); |
884 | +- } |
885 | +-} |
886 | +- |
887 | +-static void stage1_enable_done (DBusGProxy *proxy, DBusGProxyCall *call_id, gpointer user_data); |
888 | +- |
889 | +-static void |
890 | +-stage1_enable_done (DBusGProxy *proxy, DBusGProxyCall *call_id, gpointer user_data) |
891 | +-{ |
892 | +- NMModemOfono *self = NM_MODEM_OFONO (user_data); |
893 | +- NMModemOfonoPrivate *priv = NM_MODEM_OFONO_GET_PRIVATE (self); |
894 | +- GError *error = NULL; |
895 | +- |
896 | +- nm_log_dbg (LOGD_MB, "in %s", __func__); |
897 | +- |
898 | +- if (dbus_g_proxy_end_call (proxy, call_id, &error, G_TYPE_INVALID)) { |
899 | +- if (priv->context_path) |
900 | +- do_context_activate (self, priv->context_path); |
901 | +- else |
902 | +- g_signal_emit_by_name (self, NM_MODEM_PREPARE_RESULT, FALSE, NM_DEVICE_STATE_REASON_MODEM_INIT_FAILED); |
903 | +- } else { |
904 | +- nm_log_warn (LOGD_MB, "OFONO modem enable failed: (%d) %s", |
905 | +- error ? error->code : -1, |
906 | +- error && error->message ? error->message : "(unknown)"); |
907 | +- |
908 | +- g_signal_emit_by_name (self, NM_MODEM_PREPARE_RESULT, FALSE, NM_DEVICE_STATE_REASON_MODEM_INIT_FAILED); |
909 | +- |
910 | +- g_error_free (error); |
911 | +- } |
912 | +- |
913 | +- g_object_unref (self); |
914 | +-} |
915 | +- |
916 | + static GHashTable * |
917 | + create_connect_properties (NMConnection *connection) |
918 | + { |
919 | +@@ -857,7 +776,6 @@ act_stage1_prepare (NMModem *modem, |
920 | + NMModemOfono *self = NM_MODEM_OFONO (modem); |
921 | + NMModemOfonoPrivate *priv = NM_MODEM_OFONO_GET_PRIVATE (self); |
922 | + const char *context_id; |
923 | +- char *context_path; |
924 | + char **id = NULL; |
925 | + |
926 | + nm_log_dbg (LOGD_MB, "in %s", __func__); |
927 | +@@ -1014,7 +932,6 @@ get_capabilities (NMModem *_self, |
928 | + NMDeviceModemCapabilities *modem_caps, |
929 | + NMDeviceModemCapabilities *current_caps) |
930 | + { |
931 | +- NMModemOfono *self = NM_MODEM_OFONO (_self); |
932 | + NMDeviceModemCapabilities all_ofono_caps = NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS; |
933 | + |
934 | + *modem_caps = all_ofono_caps; |
935 | +Index: build/src/dhcp-manager/nm-dhcp-dhclient.c |
936 | +=================================================================== |
937 | +--- build.orig/src/dhcp-manager/nm-dhcp-dhclient.c |
938 | ++++ build/src/dhcp-manager/nm-dhcp-dhclient.c |
939 | +@@ -18,9 +18,7 @@ |
940 | + * Copyright (C) 2005 - 2012 Red Hat, Inc. |
941 | + */ |
942 | + |
943 | +-#define _XOPEN_SOURCE |
944 | + #include <time.h> |
945 | +-#undef _XOPEN_SOURCE |
946 | + |
947 | + #include <glib.h> |
948 | + #include <glib/gi18n.h> |
949 | +Index: build/src/dns-manager/nm-dns-dnsmasq.c |
950 | +=================================================================== |
951 | +--- build.orig/src/dns-manager/nm-dns-dnsmasq.c |
952 | ++++ build/src/dns-manager/nm-dns-dnsmasq.c |
953 | +@@ -83,7 +83,6 @@ find_dnsmasq (void) |
954 | + static gboolean |
955 | + add_ip4_config (DBusMessage *message, NMIP4Config *ip4, gboolean split) |
956 | + { |
957 | +- char buf[INET_ADDRSTRLEN]; |
958 | + in_addr_t addr; |
959 | + int nnameservers, i_nameserver, n, i; |
960 | + gboolean added = FALSE; |
961 | +@@ -105,7 +104,7 @@ add_ip4_config (DBusMessage *message, NM |
962 | + /* searches are preferred over domains */ |
963 | + n = nm_ip4_config_get_num_searches (ip4); |
964 | + for (i = 0; i < n; i++) { |
965 | +- char *search = nm_ip4_config_get_search (ip4, i); |
966 | ++ const char *search = nm_ip4_config_get_search (ip4, i); |
967 | + dbus_message_append_args (message, |
968 | + DBUS_TYPE_STRING, &search, |
969 | + DBUS_TYPE_INVALID); |
970 | +@@ -116,7 +115,7 @@ add_ip4_config (DBusMessage *message, NM |
971 | + /* If not searches, use any domains */ |
972 | + n = nm_ip4_config_get_num_domains (ip4); |
973 | + for (i = 0; i < n; i++) { |
974 | +- char *domain = nm_ip4_config_get_domain (ip4, i); |
975 | ++ const char *domain = nm_ip4_config_get_domain (ip4, i); |
976 | + dbus_message_append_args (message, |
977 | + DBUS_TYPE_STRING, &domain, |
978 | + DBUS_TYPE_INVALID); |
979 | +@@ -193,7 +192,7 @@ add_ip6_config (DBusMessage *message, NM |
980 | + /* searches are preferred over domains */ |
981 | + n = nm_ip6_config_get_num_searches (ip6); |
982 | + for (i = 0; i < n; i++) { |
983 | +- char *search = nm_ip6_config_get_search (ip6, i); |
984 | ++ const char *search = nm_ip6_config_get_search (ip6, i); |
985 | + dbus_message_append_args (message, |
986 | + DBUS_TYPE_STRING, &search, |
987 | + DBUS_TYPE_INVALID); |
988 | +@@ -204,7 +203,7 @@ add_ip6_config (DBusMessage *message, NM |
989 | + /* If not searches, use any domains */ |
990 | + n = nm_ip6_config_get_num_domains (ip6); |
991 | + for (i = 0; i < n; i++) { |
992 | +- char *domain = nm_ip6_config_get_domain (ip6, i); |
993 | ++ const char *domain = nm_ip6_config_get_domain (ip6, i); |
994 | + dbus_message_append_args (message, |
995 | + DBUS_TYPE_STRING, &domain, |
996 | + DBUS_TYPE_INVALID); |
997 | +@@ -342,7 +341,7 @@ update (NMDnsPlugin *plugin, |
998 | + /* Work on a copy of the vpn_configs list because we might want to remove |
999 | + * some items from it, yet not affect other DNS plugins that might run |
1000 | + */ |
1001 | +- vpn_configs_copy = g_slist_copy (vpn_configs); |
1002 | ++ vpn_configs_copy = g_slist_copy ((GSList*) vpn_configs); |
1003 | + |
1004 | + /* Look for a VPN config that is set to get a default route, and if |
1005 | + * there is one, install it *without* splitting into per-domain servers. |
1006 | +@@ -413,9 +412,9 @@ update (NMDnsPlugin *plugin, |
1007 | + * we cleared up the dnsmasq cache; but we should also fail the update, so |
1008 | + * that we don't write 127.0.1.1 to resolv.conf. |
1009 | + */ |
1010 | +- if (((vpn_configs && g_slist_length (vpn_configs) < 1) || !vpn_configs) && |
1011 | +- ((dev_configs && g_slist_length (dev_configs) < 1) || !dev_configs) && |
1012 | +- ((other_configs && g_slist_length (other_configs) < 1) || !other_configs)) |
1013 | ++ if (((vpn_configs && g_slist_length ((GSList*) vpn_configs) < 1) || !vpn_configs) && |
1014 | ++ ((dev_configs && g_slist_length ((GSList*) dev_configs) < 1) || !dev_configs) && |
1015 | ++ ((other_configs && g_slist_length ((GSList*) other_configs) < 1) || !other_configs)) |
1016 | + ret = FALSE; |
1017 | + |
1018 | + out: |
1019 | +Index: build/src/dns-manager/nm-dns-manager.c |
1020 | +=================================================================== |
1021 | +--- build.orig/src/dns-manager/nm-dns-manager.c |
1022 | ++++ build/src/dns-manager/nm-dns-manager.c |
1023 | +@@ -784,7 +784,6 @@ static void |
1024 | + plugin_appeared (NMDnsPlugin *plugin, gpointer user_data) |
1025 | + { |
1026 | + NMDnsManager *self = NM_DNS_MANAGER (user_data); |
1027 | +- NMDnsManagerPrivate *priv = NM_DNS_MANAGER_GET_PRIVATE (self); |
1028 | + GError *error = NULL; |
1029 | + |
1030 | + /* Not applicable to non-caching plugins */ |
1031 | +Index: build/src/nm-manager.c |
1032 | +=================================================================== |
1033 | +--- build.orig/src/nm-manager.c |
1034 | ++++ build/src/nm-manager.c |
1035 | +@@ -800,7 +800,6 @@ remove_device (NMManager *manager, NMDev |
1036 | + NMManagerPrivate *priv = NM_MANAGER_GET_PRIVATE (manager); |
1037 | + |
1038 | + if (nm_device_get_managed (device)) { |
1039 | +- NMActRequest *req = nm_device_get_act_request (device); |
1040 | + gboolean unmanage = FALSE; |
1041 | + |
1042 | + /* Ubuntu: don't use device assumption, so as not to leave |
1043 | +@@ -2172,7 +2171,6 @@ platform_link_added (NMManager *self, |
1044 | + /* |
1045 | + * Ubuntu: Explicitly unmanage p2p Wi-Fi devices exposed by Android JB Wi-Fi drivers. |
1046 | + */ |
1047 | +- NMDeviceType devtype = nm_device_get_device_type (device); |
1048 | + if ((plink->type == NM_LINK_TYPE_WIFI) |
1049 | + && !strncmp (plink->name, "p2p0", STRLEN ("p2p0"))) { |
1050 | + nm_log_info (LOGD_HW, "(%s): ignoring P2P wireless iface", plink->name); |
1051 | +@@ -4266,9 +4264,6 @@ ifstate_file_changed (GFileMonitor *moni |
1052 | + GFileMonitorEvent event_type, |
1053 | + gpointer user_data) |
1054 | + { |
1055 | +- NMManager *self = NM_MANAGER (user_data); |
1056 | +- NMManagerPrivate *priv = NM_MANAGER_GET_PRIVATE (self); |
1057 | +- |
1058 | + switch (event_type) { |
1059 | + // case G_FILE_MONITOR_EVENT_CREATED: |
1060 | + //#if GLIB_CHECK_VERSION(2,23,4) |
1061 | +@@ -4809,7 +4804,6 @@ urfkill_wlan_state_changed_cb (NMUrfkill |
1062 | + { |
1063 | + NMManager *self = NM_MANAGER (user_data); |
1064 | + NMManagerPrivate *priv = NM_MANAGER_GET_PRIVATE (self); |
1065 | +- GError *error = NULL; |
1066 | + |
1067 | + nm_log_dbg (LOGD_RFKILL, "urfkill wlan state changed to %s", |
1068 | + enabled ? "enabled" : "disabled"); |
1069 | +@@ -4832,7 +4826,6 @@ urfkill_wwan_state_changed_cb (NMUrfkill |
1070 | + { |
1071 | + NMManager *self = NM_MANAGER (user_data); |
1072 | + NMManagerPrivate *priv = NM_MANAGER_GET_PRIVATE (self); |
1073 | +- GError *error = NULL; |
1074 | + |
1075 | + nm_log_dbg (LOGD_RFKILL, "urfkill wwan state changed to %s", |
1076 | + enabled ? "enabled" : "disabled"); |
1077 | +@@ -4910,6 +4903,7 @@ nm_manager_new (NMSettings *settings, |
1078 | + NMManagerPrivate *priv; |
1079 | + DBusGConnection *bus; |
1080 | + DBusConnection *dbus_connection; |
1081 | ++ KillState *kill_state; |
1082 | + |
1083 | + g_assert (settings); |
1084 | + |
1085 | +@@ -5009,7 +5003,7 @@ nm_manager_new (NMSettings *settings, |
1086 | + * changes to the WirelessEnabled/WWANEnabled properties which toggle kernel |
1087 | + * rfkill. |
1088 | + */ |
1089 | +- KillState *kill_state = g_slice_new0 (KillState); |
1090 | ++ kill_state = g_slice_new0 (KillState); |
1091 | + kill_state->manager = g_object_ref (singleton); |
1092 | + kill_state->wlan_enabled = initial_wifi_enabled; |
1093 | + kill_state->wwan_enabled = initial_wwan_enabled; |
1094 | +Index: build/src/nm-urfkill-manager.c |
1095 | +=================================================================== |
1096 | +--- build.orig/src/nm-urfkill-manager.c |
1097 | ++++ build/src/nm-urfkill-manager.c |
1098 | +@@ -63,7 +63,6 @@ wlan_state_changed (GDBusProxy *proxy, |
1099 | + gpointer user_data) |
1100 | + { |
1101 | + NMUrfkillManager *self = NM_URFKILL_MANAGER (user_data); |
1102 | +- GVariant *state; |
1103 | + gboolean enabled; |
1104 | + |
1105 | + enabled = nm_urfkill_get_wlan_state (self); |
1106 | +@@ -81,7 +80,6 @@ wwan_state_changed (GDBusProxy *proxy, |
1107 | + gpointer user_data) |
1108 | + { |
1109 | + NMUrfkillManager *self = NM_URFKILL_MANAGER (user_data); |
1110 | +- GVariant *state = NULL; |
1111 | + gboolean enabled; |
1112 | + |
1113 | + enabled = nm_urfkill_get_wwan_state (self); |
1114 | +@@ -234,8 +232,6 @@ on_urfkill_vanished (GDBusConnection *co |
1115 | + static void |
1116 | + nm_urfkill_manager_init (NMUrfkillManager *self) |
1117 | + { |
1118 | +- DBusGConnection *bus; |
1119 | +- |
1120 | + self->urfkill_watch = g_bus_watch_name (G_BUS_TYPE_SYSTEM, |
1121 | + "org.freedesktop.URfkill", |
1122 | + 0, |
1123 | +Index: build/src/nm-urfkill-manager.h |
1124 | +=================================================================== |
1125 | +--- build.orig/src/nm-urfkill-manager.h |
1126 | ++++ build/src/nm-urfkill-manager.h |
1127 | +@@ -39,7 +39,7 @@ typedef struct _NMUrfkillManager NMUrfki |
1128 | + |
1129 | + GType nm_urfkill_manager_get_type (void); |
1130 | + |
1131 | +-NMUrfkillManager *nm_urfkill_manager_new (); |
1132 | ++NMUrfkillManager *nm_urfkill_manager_new (void); |
1133 | + |
1134 | + gboolean nm_urfkill_get_wlan_state (NMUrfkillManager *self); |
1135 | + gboolean nm_urfkill_get_wwan_state (NMUrfkillManager *self); |
1136 | +Index: build/src/devices/bluetooth/Makefile.am |
1137 | +=================================================================== |
1138 | +--- build.orig/src/devices/bluetooth/Makefile.am |
1139 | ++++ build/src/devices/bluetooth/Makefile.am |
1140 | +@@ -19,7 +19,8 @@ AM_CPPFLAGS = \ |
1141 | + $(DBUS_CFLAGS) \ |
1142 | + $(POLKIT_CFLAGS) \ |
1143 | + $(LIBNL_CFLAGS) \ |
1144 | +- $(GUDEV_CFLAGS) |
1145 | ++ $(GUDEV_CFLAGS) \ |
1146 | ++ -Wno-deprecated-declarations |
1147 | + |
1148 | + GLIB_GENERATED = nm-bt-enum-types.h nm-bt-enum-types.c |
1149 | + GLIB_MKENUMS_H_FLAGS = --identifier-prefix NM |
1150 | +Index: build/src/settings/plugins/ofono/plugin.c |
1151 | +=================================================================== |
1152 | +--- build.orig/src/settings/plugins/ofono/plugin.c |
1153 | ++++ build/src/settings/plugins/ofono/plugin.c |
1154 | +@@ -96,11 +96,6 @@ ofono_plugin_error_quark (void) |
1155 | + } |
1156 | + |
1157 | + static void |
1158 | +-ignore_cb () |
1159 | +-{ |
1160 | +-} |
1161 | +- |
1162 | +-static void |
1163 | + SCPluginOfono_parse_contexts (SCPluginOfono *self, GSList *contexts, const char *imsi) |
1164 | + { |
1165 | + SCPluginOfonoPrivate *priv = SC_PLUGIN_OFONO_GET_PRIVATE (self); |
1166 | +@@ -197,7 +192,6 @@ next_context: |
1167 | + static gboolean |
1168 | + nm_ofono_read_imsi_contexts (SCPluginOfono *self, const char *imsi, GError **error) |
1169 | + { |
1170 | +- SCPluginOfonoPrivate *priv = SC_PLUGIN_OFONO_GET_PRIVATE (self); |
1171 | + GHashTable *context; |
1172 | + GHashTable *pref_context = NULL; |
1173 | + GSList *contexts = NULL; |
1174 | +@@ -358,7 +352,6 @@ ofono_imsi_changed (GFileMonitor *monito |
1175 | + gpointer user_data) |
1176 | + { |
1177 | + SCPluginOfono *self = SC_PLUGIN_OFONO (user_data); |
1178 | +- SCPluginOfonoPrivate *priv = SC_PLUGIN_OFONO_GET_PRIVATE (self); |
1179 | + GFile *parent; |
1180 | + gchar *path, *imsi; |
1181 | + GError *error = NULL; |
1182 | +@@ -465,9 +458,8 @@ ofono_dir_changed (GFileMonitor *monitor |
1183 | + SCPluginOfono *self = SC_PLUGIN_OFONO (user_data); |
1184 | + SCPluginOfonoPrivate *priv = SC_PLUGIN_OFONO_GET_PRIVATE (self); |
1185 | + GFileMonitor *imsi_monitor; |
1186 | +- GFile *config_path; |
1187 | + gulong id; |
1188 | +- gchar *imsi, *path; |
1189 | ++ gchar *imsi; |
1190 | + gboolean res; |
1191 | + GError *error = NULL; |
1192 | + |
1193 | +@@ -597,8 +589,6 @@ static void |
1194 | + GObject__get_property (GObject *object, guint prop_id, |
1195 | + GValue *value, GParamSpec *pspec) |
1196 | + { |
1197 | +- NMSystemConfigInterface *self = NM_SYSTEM_CONFIG_INTERFACE (object); |
1198 | +- |
1199 | + switch (prop_id) { |
1200 | + case NM_SYSTEM_CONFIG_INTERFACE_PROP_NAME: |
1201 | + g_value_set_string (value, OFONO_PLUGIN_NAME); |
1202 | +@@ -676,8 +666,6 @@ SCPluginOfono_init (NMSystemConfigInterf |
1203 | + { |
1204 | + SCPluginOfono *self = SC_PLUGIN_OFONO (config); |
1205 | + SCPluginOfonoPrivate *priv = SC_PLUGIN_OFONO_GET_PRIVATE (self); |
1206 | +- GError *error = NULL; |
1207 | +- gboolean success = FALSE; |
1208 | + |
1209 | + /* Keep a hash table of GFileMonitors per IMSI for later removal */ |
1210 | + if (!priv->ofono_imsi_monitors) |
1211 | +@@ -705,11 +693,13 @@ SCPluginOfono_get_unmanaged_specs (NMSys |
1212 | + static gint |
1213 | + sort_by_context_id (gconstpointer a, gconstpointer b) |
1214 | + { |
1215 | ++ const char *context_a, *context_b; |
1216 | ++ |
1217 | + g_return_val_if_fail (a != NULL, 0); |
1218 | + g_return_val_if_fail (b != NULL, 0); |
1219 | + |
1220 | +- const char *context_a = nm_connection_get_id (NM_CONNECTION (a)); |
1221 | +- const char *context_b = nm_connection_get_id (NM_CONNECTION (b)); |
1222 | ++ context_a = nm_connection_get_id (NM_CONNECTION (a)); |
1223 | ++ context_b = nm_connection_get_id (NM_CONNECTION (b)); |
1224 | + |
1225 | + return g_strcmp0 (context_a, context_b); |
1226 | + } |
1227 | +Index: build/src/platform/tests/test-link.c |
1228 | +=================================================================== |
1229 | +--- build.orig/src/platform/tests/test-link.c |
1230 | ++++ build/src/platform/tests/test-link.c |
1231 | +@@ -188,12 +188,12 @@ test_slave (int master, int type, Signal |
1232 | + /* Older team versions (e.g. Fedora 17) have a bug that team master stays |
1233 | + * IFF_LOWER_UP even if its slave is down. Double check it with iproute2 and if |
1234 | + * `ip link` also claims master to be up, accept it. */ |
1235 | +- char *stdout = NULL; |
1236 | ++ char *_stdout = NULL; |
1237 | + |
1238 | +- nmtst_spawn_sync (NULL, &stdout, NULL, 0, "/sbin/ip", "link", "show", "dev", nm_platform_link_get_name (master)); |
1239 | ++ nmtst_spawn_sync (NULL, &_stdout, NULL, 0, "/sbin/ip", "link", "show", "dev", nm_platform_link_get_name (master)); |
1240 | + |
1241 | +- g_assert (strstr (stdout, "LOWER_UP")); |
1242 | +- g_free (stdout); |
1243 | ++ g_assert (strstr (_stdout, "LOWER_UP")); |
1244 | ++ g_free (_stdout); |
1245 | + } else |
1246 | + g_assert_not_reached (); |
1247 | + } |
1248 | |
1249 | === modified file 'debian/patches/series' |
1250 | --- debian/patches/series 2015-10-01 21:39:53 +0000 |
1251 | +++ debian/patches/series 2016-03-30 06:28:14 +0000 |
1252 | @@ -76,3 +76,6 @@ |
1253 | lp1444162-add-ip6-config-to-nm-ofono-connections.patch |
1254 | fix-ofono-plugin-leaks.patch |
1255 | rm-scofono-plugin-dbus.patch |
1256 | + |
1257 | +fix-code-to-build-with-werror.patch |
1258 | +add-snappy-support.patch |
1259 | |
1260 | === added directory 'parts' |
1261 | === added directory 'parts/plugins' |
1262 | === added file 'parts/plugins/x-autotools.py' |
1263 | --- parts/plugins/x-autotools.py 1970-01-01 00:00:00 +0000 |
1264 | +++ parts/plugins/x-autotools.py 2016-03-30 06:28:14 +0000 |
1265 | @@ -0,0 +1,129 @@ |
1266 | +# -*- Mode:Python; indent-tabs-mode:nil; tab-width:4 -*- |
1267 | +# |
1268 | +# Copyright (C) 2015 Canonical Ltd |
1269 | +# |
1270 | +# This program is free software: you can redistribute it and/or modify |
1271 | +# it under the terms of the GNU General Public License version 3 as |
1272 | +# published by the Free Software Foundation. |
1273 | +# |
1274 | +# This program is distributed in the hope that it will be useful, |
1275 | +# but WITHOUT ANY WARRANTY; without even the implied warranty of |
1276 | +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
1277 | +# GNU General Public License for more details. |
1278 | +# |
1279 | +# You should have received a copy of the GNU General Public License |
1280 | +# along with this program. If not, see <http://www.gnu.org/licenses/>. |
1281 | + |
1282 | +"""The autotools plugin is used for autotools based parts. |
1283 | + |
1284 | +Autotools based projects are the ones that have the usual |
1285 | +`./configure && make && make install` instruction set. |
1286 | + |
1287 | +The plugin tries to build using ./configure first, if it is not there |
1288 | +it will run ./autogen and if autogen is not there it will run autoreconf. |
1289 | + |
1290 | +This plugin uses the common plugin keywords as well as those for "sources". |
1291 | +For more information check the 'plugins' topic for the former and the |
1292 | +'sources' topic for the latter. |
1293 | + |
1294 | +In additon, this plugin uses the following plugin-specific keywords: |
1295 | + |
1296 | + - configflags: |
1297 | + (list of strings) |
1298 | + configure flags to pass to the build such as those shown by running |
1299 | + './configure --help' |
1300 | +""" |
1301 | + |
1302 | +import os |
1303 | +import stat |
1304 | + |
1305 | +import snapcraft |
1306 | + |
1307 | + |
1308 | +class AutotoolsPlugin(snapcraft.BasePlugin): |
1309 | + |
1310 | + @classmethod |
1311 | + def schema(cls): |
1312 | + schema = super().schema() |
1313 | + schema['properties']['configflags'] = { |
1314 | + 'type': 'array', |
1315 | + 'minitems': 1, |
1316 | + 'uniqueItems': True, |
1317 | + 'items': { |
1318 | + 'type': 'string', |
1319 | + }, |
1320 | + 'default': [], |
1321 | + } |
1322 | + |
1323 | + schema['properties']['install-via'] = { |
1324 | + 'enum': ['destdir', 'prefix'], |
1325 | + 'default': 'destdir', |
1326 | + } |
1327 | + |
1328 | + schema['properties']['patches-dir'] = { |
1329 | + 'type': 'string', |
1330 | + 'default': 'patches', |
1331 | + } |
1332 | + |
1333 | + schema['properties']['force-autogen'] = { |
1334 | + 'type': 'boolean', |
1335 | + 'default': 'true', |
1336 | + } |
1337 | + |
1338 | + return schema |
1339 | + |
1340 | + def __init__(self, name, options): |
1341 | + super().__init__(name, options) |
1342 | + self.build_packages.extend([ |
1343 | + 'autoconf', |
1344 | + 'automake', |
1345 | + 'autopoint', |
1346 | + 'libtool', |
1347 | + 'make', |
1348 | + ]) |
1349 | + |
1350 | + if options.install_via == 'destdir': |
1351 | + self.install_via_destdir = True |
1352 | + elif options.install_via == 'prefix': |
1353 | + self.install_via_destdir = False |
1354 | + else: |
1355 | + raise RuntimeError('Unsupported installation method: "{}"'.format( |
1356 | + options.install_via)) |
1357 | + |
1358 | + def build(self): |
1359 | + super().build() |
1360 | + |
1361 | + patchdir = os.path.join(self.builddir, "../../..", self.options.patches_dir) |
1362 | + |
1363 | + if os.path.exists(patchdir): |
1364 | + os.environ['QUILT_PATCHES'] = patchdir |
1365 | + self.run(['quilt', 'push', '-a']) |
1366 | + |
1367 | + if not os.path.exists(os.path.join(self.builddir, "configure")) or self.options.force_autogen: |
1368 | + autogen_path = os.path.join(self.builddir, "autogen.sh") |
1369 | + if os.path.exists(autogen_path): |
1370 | + # Make sure it's executable |
1371 | + if not os.access(autogen_path, os.X_OK): |
1372 | + os.chmod(autogen_path, |
1373 | + stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR | |
1374 | + stat.S_IRGRP | stat.S_IWGRP | stat.S_IXGRP | |
1375 | + stat.S_IROTH | stat.S_IWOTH | stat.S_IXOTH) |
1376 | + |
1377 | + self.run(['env', 'NOCONFIGURE=1', './autogen.sh']) |
1378 | + else: |
1379 | + self.run(['autoreconf', '-i']) |
1380 | + |
1381 | + configure_command = ['./configure'] |
1382 | + make_install_command = ['make', 'install'] |
1383 | + |
1384 | + if self.install_via_destdir: |
1385 | + # Use an empty prefix since we'll install via DESTDIR |
1386 | + configure_command.append('--prefix=') |
1387 | + make_install_command.append('DESTDIR=' + self.installdir) |
1388 | + else: |
1389 | + configure_command.append('--prefix=' + self.installdir) |
1390 | + |
1391 | + self.run(configure_command + self.options.configflags) |
1392 | + self.run(['make', '-j{}'.format( |
1393 | + snapcraft.common.get_parallel_build_count())]) |
1394 | + self.run(make_install_command) |
1395 | |
1396 | === added file 'snapcraft.yaml' |
1397 | --- snapcraft.yaml 1970-01-01 00:00:00 +0000 |
1398 | +++ snapcraft.yaml 2016-03-30 06:28:14 +0000 |
1399 | @@ -0,0 +1,239 @@ |
1400 | +name: network-manager |
1401 | +version: 0.9.10.0-4ubuntu15.1.8-1 |
1402 | +type: app |
1403 | +summary: Network management based on NeworkManager |
1404 | +description: Network management of wired ethernet and WiFi based on NetworkManager |
1405 | +icon: snappy/icon.svg |
1406 | + |
1407 | +apps: |
1408 | + nmcli: |
1409 | + command: usr/bin/nmcli |
1410 | + plugs: [unconfined] |
1411 | + nmtui-connect: |
1412 | + command: usr/bin/nmtui-connect |
1413 | + plugs: [unconfined] |
1414 | + nmtui-edit: |
1415 | + command: usr/bin/nmtui-edit |
1416 | + plugs: [unconfined] |
1417 | + NetworkManager: |
1418 | + command: bin/networkmanager |
1419 | + daemon: simple |
1420 | + plugs: [unconfined] |
1421 | + dnsmasq: |
1422 | + command: bin/dnsmasq |
1423 | + daemon: simple |
1424 | + plugs: [unconfined] |
1425 | + |
1426 | +plugs: |
1427 | + unconfined: |
1428 | + interface: old-security |
1429 | + security-template: unconfined |
1430 | + |
1431 | +parts: |
1432 | + networkmanager-common: |
1433 | + plugin: copy |
1434 | + files: |
1435 | + snappy/bin/networkmanager: bin/networkmanager |
1436 | + snappy/bin/dnsmasq: bin/dnsmasq |
1437 | + snappy/conf/NetworkManager.conf: etc/NetworkManager/NetworkManager.conf |
1438 | + snappy/conf/dnsmasq-dbus.conf: conf/dnsmasq-dbus.conf |
1439 | + |
1440 | + networkmanager: |
1441 | + plugin: autotools |
1442 | + |
1443 | + source: https://download.gnome.org/sources/NetworkManager/0.9/NetworkManager-0.9.10.0.tar.xz |
1444 | + |
1445 | + # Taking the same patchset as our debian package does |
1446 | + patches-dir: debian/patches |
1447 | + |
1448 | + # NOTE: Force autogen to be executed again even if the tarball already |
1449 | + # comes with a configure script but that links against aclocal-1.13 |
1450 | + # which we don't profile anymore and will cause the build to fail. |
1451 | + force-autogen: true |
1452 | + |
1453 | + # NOTE: Keep this in sync with what the debian package configures |
1454 | + # NetworkManager. For everything we do differently please add a |
1455 | + # comment why we do so. |
1456 | + configflags: |
1457 | + - --libexecdir=/usr/lib/NetworkManager |
1458 | + - --with-pppd-plugin-dir=/usr/lib/pppd/2.4.6 |
1459 | + - --with-pppd=/usr/sbin/pppd |
1460 | + - --with-pppoe=/usr/sbin/pppoe |
1461 | + - --with-resolvconf=/sbin/resolvconf |
1462 | + - --with-dhclient=/sbin/dhclient |
1463 | + - --with-iptables=/sbin/iptables |
1464 | + - --with-dnsmasq=/usr/sbin/dnsmasq |
1465 | + - --with-systemdsystemunitdir=/lib/systemd/system |
1466 | + - --with-crypto=gnutls |
1467 | + - --with-session-tracking=systemd |
1468 | + - --with-suspend-resume=systemd |
1469 | + - --with-modem-manager-1 |
1470 | + - --with-nmtui |
1471 | + - --disable-more-warnings |
1472 | + - --disable-modify-system |
1473 | + - --enable-polkit |
1474 | + - --enable-ppp |
1475 | + - --enable-ifupdown |
1476 | + - --enable-introspection |
1477 | + - --enable-gtk-doc |
1478 | + - --enable-concheck |
1479 | + - --enable-teamdctl=no |
1480 | + - --enable-vala |
1481 | + - --enable-bluez4 |
1482 | + - --with-tests |
1483 | + # NOTE: After this all options are specific to snappy and are not |
1484 | + # in sync with those being used in the debian package. |
1485 | + - --prefix=/usr |
1486 | + - --sysconfdir=/etc |
1487 | + - --disable-qt |
1488 | + - --enable-snappy |
1489 | + |
1490 | + # We stage everything here we need for build and runtime |
1491 | + stage-packages: |
1492 | + - adduser |
1493 | + - dbus-test-runner |
1494 | + - dnsmasq-base |
1495 | + - gobject-introspection |
1496 | + - gtk-doc-tools |
1497 | + - init-system-helpers |
1498 | + - intltool |
1499 | + - iputils-arping |
1500 | + - isc-dhcp-client |
1501 | + - iw |
1502 | + - libc6 |
1503 | + - libdbus-1-3 |
1504 | + - libdbus-1-dev |
1505 | + - libdbus-glib-1-2 |
1506 | + - libdbus-glib-1-dev |
1507 | + - libgcrypt11-dev |
1508 | + - libgcrypt20 |
1509 | + - libgirepository1.0-dev |
1510 | + - libglib2.0-0 |
1511 | + - libglib2.0-dev |
1512 | + - libglib2.0-doc |
1513 | + - libgudev-1.0-0 |
1514 | + - libgudev-1.0-dev |
1515 | + - libiw-dev |
1516 | + - libmbim-glib4 |
1517 | + - libmm-glib-dev |
1518 | + - libndp-dev |
1519 | + - libndp0 |
1520 | + - libnewt-dev |
1521 | + - libnewt0.52 |
1522 | + - libnl-3-200 |
1523 | + - libnl-3-dev |
1524 | + - libnl-genl-3-200 |
1525 | + - libnl-genl-3-dev |
1526 | + - libnl-route-3-200 |
1527 | + - libnl-route-3-dev |
1528 | + - libnss3-dev |
1529 | + - libnspr4-dev |
1530 | + - libpam-systemd |
1531 | + - libpolkit-agent-1-0 |
1532 | + - libpolkit-gobject-1-0 |
1533 | + - libpolkit-gobject-1-dev |
1534 | + - libqmi-glib1 |
1535 | + - libreadline-dev |
1536 | + - libreadline6 |
1537 | + - libsoup2.4-1 |
1538 | + - libsoup2.4-dev |
1539 | + - libsystemd-dev |
1540 | + - libsystemd0 |
1541 | + - libudev-dev |
1542 | + - libuuid1 |
1543 | + - lsb-base |
1544 | + - pkg-config |
1545 | + - policykit-1 |
1546 | + - ppp-dev |
1547 | + - python-dbus |
1548 | + - python-gi |
1549 | + - udev |
1550 | + - uuid-dev |
1551 | + - valac |
1552 | + - wireless-tools |
1553 | + |
1554 | + # We don't want that anything from our staged packages ends |
1555 | + # up in the resulting snap. We only need them to build |
1556 | + # NetworkManager. All runtime dependencies are pulled in with |
1557 | + # the rdepends part below. The only left items specified |
1558 | + # here are the results of the network manager build. |
1559 | + filesets: |
1560 | + docs: |
1561 | + # Need those to chip the license files of all things |
1562 | + # we put into the snap. |
1563 | + - usr/share/doc |
1564 | + binaries: |
1565 | + - usr/bin/nm-online |
1566 | + - usr/bin/nmcli |
1567 | + - usr/bin/nmtui |
1568 | + - usr/bin/nmtui-connect |
1569 | + - usr/bin/nmtui-hostname |
1570 | + - usr/bin/nmtui-edit |
1571 | + - usr/lib/*/NetworkManager |
1572 | + - usr/lib/pppd/2.4.6/nm-pppd-plugin.so |
1573 | + - usr/lib/NetworkManager |
1574 | + - usr/sbin/NetworkManager |
1575 | + - usr/lib/*/libnm-*.so* |
1576 | + - usr/lib/libnm-*.so* |
1577 | + configs: |
1578 | + - etc/dbus-1/system.d/* |
1579 | + rdepends: |
1580 | + - lib64/* |
1581 | + - lib/*/ |
1582 | + - usr/lib/*/ |
1583 | + - sbin/iwconfig |
1584 | + - sbin/iwlist |
1585 | + - sbin/iw |
1586 | + - sbin/dhclient-script |
1587 | + - sbin/dhclient |
1588 | + - bin/ip |
1589 | + - etc/dbus-1/system.d/dnsmasq.conf |
1590 | + - etc/iproute2/ |
1591 | + - usr/sbin/arpd |
1592 | + - usr/sbin/dnsmasq |
1593 | + - usr/bin/arping |
1594 | + - usr/share/dnsmasq-base/ |
1595 | + - etc/dhcp/ |
1596 | + unwanted: |
1597 | + - -etc/dbus-1/system.d/org.freedesktop.ModemManager1.conf |
1598 | + - -usr/bin/mmcli |
1599 | + - -usr/include/libmm-glib/ |
1600 | + - -usr/lib/*/libmm-glib.so* |
1601 | + - -usr/lib/*/ModemManager/ |
1602 | + - -usr/sbin/ModemManager |
1603 | + - -usr/share/icons/hicolor/22x22/apps/ModemManager.png |
1604 | + - -usr/lib/*/gobject-introspection |
1605 | + - -usr/lib/*/pkgconfig |
1606 | + - -usr/lib/pkgconfig |
1607 | + - -usr/lib/*/perl/ |
1608 | + - -usr/lib/*/perl5/ |
1609 | + - -usr/lib/python2.7/ |
1610 | + - -usr/lib/python3.4/ |
1611 | + - -usr/lib/python3/ |
1612 | + - -usr/lib/gcc/ |
1613 | + - -usr/lib/ldscripts/ |
1614 | + - -usr/lib/policykit-1 |
1615 | + - -usr/lib/valgrind/ |
1616 | + - -usr/lib/*/dbus-1.0/ |
1617 | + - -usr/lib/*/girepository-1.0/ |
1618 | + - -usr/lib/*/gconv/ |
1619 | + - -usr/lib/girepository-1.0/ |
1620 | + - -usr/lib/compat-ld/ |
1621 | + - -usr/lib/dbus-1.0/dbus-daemon-launch-helper |
1622 | + - -usr/lib/dpkg/ |
1623 | + - -lib/udev |
1624 | + - -lib/systemd |
1625 | + - -lib/ifupdown |
1626 | + - -lib/lsb |
1627 | + - -usr/lib/*.a |
1628 | + - -usr/lib/*/*.a |
1629 | + - -usr/lib/*.la |
1630 | + - -usr/lib/*/*.la |
1631 | + - -usr/lib/*/NetworkManager/*.la |
1632 | + - -usr/lib/pppd/*/nm-pppd-plugin.la |
1633 | + snap: |
1634 | + - $docs |
1635 | + - $binaries |
1636 | + - $configs |
1637 | + - $rdepends |
1638 | + - $unwanted |
1639 | |
1640 | === added directory 'snappy' |
1641 | === added directory 'snappy/bin' |
1642 | === added file 'snappy/bin/dhclient' |
1643 | --- snappy/bin/dhclient 1970-01-01 00:00:00 +0000 |
1644 | +++ snappy/bin/dhclient 2016-03-30 06:28:14 +0000 |
1645 | @@ -0,0 +1,32 @@ |
1646 | +#!/bin/bash |
1647 | + |
1648 | +set -e |
1649 | +set -x |
1650 | + |
1651 | +escape() { |
1652 | + echo "$*" | sed "s/'/'\"'\"'/g; s/.*/'&'/" |
1653 | +} |
1654 | + |
1655 | +run="" |
1656 | +while [ $# -gt 0 ]; do |
1657 | + case $1 in |
1658 | + -sf|-pf|-lf|-cf) |
1659 | + case $2 in |
1660 | + /*) |
1661 | + path=$2 |
1662 | + ;; |
1663 | + *) |
1664 | + path=$PWD/$2 |
1665 | + ;; |
1666 | + esac |
1667 | + run="$run $1 `escape $path`" |
1668 | + shift 2 |
1669 | + ;; |
1670 | + *) |
1671 | + run="$run `escape $1`" |
1672 | + shift |
1673 | + ;; |
1674 | + esac |
1675 | +done |
1676 | + |
1677 | +eval exec $0.real $run |
1678 | |
1679 | === added file 'snappy/bin/dnsmasq' |
1680 | --- snappy/bin/dnsmasq 1970-01-01 00:00:00 +0000 |
1681 | +++ snappy/bin/dnsmasq 2016-03-30 06:28:14 +0000 |
1682 | @@ -0,0 +1,41 @@ |
1683 | +#!/bin/sh |
1684 | + |
1685 | +set -e |
1686 | +set -x |
1687 | + |
1688 | +# Copy in our dbus policy until snappy has support for this |
1689 | +cp $SNAP_APP_PATH/conf/dnsmasq-dbus.conf \ |
1690 | + /etc/dbus-1/system.d/$SNAP_APP.conf |
1691 | + |
1692 | +mkdir -p $SNAP_APP_DATA_PATH/etc/NetworkManager/dnsmasq.d |
1693 | +mkdir -p $SNAP_APP_DATA_PATH/var/run/NetworkManager |
1694 | +touch $SNAP_APP_DATA_PATH/var/run/NetworkManager/dnsmasq.conf |
1695 | +chmod 0644 $SNAP_APP_DATA_PATH/var/run/NetworkManager/dnsmasq.conf |
1696 | + |
1697 | +TRIPLET= |
1698 | + |
1699 | +case $SNAP_ARCH in |
1700 | + amd64) |
1701 | + TRIPLET=x86_64-linux-gnu |
1702 | + ;; |
1703 | + *) |
1704 | + echo "ERROR: Architecture $SNAP_ARCH isn't supported by this snap" |
1705 | + exit 1 |
1706 | +esac |
1707 | + |
1708 | + |
1709 | +# XXX hardcoded architecture |
1710 | +LD_LIBRARY_PATH="$SNAP_APP_PATH/usr/lib/$TRIPLET:$SNAP_APP_PATH/usr/lib:$SNAP_APP_PATH/lib/$TRIPLET" \ |
1711 | +$SNAP_APP_PATH/usr/sbin/dnsmasq \ |
1712 | + --no-resolv \ |
1713 | + --keep-in-foreground \ |
1714 | + --no-hosts \ |
1715 | + --listen-address=127.0.1.1 \ |
1716 | + --cache-size=0 \ |
1717 | + --proxy-dnssec \ |
1718 | + --enable-dbus=org.freedesktop.NetworkManager.dnsmasq \ |
1719 | + --conf-file=$SNAP_APP_DATA_PATH/var/run/NetworkManager/dnsmasq.conf \ |
1720 | + --conf-dir=$SNAP_APP_DATA_PATH/etc/NetworkManager/dnsmasq.d \ |
1721 | + "$@" |
1722 | + |
1723 | +rm /etc/dbus-1/system.d/$SNAP_APP.conf |
1724 | |
1725 | === added file 'snappy/bin/networkmanager' |
1726 | --- snappy/bin/networkmanager 1970-01-01 00:00:00 +0000 |
1727 | +++ snappy/bin/networkmanager 2016-03-30 06:28:14 +0000 |
1728 | @@ -0,0 +1,37 @@ |
1729 | +#!/bin/sh |
1730 | + |
1731 | +set -e |
1732 | +set -x |
1733 | + |
1734 | +# Copy in our dbus policy until snappy has support for this |
1735 | +cp $SNAP_APP_PATH/etc/dbus-1/system.d/org.freedesktop.NetworkManager.conf \ |
1736 | + /etc/dbus-1/system.d/$SNAP_APP.conf |
1737 | + |
1738 | +# Create all necessary directories we need at runtime |
1739 | +mkdir -p $SNAP_APP_DATA_PATH/etc/NetworkManager/system-connections |
1740 | +mkdir -p $SNAP_APP_DATA_PATH/run/sendsigs.omit.d |
1741 | +mkdir -p $SNAP_APP_DATA_PATH/var/run |
1742 | +mkdir -p $SNAP_APP_DATA_PATH/var/lib |
1743 | + |
1744 | +TRIPLET= |
1745 | + |
1746 | +case $SNAP_ARCH in |
1747 | + amd64) |
1748 | + TRIPLET=x86_64-linux-gnu |
1749 | + ;; |
1750 | + *) |
1751 | + echo "ERROR: Architecture $SNAP_ARCH isn't supported by this snap" |
1752 | + exit 1 |
1753 | +esac |
1754 | + |
1755 | +# TODO drop DEBUG |
1756 | +LD_LIBRARY_PATH="$SNAP_APP_PATH/usr/lib/$TRIPLET:$SNAP_APP_PATH/usr/lib:$SNAP_APP_PATH/usr/lib/$TRIPLET/NetworkManager:$SNAP_APP_PATH/usr/lib/NetworkManager:$SNAP_APP_PATH/lib/$TRIPLET" \ |
1757 | +$SNAP_APP_PATH/usr/sbin/NetworkManager \ |
1758 | + --state-file=$SNAP_APP_DATA_PATH/NetworkManager.state \ |
1759 | + --config-dir=$SNAP_APP_PATH/etc/NetworkManager \ |
1760 | + --config=$SNAP_APP_PATH/etc/NetworkManager/NetworkManager.conf \ |
1761 | + --log-level=DEBUG \ |
1762 | + --no-daemon \ |
1763 | + "$@" |
1764 | + |
1765 | +rm /etc/dbus-1/system.d/$SNAP_APP.conf |
1766 | |
1767 | === added directory 'snappy/conf' |
1768 | === added file 'snappy/conf/NetworkManager.conf' |
1769 | --- snappy/conf/NetworkManager.conf 1970-01-01 00:00:00 +0000 |
1770 | +++ snappy/conf/NetworkManager.conf 2016-03-30 06:28:14 +0000 |
1771 | @@ -0,0 +1,6 @@ |
1772 | +[main] |
1773 | +plugins=ifupdown,keyfile |
1774 | +dns=dnsmasq |
1775 | + |
1776 | +[ifupdown] |
1777 | +managed=false |
1778 | |
1779 | === added file 'snappy/conf/dnsmasq-dbus.conf' |
1780 | --- snappy/conf/dnsmasq-dbus.conf 1970-01-01 00:00:00 +0000 |
1781 | +++ snappy/conf/dnsmasq-dbus.conf 2016-03-30 06:28:14 +0000 |
1782 | @@ -0,0 +1,10 @@ |
1783 | +<!DOCTYPE busconfig PUBLIC |
1784 | + "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN" |
1785 | + "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd"> |
1786 | +<busconfig> |
1787 | + <policy user="root"> |
1788 | + <allow own="org.freedesktop.NetworkManager.dnsmasq"/> |
1789 | + <allow send_destination="org.freedesktop.NetworkManager.dnsmasq"/> |
1790 | + </policy> |
1791 | +</busconfig> |
1792 | + |
1793 | |
1794 | === added file 'snappy/conf/org.freedesktop.NetworkManager.conf' |
1795 | --- snappy/conf/org.freedesktop.NetworkManager.conf 1970-01-01 00:00:00 +0000 |
1796 | +++ snappy/conf/org.freedesktop.NetworkManager.conf 2016-03-30 06:28:14 +0000 |
1797 | @@ -0,0 +1,152 @@ |
1798 | +<!DOCTYPE busconfig PUBLIC |
1799 | + "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN" |
1800 | + "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd"> |
1801 | +<busconfig> |
1802 | + <policy user="root"> |
1803 | + <allow own="org.freedesktop.NetworkManager"/> |
1804 | + <allow send_destination="org.freedesktop.NetworkManager"/> |
1805 | + |
1806 | + <allow send_destination="org.freedesktop.NetworkManager" |
1807 | + send_interface="org.freedesktop.NetworkManager.PPP"/> |
1808 | + |
1809 | + <allow send_interface="org.freedesktop.NetworkManager.SecretAgent"/> |
1810 | + |
1811 | + <!-- Allow NM to talk to known VPN plugins; due to a bug in |
1812 | + the D-Bus daemon, when a plugin is installed and the user |
1813 | + immediately tries to use it, the VPN plugin's rules aren't |
1814 | + always loaded into dbus-daemon. Those rules allow NM to |
1815 | + talk to the plugin. Oops. Work around that by explicitly |
1816 | + allowing NM to talk to VPN plugins here. |
1817 | + --> |
1818 | + <allow send_destination="org.freedesktop.NetworkManager.openconnect"/> |
1819 | + <allow send_destination="org.freedesktop.NetworkManager.openswan"/> |
1820 | + <allow send_destination="org.freedesktop.NetworkManager.openvpn"/> |
1821 | + <allow send_destination="org.freedesktop.NetworkManager.pptp"/> |
1822 | + <allow send_destination="org.freedesktop.NetworkManager.vpnc"/> |
1823 | + <allow send_destination="org.freedesktop.NetworkManager.ssh"/> |
1824 | + <allow send_destination="org.freedesktop.NetworkManager.iodine"/> |
1825 | + |
1826 | + <!-- Allow the custom name for the dnsmasq instance spawned by NM |
1827 | + from the dns dnsmasq plugin to own it's dbus name, and for |
1828 | + messages to be sent to it. |
1829 | + --> |
1830 | + <allow own="org.freedesktop.NetworkManager.dnsmasq"/> |
1831 | + <allow send_destination="org.freedesktop.NetworkManager.dnsmasq"/> |
1832 | + </policy> |
1833 | + <policy user="whoopsie"> |
1834 | + <allow send_destination="org.freedesktop.NetworkManager"/> |
1835 | + |
1836 | + <allow send_destination="org.freedesktop.NetworkManager" |
1837 | + send_interface="org.freedesktop.DBus.Introspectable"/> |
1838 | + |
1839 | + <allow send_destination="org.freedesktop.NetworkManager" |
1840 | + send_interface="org.freedesktop.DBus.Properties"/> |
1841 | + |
1842 | + <allow send_destination="org.freedesktop.NetworkManager" |
1843 | + send_interface="org.freedesktop.NetworkManager"/> |
1844 | + |
1845 | + <allow send_destination="org.freedesktop.NetworkManager" |
1846 | + send_interface="org.freedesktop.NetworkManager.Connection.Active"/> |
1847 | + |
1848 | + <allow send_destination="org.freedesktop.NetworkManager" |
1849 | + send_interface="org.freedesktop.NetworkManager.Device"/> |
1850 | + </policy> |
1851 | + <policy context="default"> |
1852 | + <deny own="org.freedesktop.NetworkManager"/> |
1853 | + |
1854 | + <deny send_destination="org.freedesktop.NetworkManager"/> |
1855 | + |
1856 | + <!-- Basic D-Bus API stuff --> |
1857 | + <allow send_destination="org.freedesktop.NetworkManager" |
1858 | + send_interface="org.freedesktop.DBus.Introspectable"/> |
1859 | + <allow send_destination="org.freedesktop.NetworkManager" |
1860 | + send_interface="org.freedesktop.DBus.Properties"/> |
1861 | + |
1862 | + <!-- Devices (read-only properties, no methods) --> |
1863 | + <allow send_destination="org.freedesktop.NetworkManager" |
1864 | + send_interface="org.freedesktop.NetworkManager.Device.Adsl"/> |
1865 | + <allow send_destination="org.freedesktop.NetworkManager" |
1866 | + send_interface="org.freedesktop.NetworkManager.Device.Bond"/> |
1867 | + <allow send_destination="org.freedesktop.NetworkManager" |
1868 | + send_interface="org.freedesktop.NetworkManager.Device.Bridge"/> |
1869 | + <allow send_destination="org.freedesktop.NetworkManager" |
1870 | + send_interface="org.freedesktop.NetworkManager.Device.Bluetooth"/> |
1871 | + <allow send_destination="org.freedesktop.NetworkManager" |
1872 | + send_interface="org.freedesktop.NetworkManager.Device.Wired"/> |
1873 | + <allow send_destination="org.freedesktop.NetworkManager" |
1874 | + send_interface="org.freedesktop.NetworkManager.Device.Generic"/> |
1875 | + <allow send_destination="org.freedesktop.NetworkManager" |
1876 | + send_interface="org.freedesktop.NetworkManager.Device.Gre"/> |
1877 | + <allow send_destination="org.freedesktop.NetworkManager" |
1878 | + send_interface="org.freedesktop.NetworkManager.Device.Infiniband"/> |
1879 | + <allow send_destination="org.freedesktop.NetworkManager" |
1880 | + send_interface="org.freedesktop.NetworkManager.Device.Macvlan"/> |
1881 | + <allow send_destination="org.freedesktop.NetworkManager" |
1882 | + send_interface="org.freedesktop.NetworkManager.Device.Modem"/> |
1883 | + <allow send_destination="org.freedesktop.NetworkManager" |
1884 | + send_interface="org.freedesktop.NetworkManager.Device.OlpcMesh"/> |
1885 | + <allow send_destination="org.freedesktop.NetworkManager" |
1886 | + send_interface="org.freedesktop.NetworkManager.Device.Team"/> |
1887 | + <allow send_destination="org.freedesktop.NetworkManager" |
1888 | + send_interface="org.freedesktop.NetworkManager.Device.Tun"/> |
1889 | + <allow send_destination="org.freedesktop.NetworkManager" |
1890 | + send_interface="org.freedesktop.NetworkManager.Device.Veth"/> |
1891 | + <allow send_destination="org.freedesktop.NetworkManager" |
1892 | + send_interface="org.freedesktop.NetworkManager.Device.Vlan"/> |
1893 | + <allow send_destination="org.freedesktop.NetworkManager" |
1894 | + send_interface="org.freedesktop.NetworkManager.WiMax.Nsp"/> |
1895 | + <allow send_destination="org.freedesktop.NetworkManager" |
1896 | + send_interface="org.freedesktop.NetworkManager.AccessPoint"/> |
1897 | + |
1898 | + <!-- Devices (read-only, no security required) --> |
1899 | + <allow send_destination="org.freedesktop.NetworkManager" |
1900 | + send_interface="org.freedesktop.NetworkManager.Device.WiMax"/> |
1901 | + |
1902 | + <!-- Devices (read/write, secured with PolicyKit) --> |
1903 | + <allow send_destination="org.freedesktop.NetworkManager" |
1904 | + send_interface="org.freedesktop.NetworkManager.Device.Wireless"/> |
1905 | + <allow send_destination="org.freedesktop.NetworkManager" |
1906 | + send_interface="org.freedesktop.NetworkManager.Device"/> |
1907 | + |
1908 | + <!-- Core stuff (read-only properties, no methods) --> |
1909 | + <allow send_destination="org.freedesktop.NetworkManager" |
1910 | + send_interface="org.freedesktop.NetworkManager.Connection.Active"/> |
1911 | + <allow send_destination="org.freedesktop.NetworkManager" |
1912 | + send_interface="org.freedesktop.NetworkManager.DHCP4Config"/> |
1913 | + <allow send_destination="org.freedesktop.NetworkManager" |
1914 | + send_interface="org.freedesktop.NetworkManager.DHCP6Config"/> |
1915 | + <allow send_destination="org.freedesktop.NetworkManager" |
1916 | + send_interface="org.freedesktop.NetworkManager.IP4Config"/> |
1917 | + <allow send_destination="org.freedesktop.NetworkManager" |
1918 | + send_interface="org.freedesktop.NetworkManager.IP6Config"/> |
1919 | + <allow send_destination="org.freedesktop.NetworkManager" |
1920 | + send_interface="org.freedesktop.NetworkManager.VPN.Connection"/> |
1921 | + |
1922 | + <!-- Core stuff (read/write, secured with PolicyKit) --> |
1923 | + <allow send_destination="org.freedesktop.NetworkManager" |
1924 | + send_interface="org.freedesktop.NetworkManager"/> |
1925 | + <allow send_destination="org.freedesktop.NetworkManager" |
1926 | + send_interface="org.freedesktop.NetworkManager.Settings"/> |
1927 | + <allow send_destination="org.freedesktop.NetworkManager" |
1928 | + send_interface="org.freedesktop.NetworkManager.Settings.Connection"/> |
1929 | + |
1930 | + <!-- Agents; secured with PolicyKit. Any process can talk to |
1931 | + the AgentManager API, but only NetworkManager can talk |
1932 | + to the agents themselves. --> |
1933 | + <allow send_destination="org.freedesktop.NetworkManager" |
1934 | + send_interface="org.freedesktop.NetworkManager.AgentManager"/> |
1935 | + <deny send_interface="org.freedesktop.NetworkManager.SecretAgent"/> |
1936 | + |
1937 | + <!-- Root-only functions --> |
1938 | + <deny send_interface="org.freedesktop.NetworkManager" send_member="SetLogging"/> |
1939 | + <deny send_interface="org.freedesktop.NetworkManager" send_member="Sleep"/> |
1940 | + <deny send_interface="org.freedesktop.NetworkManager.Settings" send_member="LoadConnections"/> |
1941 | + <deny send_interface="org.freedesktop.NetworkManager.Settings" send_member="ReloadConnections"/> |
1942 | + <deny send_interface="org.freedesktop.NetworkManager.VPN.Plugin"/> |
1943 | + <deny send_interface="org.freedesktop.NetworkManager.PPP"/> |
1944 | + |
1945 | + <deny own="org.freedesktop.NetworkManager.dnsmasq"/> |
1946 | + <deny send_destination="org.freedesktop.NetworkManager.dnsmasq"/> |
1947 | + </policy> |
1948 | +</busconfig> |
1949 | + |
1950 | |
1951 | === added file 'snappy/icon.svg' |
1952 | --- snappy/icon.svg 1970-01-01 00:00:00 +0000 |
1953 | +++ snappy/icon.svg 2016-03-30 06:28:14 +0000 |
1954 | @@ -0,0 +1,2466 @@ |
1955 | +<?xml version="1.0" encoding="UTF-8" standalone="no"?> |
1956 | +<!-- Created with Inkscape (http://www.inkscape.org/) --> |
1957 | +<svg |
1958 | + xmlns:dc="http://purl.org/dc/elements/1.1/" |
1959 | + xmlns:cc="http://web.resource.org/cc/" |
1960 | + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" |
1961 | + xmlns:svg="http://www.w3.org/2000/svg" |
1962 | + xmlns="http://www.w3.org/2000/svg" |
1963 | + xmlns:xlink="http://www.w3.org/1999/xlink" |
1964 | + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" |
1965 | + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" |
1966 | + width="48.000000px" |
1967 | + height="48.000000px" |
1968 | + id="svg2327" |
1969 | + sodipodi:version="0.32" |
1970 | + inkscape:version="0.45" |
1971 | + sodipodi:docbase="/home/dobey/Projects/gnome-icon-theme/scalable/status" |
1972 | + sodipodi:docname="network-idle.svg" |
1973 | + inkscape:output_extension="org.inkscape.output.svg.inkscape"> |
1974 | + <defs |
1975 | + id="defs3"> |
1976 | + <linearGradient |
1977 | + id="linearGradient7670"> |
1978 | + <stop |
1979 | + style="stop-color:#3465a4;stop-opacity:1" |
1980 | + offset="0" |
1981 | + id="stop7672" /> |
1982 | + <stop |
1983 | + style="stop-color:#204a87;stop-opacity:1" |
1984 | + offset="1" |
1985 | + id="stop7674" /> |
1986 | + </linearGradient> |
1987 | + <linearGradient |
1988 | + inkscape:collect="always" |
1989 | + id="linearGradient2307"> |
1990 | + <stop |
1991 | + style="stop-color:#5a7aa4;stop-opacity:1;" |
1992 | + offset="0" |
1993 | + id="stop2309" /> |
1994 | + <stop |
1995 | + style="stop-color:#5a7aa4;stop-opacity:0;" |
1996 | + offset="1" |
1997 | + id="stop2311" /> |
1998 | + </linearGradient> |
1999 | + <linearGradient |
2000 | + id="linearGradient11400"> |
2001 | + <stop |
2002 | + id="stop11402" |
2003 | + offset="0" |
2004 | + style="stop-color:#000000;stop-opacity:1;" /> |
2005 | + <stop |
2006 | + id="stop11404" |
2007 | + offset="1" |
2008 | + style="stop-color:#000000;stop-opacity:0;" /> |
2009 | + </linearGradient> |
2010 | + <linearGradient |
2011 | + id="linearGradient6240" |
2012 | + inkscape:collect="always"> |
2013 | + <stop |
2014 | + id="stop6242" |
2015 | + offset="0" |
2016 | + style="stop-color:#ffffff;stop-opacity:1;" /> |
2017 | + <stop |
2018 | + id="stop6244" |
2019 | + offset="1" |
2020 | + style="stop-color:#ffffff;stop-opacity:0;" /> |
2021 | + </linearGradient> |
2022 | + <linearGradient |
2023 | + id="linearGradient5137"> |
2024 | + <stop |
2025 | + id="stop5139" |
2026 | + offset="0" |
2027 | + style="stop-color:#eeeeec;stop-opacity:1;" /> |
2028 | + <stop |
2029 | + id="stop5141" |
2030 | + offset="1" |
2031 | + style="stop-color:#e6e6e3;stop-opacity:1;" /> |
2032 | + </linearGradient> |
2033 | + <linearGradient |
2034 | + id="linearGradient5225" |
2035 | + inkscape:collect="always"> |
2036 | + <stop |
2037 | + id="stop5227" |
2038 | + offset="0" |
2039 | + style="stop-color:black;stop-opacity:1;" /> |
2040 | + <stop |
2041 | + id="stop5229" |
2042 | + offset="1" |
2043 | + style="stop-color:black;stop-opacity:0;" /> |
2044 | + </linearGradient> |
2045 | + <linearGradient |
2046 | + id="linearGradient3899" |
2047 | + inkscape:collect="always"> |
2048 | + <stop |
2049 | + id="stop3901" |
2050 | + offset="0" |
2051 | + style="stop-color:#eeeeec" /> |
2052 | + <stop |
2053 | + id="stop3903" |
2054 | + offset="1" |
2055 | + style="stop-color:#d3d7cf" /> |
2056 | + </linearGradient> |
2057 | + <linearGradient |
2058 | + id="linearGradient3907"> |
2059 | + <stop |
2060 | + id="stop3909" |
2061 | + offset="0" |
2062 | + style="stop-color:#ffffff;stop-opacity:1;" /> |
2063 | + <stop |
2064 | + id="stop3911" |
2065 | + offset="1" |
2066 | + style="stop-color:#ffffff;stop-opacity:0;" /> |
2067 | + </linearGradient> |
2068 | + <linearGradient |
2069 | + id="linearGradient4196"> |
2070 | + <stop |
2071 | + id="stop4198" |
2072 | + offset="0" |
2073 | + style="stop-color:black;stop-opacity:1;" /> |
2074 | + <stop |
2075 | + id="stop4200" |
2076 | + offset="1" |
2077 | + style="stop-color:black;stop-opacity:0;" /> |
2078 | + </linearGradient> |
2079 | + <linearGradient |
2080 | + inkscape:collect="always" |
2081 | + id="linearGradient5060"> |
2082 | + <stop |
2083 | + style="stop-color:black;stop-opacity:1;" |
2084 | + offset="0" |
2085 | + id="stop5062" /> |
2086 | + <stop |
2087 | + style="stop-color:black;stop-opacity:0;" |
2088 | + offset="1" |
2089 | + id="stop5064" /> |
2090 | + </linearGradient> |
2091 | + <radialGradient |
2092 | + r="19.5" |
2093 | + fy="47.045319" |
2094 | + fx="20.913568" |
2095 | + cy="47.045319" |
2096 | + cx="20.913568" |
2097 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,4.270316,21.0972)" |
2098 | + gradientUnits="userSpaceOnUse" |
2099 | + id="radialGradient3304" |
2100 | + xlink:href="#linearGradient3907" |
2101 | + inkscape:collect="always" /> |
2102 | + <radialGradient |
2103 | + r="19.5" |
2104 | + fy="47.045319" |
2105 | + fx="20.913568" |
2106 | + cy="47.045319" |
2107 | + cx="20.913568" |
2108 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,4.270316,21.0972)" |
2109 | + gradientUnits="userSpaceOnUse" |
2110 | + id="radialGradient3302" |
2111 | + xlink:href="#linearGradient3907" |
2112 | + inkscape:collect="always" /> |
2113 | + <radialGradient |
2114 | + r="19.5" |
2115 | + fy="47.045319" |
2116 | + fx="20.913568" |
2117 | + cy="47.045319" |
2118 | + cx="20.913568" |
2119 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,4.270316,21.0972)" |
2120 | + gradientUnits="userSpaceOnUse" |
2121 | + id="radialGradient3300" |
2122 | + xlink:href="#linearGradient3907" |
2123 | + inkscape:collect="always" /> |
2124 | + <radialGradient |
2125 | + r="19.5" |
2126 | + fy="47.045319" |
2127 | + fx="20.913568" |
2128 | + cy="47.045319" |
2129 | + cx="20.913568" |
2130 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,4.270316,21.0972)" |
2131 | + gradientUnits="userSpaceOnUse" |
2132 | + id="radialGradient3298" |
2133 | + xlink:href="#linearGradient3907" |
2134 | + inkscape:collect="always" /> |
2135 | + <radialGradient |
2136 | + r="19.5" |
2137 | + fy="47.045319" |
2138 | + fx="20.913568" |
2139 | + cy="47.045319" |
2140 | + cx="20.913568" |
2141 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,4.270316,21.0972)" |
2142 | + gradientUnits="userSpaceOnUse" |
2143 | + id="radialGradient3296" |
2144 | + xlink:href="#linearGradient3907" |
2145 | + inkscape:collect="always" /> |
2146 | + <radialGradient |
2147 | + r="19.5" |
2148 | + fy="47.045319" |
2149 | + fx="20.913568" |
2150 | + cy="47.045319" |
2151 | + cx="20.913568" |
2152 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,4.270316,21.0972)" |
2153 | + gradientUnits="userSpaceOnUse" |
2154 | + id="radialGradient3294" |
2155 | + xlink:href="#linearGradient3907" |
2156 | + inkscape:collect="always" /> |
2157 | + <radialGradient |
2158 | + r="19.5" |
2159 | + fy="47.045319" |
2160 | + fx="20.913568" |
2161 | + cy="47.045319" |
2162 | + cx="20.913568" |
2163 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,4.270316,21.0972)" |
2164 | + gradientUnits="userSpaceOnUse" |
2165 | + id="radialGradient3292" |
2166 | + xlink:href="#linearGradient3907" |
2167 | + inkscape:collect="always" /> |
2168 | + <radialGradient |
2169 | + r="19.5" |
2170 | + fy="47.045319" |
2171 | + fx="20.913568" |
2172 | + cy="47.045319" |
2173 | + cx="20.913568" |
2174 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,-0.72968,21.0972)" |
2175 | + gradientUnits="userSpaceOnUse" |
2176 | + id="radialGradient3276" |
2177 | + xlink:href="#linearGradient3907" |
2178 | + inkscape:collect="always" /> |
2179 | + <radialGradient |
2180 | + r="19.5" |
2181 | + fy="47.045319" |
2182 | + fx="20.913568" |
2183 | + cy="47.045319" |
2184 | + cx="20.913568" |
2185 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,-0.72968,21.0972)" |
2186 | + gradientUnits="userSpaceOnUse" |
2187 | + id="radialGradient3274" |
2188 | + xlink:href="#linearGradient3907" |
2189 | + inkscape:collect="always" /> |
2190 | + <radialGradient |
2191 | + r="19.5" |
2192 | + fy="47.045319" |
2193 | + fx="20.913568" |
2194 | + cy="47.045319" |
2195 | + cx="20.913568" |
2196 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,-0.72968,21.0972)" |
2197 | + gradientUnits="userSpaceOnUse" |
2198 | + id="radialGradient3272" |
2199 | + xlink:href="#linearGradient3907" |
2200 | + inkscape:collect="always" /> |
2201 | + <radialGradient |
2202 | + r="19.5" |
2203 | + fy="47.045319" |
2204 | + fx="20.913568" |
2205 | + cy="47.045319" |
2206 | + cx="20.913568" |
2207 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,-0.72968,21.0972)" |
2208 | + gradientUnits="userSpaceOnUse" |
2209 | + id="radialGradient3270" |
2210 | + xlink:href="#linearGradient3907" |
2211 | + inkscape:collect="always" /> |
2212 | + <radialGradient |
2213 | + r="19.5" |
2214 | + fy="47.045319" |
2215 | + fx="20.913568" |
2216 | + cy="47.045319" |
2217 | + cx="20.913568" |
2218 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,-0.72968,21.0972)" |
2219 | + gradientUnits="userSpaceOnUse" |
2220 | + id="radialGradient3268" |
2221 | + xlink:href="#linearGradient3907" |
2222 | + inkscape:collect="always" /> |
2223 | + <radialGradient |
2224 | + r="19.5" |
2225 | + fy="47.045319" |
2226 | + fx="20.913568" |
2227 | + cy="47.045319" |
2228 | + cx="20.913568" |
2229 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,-0.72968,21.0972)" |
2230 | + gradientUnits="userSpaceOnUse" |
2231 | + id="radialGradient3266" |
2232 | + xlink:href="#linearGradient3907" |
2233 | + inkscape:collect="always" /> |
2234 | + <radialGradient |
2235 | + r="19.5" |
2236 | + fy="47.045319" |
2237 | + fx="20.913568" |
2238 | + cy="47.045319" |
2239 | + cx="20.913568" |
2240 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,-0.72968,21.0972)" |
2241 | + gradientUnits="userSpaceOnUse" |
2242 | + id="radialGradient3264" |
2243 | + xlink:href="#linearGradient3907" |
2244 | + inkscape:collect="always" /> |
2245 | + <radialGradient |
2246 | + r="19.5" |
2247 | + fy="47.045319" |
2248 | + fx="20.913568" |
2249 | + cy="47.045319" |
2250 | + cx="20.913568" |
2251 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,-8.729684,21.0972)" |
2252 | + gradientUnits="userSpaceOnUse" |
2253 | + id="radialGradient3155" |
2254 | + xlink:href="#linearGradient3907" |
2255 | + inkscape:collect="always" /> |
2256 | + <radialGradient |
2257 | + r="19.5" |
2258 | + fy="47.045319" |
2259 | + fx="20.913568" |
2260 | + cy="47.045319" |
2261 | + cx="20.913568" |
2262 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,-8.729684,21.0972)" |
2263 | + gradientUnits="userSpaceOnUse" |
2264 | + id="radialGradient3158" |
2265 | + xlink:href="#linearGradient3907" |
2266 | + inkscape:collect="always" /> |
2267 | + <radialGradient |
2268 | + r="19.5" |
2269 | + fy="47.045319" |
2270 | + fx="20.913568" |
2271 | + cy="47.045319" |
2272 | + cx="20.913568" |
2273 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,-8.729684,21.0972)" |
2274 | + gradientUnits="userSpaceOnUse" |
2275 | + id="radialGradient3161" |
2276 | + xlink:href="#linearGradient3907" |
2277 | + inkscape:collect="always" /> |
2278 | + <radialGradient |
2279 | + r="19.5" |
2280 | + fy="47.045319" |
2281 | + fx="20.913568" |
2282 | + cy="47.045319" |
2283 | + cx="20.913568" |
2284 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,-8.729684,21.0972)" |
2285 | + gradientUnits="userSpaceOnUse" |
2286 | + id="radialGradient3164" |
2287 | + xlink:href="#linearGradient3907" |
2288 | + inkscape:collect="always" /> |
2289 | + <radialGradient |
2290 | + r="19.5" |
2291 | + fy="47.045319" |
2292 | + fx="20.913568" |
2293 | + cy="47.045319" |
2294 | + cx="20.913568" |
2295 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,-8.729684,21.0972)" |
2296 | + gradientUnits="userSpaceOnUse" |
2297 | + id="radialGradient3167" |
2298 | + xlink:href="#linearGradient3907" |
2299 | + inkscape:collect="always" /> |
2300 | + <radialGradient |
2301 | + r="19.5" |
2302 | + fy="47.045319" |
2303 | + fx="20.913568" |
2304 | + cy="47.045319" |
2305 | + cx="20.913568" |
2306 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,-8.729684,21.0972)" |
2307 | + gradientUnits="userSpaceOnUse" |
2308 | + id="radialGradient3170" |
2309 | + xlink:href="#linearGradient3907" |
2310 | + inkscape:collect="always" /> |
2311 | + <radialGradient |
2312 | + r="19.5" |
2313 | + fy="47.045319" |
2314 | + fx="20.913568" |
2315 | + cy="47.045319" |
2316 | + cx="20.913568" |
2317 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,-8.729684,21.0972)" |
2318 | + gradientUnits="userSpaceOnUse" |
2319 | + id="radialGradient3173" |
2320 | + xlink:href="#linearGradient3907" |
2321 | + inkscape:collect="always" /> |
2322 | + <radialGradient |
2323 | + r="19.5" |
2324 | + fy="47.045319" |
2325 | + fx="20.913568" |
2326 | + cy="47.045319" |
2327 | + cx="20.913568" |
2328 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,-8.729684,21.0972)" |
2329 | + gradientUnits="userSpaceOnUse" |
2330 | + id="radialGradient3176" |
2331 | + xlink:href="#linearGradient3907" |
2332 | + inkscape:collect="always" /> |
2333 | + <radialGradient |
2334 | + r="19.5" |
2335 | + fy="47.045319" |
2336 | + fx="20.913568" |
2337 | + cy="47.045319" |
2338 | + cx="20.913568" |
2339 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,-8.729684,21.0972)" |
2340 | + gradientUnits="userSpaceOnUse" |
2341 | + id="radialGradient3182" |
2342 | + xlink:href="#linearGradient3907" |
2343 | + inkscape:collect="always" /> |
2344 | + <radialGradient |
2345 | + r="19.5" |
2346 | + fy="47.045319" |
2347 | + fx="20.913568" |
2348 | + cy="47.045319" |
2349 | + cx="20.913568" |
2350 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,-8.729684,21.0972)" |
2351 | + gradientUnits="userSpaceOnUse" |
2352 | + id="radialGradient3185" |
2353 | + xlink:href="#linearGradient3907" |
2354 | + inkscape:collect="always" /> |
2355 | + <radialGradient |
2356 | + r="19.5" |
2357 | + fy="47.045319" |
2358 | + fx="20.913568" |
2359 | + cy="47.045319" |
2360 | + cx="20.913568" |
2361 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,-8.729684,21.0972)" |
2362 | + gradientUnits="userSpaceOnUse" |
2363 | + id="radialGradient3188" |
2364 | + xlink:href="#linearGradient3907" |
2365 | + inkscape:collect="always" /> |
2366 | + <radialGradient |
2367 | + r="19.5" |
2368 | + fy="47.045319" |
2369 | + fx="20.913568" |
2370 | + cy="47.045319" |
2371 | + cx="20.913568" |
2372 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,-8.729684,21.0972)" |
2373 | + gradientUnits="userSpaceOnUse" |
2374 | + id="radialGradient3191" |
2375 | + xlink:href="#linearGradient3907" |
2376 | + inkscape:collect="always" /> |
2377 | + <radialGradient |
2378 | + r="19.5" |
2379 | + fy="47.045319" |
2380 | + fx="20.913568" |
2381 | + cy="47.045319" |
2382 | + cx="20.913568" |
2383 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,-8.729684,21.0972)" |
2384 | + gradientUnits="userSpaceOnUse" |
2385 | + id="radialGradient3194" |
2386 | + xlink:href="#linearGradient3907" |
2387 | + inkscape:collect="always" /> |
2388 | + <radialGradient |
2389 | + r="19.5" |
2390 | + fy="47.045319" |
2391 | + fx="20.913568" |
2392 | + cy="47.045319" |
2393 | + cx="20.913568" |
2394 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,-8.729684,21.0972)" |
2395 | + gradientUnits="userSpaceOnUse" |
2396 | + id="radialGradient3197" |
2397 | + xlink:href="#linearGradient3907" |
2398 | + inkscape:collect="always" /> |
2399 | + <radialGradient |
2400 | + r="19.5" |
2401 | + fy="47.045319" |
2402 | + fx="20.913568" |
2403 | + cy="47.045319" |
2404 | + cx="20.913568" |
2405 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,-8.729684,21.0972)" |
2406 | + gradientUnits="userSpaceOnUse" |
2407 | + id="radialGradient3200" |
2408 | + xlink:href="#linearGradient3907" |
2409 | + inkscape:collect="always" /> |
2410 | + <radialGradient |
2411 | + r="19.5" |
2412 | + fy="47.045319" |
2413 | + fx="20.913568" |
2414 | + cy="47.045319" |
2415 | + cx="20.913568" |
2416 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,-8.729684,21.0972)" |
2417 | + gradientUnits="userSpaceOnUse" |
2418 | + id="radialGradient3203" |
2419 | + xlink:href="#linearGradient3907" |
2420 | + inkscape:collect="always" /> |
2421 | + <radialGradient |
2422 | + r="19.5" |
2423 | + fy="47.045319" |
2424 | + fx="20.913568" |
2425 | + cy="47.045319" |
2426 | + cx="20.913568" |
2427 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,-8.729684,21.0972)" |
2428 | + gradientUnits="userSpaceOnUse" |
2429 | + id="radialGradient3206" |
2430 | + xlink:href="#linearGradient3907" |
2431 | + inkscape:collect="always" /> |
2432 | + <radialGradient |
2433 | + r="19.5" |
2434 | + fy="47.045319" |
2435 | + fx="20.913568" |
2436 | + cy="47.045319" |
2437 | + cx="20.913568" |
2438 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,-8.729684,21.0972)" |
2439 | + gradientUnits="userSpaceOnUse" |
2440 | + id="radialGradient3209" |
2441 | + xlink:href="#linearGradient3907" |
2442 | + inkscape:collect="always" /> |
2443 | + <radialGradient |
2444 | + r="19.5" |
2445 | + fy="47.045319" |
2446 | + fx="20.913568" |
2447 | + cy="47.045319" |
2448 | + cx="20.913568" |
2449 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,-8.729684,21.0972)" |
2450 | + gradientUnits="userSpaceOnUse" |
2451 | + id="radialGradient3212" |
2452 | + xlink:href="#linearGradient3907" |
2453 | + inkscape:collect="always" /> |
2454 | + <radialGradient |
2455 | + r="19.5" |
2456 | + fy="47.045319" |
2457 | + fx="20.913568" |
2458 | + cy="47.045319" |
2459 | + cx="20.913568" |
2460 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,-8.729684,21.0972)" |
2461 | + gradientUnits="userSpaceOnUse" |
2462 | + id="radialGradient3215" |
2463 | + xlink:href="#linearGradient3907" |
2464 | + inkscape:collect="always" /> |
2465 | + <radialGradient |
2466 | + r="19.5" |
2467 | + fy="47.045319" |
2468 | + fx="20.913568" |
2469 | + cy="47.045319" |
2470 | + cx="20.913568" |
2471 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,-8.729684,21.0972)" |
2472 | + gradientUnits="userSpaceOnUse" |
2473 | + id="radialGradient3218" |
2474 | + xlink:href="#linearGradient3907" |
2475 | + inkscape:collect="always" /> |
2476 | + <radialGradient |
2477 | + r="19.5" |
2478 | + fy="47.045319" |
2479 | + fx="20.913568" |
2480 | + cy="47.045319" |
2481 | + cx="20.913568" |
2482 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,-8.729684,21.0972)" |
2483 | + gradientUnits="userSpaceOnUse" |
2484 | + id="radialGradient3221" |
2485 | + xlink:href="#linearGradient3907" |
2486 | + inkscape:collect="always" /> |
2487 | + <radialGradient |
2488 | + r="19.5" |
2489 | + fy="47.045319" |
2490 | + fx="20.913568" |
2491 | + cy="47.045319" |
2492 | + cx="20.913568" |
2493 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,-8.729684,21.0972)" |
2494 | + gradientUnits="userSpaceOnUse" |
2495 | + id="radialGradient3224" |
2496 | + xlink:href="#linearGradient3907" |
2497 | + inkscape:collect="always" /> |
2498 | + <radialGradient |
2499 | + r="19.5" |
2500 | + fy="47.045319" |
2501 | + fx="20.913568" |
2502 | + cy="47.045319" |
2503 | + cx="20.913568" |
2504 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,-8.729684,21.0972)" |
2505 | + gradientUnits="userSpaceOnUse" |
2506 | + id="radialGradient3230" |
2507 | + xlink:href="#linearGradient3907" |
2508 | + inkscape:collect="always" /> |
2509 | + <radialGradient |
2510 | + r="19.5" |
2511 | + fy="47.045319" |
2512 | + fx="20.913568" |
2513 | + cy="47.045319" |
2514 | + cx="20.913568" |
2515 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,-8.729684,21.0972)" |
2516 | + gradientUnits="userSpaceOnUse" |
2517 | + id="radialGradient3233" |
2518 | + xlink:href="#linearGradient3907" |
2519 | + inkscape:collect="always" /> |
2520 | + <radialGradient |
2521 | + r="19.5" |
2522 | + fy="47.045319" |
2523 | + fx="20.913568" |
2524 | + cy="47.045319" |
2525 | + cx="20.913568" |
2526 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,-8.729684,21.0972)" |
2527 | + gradientUnits="userSpaceOnUse" |
2528 | + id="radialGradient3236" |
2529 | + xlink:href="#linearGradient3907" |
2530 | + inkscape:collect="always" /> |
2531 | + <radialGradient |
2532 | + r="19.5" |
2533 | + fy="47.045319" |
2534 | + fx="20.913568" |
2535 | + cy="47.045319" |
2536 | + cx="20.913568" |
2537 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,-8.729684,21.0972)" |
2538 | + gradientUnits="userSpaceOnUse" |
2539 | + id="radialGradient3239" |
2540 | + xlink:href="#linearGradient3907" |
2541 | + inkscape:collect="always" /> |
2542 | + <radialGradient |
2543 | + r="19.5" |
2544 | + fy="47.045319" |
2545 | + fx="20.913568" |
2546 | + cy="47.045319" |
2547 | + cx="20.913568" |
2548 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,-8.729684,21.0972)" |
2549 | + gradientUnits="userSpaceOnUse" |
2550 | + id="radialGradient3242" |
2551 | + xlink:href="#linearGradient3907" |
2552 | + inkscape:collect="always" /> |
2553 | + <radialGradient |
2554 | + r="19.5" |
2555 | + fy="47.045319" |
2556 | + fx="20.913568" |
2557 | + cy="47.045319" |
2558 | + cx="20.913568" |
2559 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,-8.729684,21.0972)" |
2560 | + gradientUnits="userSpaceOnUse" |
2561 | + id="radialGradient3245" |
2562 | + xlink:href="#linearGradient3907" |
2563 | + inkscape:collect="always" /> |
2564 | + <radialGradient |
2565 | + r="19.5" |
2566 | + fy="47.045319" |
2567 | + fx="20.913568" |
2568 | + cy="47.045319" |
2569 | + cx="20.913568" |
2570 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,-8.729684,21.0972)" |
2571 | + gradientUnits="userSpaceOnUse" |
2572 | + id="radialGradient3248" |
2573 | + xlink:href="#linearGradient3907" |
2574 | + inkscape:collect="always" /> |
2575 | + <linearGradient |
2576 | + gradientTransform="matrix(0.647995,0,0,0.707655,0.734249,-1.447571)" |
2577 | + gradientUnits="userSpaceOnUse" |
2578 | + y2="37.9375" |
2579 | + x2="29.125" |
2580 | + y1="46.029419" |
2581 | + x1="29.5" |
2582 | + id="linearGradient3905" |
2583 | + xlink:href="#linearGradient3899" |
2584 | + inkscape:collect="always" /> |
2585 | + <radialGradient |
2586 | + r="117.14286" |
2587 | + fy="486.64789" |
2588 | + fx="605.71429" |
2589 | + cy="486.64789" |
2590 | + cx="605.71429" |
2591 | + gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)" |
2592 | + gradientUnits="userSpaceOnUse" |
2593 | + id="radialGradient2309" |
2594 | + xlink:href="#linearGradient5060" |
2595 | + inkscape:collect="always" /> |
2596 | + <radialGradient |
2597 | + r="117.14286" |
2598 | + fy="486.64789" |
2599 | + fx="605.71429" |
2600 | + cy="486.64789" |
2601 | + cx="605.71429" |
2602 | + gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)" |
2603 | + gradientUnits="userSpaceOnUse" |
2604 | + id="radialGradient2311" |
2605 | + xlink:href="#linearGradient5060" |
2606 | + inkscape:collect="always" /> |
2607 | + <linearGradient |
2608 | + gradientTransform="matrix(0.664512,0,0,0.651253,9.569506e-2,-1.210023)" |
2609 | + gradientUnits="userSpaceOnUse" |
2610 | + y2="26.039215" |
2611 | + x2="20.156862" |
2612 | + y1="5.0996137" |
2613 | + x1="20.156862" |
2614 | + id="linearGradient6246" |
2615 | + xlink:href="#linearGradient6240" |
2616 | + inkscape:collect="always" /> |
2617 | + <radialGradient |
2618 | + gradientUnits="userSpaceOnUse" |
2619 | + gradientTransform="matrix(0.836315,0,0,0.514216,-4.024721,-3.259613e-2)" |
2620 | + r="19.00016" |
2621 | + fy="32.997028" |
2622 | + fx="24.006104" |
2623 | + cy="32.997028" |
2624 | + cx="24.006104" |
2625 | + id="radialGradient5239" |
2626 | + xlink:href="#linearGradient7670" |
2627 | + inkscape:collect="always" /> |
2628 | + <linearGradient |
2629 | + gradientTransform="matrix(0.648248,0,0,0.644253,0.433189,-0.740991)" |
2630 | + y2="38.876041" |
2631 | + x2="39.904388" |
2632 | + y1="6.3760414" |
2633 | + x1="17.247635" |
2634 | + gradientUnits="userSpaceOnUse" |
2635 | + id="linearGradient5147" |
2636 | + xlink:href="#linearGradient5137" |
2637 | + inkscape:collect="always" /> |
2638 | + <linearGradient |
2639 | + y2="43.82579" |
2640 | + x2="31.86105" |
2641 | + y1="37.842293" |
2642 | + x1="31.743324" |
2643 | + gradientTransform="matrix(1,0,0,0.992781,0,-2.718035)" |
2644 | + gradientUnits="userSpaceOnUse" |
2645 | + id="linearGradient2308" |
2646 | + xlink:href="#linearGradient5137" |
2647 | + inkscape:collect="always" /> |
2648 | + <linearGradient |
2649 | + y2="40.219608" |
2650 | + x2="23.529411" |
2651 | + y1="34.572548" |
2652 | + x1="23.154902" |
2653 | + gradientTransform="matrix(1.004187,0,0,1,-0.12454,-3.011765)" |
2654 | + gradientUnits="userSpaceOnUse" |
2655 | + id="linearGradient2310" |
2656 | + xlink:href="#linearGradient11400" |
2657 | + inkscape:collect="always" /> |
2658 | + <linearGradient |
2659 | + gradientTransform="matrix(0.654255,0,0,0.654672,-0.481383,0.690637)" |
2660 | + gradientUnits="userSpaceOnUse" |
2661 | + y2="33.637787" |
2662 | + x2="37.295498" |
2663 | + y1="38.267769" |
2664 | + x1="37.484837" |
2665 | + id="linearGradient4202" |
2666 | + xlink:href="#linearGradient4196" |
2667 | + inkscape:collect="always" /> |
2668 | + <radialGradient |
2669 | + r="23.75956" |
2670 | + fy="42.6875" |
2671 | + fx="23.9375" |
2672 | + cy="42.6875" |
2673 | + cx="23.9375" |
2674 | + gradientTransform="matrix(1,0,0,0.24763,0,32.1168)" |
2675 | + gradientUnits="userSpaceOnUse" |
2676 | + id="radialGradient2313" |
2677 | + xlink:href="#linearGradient5225" |
2678 | + inkscape:collect="always" /> |
2679 | + <linearGradient |
2680 | + inkscape:collect="always" |
2681 | + xlink:href="#linearGradient2307" |
2682 | + id="linearGradient5478" |
2683 | + gradientTransform="scale(1.673466,0.597562)" |
2684 | + x1="-931.7503" |
2685 | + y1="148.07116" |
2686 | + x2="-131.23588" |
2687 | + y2="148.07116" |
2688 | + gradientUnits="userSpaceOnUse" /> |
2689 | + <radialGradient |
2690 | + inkscape:collect="always" |
2691 | + xlink:href="#linearGradient5225" |
2692 | + id="radialGradient5620" |
2693 | + gradientUnits="userSpaceOnUse" |
2694 | + gradientTransform="matrix(1,0,0,0.24763,0,32.1168)" |
2695 | + cx="23.9375" |
2696 | + cy="42.6875" |
2697 | + fx="23.9375" |
2698 | + fy="42.6875" |
2699 | + r="23.75956" /> |
2700 | + <linearGradient |
2701 | + inkscape:collect="always" |
2702 | + xlink:href="#linearGradient4196" |
2703 | + id="linearGradient5622" |
2704 | + gradientUnits="userSpaceOnUse" |
2705 | + gradientTransform="matrix(0.654255,0,0,0.654672,-0.481383,0.690637)" |
2706 | + x1="37.484837" |
2707 | + y1="38.267769" |
2708 | + x2="37.295498" |
2709 | + y2="33.637787" /> |
2710 | + <linearGradient |
2711 | + inkscape:collect="always" |
2712 | + xlink:href="#linearGradient5137" |
2713 | + id="linearGradient5624" |
2714 | + gradientUnits="userSpaceOnUse" |
2715 | + gradientTransform="matrix(1,0,0,0.992781,0,-2.718035)" |
2716 | + x1="31.743324" |
2717 | + y1="37.842293" |
2718 | + x2="31.86105" |
2719 | + y2="43.82579" /> |
2720 | + <linearGradient |
2721 | + inkscape:collect="always" |
2722 | + xlink:href="#linearGradient11400" |
2723 | + id="linearGradient5626" |
2724 | + gradientUnits="userSpaceOnUse" |
2725 | + gradientTransform="matrix(1.004187,0,0,1,-0.12454,-3.011765)" |
2726 | + x1="23.154902" |
2727 | + y1="34.572548" |
2728 | + x2="23.529411" |
2729 | + y2="40.219608" /> |
2730 | + <linearGradient |
2731 | + inkscape:collect="always" |
2732 | + xlink:href="#linearGradient5137" |
2733 | + id="linearGradient5628" |
2734 | + gradientUnits="userSpaceOnUse" |
2735 | + gradientTransform="matrix(0.648248,0,0,0.644253,0.433189,-0.740991)" |
2736 | + x1="17.247635" |
2737 | + y1="6.3760414" |
2738 | + x2="39.904388" |
2739 | + y2="38.876041" /> |
2740 | + <radialGradient |
2741 | + inkscape:collect="always" |
2742 | + xlink:href="#linearGradient7670" |
2743 | + id="radialGradient5630" |
2744 | + gradientUnits="userSpaceOnUse" |
2745 | + gradientTransform="matrix(0.836315,0,0,0.514216,-4.024721,-3.259613e-2)" |
2746 | + cx="24.006104" |
2747 | + cy="32.997028" |
2748 | + fx="24.006104" |
2749 | + fy="32.997028" |
2750 | + r="19.00016" /> |
2751 | + <linearGradient |
2752 | + inkscape:collect="always" |
2753 | + xlink:href="#linearGradient6240" |
2754 | + id="linearGradient5632" |
2755 | + gradientUnits="userSpaceOnUse" |
2756 | + gradientTransform="matrix(0.664512,0,0,0.651253,9.569506e-2,-1.210023)" |
2757 | + x1="20.156862" |
2758 | + y1="5.0996137" |
2759 | + x2="20.156862" |
2760 | + y2="26.039215" /> |
2761 | + <linearGradient |
2762 | + inkscape:collect="always" |
2763 | + xlink:href="#linearGradient2307" |
2764 | + id="linearGradient5634" |
2765 | + gradientUnits="userSpaceOnUse" |
2766 | + gradientTransform="scale(1.673466,0.597562)" |
2767 | + x1="-931.7503" |
2768 | + y1="148.07116" |
2769 | + x2="-131.23588" |
2770 | + y2="148.07116" /> |
2771 | + <radialGradient |
2772 | + inkscape:collect="always" |
2773 | + xlink:href="#linearGradient5060" |
2774 | + id="radialGradient5636" |
2775 | + gradientUnits="userSpaceOnUse" |
2776 | + gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)" |
2777 | + cx="605.71429" |
2778 | + cy="486.64789" |
2779 | + fx="605.71429" |
2780 | + fy="486.64789" |
2781 | + r="117.14286" /> |
2782 | + <radialGradient |
2783 | + inkscape:collect="always" |
2784 | + xlink:href="#linearGradient5060" |
2785 | + id="radialGradient5638" |
2786 | + gradientUnits="userSpaceOnUse" |
2787 | + gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)" |
2788 | + cx="605.71429" |
2789 | + cy="486.64789" |
2790 | + fx="605.71429" |
2791 | + fy="486.64789" |
2792 | + r="117.14286" /> |
2793 | + <linearGradient |
2794 | + inkscape:collect="always" |
2795 | + xlink:href="#linearGradient3899" |
2796 | + id="linearGradient5640" |
2797 | + gradientUnits="userSpaceOnUse" |
2798 | + gradientTransform="matrix(0.647995,0,0,0.707655,0.734249,-1.447571)" |
2799 | + x1="29.5" |
2800 | + y1="46.029419" |
2801 | + x2="29.125" |
2802 | + y2="37.9375" /> |
2803 | + <radialGradient |
2804 | + inkscape:collect="always" |
2805 | + xlink:href="#linearGradient3907" |
2806 | + id="radialGradient5642" |
2807 | + gradientUnits="userSpaceOnUse" |
2808 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,-8.729684,21.0972)" |
2809 | + cx="20.913568" |
2810 | + cy="47.045319" |
2811 | + fx="20.913568" |
2812 | + fy="47.045319" |
2813 | + r="19.5" /> |
2814 | + <radialGradient |
2815 | + inkscape:collect="always" |
2816 | + xlink:href="#linearGradient3907" |
2817 | + id="radialGradient5644" |
2818 | + gradientUnits="userSpaceOnUse" |
2819 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,-8.729684,21.0972)" |
2820 | + cx="20.913568" |
2821 | + cy="47.045319" |
2822 | + fx="20.913568" |
2823 | + fy="47.045319" |
2824 | + r="19.5" /> |
2825 | + <radialGradient |
2826 | + inkscape:collect="always" |
2827 | + xlink:href="#linearGradient3907" |
2828 | + id="radialGradient5646" |
2829 | + gradientUnits="userSpaceOnUse" |
2830 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,-8.729684,21.0972)" |
2831 | + cx="20.913568" |
2832 | + cy="47.045319" |
2833 | + fx="20.913568" |
2834 | + fy="47.045319" |
2835 | + r="19.5" /> |
2836 | + <radialGradient |
2837 | + inkscape:collect="always" |
2838 | + xlink:href="#linearGradient3907" |
2839 | + id="radialGradient5648" |
2840 | + gradientUnits="userSpaceOnUse" |
2841 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,-8.729684,21.0972)" |
2842 | + cx="20.913568" |
2843 | + cy="47.045319" |
2844 | + fx="20.913568" |
2845 | + fy="47.045319" |
2846 | + r="19.5" /> |
2847 | + <radialGradient |
2848 | + inkscape:collect="always" |
2849 | + xlink:href="#linearGradient3907" |
2850 | + id="radialGradient5650" |
2851 | + gradientUnits="userSpaceOnUse" |
2852 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,-8.729684,21.0972)" |
2853 | + cx="20.913568" |
2854 | + cy="47.045319" |
2855 | + fx="20.913568" |
2856 | + fy="47.045319" |
2857 | + r="19.5" /> |
2858 | + <radialGradient |
2859 | + inkscape:collect="always" |
2860 | + xlink:href="#linearGradient3907" |
2861 | + id="radialGradient5652" |
2862 | + gradientUnits="userSpaceOnUse" |
2863 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,-8.729684,21.0972)" |
2864 | + cx="20.913568" |
2865 | + cy="47.045319" |
2866 | + fx="20.913568" |
2867 | + fy="47.045319" |
2868 | + r="19.5" /> |
2869 | + <radialGradient |
2870 | + inkscape:collect="always" |
2871 | + xlink:href="#linearGradient3907" |
2872 | + id="radialGradient5654" |
2873 | + gradientUnits="userSpaceOnUse" |
2874 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,-8.729684,21.0972)" |
2875 | + cx="20.913568" |
2876 | + cy="47.045319" |
2877 | + fx="20.913568" |
2878 | + fy="47.045319" |
2879 | + r="19.5" /> |
2880 | + <radialGradient |
2881 | + inkscape:collect="always" |
2882 | + xlink:href="#linearGradient3907" |
2883 | + id="radialGradient5656" |
2884 | + gradientUnits="userSpaceOnUse" |
2885 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,-8.729684,21.0972)" |
2886 | + cx="20.913568" |
2887 | + cy="47.045319" |
2888 | + fx="20.913568" |
2889 | + fy="47.045319" |
2890 | + r="19.5" /> |
2891 | + <radialGradient |
2892 | + inkscape:collect="always" |
2893 | + xlink:href="#linearGradient3907" |
2894 | + id="radialGradient5658" |
2895 | + gradientUnits="userSpaceOnUse" |
2896 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,-8.729684,21.0972)" |
2897 | + cx="20.913568" |
2898 | + cy="47.045319" |
2899 | + fx="20.913568" |
2900 | + fy="47.045319" |
2901 | + r="19.5" /> |
2902 | + <radialGradient |
2903 | + inkscape:collect="always" |
2904 | + xlink:href="#linearGradient3907" |
2905 | + id="radialGradient5660" |
2906 | + gradientUnits="userSpaceOnUse" |
2907 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,-8.729684,21.0972)" |
2908 | + cx="20.913568" |
2909 | + cy="47.045319" |
2910 | + fx="20.913568" |
2911 | + fy="47.045319" |
2912 | + r="19.5" /> |
2913 | + <radialGradient |
2914 | + inkscape:collect="always" |
2915 | + xlink:href="#linearGradient3907" |
2916 | + id="radialGradient5662" |
2917 | + gradientUnits="userSpaceOnUse" |
2918 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,-8.729684,21.0972)" |
2919 | + cx="20.913568" |
2920 | + cy="47.045319" |
2921 | + fx="20.913568" |
2922 | + fy="47.045319" |
2923 | + r="19.5" /> |
2924 | + <radialGradient |
2925 | + inkscape:collect="always" |
2926 | + xlink:href="#linearGradient3907" |
2927 | + id="radialGradient5664" |
2928 | + gradientUnits="userSpaceOnUse" |
2929 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,-8.729684,21.0972)" |
2930 | + cx="20.913568" |
2931 | + cy="47.045319" |
2932 | + fx="20.913568" |
2933 | + fy="47.045319" |
2934 | + r="19.5" /> |
2935 | + <radialGradient |
2936 | + inkscape:collect="always" |
2937 | + xlink:href="#linearGradient3907" |
2938 | + id="radialGradient5666" |
2939 | + gradientUnits="userSpaceOnUse" |
2940 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,-8.729684,21.0972)" |
2941 | + cx="20.913568" |
2942 | + cy="47.045319" |
2943 | + fx="20.913568" |
2944 | + fy="47.045319" |
2945 | + r="19.5" /> |
2946 | + <radialGradient |
2947 | + inkscape:collect="always" |
2948 | + xlink:href="#linearGradient3907" |
2949 | + id="radialGradient5668" |
2950 | + gradientUnits="userSpaceOnUse" |
2951 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,-8.729684,21.0972)" |
2952 | + cx="20.913568" |
2953 | + cy="47.045319" |
2954 | + fx="20.913568" |
2955 | + fy="47.045319" |
2956 | + r="19.5" /> |
2957 | + <radialGradient |
2958 | + inkscape:collect="always" |
2959 | + xlink:href="#linearGradient3907" |
2960 | + id="radialGradient5670" |
2961 | + gradientUnits="userSpaceOnUse" |
2962 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,-8.729684,21.0972)" |
2963 | + cx="20.913568" |
2964 | + cy="47.045319" |
2965 | + fx="20.913568" |
2966 | + fy="47.045319" |
2967 | + r="19.5" /> |
2968 | + <radialGradient |
2969 | + inkscape:collect="always" |
2970 | + xlink:href="#linearGradient3907" |
2971 | + id="radialGradient5672" |
2972 | + gradientUnits="userSpaceOnUse" |
2973 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,-8.729684,21.0972)" |
2974 | + cx="20.913568" |
2975 | + cy="47.045319" |
2976 | + fx="20.913568" |
2977 | + fy="47.045319" |
2978 | + r="19.5" /> |
2979 | + <radialGradient |
2980 | + inkscape:collect="always" |
2981 | + xlink:href="#linearGradient3907" |
2982 | + id="radialGradient5674" |
2983 | + gradientUnits="userSpaceOnUse" |
2984 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,-8.729684,21.0972)" |
2985 | + cx="20.913568" |
2986 | + cy="47.045319" |
2987 | + fx="20.913568" |
2988 | + fy="47.045319" |
2989 | + r="19.5" /> |
2990 | + <radialGradient |
2991 | + inkscape:collect="always" |
2992 | + xlink:href="#linearGradient3907" |
2993 | + id="radialGradient5676" |
2994 | + gradientUnits="userSpaceOnUse" |
2995 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,-8.729684,21.0972)" |
2996 | + cx="20.913568" |
2997 | + cy="47.045319" |
2998 | + fx="20.913568" |
2999 | + fy="47.045319" |
3000 | + r="19.5" /> |
3001 | + <radialGradient |
3002 | + inkscape:collect="always" |
3003 | + xlink:href="#linearGradient3907" |
3004 | + id="radialGradient5678" |
3005 | + gradientUnits="userSpaceOnUse" |
3006 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,-8.729684,21.0972)" |
3007 | + cx="20.913568" |
3008 | + cy="47.045319" |
3009 | + fx="20.913568" |
3010 | + fy="47.045319" |
3011 | + r="19.5" /> |
3012 | + <radialGradient |
3013 | + inkscape:collect="always" |
3014 | + xlink:href="#linearGradient3907" |
3015 | + id="radialGradient5680" |
3016 | + gradientUnits="userSpaceOnUse" |
3017 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,-8.729684,21.0972)" |
3018 | + cx="20.913568" |
3019 | + cy="47.045319" |
3020 | + fx="20.913568" |
3021 | + fy="47.045319" |
3022 | + r="19.5" /> |
3023 | + <radialGradient |
3024 | + inkscape:collect="always" |
3025 | + xlink:href="#linearGradient3907" |
3026 | + id="radialGradient5682" |
3027 | + gradientUnits="userSpaceOnUse" |
3028 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,-8.729684,21.0972)" |
3029 | + cx="20.913568" |
3030 | + cy="47.045319" |
3031 | + fx="20.913568" |
3032 | + fy="47.045319" |
3033 | + r="19.5" /> |
3034 | + <radialGradient |
3035 | + inkscape:collect="always" |
3036 | + xlink:href="#linearGradient3907" |
3037 | + id="radialGradient5684" |
3038 | + gradientUnits="userSpaceOnUse" |
3039 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,-8.729684,21.0972)" |
3040 | + cx="20.913568" |
3041 | + cy="47.045319" |
3042 | + fx="20.913568" |
3043 | + fy="47.045319" |
3044 | + r="19.5" /> |
3045 | + <radialGradient |
3046 | + inkscape:collect="always" |
3047 | + xlink:href="#linearGradient3907" |
3048 | + id="radialGradient5686" |
3049 | + gradientUnits="userSpaceOnUse" |
3050 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,-8.729684,21.0972)" |
3051 | + cx="20.913568" |
3052 | + cy="47.045319" |
3053 | + fx="20.913568" |
3054 | + fy="47.045319" |
3055 | + r="19.5" /> |
3056 | + <radialGradient |
3057 | + inkscape:collect="always" |
3058 | + xlink:href="#linearGradient3907" |
3059 | + id="radialGradient5688" |
3060 | + gradientUnits="userSpaceOnUse" |
3061 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,-8.729684,21.0972)" |
3062 | + cx="20.913568" |
3063 | + cy="47.045319" |
3064 | + fx="20.913568" |
3065 | + fy="47.045319" |
3066 | + r="19.5" /> |
3067 | + <radialGradient |
3068 | + inkscape:collect="always" |
3069 | + xlink:href="#linearGradient3907" |
3070 | + id="radialGradient5690" |
3071 | + gradientUnits="userSpaceOnUse" |
3072 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,-8.729684,21.0972)" |
3073 | + cx="20.913568" |
3074 | + cy="47.045319" |
3075 | + fx="20.913568" |
3076 | + fy="47.045319" |
3077 | + r="19.5" /> |
3078 | + <radialGradient |
3079 | + inkscape:collect="always" |
3080 | + xlink:href="#linearGradient3907" |
3081 | + id="radialGradient5692" |
3082 | + gradientUnits="userSpaceOnUse" |
3083 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,-8.729684,21.0972)" |
3084 | + cx="20.913568" |
3085 | + cy="47.045319" |
3086 | + fx="20.913568" |
3087 | + fy="47.045319" |
3088 | + r="19.5" /> |
3089 | + <radialGradient |
3090 | + inkscape:collect="always" |
3091 | + xlink:href="#linearGradient3907" |
3092 | + id="radialGradient5694" |
3093 | + gradientUnits="userSpaceOnUse" |
3094 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,-8.729684,21.0972)" |
3095 | + cx="20.913568" |
3096 | + cy="47.045319" |
3097 | + fx="20.913568" |
3098 | + fy="47.045319" |
3099 | + r="19.5" /> |
3100 | + <radialGradient |
3101 | + inkscape:collect="always" |
3102 | + xlink:href="#linearGradient3907" |
3103 | + id="radialGradient5696" |
3104 | + gradientUnits="userSpaceOnUse" |
3105 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,-8.729684,21.0972)" |
3106 | + cx="20.913568" |
3107 | + cy="47.045319" |
3108 | + fx="20.913568" |
3109 | + fy="47.045319" |
3110 | + r="19.5" /> |
3111 | + <radialGradient |
3112 | + inkscape:collect="always" |
3113 | + xlink:href="#linearGradient3907" |
3114 | + id="radialGradient5698" |
3115 | + gradientUnits="userSpaceOnUse" |
3116 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,-8.729684,21.0972)" |
3117 | + cx="20.913568" |
3118 | + cy="47.045319" |
3119 | + fx="20.913568" |
3120 | + fy="47.045319" |
3121 | + r="19.5" /> |
3122 | + <radialGradient |
3123 | + inkscape:collect="always" |
3124 | + xlink:href="#linearGradient3907" |
3125 | + id="radialGradient5700" |
3126 | + gradientUnits="userSpaceOnUse" |
3127 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,-8.729684,21.0972)" |
3128 | + cx="20.913568" |
3129 | + cy="47.045319" |
3130 | + fx="20.913568" |
3131 | + fy="47.045319" |
3132 | + r="19.5" /> |
3133 | + <radialGradient |
3134 | + inkscape:collect="always" |
3135 | + xlink:href="#linearGradient3907" |
3136 | + id="radialGradient5702" |
3137 | + gradientUnits="userSpaceOnUse" |
3138 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,-0.72968,21.0972)" |
3139 | + cx="20.913568" |
3140 | + cy="47.045319" |
3141 | + fx="20.913568" |
3142 | + fy="47.045319" |
3143 | + r="19.5" /> |
3144 | + <radialGradient |
3145 | + inkscape:collect="always" |
3146 | + xlink:href="#linearGradient3907" |
3147 | + id="radialGradient5704" |
3148 | + gradientUnits="userSpaceOnUse" |
3149 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,-0.72968,21.0972)" |
3150 | + cx="20.913568" |
3151 | + cy="47.045319" |
3152 | + fx="20.913568" |
3153 | + fy="47.045319" |
3154 | + r="19.5" /> |
3155 | + <radialGradient |
3156 | + inkscape:collect="always" |
3157 | + xlink:href="#linearGradient3907" |
3158 | + id="radialGradient5706" |
3159 | + gradientUnits="userSpaceOnUse" |
3160 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,-0.72968,21.0972)" |
3161 | + cx="20.913568" |
3162 | + cy="47.045319" |
3163 | + fx="20.913568" |
3164 | + fy="47.045319" |
3165 | + r="19.5" /> |
3166 | + <radialGradient |
3167 | + inkscape:collect="always" |
3168 | + xlink:href="#linearGradient3907" |
3169 | + id="radialGradient5708" |
3170 | + gradientUnits="userSpaceOnUse" |
3171 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,-0.72968,21.0972)" |
3172 | + cx="20.913568" |
3173 | + cy="47.045319" |
3174 | + fx="20.913568" |
3175 | + fy="47.045319" |
3176 | + r="19.5" /> |
3177 | + <radialGradient |
3178 | + inkscape:collect="always" |
3179 | + xlink:href="#linearGradient3907" |
3180 | + id="radialGradient5710" |
3181 | + gradientUnits="userSpaceOnUse" |
3182 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,-0.72968,21.0972)" |
3183 | + cx="20.913568" |
3184 | + cy="47.045319" |
3185 | + fx="20.913568" |
3186 | + fy="47.045319" |
3187 | + r="19.5" /> |
3188 | + <radialGradient |
3189 | + inkscape:collect="always" |
3190 | + xlink:href="#linearGradient3907" |
3191 | + id="radialGradient5712" |
3192 | + gradientUnits="userSpaceOnUse" |
3193 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,-0.72968,21.0972)" |
3194 | + cx="20.913568" |
3195 | + cy="47.045319" |
3196 | + fx="20.913568" |
3197 | + fy="47.045319" |
3198 | + r="19.5" /> |
3199 | + <radialGradient |
3200 | + inkscape:collect="always" |
3201 | + xlink:href="#linearGradient3907" |
3202 | + id="radialGradient5714" |
3203 | + gradientUnits="userSpaceOnUse" |
3204 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,-0.72968,21.0972)" |
3205 | + cx="20.913568" |
3206 | + cy="47.045319" |
3207 | + fx="20.913568" |
3208 | + fy="47.045319" |
3209 | + r="19.5" /> |
3210 | + <radialGradient |
3211 | + inkscape:collect="always" |
3212 | + xlink:href="#linearGradient3907" |
3213 | + id="radialGradient5716" |
3214 | + gradientUnits="userSpaceOnUse" |
3215 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,4.270316,21.0972)" |
3216 | + cx="20.913568" |
3217 | + cy="47.045319" |
3218 | + fx="20.913568" |
3219 | + fy="47.045319" |
3220 | + r="19.5" /> |
3221 | + <radialGradient |
3222 | + inkscape:collect="always" |
3223 | + xlink:href="#linearGradient3907" |
3224 | + id="radialGradient5718" |
3225 | + gradientUnits="userSpaceOnUse" |
3226 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,4.270316,21.0972)" |
3227 | + cx="20.913568" |
3228 | + cy="47.045319" |
3229 | + fx="20.913568" |
3230 | + fy="47.045319" |
3231 | + r="19.5" /> |
3232 | + <radialGradient |
3233 | + inkscape:collect="always" |
3234 | + xlink:href="#linearGradient3907" |
3235 | + id="radialGradient5720" |
3236 | + gradientUnits="userSpaceOnUse" |
3237 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,4.270316,21.0972)" |
3238 | + cx="20.913568" |
3239 | + cy="47.045319" |
3240 | + fx="20.913568" |
3241 | + fy="47.045319" |
3242 | + r="19.5" /> |
3243 | + <radialGradient |
3244 | + inkscape:collect="always" |
3245 | + xlink:href="#linearGradient3907" |
3246 | + id="radialGradient5722" |
3247 | + gradientUnits="userSpaceOnUse" |
3248 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,4.270316,21.0972)" |
3249 | + cx="20.913568" |
3250 | + cy="47.045319" |
3251 | + fx="20.913568" |
3252 | + fy="47.045319" |
3253 | + r="19.5" /> |
3254 | + <radialGradient |
3255 | + inkscape:collect="always" |
3256 | + xlink:href="#linearGradient3907" |
3257 | + id="radialGradient5724" |
3258 | + gradientUnits="userSpaceOnUse" |
3259 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,4.270316,21.0972)" |
3260 | + cx="20.913568" |
3261 | + cy="47.045319" |
3262 | + fx="20.913568" |
3263 | + fy="47.045319" |
3264 | + r="19.5" /> |
3265 | + <radialGradient |
3266 | + inkscape:collect="always" |
3267 | + xlink:href="#linearGradient3907" |
3268 | + id="radialGradient5726" |
3269 | + gradientUnits="userSpaceOnUse" |
3270 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,4.270316,21.0972)" |
3271 | + cx="20.913568" |
3272 | + cy="47.045319" |
3273 | + fx="20.913568" |
3274 | + fy="47.045319" |
3275 | + r="19.5" /> |
3276 | + <radialGradient |
3277 | + inkscape:collect="always" |
3278 | + xlink:href="#linearGradient3907" |
3279 | + id="radialGradient5728" |
3280 | + gradientUnits="userSpaceOnUse" |
3281 | + gradientTransform="matrix(1.382603,3.581398e-5,0,0.171503,4.270316,21.0972)" |
3282 | + cx="20.913568" |
3283 | + cy="47.045319" |
3284 | + fx="20.913568" |
3285 | + fy="47.045319" |
3286 | + r="19.5" /> |
3287 | + </defs> |
3288 | + <sodipodi:namedview |
3289 | + id="base" |
3290 | + pagecolor="#ffffff" |
3291 | + bordercolor="#666" |
3292 | + borderopacity="1" |
3293 | + inkscape:pageopacity="0.0" |
3294 | + inkscape:pageshadow="2" |
3295 | + inkscape:zoom="1" |
3296 | + inkscape:cx="47.587693" |
3297 | + inkscape:cy="-3.0466105" |
3298 | + inkscape:current-layer="layer1" |
3299 | + showgrid="false" |
3300 | + inkscape:grid-bbox="true" |
3301 | + inkscape:document-units="px" |
3302 | + inkscape:window-width="1051" |
3303 | + inkscape:window-height="885" |
3304 | + inkscape:window-x="0" |
3305 | + inkscape:window-y="89" |
3306 | + inkscape:showpageshadow="false" |
3307 | + inkscape:grid-points="false" |
3308 | + showborder="false" /> |
3309 | + <metadata |
3310 | + id="metadata4"> |
3311 | + <rdf:RDF> |
3312 | + <cc:Work |
3313 | + rdf:about=""> |
3314 | + <dc:format>image/svg+xml</dc:format> |
3315 | + <dc:type |
3316 | + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> |
3317 | + <dc:title>Network</dc:title> |
3318 | + <dc:date>2005-03-08</dc:date> |
3319 | + <dc:creator> |
3320 | + <cc:Agent> |
3321 | + <dc:title>Lapo Calamandrei</dc:title> |
3322 | + </cc:Agent> |
3323 | + </dc:creator> |
3324 | + <dc:subject> |
3325 | + <rdf:Bag /> |
3326 | + </dc:subject> |
3327 | + <cc:license |
3328 | + rdf:resource="http://creativecommons.org/licenses/by-sa/2.0/" /> |
3329 | + <dc:source /> |
3330 | + <dc:contributor> |
3331 | + <cc:Agent> |
3332 | + <dc:title>Jakub Steiner, Luca Ferretti</dc:title> |
3333 | + </cc:Agent> |
3334 | + </dc:contributor> |
3335 | + </cc:Work> |
3336 | + <cc:License |
3337 | + rdf:about="http://creativecommons.org/licenses/by-sa/2.0/"> |
3338 | + <cc:permits |
3339 | + rdf:resource="http://web.resource.org/cc/Reproduction" /> |
3340 | + <cc:permits |
3341 | + rdf:resource="http://web.resource.org/cc/Distribution" /> |
3342 | + <cc:requires |
3343 | + rdf:resource="http://web.resource.org/cc/Notice" /> |
3344 | + <cc:requires |
3345 | + rdf:resource="http://web.resource.org/cc/Attribution" /> |
3346 | + <cc:permits |
3347 | + rdf:resource="http://web.resource.org/cc/DerivativeWorks" /> |
3348 | + <cc:requires |
3349 | + rdf:resource="http://web.resource.org/cc/ShareAlike" /> |
3350 | + </cc:License> |
3351 | + </rdf:RDF> |
3352 | + </metadata> |
3353 | + <g |
3354 | + id="layer1" |
3355 | + inkscape:label="Layer 1" |
3356 | + inkscape:groupmode="layer"> |
3357 | + <g |
3358 | + id="g5480" |
3359 | + transform="translate(14.98536,1)"> |
3360 | + <g |
3361 | + style="display:inline" |
3362 | + inkscape:label="Layer 1" |
3363 | + id="g5482" /> |
3364 | + <g |
3365 | + style="display:inline" |
3366 | + inkscape:label="tastiera" |
3367 | + id="g5484"> |
3368 | + <g |
3369 | + transform="translate(-54,0.18088)" |
3370 | + inkscape:label="Shadow" |
3371 | + id="g5486" /> |
3372 | + <g |
3373 | + id="g5488" |
3374 | + inkscape:label="Shadow" |
3375 | + transform="translate(-54,15.24691)" /> |
3376 | + <g |
3377 | + id="g5490" |
3378 | + inkscape:label="Lavoro" |
3379 | + style="display:inline" |
3380 | + transform="translate(-54,15.24691)" /> |
3381 | + </g> |
3382 | + <g |
3383 | + style="display:inline" |
3384 | + inkscape:label="tasti" |
3385 | + id="g5492"> |
3386 | + <path |
3387 | + transform="matrix(0.633479,0,0,0.565504,1.119993,0.201324)" |
3388 | + d="M 47.69706 42.6875 A 23.75956 5.8835783 0 1 1 0.17794037,42.6875 A 23.75956 5.8835783 0 1 1 47.69706 42.6875 z" |
3389 | + sodipodi:ry="5.8835783" |
3390 | + sodipodi:rx="23.75956" |
3391 | + sodipodi:cy="42.6875" |
3392 | + sodipodi:cx="23.9375" |
3393 | + id="path5494" |
3394 | + style="opacity:0.3;fill:url(#radialGradient5620);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline" |
3395 | + sodipodi:type="arc" /> |
3396 | + <path |
3397 | + style="opacity:0.20786516;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5622);stroke-width:0.99999982;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline" |
3398 | + d="M 27.082936,28.048013 C 21.663366,21.135948 31.947853,26.54939 30.855772,24.153878 C 29.785572,21.806364 17.408039,24.595241 18.709552,20.667209" |
3399 | + id="path5496" |
3400 | + sodipodi:nodetypes="czz" /> |
3401 | + <path |
3402 | + sodipodi:nodetypes="czz" |
3403 | + id="path5498" |
3404 | + d="M 26.784723,27.671888 C 21.538638,20.412631 31.520563,26.487432 30.374151,23.604157 C 29.072638,20.330797 18.198646,24.276982 18.806217,20.406815" |
3405 | + style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#729fcf;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline" /> |
3406 | + <g |
3407 | + transform="matrix(0.530612,0,0,0.53095,3.140616,3.404111)" |
3408 | + id="g5500" |
3409 | + style="display:inline"> |
3410 | + <path |
3411 | + sodipodi:nodetypes="csccscc" |
3412 | + id="path5502" |
3413 | + d="M 14.375479,32.558794 C 14.375479,32.558794 15.592355,37.45777 10.51915,37.50376 C 8.0888743,37.525507 8.5866723,41.509781 8.5866723,41.509781 L 39.433139,41.478634 C 39.433139,41.478634 39.851577,37.611393 37.410922,37.566053 C 32.423455,37.474579 33.600393,32.496503 33.600393,32.496503 L 14.375479,32.558794 z " |
3414 | + style="opacity:1;color:black;fill:url(#linearGradient5624);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:1.88401449;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> |
3415 | + <path |
3416 | + sodipodi:nodetypes="ccccc" |
3417 | + id="path5504" |
3418 | + d="M 13.926195,33.027451 C 14.010206,35.2 13.641655,35.938894 12.285731,36.702682 L 36,38 C 35.047008,36.831372 33.660837,35.066666 34.038883,33.011765 L 13.926195,33.027451 z " |
3419 | + style="opacity:0.5;fill:url(#linearGradient5626);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> |
3420 | + <path |
3421 | + style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#8d8d8f;stroke-width:1.88401508px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:0.43902438" |
3422 | + d="M 10.436202,38.661601 C 17.000465,38.66357 37.562637,38.661601 37.562637,38.661601" |
3423 | + id="path5506" |
3424 | + sodipodi:nodetypes="cc" /> |
3425 | + <path |
3426 | + sodipodi:nodetypes="cc" |
3427 | + id="path5508" |
3428 | + d="M 11.134219,39.660187 C 17.146756,39.662156 36.881517,39.660187 36.881517,39.660187" |
3429 | + style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:white;stroke-width:1.88401532px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" /> |
3430 | + </g> |
3431 | + <path |
3432 | + sodipodi:nodetypes="ccccccccc" |
3433 | + id="path5510" |
3434 | + d="M 3.602229,1.4999996 L 28.319154,1.4999996 C 29.631932,1.4999996 30.588653,2.4197694 30.588653,3.8361498 L 30.595753,20.072828 C 30.595753,21.162945 30.253253,21.499994 29.276792,21.499994 L 2.7228402,21.487795 C 1.9583807,21.469246 1.414291,21.169109 1.404027,20.186855 L 1.4138652,3.7151949 C 1.4138652,2.572403 2.4117826,1.4999996 3.602229,1.4999996 z " |
3435 | + style="fill:url(#linearGradient5628);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:1.00000036;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;display:inline" /> |
3436 | + <rect |
3437 | + y="3.5000005" |
3438 | + x="3.4999971" |
3439 | + height="15.194118" |
3440 | + width="25.103695" |
3441 | + id="rect5512" |
3442 | + style="fill:url(#radialGradient5630);fill-opacity:1;fill-rule:evenodd;stroke:#204a87;stroke-width:0.99999958px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline" /> |
3443 | + <path |
3444 | + sodipodi:nodetypes="ccccc" |
3445 | + id="path5514" |
3446 | + d="M 4.0984042,4.0204313 L 4.0984042,15.748091 C 15.025941,14.866132 19.115514,9.1623492 28,8.5664313 L 28,4 L 4.0984042,4.0204313 z " |
3447 | + style="opacity:0.5;fill:url(#linearGradient5632);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline" /> |
3448 | + <path |
3449 | + sodipodi:nodetypes="cccsccscccc" |
3450 | + id="path5516" |
3451 | + d="M 4.056094,2.4999991 C 3.2398944,2.4999991 2.4960113,3.2952856 2.4960113,4.0741096 L 2.4960108,19.789734 C 2.4999206,20.160319 2.5869303,20.275382 2.6715202,20.346431 C 2.7561101,20.417479 2.9348114,20.473541 3.2370502,20.480806 L 28.783404,20.500002 C 29.189758,20.500002 29.318189,20.437946 29.368434,20.384824 C 29.418681,20.3317 29.504941,20.138678 29.504941,19.674554 L 29.504942,4.1892884 C 29.504942,3.0791795 28.874178,2.4999991 27.866855,2.4999991 L 4.056094,2.4999991 z " |
3452 | + style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:white;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;display:inline" /> |
3453 | + <g |
3454 | + id="g5518" |
3455 | + transform="matrix(1.543206e-2,0,0,1.215502e-2,29.57023,28.01728)" |
3456 | + style="display:inline"> |
3457 | + <rect |
3458 | + y="-150.69685" |
3459 | + x="-1559.2523" |
3460 | + height="478.35718" |
3461 | + width="1339.6335" |
3462 | + id="rect5520" |
3463 | + style="opacity:0.40206185;color:black;fill:url(#linearGradient5634);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> |
3464 | + <path |
3465 | + sodipodi:nodetypes="cccc" |
3466 | + id="path5522" |
3467 | + d="M -219.61876,-150.68038 C -219.61876,-150.68038 -219.61876,327.65041 -219.61876,327.65041 C -76.744594,328.55086 125.78146,220.48075 125.78138,88.454235 C 125.78138,-43.572302 -33.655436,-150.68036 -219.61876,-150.68038 z " |
3468 | + style="opacity:0.40206185;color:black;fill:url(#radialGradient5636);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> |
3469 | + <path |
3470 | + style="opacity:0.40206185;color:black;fill:url(#radialGradient5638);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
3471 | + d="M -1559.2523,-150.68038 C -1559.2523,-150.68038 -1559.2523,327.65041 -1559.2523,327.65041 C -1702.1265,328.55086 -1904.6525,220.48075 -1904.6525,88.454235 C -1904.6525,-43.572302 -1745.2157,-150.68036 -1559.2523,-150.68038 z " |
3472 | + id="path5524" |
3473 | + sodipodi:nodetypes="cccc" /> |
3474 | + </g> |
3475 | + <path |
3476 | + sodipodi:nodetypes="ccccccccc" |
3477 | + id="path5526" |
3478 | + d="M 3.643761,26.504783 L 28.921938,26.504783 C 29.226374,26.504783 29.788645,26.492665 30,27 L 31.5,30 C 31.5625,30.406064 31.487026,31.562501 30,31.562501 L 2.5,31.500001 C 1,31.562501 1.0652178,30.281064 1.0652178,30 L 3,27 C 3.2113561,26.492665 3.3393239,26.504783 3.643761,26.504783 z " |
3479 | + style="color:black;fill:url(#linearGradient5640);fill-opacity:1;fill-rule:nonzero;stroke:#888a85;stroke-width:0.99999976;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> |
3480 | + <path |
3481 | + sodipodi:nodetypes="ccccccccc" |
3482 | + id="path5528" |
3483 | + d="M 4.0955909,27.111942 L 28.49679,27.10614 C 28.788541,27.10614 28.820868,27.10614 29.023418,27.449588 L 30.420658,30.150759 C 30.420658,30.341029 30.185782,30.494207 29.894029,30.494207 L 2.6782341,30.500011 C 2.3864818,30.500011 2.1516056,30.346832 2.1516056,30.156562 L 3.5689622,27.45539 C 3.7715117,27.111942 3.8038386,27.111942 4.0955909,27.111942 z " |
3484 | + style="opacity:1;color:black;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:white;stroke-width:0.99999964;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> |
3485 | + <path |
3486 | + sodipodi:nodetypes="csssssssccssssssssssssccccssscccccccccssssssssssssccsssssssssccccccc" |
3487 | + id="path5530" |
3488 | + d="M 4.9039459,26.500588 C 4.9019723,26.502459 4.9057445,26.514939 4.9039459,26.516406 C 4.89444,26.51889 4.8714034,26.528697 4.8616746,26.532224 C 4.8584281,26.533516 4.8437789,26.530815 4.840539,26.532224 C 4.8373165,26.533749 4.8225981,26.546397 4.8194034,26.548041 C 4.8130911,26.551565 4.8043634,26.559861 4.7982678,26.563859 C 4.7952901,26.565977 4.7800294,26.57744 4.7771322,26.579677 C 4.7743261,26.582033 4.7587013,26.593017 4.7559967,26.595495 C 4.7139608,26.641114 4.6696929,26.720423 4.6080475,26.816941 L 3.1646057,29.221226 C 3.1646057,29.224233 3.1644578,29.234029 3.1646057,29.237043 C 3.1648991,29.240062 3.1641691,29.249843 3.1646057,29.25286 C 3.1651831,29.255877 3.1638899,29.265668 3.1646057,29.268679 C 3.1663094,29.274683 3.1835077,29.294359 3.1857413,29.300313 C 3.1869871,29.303274 3.184369,29.31319 3.1857413,29.316132 C 3.1902312,29.324886 3.2013114,29.339269 3.2068769,29.347766 C 3.2127868,29.356161 3.2211123,29.37137 3.2280125,29.379402 C 3.230418,29.382033 3.2466397,29.392637 3.2491481,29.395219 C 3.2517571,29.39775 3.2675765,29.408562 3.2702837,29.411038 C 3.287102,29.425545 3.313719,29.446427 3.3336905,29.45849 C 3.3370984,29.460423 3.3513413,29.472456 3.3548262,29.474308 C 3.3655167,29.479116 3.3855128,29.485766 3.3970973,29.490126 C 3.4750042,29.516899 3.5780713,29.537579 3.6718601,29.537579 L 18.650036,29.537579 L 18.586629,26.500592 L 5.1153018,26.500588 C 5.0709049,26.500588 5.0221446,26.49941 4.9884883,26.500588 C 4.9806133,26.500623 4.9547729,26.500899 4.9462171,26.500588 C 4.9436075,26.500603 4.9274517,26.500458 4.9250814,26.500588 C 4.9232514,26.502034 4.9059195,26.498718 4.9039459,26.500588 z M 19.83363,26.500592 L 19.897036,27.512921 L 23.553495,27.512921 L 23.38441,26.500592 L 19.83363,26.500592 z M 24.652546,26.500592 L 25.413428,29.537579 L 28.795124,29.537579 C 28.888912,29.537579 28.991979,29.516899 29.069886,29.490126 C 29.081471,29.485766 29.101467,29.479116 29.112157,29.474308 C 29.115641,29.472456 29.129884,29.460423 29.133293,29.45849 C 29.153265,29.446427 29.179882,29.425545 29.1967,29.411038 C 29.199407,29.408562 29.215227,29.39775 29.217835,29.395219 C 29.220344,29.392637 29.236565,29.382033 29.238971,29.379402 C 29.245871,29.37137 29.254196,29.356161 29.260107,29.347766 C 29.265672,29.339269 29.276752,29.324886 29.281242,29.316132 C 29.282614,29.31319 29.279996,29.303274 29.281242,29.300313 C 29.283476,29.294359 29.300674,29.274683 29.302378,29.268679 C 29.303093,29.265668 29.3018,29.255877 29.302378,29.25286 C 29.302814,29.249843 29.302083,29.240062 29.302378,29.237043 C 29.302527,29.234029 29.302378,29.224233 29.302378,29.221226 L 28.119129,26.816941 C 28.057483,26.720424 28.013215,26.641114 27.97118,26.595495 C 27.968475,26.593017 27.95285,26.582033 27.950044,26.579677 C 27.947147,26.57744 27.931886,26.565977 27.928908,26.563859 C 27.922812,26.559861 27.914085,26.551565 27.907773,26.548041 C 27.904579,26.546397 27.88986,26.533749 27.886638,26.532224 C 27.883397,26.530815 27.868747,26.533516 27.865502,26.532224 C 27.855773,26.528697 27.832737,26.51889 27.823231,26.516406 C 27.812787,26.51452 27.796296,26.503902 27.780959,26.500588 C 27.773263,26.49907 27.745738,26.501448 27.738688,26.500588 C 27.705031,26.49941 27.656271,26.500588 27.611875,26.500588 L 24.652546,26.500592 z M 20.679054,28.525249 L 20.002715,29.537579 L 23.891664,29.537579 L 23.04624,28.525249 L 20.679054,28.525249 z " |
3489 | + style="color:black;fill:#d3d7cf;fill-opacity:1;fill-rule:nonzero;stroke:#babdb6;stroke-width:0.99999923;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> |
3490 | + <rect |
3491 | + style="color:black;fill:url(#radialGradient5642);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
3492 | + id="rect5532" |
3493 | + width="1" |
3494 | + height="1" |
3495 | + x="5" |
3496 | + y="26" |
3497 | + rx="0.26516503" |
3498 | + ry="0.26516503" /> |
3499 | + <rect |
3500 | + style="color:black;fill:url(#radialGradient5644);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
3501 | + id="rect5534" |
3502 | + width="1" |
3503 | + height="1" |
3504 | + x="7" |
3505 | + y="26" |
3506 | + rx="0.26516503" |
3507 | + ry="0.26516503" /> |
3508 | + <rect |
3509 | + style="color:black;fill:url(#radialGradient5646);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
3510 | + id="rect5536" |
3511 | + width="1" |
3512 | + height="1" |
3513 | + x="9" |
3514 | + y="26" |
3515 | + rx="0.26516503" |
3516 | + ry="0.26516503" /> |
3517 | + <rect |
3518 | + style="color:black;fill:url(#radialGradient5648);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
3519 | + id="rect5538" |
3520 | + width="1" |
3521 | + height="1" |
3522 | + x="11" |
3523 | + y="26" |
3524 | + rx="0.26516503" |
3525 | + ry="0.26516503" /> |
3526 | + <rect |
3527 | + style="color:black;fill:url(#radialGradient5650);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
3528 | + id="rect5540" |
3529 | + width="1" |
3530 | + height="1" |
3531 | + x="13" |
3532 | + y="26" |
3533 | + rx="0.26516503" |
3534 | + ry="0.26516503" /> |
3535 | + <rect |
3536 | + style="color:black;fill:url(#radialGradient5652);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
3537 | + id="rect5542" |
3538 | + width="1" |
3539 | + height="1" |
3540 | + x="15" |
3541 | + y="26" |
3542 | + rx="0.26516503" |
3543 | + ry="0.26516503" /> |
3544 | + <rect |
3545 | + style="color:black;fill:url(#radialGradient5654);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
3546 | + id="rect5544" |
3547 | + width="1" |
3548 | + height="1" |
3549 | + x="17" |
3550 | + y="26" |
3551 | + rx="0.26516503" |
3552 | + ry="0.26516503" /> |
3553 | + <rect |
3554 | + style="color:black;fill:url(#radialGradient5656);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
3555 | + id="rect5546" |
3556 | + width="1" |
3557 | + height="1" |
3558 | + x="4" |
3559 | + y="27" |
3560 | + rx="0.26516503" |
3561 | + ry="0.26516503" /> |
3562 | + <rect |
3563 | + style="color:black;fill:url(#radialGradient5658);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
3564 | + id="rect5548" |
3565 | + width="1" |
3566 | + height="1" |
3567 | + x="6" |
3568 | + y="27" |
3569 | + rx="0.26516503" |
3570 | + ry="0.26516503" /> |
3571 | + <rect |
3572 | + style="color:black;fill:url(#radialGradient5660);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
3573 | + id="rect5550" |
3574 | + width="1" |
3575 | + height="1" |
3576 | + x="8" |
3577 | + y="27" |
3578 | + rx="0.26516503" |
3579 | + ry="0.26516503" /> |
3580 | + <rect |
3581 | + style="color:black;fill:url(#radialGradient5662);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
3582 | + id="rect5552" |
3583 | + width="1" |
3584 | + height="1" |
3585 | + x="10" |
3586 | + y="27" |
3587 | + rx="0.26516503" |
3588 | + ry="0.26516503" /> |
3589 | + <rect |
3590 | + style="color:black;fill:url(#radialGradient5664);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
3591 | + id="rect5554" |
3592 | + width="1" |
3593 | + height="1" |
3594 | + x="12" |
3595 | + y="27" |
3596 | + rx="0.26516503" |
3597 | + ry="0.26516503" /> |
3598 | + <rect |
3599 | + style="color:black;fill:url(#radialGradient5666);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
3600 | + id="rect5556" |
3601 | + width="1" |
3602 | + height="1" |
3603 | + x="14" |
3604 | + y="27" |
3605 | + rx="0.26516503" |
3606 | + ry="0.26516503" /> |
3607 | + <rect |
3608 | + style="color:black;fill:url(#radialGradient5668);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
3609 | + id="rect5558" |
3610 | + width="1" |
3611 | + height="1" |
3612 | + x="16" |
3613 | + y="27" |
3614 | + rx="0.26516503" |
3615 | + ry="0.26516503" /> |
3616 | + <rect |
3617 | + style="color:black;fill:url(#radialGradient5670);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
3618 | + id="rect5560" |
3619 | + width="1" |
3620 | + height="1" |
3621 | + x="18" |
3622 | + y="27" |
3623 | + rx="0.26516503" |
3624 | + ry="0.26516503" /> |
3625 | + <rect |
3626 | + style="color:black;fill:url(#radialGradient5672);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
3627 | + id="rect5562" |
3628 | + width="1" |
3629 | + height="1" |
3630 | + x="5" |
3631 | + y="28" |
3632 | + rx="0.26516503" |
3633 | + ry="0.26516503" /> |
3634 | + <rect |
3635 | + style="color:black;fill:url(#radialGradient5674);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
3636 | + id="rect5564" |
3637 | + width="1" |
3638 | + height="1" |
3639 | + x="7" |
3640 | + y="28" |
3641 | + rx="0.26516503" |
3642 | + ry="0.26516503" /> |
3643 | + <rect |
3644 | + style="color:black;fill:url(#radialGradient5676);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
3645 | + id="rect5566" |
3646 | + width="1" |
3647 | + height="1" |
3648 | + x="9" |
3649 | + y="28" |
3650 | + rx="0.26516503" |
3651 | + ry="0.26516503" /> |
3652 | + <rect |
3653 | + style="color:black;fill:url(#radialGradient5678);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
3654 | + id="rect5568" |
3655 | + width="1" |
3656 | + height="1" |
3657 | + x="11" |
3658 | + y="28" |
3659 | + rx="0.26516503" |
3660 | + ry="0.26516503" /> |
3661 | + <rect |
3662 | + style="color:black;fill:url(#radialGradient5680);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
3663 | + id="rect5570" |
3664 | + width="1" |
3665 | + height="1" |
3666 | + x="13" |
3667 | + y="28" |
3668 | + rx="0.26516503" |
3669 | + ry="0.26516503" /> |
3670 | + <rect |
3671 | + style="color:black;fill:url(#radialGradient5682);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
3672 | + id="rect5572" |
3673 | + width="1" |
3674 | + height="1" |
3675 | + x="15" |
3676 | + y="28" |
3677 | + rx="0.26516503" |
3678 | + ry="0.26516503" /> |
3679 | + <rect |
3680 | + style="color:black;fill:url(#radialGradient5684);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
3681 | + id="rect5574" |
3682 | + width="1" |
3683 | + height="1" |
3684 | + x="17" |
3685 | + y="28" |
3686 | + rx="0.26516503" |
3687 | + ry="0.26516503" /> |
3688 | + <rect |
3689 | + style="color:black;fill:url(#radialGradient5686);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
3690 | + id="rect5576" |
3691 | + width="1" |
3692 | + height="1" |
3693 | + x="4" |
3694 | + y="29" |
3695 | + rx="0.26516503" |
3696 | + ry="0.26516503" /> |
3697 | + <rect |
3698 | + style="color:black;fill:url(#radialGradient5688);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
3699 | + id="rect5578" |
3700 | + width="1" |
3701 | + height="1" |
3702 | + x="6" |
3703 | + y="29" |
3704 | + rx="0.26516503" |
3705 | + ry="0.26516503" /> |
3706 | + <rect |
3707 | + style="color:black;fill:url(#radialGradient5690);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
3708 | + id="rect5580" |
3709 | + width="1" |
3710 | + height="1" |
3711 | + x="8" |
3712 | + y="29" |
3713 | + rx="0.26516503" |
3714 | + ry="0.26516503" /> |
3715 | + <rect |
3716 | + style="color:black;fill:url(#radialGradient5692);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
3717 | + id="rect5582" |
3718 | + width="1" |
3719 | + height="1" |
3720 | + x="10" |
3721 | + y="29" |
3722 | + rx="0.26516503" |
3723 | + ry="0.26516503" /> |
3724 | + <rect |
3725 | + style="color:black;fill:url(#radialGradient5694);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
3726 | + id="rect5584" |
3727 | + width="1" |
3728 | + height="1" |
3729 | + x="12" |
3730 | + y="29" |
3731 | + rx="0.26516503" |
3732 | + ry="0.26516503" /> |
3733 | + <rect |
3734 | + style="color:black;fill:url(#radialGradient5696);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
3735 | + id="rect5586" |
3736 | + width="1" |
3737 | + height="1" |
3738 | + x="14" |
3739 | + y="29" |
3740 | + rx="0.26516503" |
3741 | + ry="0.26516503" /> |
3742 | + <rect |
3743 | + style="color:black;fill:url(#radialGradient5698);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
3744 | + id="rect5588" |
3745 | + width="1" |
3746 | + height="1" |
3747 | + x="16" |
3748 | + y="29" |
3749 | + rx="0.26516503" |
3750 | + ry="0.26516503" /> |
3751 | + <rect |
3752 | + style="color:black;fill:url(#radialGradient5700);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
3753 | + id="rect5590" |
3754 | + width="1" |
3755 | + height="1" |
3756 | + x="18" |
3757 | + y="29" |
3758 | + rx="0.26516503" |
3759 | + ry="0.26516503" /> |
3760 | + <rect |
3761 | + style="color:black;fill:url(#radialGradient5702);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
3762 | + id="rect5592" |
3763 | + width="1" |
3764 | + height="1" |
3765 | + x="21" |
3766 | + y="26" |
3767 | + rx="0.26516503" |
3768 | + ry="0.26516503" /> |
3769 | + <rect |
3770 | + style="color:black;fill:url(#radialGradient5704);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
3771 | + id="rect5594" |
3772 | + width="1" |
3773 | + height="1" |
3774 | + x="20" |
3775 | + y="27" |
3776 | + rx="0.26516503" |
3777 | + ry="0.26516503" /> |
3778 | + <rect |
3779 | + style="color:black;fill:url(#radialGradient5706);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
3780 | + id="rect5596" |
3781 | + width="1" |
3782 | + height="1" |
3783 | + x="22" |
3784 | + y="27" |
3785 | + rx="0.26516503" |
3786 | + ry="0.26516503" /> |
3787 | + <rect |
3788 | + style="color:black;fill:url(#radialGradient5708);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
3789 | + id="rect5598" |
3790 | + width="1" |
3791 | + height="1" |
3792 | + x="21" |
3793 | + y="28" |
3794 | + rx="0.26516503" |
3795 | + ry="0.26516503" /> |
3796 | + <rect |
3797 | + style="color:black;fill:url(#radialGradient5710);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
3798 | + id="rect5600" |
3799 | + width="1" |
3800 | + height="1" |
3801 | + x="23" |
3802 | + y="28" |
3803 | + rx="0.26516503" |
3804 | + ry="0.26516503" /> |
3805 | + <rect |
3806 | + style="color:black;fill:url(#radialGradient5712);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
3807 | + id="rect5602" |
3808 | + width="1" |
3809 | + height="1" |
3810 | + x="20" |
3811 | + y="29" |
3812 | + rx="0.26516503" |
3813 | + ry="0.26516503" /> |
3814 | + <rect |
3815 | + style="color:black;fill:url(#radialGradient5714);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
3816 | + id="rect5604" |
3817 | + width="1" |
3818 | + height="1" |
3819 | + x="22" |
3820 | + y="29" |
3821 | + rx="0.26516503" |
3822 | + ry="0.26516503" /> |
3823 | + <rect |
3824 | + style="color:black;fill:url(#radialGradient5716);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
3825 | + id="rect5606" |
3826 | + width="1" |
3827 | + height="1" |
3828 | + x="26" |
3829 | + y="26" |
3830 | + rx="0.26516503" |
3831 | + ry="0.26516503" /> |
3832 | + <rect |
3833 | + style="color:black;fill:url(#radialGradient5718);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
3834 | + id="rect5608" |
3835 | + width="1" |
3836 | + height="1" |
3837 | + x="25" |
3838 | + y="27" |
3839 | + rx="0.26516503" |
3840 | + ry="0.26516503" /> |
3841 | + <rect |
3842 | + style="color:black;fill:url(#radialGradient5720);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
3843 | + id="rect5610" |
3844 | + width="1" |
3845 | + height="1" |
3846 | + x="27" |
3847 | + y="27" |
3848 | + rx="0.26516503" |
3849 | + ry="0.26516503" /> |
3850 | + <rect |
3851 | + style="color:black;fill:url(#radialGradient5722);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
3852 | + id="rect5612" |
3853 | + width="1" |
3854 | + height="1" |
3855 | + x="26" |
3856 | + y="28" |
3857 | + rx="0.26516503" |
3858 | + ry="0.26516503" /> |
3859 | + <rect |
3860 | + style="color:black;fill:url(#radialGradient5724);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
3861 | + id="rect5614" |
3862 | + width="1" |
3863 | + height="1" |
3864 | + x="28" |
3865 | + y="28" |
3866 | + rx="0.26516503" |
3867 | + ry="0.26516503" /> |
3868 | + <rect |
3869 | + style="color:black;fill:url(#radialGradient5726);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
3870 | + id="rect5616" |
3871 | + width="1" |
3872 | + height="1" |
3873 | + x="25" |
3874 | + y="29" |
3875 | + rx="0.26516503" |
3876 | + ry="0.26516503" /> |
3877 | + <rect |
3878 | + style="color:black;fill:url(#radialGradient5728);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
3879 | + id="rect5618" |
3880 | + width="1" |
3881 | + height="1" |
3882 | + x="27" |
3883 | + y="29" |
3884 | + rx="0.26516503" |
3885 | + ry="0.26516503" /> |
3886 | + </g> |
3887 | + </g> |
3888 | + <g |
3889 | + id="g5340" |
3890 | + transform="translate(0.985355,12)"> |
3891 | + <g |
3892 | + style="display:inline" |
3893 | + inkscape:label="Layer 1" |
3894 | + id="g5342" /> |
3895 | + <g |
3896 | + style="display:inline" |
3897 | + inkscape:label="tastiera" |
3898 | + id="g5344"> |
3899 | + <g |
3900 | + transform="translate(-54,0.18088)" |
3901 | + inkscape:label="Shadow" |
3902 | + id="g5346" /> |
3903 | + <g |
3904 | + id="g5348" |
3905 | + inkscape:label="Shadow" |
3906 | + transform="translate(-54,15.24691)" /> |
3907 | + <g |
3908 | + id="g5350" |
3909 | + inkscape:label="Lavoro" |
3910 | + style="display:inline" |
3911 | + transform="translate(-54,15.24691)" /> |
3912 | + </g> |
3913 | + <g |
3914 | + style="display:inline" |
3915 | + inkscape:label="tasti" |
3916 | + id="layer2"> |
3917 | + <path |
3918 | + transform="matrix(0.633479,0,0,0.565504,1.119993,0.201324)" |
3919 | + d="M 47.69706 42.6875 A 23.75956 5.8835783 0 1 1 0.17794037,42.6875 A 23.75956 5.8835783 0 1 1 47.69706 42.6875 z" |
3920 | + sodipodi:ry="5.8835783" |
3921 | + sodipodi:rx="23.75956" |
3922 | + sodipodi:cy="42.6875" |
3923 | + sodipodi:cx="23.9375" |
3924 | + id="path5353" |
3925 | + style="opacity:0.3;fill:url(#radialGradient2313);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline" |
3926 | + sodipodi:type="arc" /> |
3927 | + <path |
3928 | + style="opacity:0.20786516;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient4202);stroke-width:0.99999982;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline" |
3929 | + d="M 27.082936,28.048013 C 21.663366,21.135948 31.947853,26.54939 30.855772,24.153878 C 29.785572,21.806364 17.408039,24.595241 18.709552,20.667209" |
3930 | + id="path5355" |
3931 | + sodipodi:nodetypes="czz" /> |
3932 | + <path |
3933 | + sodipodi:nodetypes="czz" |
3934 | + id="path5357" |
3935 | + d="M 26.784723,27.671888 C 21.538638,20.412631 31.520563,26.487432 30.374151,23.604157 C 29.072638,20.330797 18.198646,24.276982 18.806217,20.406815" |
3936 | + style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#729fcf;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline" /> |
3937 | + <g |
3938 | + transform="matrix(0.530612,0,0,0.53095,3.140616,3.404111)" |
3939 | + id="g5359" |
3940 | + style="display:inline"> |
3941 | + <path |
3942 | + sodipodi:nodetypes="csccscc" |
3943 | + id="path5361" |
3944 | + d="M 14.375479,32.558794 C 14.375479,32.558794 15.592355,37.45777 10.51915,37.50376 C 8.0888743,37.525507 8.5866723,41.509781 8.5866723,41.509781 L 39.433139,41.478634 C 39.433139,41.478634 39.851577,37.611393 37.410922,37.566053 C 32.423455,37.474579 33.600393,32.496503 33.600393,32.496503 L 14.375479,32.558794 z " |
3945 | + style="opacity:1;color:black;fill:url(#linearGradient2308);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:1.88401449;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> |
3946 | + <path |
3947 | + sodipodi:nodetypes="ccccc" |
3948 | + id="path5363" |
3949 | + d="M 13.926195,33.027451 C 14.010206,35.2 13.641655,35.938894 12.285731,36.702682 L 36,38 C 35.047008,36.831372 33.660837,35.066666 34.038883,33.011765 L 13.926195,33.027451 z " |
3950 | + style="opacity:0.5;fill:url(#linearGradient2310);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> |
3951 | + <path |
3952 | + style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#8d8d8f;stroke-width:1.88401508px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:0.43902438" |
3953 | + d="M 10.436202,38.661601 C 17.000465,38.66357 37.562637,38.661601 37.562637,38.661601" |
3954 | + id="path5365" |
3955 | + sodipodi:nodetypes="cc" /> |
3956 | + <path |
3957 | + sodipodi:nodetypes="cc" |
3958 | + id="path5367" |
3959 | + d="M 11.134219,39.660187 C 17.146756,39.662156 36.881517,39.660187 36.881517,39.660187" |
3960 | + style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:white;stroke-width:1.88401532px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" /> |
3961 | + </g> |
3962 | + <path |
3963 | + sodipodi:nodetypes="ccccccccc" |
3964 | + id="path5369" |
3965 | + d="M 3.602229,1.4999996 L 28.319154,1.4999996 C 29.631932,1.4999996 30.588653,2.4197694 30.588653,3.8361498 L 30.595753,20.072828 C 30.595753,21.162945 30.253253,21.499994 29.276792,21.499994 L 2.7228402,21.487795 C 1.9583807,21.469246 1.414291,21.169109 1.404027,20.186855 L 1.4138652,3.7151949 C 1.4138652,2.572403 2.4117826,1.4999996 3.602229,1.4999996 z " |
3966 | + style="fill:url(#linearGradient5147);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:1.00000036;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;display:inline" /> |
3967 | + <rect |
3968 | + y="3.5000005" |
3969 | + x="3.4999971" |
3970 | + height="15.194118" |
3971 | + width="25.103695" |
3972 | + id="rect5371" |
3973 | + style="fill:url(#radialGradient5239);fill-opacity:1;fill-rule:evenodd;stroke:#204a87;stroke-width:0.99999958px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline" /> |
3974 | + <path |
3975 | + sodipodi:nodetypes="ccccc" |
3976 | + id="path5373" |
3977 | + d="M 4.0984042,4.0204313 L 4.0984042,15.748091 C 15.025941,14.866132 19.115514,9.1623492 28,8.5664313 L 28,4 L 4.0984042,4.0204313 z " |
3978 | + style="opacity:0.5;fill:url(#linearGradient6246);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline" /> |
3979 | + <path |
3980 | + sodipodi:nodetypes="cccsccscccc" |
3981 | + id="path5375" |
3982 | + d="M 4.056094,2.4999991 C 3.2398944,2.4999991 2.4960113,3.2952856 2.4960113,4.0741096 L 2.4960108,19.789734 C 2.4999206,20.160319 2.5869303,20.275382 2.6715202,20.346431 C 2.7561101,20.417479 2.9348114,20.473541 3.2370502,20.480806 L 28.783404,20.500002 C 29.189758,20.500002 29.318189,20.437946 29.368434,20.384824 C 29.418681,20.3317 29.504941,20.138678 29.504941,19.674554 L 29.504942,4.1892884 C 29.504942,3.0791795 28.874178,2.4999991 27.866855,2.4999991 L 4.056094,2.4999991 z " |
3983 | + style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:white;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;display:inline" /> |
3984 | + <g |
3985 | + id="g5377" |
3986 | + transform="matrix(1.543206e-2,0,0,1.215502e-2,29.57023,28.01728)" |
3987 | + style="display:inline"> |
3988 | + <rect |
3989 | + y="-150.69685" |
3990 | + x="-1559.2523" |
3991 | + height="478.35718" |
3992 | + width="1339.6335" |
3993 | + id="rect6709" |
3994 | + style="opacity:0.40206185;color:black;fill:url(#linearGradient5478);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> |
3995 | + <path |
3996 | + sodipodi:nodetypes="cccc" |
3997 | + id="path5380" |
3998 | + d="M -219.61876,-150.68038 C -219.61876,-150.68038 -219.61876,327.65041 -219.61876,327.65041 C -76.744594,328.55086 125.78146,220.48075 125.78138,88.454235 C 125.78138,-43.572302 -33.655436,-150.68036 -219.61876,-150.68038 z " |
3999 | + style="opacity:0.40206185;color:black;fill:url(#radialGradient2309);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> |
4000 | + <path |
4001 | + style="opacity:0.40206185;color:black;fill:url(#radialGradient2311);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
4002 | + d="M -1559.2523,-150.68038 C -1559.2523,-150.68038 -1559.2523,327.65041 -1559.2523,327.65041 C -1702.1265,328.55086 -1904.6525,220.48075 -1904.6525,88.454235 C -1904.6525,-43.572302 -1745.2157,-150.68036 -1559.2523,-150.68038 z " |
4003 | + id="path5382" |
4004 | + sodipodi:nodetypes="cccc" /> |
4005 | + </g> |
4006 | + <path |
4007 | + sodipodi:nodetypes="ccccccccc" |
4008 | + id="path5384" |
4009 | + d="M 3.643761,26.504783 L 28.921938,26.504783 C 29.226374,26.504783 29.788645,26.492665 30,27 L 31.5,30 C 31.5625,30.406064 31.487026,31.562501 30,31.562501 L 2.5,31.500001 C 1,31.562501 1.0652178,30.281064 1.0652178,30 L 3,27 C 3.2113561,26.492665 3.3393239,26.504783 3.643761,26.504783 z " |
4010 | + style="color:black;fill:url(#linearGradient3905);fill-opacity:1;fill-rule:nonzero;stroke:#888a85;stroke-width:0.99999976;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> |
4011 | + <path |
4012 | + sodipodi:nodetypes="ccccccccc" |
4013 | + id="path5386" |
4014 | + d="M 4.0955909,27.111942 L 28.49679,27.10614 C 28.788541,27.10614 28.820868,27.10614 29.023418,27.449588 L 30.420658,30.150759 C 30.420658,30.341029 30.185782,30.494207 29.894029,30.494207 L 2.6782341,30.500011 C 2.3864818,30.500011 2.1516056,30.346832 2.1516056,30.156562 L 3.5689622,27.45539 C 3.7715117,27.111942 3.8038386,27.111942 4.0955909,27.111942 z " |
4015 | + style="opacity:1;color:black;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:white;stroke-width:0.99999964;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> |
4016 | + <path |
4017 | + sodipodi:nodetypes="csssssssccssssssssssssccccssscccccccccssssssssssssccsssssssssccccccc" |
4018 | + id="path5388" |
4019 | + d="M 4.9039459,26.500588 C 4.9019723,26.502459 4.9057445,26.514939 4.9039459,26.516406 C 4.89444,26.51889 4.8714034,26.528697 4.8616746,26.532224 C 4.8584281,26.533516 4.8437789,26.530815 4.840539,26.532224 C 4.8373165,26.533749 4.8225981,26.546397 4.8194034,26.548041 C 4.8130911,26.551565 4.8043634,26.559861 4.7982678,26.563859 C 4.7952901,26.565977 4.7800294,26.57744 4.7771322,26.579677 C 4.7743261,26.582033 4.7587013,26.593017 4.7559967,26.595495 C 4.7139608,26.641114 4.6696929,26.720423 4.6080475,26.816941 L 3.1646057,29.221226 C 3.1646057,29.224233 3.1644578,29.234029 3.1646057,29.237043 C 3.1648991,29.240062 3.1641691,29.249843 3.1646057,29.25286 C 3.1651831,29.255877 3.1638899,29.265668 3.1646057,29.268679 C 3.1663094,29.274683 3.1835077,29.294359 3.1857413,29.300313 C 3.1869871,29.303274 3.184369,29.31319 3.1857413,29.316132 C 3.1902312,29.324886 3.2013114,29.339269 3.2068769,29.347766 C 3.2127868,29.356161 3.2211123,29.37137 3.2280125,29.379402 C 3.230418,29.382033 3.2466397,29.392637 3.2491481,29.395219 C 3.2517571,29.39775 3.2675765,29.408562 3.2702837,29.411038 C 3.287102,29.425545 3.313719,29.446427 3.3336905,29.45849 C 3.3370984,29.460423 3.3513413,29.472456 3.3548262,29.474308 C 3.3655167,29.479116 3.3855128,29.485766 3.3970973,29.490126 C 3.4750042,29.516899 3.5780713,29.537579 3.6718601,29.537579 L 18.650036,29.537579 L 18.586629,26.500592 L 5.1153018,26.500588 C 5.0709049,26.500588 5.0221446,26.49941 4.9884883,26.500588 C 4.9806133,26.500623 4.9547729,26.500899 4.9462171,26.500588 C 4.9436075,26.500603 4.9274517,26.500458 4.9250814,26.500588 C 4.9232514,26.502034 4.9059195,26.498718 4.9039459,26.500588 z M 19.83363,26.500592 L 19.897036,27.512921 L 23.553495,27.512921 L 23.38441,26.500592 L 19.83363,26.500592 z M 24.652546,26.500592 L 25.413428,29.537579 L 28.795124,29.537579 C 28.888912,29.537579 28.991979,29.516899 29.069886,29.490126 C 29.081471,29.485766 29.101467,29.479116 29.112157,29.474308 C 29.115641,29.472456 29.129884,29.460423 29.133293,29.45849 C 29.153265,29.446427 29.179882,29.425545 29.1967,29.411038 C 29.199407,29.408562 29.215227,29.39775 29.217835,29.395219 C 29.220344,29.392637 29.236565,29.382033 29.238971,29.379402 C 29.245871,29.37137 29.254196,29.356161 29.260107,29.347766 C 29.265672,29.339269 29.276752,29.324886 29.281242,29.316132 C 29.282614,29.31319 29.279996,29.303274 29.281242,29.300313 C 29.283476,29.294359 29.300674,29.274683 29.302378,29.268679 C 29.303093,29.265668 29.3018,29.255877 29.302378,29.25286 C 29.302814,29.249843 29.302083,29.240062 29.302378,29.237043 C 29.302527,29.234029 29.302378,29.224233 29.302378,29.221226 L 28.119129,26.816941 C 28.057483,26.720424 28.013215,26.641114 27.97118,26.595495 C 27.968475,26.593017 27.95285,26.582033 27.950044,26.579677 C 27.947147,26.57744 27.931886,26.565977 27.928908,26.563859 C 27.922812,26.559861 27.914085,26.551565 27.907773,26.548041 C 27.904579,26.546397 27.88986,26.533749 27.886638,26.532224 C 27.883397,26.530815 27.868747,26.533516 27.865502,26.532224 C 27.855773,26.528697 27.832737,26.51889 27.823231,26.516406 C 27.812787,26.51452 27.796296,26.503902 27.780959,26.500588 C 27.773263,26.49907 27.745738,26.501448 27.738688,26.500588 C 27.705031,26.49941 27.656271,26.500588 27.611875,26.500588 L 24.652546,26.500592 z M 20.679054,28.525249 L 20.002715,29.537579 L 23.891664,29.537579 L 23.04624,28.525249 L 20.679054,28.525249 z " |
4020 | + style="color:black;fill:#d3d7cf;fill-opacity:1;fill-rule:nonzero;stroke:#babdb6;stroke-width:0.99999923;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> |
4021 | + <rect |
4022 | + style="color:black;fill:url(#radialGradient3248);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
4023 | + id="rect5390" |
4024 | + width="1" |
4025 | + height="1" |
4026 | + x="5" |
4027 | + y="26" |
4028 | + rx="0.26516503" |
4029 | + ry="0.26516503" /> |
4030 | + <rect |
4031 | + style="color:black;fill:url(#radialGradient3245);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
4032 | + id="rect5392" |
4033 | + width="1" |
4034 | + height="1" |
4035 | + x="7" |
4036 | + y="26" |
4037 | + rx="0.26516503" |
4038 | + ry="0.26516503" /> |
4039 | + <rect |
4040 | + style="color:black;fill:url(#radialGradient3242);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
4041 | + id="rect5394" |
4042 | + width="1" |
4043 | + height="1" |
4044 | + x="9" |
4045 | + y="26" |
4046 | + rx="0.26516503" |
4047 | + ry="0.26516503" /> |
4048 | + <rect |
4049 | + style="color:black;fill:url(#radialGradient3239);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
4050 | + id="rect5396" |
4051 | + width="1" |
4052 | + height="1" |
4053 | + x="11" |
4054 | + y="26" |
4055 | + rx="0.26516503" |
4056 | + ry="0.26516503" /> |
4057 | + <rect |
4058 | + style="color:black;fill:url(#radialGradient3236);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
4059 | + id="rect5398" |
4060 | + width="1" |
4061 | + height="1" |
4062 | + x="13" |
4063 | + y="26" |
4064 | + rx="0.26516503" |
4065 | + ry="0.26516503" /> |
4066 | + <rect |
4067 | + style="color:black;fill:url(#radialGradient3233);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
4068 | + id="rect5400" |
4069 | + width="1" |
4070 | + height="1" |
4071 | + x="15" |
4072 | + y="26" |
4073 | + rx="0.26516503" |
4074 | + ry="0.26516503" /> |
4075 | + <rect |
4076 | + style="color:black;fill:url(#radialGradient3230);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
4077 | + id="rect5402" |
4078 | + width="1" |
4079 | + height="1" |
4080 | + x="17" |
4081 | + y="26" |
4082 | + rx="0.26516503" |
4083 | + ry="0.26516503" /> |
4084 | + <rect |
4085 | + style="color:black;fill:url(#radialGradient3224);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
4086 | + id="rect5404" |
4087 | + width="1" |
4088 | + height="1" |
4089 | + x="4" |
4090 | + y="27" |
4091 | + rx="0.26516503" |
4092 | + ry="0.26516503" /> |
4093 | + <rect |
4094 | + style="color:black;fill:url(#radialGradient3221);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
4095 | + id="rect5406" |
4096 | + width="1" |
4097 | + height="1" |
4098 | + x="6" |
4099 | + y="27" |
4100 | + rx="0.26516503" |
4101 | + ry="0.26516503" /> |
4102 | + <rect |
4103 | + style="color:black;fill:url(#radialGradient3218);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
4104 | + id="rect5408" |
4105 | + width="1" |
4106 | + height="1" |
4107 | + x="8" |
4108 | + y="27" |
4109 | + rx="0.26516503" |
4110 | + ry="0.26516503" /> |
4111 | + <rect |
4112 | + style="color:black;fill:url(#radialGradient3215);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
4113 | + id="rect5410" |
4114 | + width="1" |
4115 | + height="1" |
4116 | + x="10" |
4117 | + y="27" |
4118 | + rx="0.26516503" |
4119 | + ry="0.26516503" /> |
4120 | + <rect |
4121 | + style="color:black;fill:url(#radialGradient3212);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
4122 | + id="rect5412" |
4123 | + width="1" |
4124 | + height="1" |
4125 | + x="12" |
4126 | + y="27" |
4127 | + rx="0.26516503" |
4128 | + ry="0.26516503" /> |
4129 | + <rect |
4130 | + style="color:black;fill:url(#radialGradient3209);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
4131 | + id="rect5414" |
4132 | + width="1" |
4133 | + height="1" |
4134 | + x="14" |
4135 | + y="27" |
4136 | + rx="0.26516503" |
4137 | + ry="0.26516503" /> |
4138 | + <rect |
4139 | + style="color:black;fill:url(#radialGradient3206);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
4140 | + id="rect5416" |
4141 | + width="1" |
4142 | + height="1" |
4143 | + x="16" |
4144 | + y="27" |
4145 | + rx="0.26516503" |
4146 | + ry="0.26516503" /> |
4147 | + <rect |
4148 | + style="color:black;fill:url(#radialGradient3203);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
4149 | + id="rect5418" |
4150 | + width="1" |
4151 | + height="1" |
4152 | + x="18" |
4153 | + y="27" |
4154 | + rx="0.26516503" |
4155 | + ry="0.26516503" /> |
4156 | + <rect |
4157 | + style="color:black;fill:url(#radialGradient3200);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
4158 | + id="rect5420" |
4159 | + width="1" |
4160 | + height="1" |
4161 | + x="5" |
4162 | + y="28" |
4163 | + rx="0.26516503" |
4164 | + ry="0.26516503" /> |
4165 | + <rect |
4166 | + style="color:black;fill:url(#radialGradient3197);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
4167 | + id="rect5422" |
4168 | + width="1" |
4169 | + height="1" |
4170 | + x="7" |
4171 | + y="28" |
4172 | + rx="0.26516503" |
4173 | + ry="0.26516503" /> |
4174 | + <rect |
4175 | + style="color:black;fill:url(#radialGradient3194);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
4176 | + id="rect5424" |
4177 | + width="1" |
4178 | + height="1" |
4179 | + x="9" |
4180 | + y="28" |
4181 | + rx="0.26516503" |
4182 | + ry="0.26516503" /> |
4183 | + <rect |
4184 | + style="color:black;fill:url(#radialGradient3191);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
4185 | + id="rect5426" |
4186 | + width="1" |
4187 | + height="1" |
4188 | + x="11" |
4189 | + y="28" |
4190 | + rx="0.26516503" |
4191 | + ry="0.26516503" /> |
4192 | + <rect |
4193 | + style="color:black;fill:url(#radialGradient3188);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
4194 | + id="rect5428" |
4195 | + width="1" |
4196 | + height="1" |
4197 | + x="13" |
4198 | + y="28" |
4199 | + rx="0.26516503" |
4200 | + ry="0.26516503" /> |
4201 | + <rect |
4202 | + style="color:black;fill:url(#radialGradient3185);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
4203 | + id="rect5430" |
4204 | + width="1" |
4205 | + height="1" |
4206 | + x="15" |
4207 | + y="28" |
4208 | + rx="0.26516503" |
4209 | + ry="0.26516503" /> |
4210 | + <rect |
4211 | + style="color:black;fill:url(#radialGradient3182);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
4212 | + id="rect5432" |
4213 | + width="1" |
4214 | + height="1" |
4215 | + x="17" |
4216 | + y="28" |
4217 | + rx="0.26516503" |
4218 | + ry="0.26516503" /> |
4219 | + <rect |
4220 | + style="color:black;fill:url(#radialGradient3176);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
4221 | + id="rect5434" |
4222 | + width="1" |
4223 | + height="1" |
4224 | + x="4" |
4225 | + y="29" |
4226 | + rx="0.26516503" |
4227 | + ry="0.26516503" /> |
4228 | + <rect |
4229 | + style="color:black;fill:url(#radialGradient3173);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
4230 | + id="rect5436" |
4231 | + width="1" |
4232 | + height="1" |
4233 | + x="6" |
4234 | + y="29" |
4235 | + rx="0.26516503" |
4236 | + ry="0.26516503" /> |
4237 | + <rect |
4238 | + style="color:black;fill:url(#radialGradient3170);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
4239 | + id="rect5438" |
4240 | + width="1" |
4241 | + height="1" |
4242 | + x="8" |
4243 | + y="29" |
4244 | + rx="0.26516503" |
4245 | + ry="0.26516503" /> |
4246 | + <rect |
4247 | + style="color:black;fill:url(#radialGradient3167);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
4248 | + id="rect5440" |
4249 | + width="1" |
4250 | + height="1" |
4251 | + x="10" |
4252 | + y="29" |
4253 | + rx="0.26516503" |
4254 | + ry="0.26516503" /> |
4255 | + <rect |
4256 | + style="color:black;fill:url(#radialGradient3164);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
4257 | + id="rect5442" |
4258 | + width="1" |
4259 | + height="1" |
4260 | + x="12" |
4261 | + y="29" |
4262 | + rx="0.26516503" |
4263 | + ry="0.26516503" /> |
4264 | + <rect |
4265 | + style="color:black;fill:url(#radialGradient3161);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
4266 | + id="rect5444" |
4267 | + width="1" |
4268 | + height="1" |
4269 | + x="14" |
4270 | + y="29" |
4271 | + rx="0.26516503" |
4272 | + ry="0.26516503" /> |
4273 | + <rect |
4274 | + style="color:black;fill:url(#radialGradient3158);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
4275 | + id="rect5446" |
4276 | + width="1" |
4277 | + height="1" |
4278 | + x="16" |
4279 | + y="29" |
4280 | + rx="0.26516503" |
4281 | + ry="0.26516503" /> |
4282 | + <rect |
4283 | + style="color:black;fill:url(#radialGradient3155);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
4284 | + id="rect5448" |
4285 | + width="1" |
4286 | + height="1" |
4287 | + x="18" |
4288 | + y="29" |
4289 | + rx="0.26516503" |
4290 | + ry="0.26516503" /> |
4291 | + <rect |
4292 | + style="color:black;fill:url(#radialGradient3264);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
4293 | + id="rect5450" |
4294 | + width="1" |
4295 | + height="1" |
4296 | + x="21" |
4297 | + y="26" |
4298 | + rx="0.26516503" |
4299 | + ry="0.26516503" /> |
4300 | + <rect |
4301 | + style="color:black;fill:url(#radialGradient3266);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
4302 | + id="rect5452" |
4303 | + width="1" |
4304 | + height="1" |
4305 | + x="20" |
4306 | + y="27" |
4307 | + rx="0.26516503" |
4308 | + ry="0.26516503" /> |
4309 | + <rect |
4310 | + style="color:black;fill:url(#radialGradient3268);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
4311 | + id="rect5454" |
4312 | + width="1" |
4313 | + height="1" |
4314 | + x="22" |
4315 | + y="27" |
4316 | + rx="0.26516503" |
4317 | + ry="0.26516503" /> |
4318 | + <rect |
4319 | + style="color:black;fill:url(#radialGradient3270);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
4320 | + id="rect5456" |
4321 | + width="1" |
4322 | + height="1" |
4323 | + x="21" |
4324 | + y="28" |
4325 | + rx="0.26516503" |
4326 | + ry="0.26516503" /> |
4327 | + <rect |
4328 | + style="color:black;fill:url(#radialGradient3272);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
4329 | + id="rect5458" |
4330 | + width="1" |
4331 | + height="1" |
4332 | + x="23" |
4333 | + y="28" |
4334 | + rx="0.26516503" |
4335 | + ry="0.26516503" /> |
4336 | + <rect |
4337 | + style="color:black;fill:url(#radialGradient3274);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
4338 | + id="rect5460" |
4339 | + width="1" |
4340 | + height="1" |
4341 | + x="20" |
4342 | + y="29" |
4343 | + rx="0.26516503" |
4344 | + ry="0.26516503" /> |
4345 | + <rect |
4346 | + style="color:black;fill:url(#radialGradient3276);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
4347 | + id="rect5462" |
4348 | + width="1" |
4349 | + height="1" |
4350 | + x="22" |
4351 | + y="29" |
4352 | + rx="0.26516503" |
4353 | + ry="0.26516503" /> |
4354 | + <rect |
4355 | + style="color:black;fill:url(#radialGradient3292);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
4356 | + id="rect5464" |
4357 | + width="1" |
4358 | + height="1" |
4359 | + x="26" |
4360 | + y="26" |
4361 | + rx="0.26516503" |
4362 | + ry="0.26516503" /> |
4363 | + <rect |
4364 | + style="color:black;fill:url(#radialGradient3294);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
4365 | + id="rect5466" |
4366 | + width="1" |
4367 | + height="1" |
4368 | + x="25" |
4369 | + y="27" |
4370 | + rx="0.26516503" |
4371 | + ry="0.26516503" /> |
4372 | + <rect |
4373 | + style="color:black;fill:url(#radialGradient3296);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
4374 | + id="rect5468" |
4375 | + width="1" |
4376 | + height="1" |
4377 | + x="27" |
4378 | + y="27" |
4379 | + rx="0.26516503" |
4380 | + ry="0.26516503" /> |
4381 | + <rect |
4382 | + style="color:black;fill:url(#radialGradient3298);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
4383 | + id="rect5470" |
4384 | + width="1" |
4385 | + height="1" |
4386 | + x="26" |
4387 | + y="28" |
4388 | + rx="0.26516503" |
4389 | + ry="0.26516503" /> |
4390 | + <rect |
4391 | + style="color:black;fill:url(#radialGradient3300);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
4392 | + id="rect5472" |
4393 | + width="1" |
4394 | + height="1" |
4395 | + x="28" |
4396 | + y="28" |
4397 | + rx="0.26516503" |
4398 | + ry="0.26516503" /> |
4399 | + <rect |
4400 | + style="color:black;fill:url(#radialGradient3302);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
4401 | + id="rect5474" |
4402 | + width="1" |
4403 | + height="1" |
4404 | + x="25" |
4405 | + y="29" |
4406 | + rx="0.26516503" |
4407 | + ry="0.26516503" /> |
4408 | + <rect |
4409 | + style="color:black;fill:url(#radialGradient3304);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" |
4410 | + id="rect5476" |
4411 | + width="1" |
4412 | + height="1" |
4413 | + x="27" |
4414 | + y="29" |
4415 | + rx="0.26516503" |
4416 | + ry="0.26516503" /> |
4417 | + </g> |
4418 | + </g> |
4419 | + </g> |
4420 | +</svg> |
1) I will have to say, I'm not a fan of merging the debian and snappy packaging into a single branch. There's simply too many debian-specific files included which are useless when it comes to building a snap. Add in the fact that the debian packaging branch for NM includes many stale patches ( ie. patches that aren't used or are commented out in the d/p/series ), and it seems like a mess to me.
Also, if we base the snap on the NM branch like this, we probably should revise the version to actually reflect this, at the moment it doesn't include the '-4ubuntu15.1.8' part in the version, yet it does include the code from that version.
I really prefer the bluez approach, where although the bzr namespace is the same as the debian package, the snap branch *only* includes snappy bits.
2) Why bother with --configure-snappy, the branch is solely for snappy? If we eventually try to upstream the patch(es), we'll probably need to change this is done ( ie. doubtful upstream would accept such a switch, we'd probably instead want to fix generically ), so let's either make the branch snappy only, or re-work the snappy patch into something we *think* upstream might accept ( note, let's do this after we switch to 1.2 ).
3) Why did you remove modemmanager and leave ofono in place? We know that modemmanager works, and we also know that ofono won't work till we re-write the settings plugin.
4) What's the reasoning behind the fix-code- to-build- with-werror. patch? It seems like this is changing a lot of code. Also this may not work with NM1.2, as they've gotten rid of some deprecated code ( eg. dbus-glib ), but not all ( eg. GSimpleAsyncResult ). Does the snap fail to build without this?
Note, I've also cleaned up a lot of ofono unused code in my 1.2 branch.
5) Where did the icon.svg come from? It's *huge* compared to the bluez icon.png ( which is a generic Ubuntu icon ).
6) What's the plan to fix "XXX: hardcode architecture" in wrapper binaries?
7) It looks like you're manually installing the binary wrapper scripts. Have you tested this? I couldn't get bluez to work this way, and ended up modifying yet another core snapcraft library to add the copies in when generating the wrapper scripts.
8) I don't see nmcli?
9) d/p/0002- Force-online- state-with- unmanaged- devices. patch: not re-patched for snappy.
10) 0003-Don- t-setup- Sleep-Monitor- if-not- booted- with-systemd. patch: not applicable for snappy.
11) d/p/0004- Use-symlinks- for-nmtui. patch: have you tested nmtui on snappy?
12) There are bunch of other patches that aren't really applicable to snappy ( eg. whoopsie support, upstart patches, ... ).