diff --git a/gns3server/compute/qemu/qemu_vm.py b/gns3server/compute/qemu/qemu_vm.py
index 3077b973..d9028f91 100644
--- a/gns3server/compute/qemu/qemu_vm.py
+++ b/gns3server/compute/qemu/qemu_vm.py
@@ -1832,23 +1832,16 @@ class QemuVM(BaseNode):
def _get_qemu_img(self):
"""
Search the qemu-img binary in the same binary of the qemu binary
- for avoiding version incompatibility.
+ to avoid version incompatibility.
:returns: qemu-img path or raise an error
"""
- qemu_img_path = ""
+
qemu_path_dir = os.path.dirname(self.qemu_path)
- try:
- for f in os.listdir(qemu_path_dir):
- if f.startswith("qemu-img"):
- qemu_img_path = os.path.join(qemu_path_dir, f)
- except OSError as e:
- raise QemuError(f"Error while looking for qemu-img in {qemu_path_dir}: {e}")
-
- if not qemu_img_path:
- raise QemuError(f"Could not find qemu-img in {qemu_path_dir}")
-
- return qemu_img_path
+ qemu_image_path = shutil.which("qemu-img", path=qemu_path_dir)
+ if qemu_image_path:
+ return qemu_image_path
+ raise QemuError(f"Could not find qemu-img in {qemu_path_dir}")
async def _qemu_img_exec(self, command):
@@ -1864,27 +1857,36 @@ class QemuVM(BaseNode):
log.info(f"{self._get_qemu_img()} returned with {retcode}")
return retcode
+ async def _find_disk_file_format(self, disk):
+
+ qemu_img_path = self._get_qemu_img()
+ try:
+ output = await subprocess_check_output(qemu_img_path, "info", "--output=json", disk)
+ except subprocess.SubprocessError as e:
+ raise QemuError(f"Error received while checking Qemu disk format: {e}")
+ if output:
+ try:
+ json_data = json.loads(output)
+ except ValueError as e:
+ raise QemuError(f"Invalid JSON data returned by qemu-img: {e}")
+ return json_data.get("format")
+
async def _create_linked_clone(self, disk_name, disk_image, disk):
+
try:
qemu_img_path = self._get_qemu_img()
- command = [qemu_img_path, "create", "-o", f"backing_file={disk_image}", "-f", "qcow2", disk]
- try:
- base_qcow2 = Qcow2(disk_image)
- if base_qcow2.crypt_method:
- # Workaround for https://gitlab.com/qemu-project/qemu/-/issues/441
- # Also embed a secret name so it doesn't have to be passed to qemu -drive ...
- options = {
- "encrypt.key-secret": os.path.basename(disk_image),
- "driver": "qcow2",
- "file": {
- "driver": "file",
- "filename": disk_image,
- },
- }
- command = [qemu_img_path, "create", "-b", "json:"+json.dumps(options, separators=(',', ':')),
- "-f", "qcow2", "-u", disk, str(base_qcow2.size)]
- except Qcow2Error:
- pass # non-qcow2 base images are acceptable (e.g. vmdk, raw image)
+ backing_file_format = await self._find_disk_file_format(disk_image)
+ if not backing_file_format:
+ raise QemuError(f"Could not detect format for disk image: {disk_image}")
+ backing_options, base_qcow2 = Qcow2.backing_options(disk_image)
+ if base_qcow2 and base_qcow2.crypt_method:
+ # Workaround for https://gitlab.com/qemu-project/qemu/-/issues/441
+ # (we have to pass -u and the size). Also embed secret name.
+ command = [qemu_img_path, "create", "-b", backing_options,
+ "-F", backing_file_format, "-f", "qcow2", "-u", disk, str(base_qcow2.size)]
+ else:
+ command = [qemu_img_path, "create", "-o", "backing_file={}".format(disk_image),
+ "-F", backing_file_format, "-f", "qcow2", disk]
retcode = await self._qemu_img_exec(command)
if retcode:
@@ -2068,19 +2070,14 @@ class QemuVM(BaseNode):
if retcode == 3:
# image has leaked clusters, but is not corrupted, let's try to fix it
log.warning(f"Qemu image {disk_image} has leaked clusters")
- if (await self._qemu_img_exec([qemu_img_path, "check", "-r", "leaks", f"{disk_image}"])) == 3:
- self.project.emit(
- "log.warning",
- {"message": f"Qemu image '{disk_image}' has leaked clusters and could not be fixed"},
- )
+ if await self._qemu_img_exec([qemu_img_path, "check", "-r", "leaks", "{}".format(disk_image)]) == 3:
+ self.project.emit("log.warning", {"message": "Qemu image '{}' has leaked clusters and could not be fixed".format(disk_image)})
elif retcode == 2:
# image is corrupted, let's try to fix it
log.warning(f"Qemu image {disk_image} is corrupted")
- if (await self._qemu_img_exec([qemu_img_path, "check", "-r", "all", f"{disk_image}"])) == 2:
- self.project.emit(
- "log.warning",
- {"message": f"Qemu image '{disk_image}' is corrupted and could not be fixed"},
- )
+ if await self._qemu_img_exec([qemu_img_path, "check", "-r", "all", "{}".format(disk_image)]) == 2:
+ self.project.emit("log.warning", {"message": "Qemu image '{}' is corrupted and could not be fixed".format(disk_image)})
+ # ignore retcode == 1. One reason is that the image is encrypted and there is no encrypt.key-secret available
except (OSError, subprocess.SubprocessError) as e:
stdout = self.read_qemu_img_stdout()
raise QemuError(f"Could not check '{disk_name}' disk image: {e}\n{stdout}")
@@ -2091,10 +2088,16 @@ class QemuVM(BaseNode):
# create the disk
await self._create_linked_clone(disk_name, disk_image, disk)
else:
- # The disk exists we check if the clone works
+ backing_file_format = await self._find_disk_file_format(disk_image)
+ if not backing_file_format:
+ raise QemuError("Could not detect format for disk image: {}".format(disk_image))
+ # Rebase the image. This is in case the base image moved to a different directory,
+ # which will be the case if we imported a portable project. This uses
+ # get_abs_image_path(hdX_disk_image) and ignores the old base path embedded
+ # in the qcow2 file itself.
try:
qcow2 = Qcow2(disk)
- await qcow2.validate(qemu_img_path)
+ await qcow2.rebase(qemu_img_path, disk_image, backing_file_format)
except (Qcow2Error, OSError) as e:
raise QemuError(f"Could not use qcow2 disk image '{disk_image}' for {disk_name} {e}")
diff --git a/gns3server/compute/qemu/utils/qcow2.py b/gns3server/compute/qemu/utils/qcow2.py
index 52269f36..60fdc972 100644
--- a/gns3server/compute/qemu/utils/qcow2.py
+++ b/gns3server/compute/qemu/utils/qcow2.py
@@ -15,6 +15,7 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see .
+import json
import os
import asyncio
import struct
@@ -88,31 +89,50 @@ class Qcow2:
return None
return path
- async def rebase(self, qemu_img, base_image):
+ @staticmethod
+ def backing_options(base_image):
+ """
+ If the base_image is encrypted qcow2, return options for the upper layer
+ which include a secret name (equal to the basename)
+
+ :param base_image: Path to the base file (which may or may not be qcow2)
+
+ :returns: (base image string, Qcow2 object representing base image or None)
+ """
+
+ try:
+ base_qcow2 = Qcow2(base_image)
+ if base_qcow2.crypt_method:
+ # Embed a secret name so it doesn't have to be passed to qemu -drive ...
+ options = {
+ "encrypt.key-secret": os.path.basename(base_image),
+ "driver": "qcow2",
+ "file": {
+ "driver": "file",
+ "filename": base_image,
+ },
+ }
+ return ("json:"+json.dumps(options, separators=(',', ':')), base_qcow2)
+ else:
+ return (base_image, base_qcow2)
+ except Qcow2Error:
+ return (base_image, None) # non-qcow2 base images are acceptable (e.g. vmdk, raw image)
+
+ async def rebase(self, qemu_img, base_image, backing_file_format):
"""
Rebase a linked clone in order to use the correct disk
:param qemu_img: Path to the qemu-img binary
:param base_image: Path to the base image
+ :param backing_file_format: File format of the base image
"""
if not os.path.exists(base_image):
raise FileNotFoundError(base_image)
- command = [qemu_img, "rebase", "-u", "-b", base_image, self._path]
+ backing_options, _ = Qcow2.backing_options(base_image)
+ command = [qemu_img, "rebase", "-u", "-b", backing_options, "-F", backing_file_format, self._path]
process = await asyncio.create_subprocess_exec(*command)
retcode = await process.wait()
if retcode != 0:
raise Qcow2Error("Could not rebase the image")
self._reload()
-
- async def validate(self, qemu_img):
- """
- Run qemu-img info to validate the file and its backing images
-
- :param qemu_img: Path to the qemu-img binary
- """
- command = [qemu_img, "info", "--backing-chain", self._path]
- process = await asyncio.create_subprocess_exec(*command)
- retcode = await process.wait()
- if retcode != 0:
- raise Qcow2Error("Could not validate the image")
diff --git a/gns3server/controller/node.py b/gns3server/controller/node.py
index ca086455..440dd5d7 100644
--- a/gns3server/controller/node.py
+++ b/gns3server/controller/node.py
@@ -25,6 +25,7 @@ from .compute import ComputeConflict, ComputeError
from .controller_error import ControllerError, ControllerTimeoutError
from .ports.port_factory import PortFactory, StandardPortFactory, DynamipsPortFactory
from ..utils.images import images_directories
+from ..config import Config
from ..utils.qt import qt_font_to_style
@@ -293,10 +294,12 @@ class Node:
if val is None:
val = ":/symbols/computer.svg"
- # No abs path, fix them (bug of 1.X)
try:
- if not val.startswith(":") and os.path.abspath(val):
- val = os.path.basename(val)
+ if not val.startswith(":") and os.path.isabs(val):
+ server_config = Config.instance().get_section_config("Server")
+ default_symbol_directory = os.path.expanduser(server_config.get("images_path", "~/GNS3/symbols"))
+ if os.path.commonprefix([default_symbol_directory, val]) != default_symbol_directory:
+ val = os.path.basename(val)
except OSError:
pass
diff --git a/gns3server/handlers/api/compute/server_handler.py b/gns3server/handlers/api/compute/server_handler.py
new file mode 100644
index 00000000..e69de29b
diff --git a/gns3server/symbols/affinity/circle/blue/atm.svg b/gns3server/symbols/affinity/circle/blue/atm.svg
index 987755e8..d2f4e4c4 100644
--- a/gns3server/symbols/affinity/circle/blue/atm.svg
+++ b/gns3server/symbols/affinity/circle/blue/atm.svg
@@ -1,60 +1,5 @@
-
-
\ No newline at end of file
+
diff --git a/gns3server/symbols/affinity/circle/blue/bug.svg b/gns3server/symbols/affinity/circle/blue/bug.svg
new file mode 100644
index 00000000..374b1789
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/blue/bug.svg
@@ -0,0 +1,8 @@
+
diff --git a/gns3server/symbols/affinity/circle/blue/camera.svg b/gns3server/symbols/affinity/circle/blue/camera.svg
index de4f22eb..b4bab2da 100644
--- a/gns3server/symbols/affinity/circle/blue/camera.svg
+++ b/gns3server/symbols/affinity/circle/blue/camera.svg
@@ -1,53 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/blue/camera_dome.svg b/gns3server/symbols/affinity/circle/blue/camera_dome.svg
index 2fabbd4e..a8dbee05 100644
--- a/gns3server/symbols/affinity/circle/blue/camera_dome.svg
+++ b/gns3server/symbols/affinity/circle/blue/camera_dome.svg
@@ -1,38 +1,8 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/blue/circle.svg b/gns3server/symbols/affinity/circle/blue/circle.svg
deleted file mode 100644
index 83eb7ea8..00000000
--- a/gns3server/symbols/affinity/circle/blue/circle.svg
+++ /dev/null
@@ -1,53 +0,0 @@
-
-
\ No newline at end of file
diff --git a/gns3server/symbols/affinity/circle/blue/client.svg b/gns3server/symbols/affinity/circle/blue/client.svg
index 3da29036..9badc41a 100644
--- a/gns3server/symbols/affinity/circle/blue/client.svg
+++ b/gns3server/symbols/affinity/circle/blue/client.svg
@@ -1,60 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/blue/client_vm.svg b/gns3server/symbols/affinity/circle/blue/client_vm.svg
index 98e9df42..9f64260f 100644
--- a/gns3server/symbols/affinity/circle/blue/client_vm.svg
+++ b/gns3server/symbols/affinity/circle/blue/client_vm.svg
@@ -1,46 +1,6 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/blue/cloud.svg b/gns3server/symbols/affinity/circle/blue/cloud.svg
index c602b4d1..17a42c80 100644
--- a/gns3server/symbols/affinity/circle/blue/cloud.svg
+++ b/gns3server/symbols/affinity/circle/blue/cloud.svg
@@ -1,35 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/blue/coffee.svg b/gns3server/symbols/affinity/circle/blue/coffee.svg
new file mode 100644
index 00000000..c180d801
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/blue/coffee.svg
@@ -0,0 +1,6 @@
+
diff --git a/gns3server/symbols/affinity/circle/blue/cog.svg b/gns3server/symbols/affinity/circle/blue/cog.svg
index d72fef7b..1bbb4a98 100644
--- a/gns3server/symbols/affinity/circle/blue/cog.svg
+++ b/gns3server/symbols/affinity/circle/blue/cog.svg
@@ -1,42 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/blue/communications.svg b/gns3server/symbols/affinity/circle/blue/communications.svg
index ea10c445..365446a9 100644
--- a/gns3server/symbols/affinity/circle/blue/communications.svg
+++ b/gns3server/symbols/affinity/circle/blue/communications.svg
@@ -1,42 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/blue/conversation.svg b/gns3server/symbols/affinity/circle/blue/conversation.svg
index ba21dcdb..68d78896 100644
--- a/gns3server/symbols/affinity/circle/blue/conversation.svg
+++ b/gns3server/symbols/affinity/circle/blue/conversation.svg
@@ -1,48 +1,12 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/blue/dna.svg b/gns3server/symbols/affinity/circle/blue/dna.svg
new file mode 100644
index 00000000..c255f3c8
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/blue/dna.svg
@@ -0,0 +1,7 @@
+
diff --git a/gns3server/symbols/affinity/circle/blue/dna2.svg b/gns3server/symbols/affinity/circle/blue/dna2.svg
new file mode 100644
index 00000000..c9e6a0b4
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/blue/dna2.svg
@@ -0,0 +1,7 @@
+
diff --git a/gns3server/symbols/affinity/circle/blue/docker.svg b/gns3server/symbols/affinity/circle/blue/docker.svg
index 0d52c377..75e6927b 100644
--- a/gns3server/symbols/affinity/circle/blue/docker.svg
+++ b/gns3server/symbols/affinity/circle/blue/docker.svg
@@ -1,118 +1,11 @@
-
-
\ No newline at end of file
+
diff --git a/gns3server/symbols/affinity/circle/blue/dslam.svg b/gns3server/symbols/affinity/circle/blue/dslam.svg
index c6088033..3a2d3faa 100644
--- a/gns3server/symbols/affinity/circle/blue/dslam.svg
+++ b/gns3server/symbols/affinity/circle/blue/dslam.svg
@@ -1,42 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/blue/factory.svg b/gns3server/symbols/affinity/circle/blue/factory.svg
new file mode 100644
index 00000000..683a93ef
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/blue/factory.svg
@@ -0,0 +1,6 @@
+
diff --git a/gns3server/symbols/affinity/circle/blue/fingerprint.svg b/gns3server/symbols/affinity/circle/blue/fingerprint.svg
index b6dbdb9b..06b2a69c 100644
--- a/gns3server/symbols/affinity/circle/blue/fingerprint.svg
+++ b/gns3server/symbols/affinity/circle/blue/fingerprint.svg
@@ -1,40 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/blue/firewall.svg b/gns3server/symbols/affinity/circle/blue/firewall.svg
index 1ab37948..8ccf30e4 100644
--- a/gns3server/symbols/affinity/circle/blue/firewall.svg
+++ b/gns3server/symbols/affinity/circle/blue/firewall.svg
@@ -1,40 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/blue/firewall3.svg b/gns3server/symbols/affinity/circle/blue/firewall3.svg
index b441d4f1..b69389e5 100644
--- a/gns3server/symbols/affinity/circle/blue/firewall3.svg
+++ b/gns3server/symbols/affinity/circle/blue/firewall3.svg
@@ -1,42 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/blue/globe.svg b/gns3server/symbols/affinity/circle/blue/globe.svg
new file mode 100644
index 00000000..b88f23a3
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/blue/globe.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/circle/blue/grid.svg b/gns3server/symbols/affinity/circle/blue/grid.svg
index d4b6aada..3e3aed7c 100644
--- a/gns3server/symbols/affinity/circle/blue/grid.svg
+++ b/gns3server/symbols/affinity/circle/blue/grid.svg
@@ -1,35 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/blue/grid2.svg b/gns3server/symbols/affinity/circle/blue/grid2.svg
index 54813fad..e5b1a94d 100644
--- a/gns3server/symbols/affinity/circle/blue/grid2.svg
+++ b/gns3server/symbols/affinity/circle/blue/grid2.svg
@@ -1,34 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/blue/health.svg b/gns3server/symbols/affinity/circle/blue/health.svg
new file mode 100644
index 00000000..b8a3a68b
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/blue/health.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/circle/blue/house.svg b/gns3server/symbols/affinity/circle/blue/house.svg
new file mode 100644
index 00000000..7ff086a1
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/blue/house.svg
@@ -0,0 +1,9 @@
+
diff --git a/gns3server/symbols/affinity/circle/blue/hub.svg b/gns3server/symbols/affinity/circle/blue/hub.svg
index 7e2c58f2..9c862a40 100644
--- a/gns3server/symbols/affinity/circle/blue/hub.svg
+++ b/gns3server/symbols/affinity/circle/blue/hub.svg
@@ -1,35 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/blue/inspect.svg b/gns3server/symbols/affinity/circle/blue/inspect.svg
index b12d1176..1882d203 100644
--- a/gns3server/symbols/affinity/circle/blue/inspect.svg
+++ b/gns3server/symbols/affinity/circle/blue/inspect.svg
@@ -1,51 +1,7 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/blue/inspect2.svg b/gns3server/symbols/affinity/circle/blue/inspect2.svg
new file mode 100644
index 00000000..bd3546a4
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/blue/inspect2.svg
@@ -0,0 +1,6 @@
+
diff --git a/gns3server/symbols/affinity/circle/blue/inspect3.svg b/gns3server/symbols/affinity/circle/blue/inspect3.svg
deleted file mode 100644
index 47ddab8d..00000000
--- a/gns3server/symbols/affinity/circle/blue/inspect3.svg
+++ /dev/null
@@ -1,45 +0,0 @@
-
-
diff --git a/gns3server/symbols/affinity/circle/blue/interconnect.svg b/gns3server/symbols/affinity/circle/blue/interconnect.svg
index 87cc83d2..e17b44ce 100644
--- a/gns3server/symbols/affinity/circle/blue/interconnect.svg
+++ b/gns3server/symbols/affinity/circle/blue/interconnect.svg
@@ -1,40 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/blue/ip_phone.svg b/gns3server/symbols/affinity/circle/blue/ip_phone.svg
new file mode 100644
index 00000000..c4acb849
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/blue/ip_phone.svg
@@ -0,0 +1,21 @@
+
diff --git a/gns3server/symbols/affinity/circle/blue/isdn.svg b/gns3server/symbols/affinity/circle/blue/isdn.svg
index 856c2785..d4259279 100644
--- a/gns3server/symbols/affinity/circle/blue/isdn.svg
+++ b/gns3server/symbols/affinity/circle/blue/isdn.svg
@@ -1,36 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/blue/laptop.svg b/gns3server/symbols/affinity/circle/blue/laptop.svg
new file mode 100644
index 00000000..310eb6a2
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/blue/laptop.svg
@@ -0,0 +1,6 @@
+
diff --git a/gns3server/symbols/affinity/circle/blue/ldap.svg b/gns3server/symbols/affinity/circle/blue/ldap.svg
index 1542fc4a..0f440517 100644
--- a/gns3server/symbols/affinity/circle/blue/ldap.svg
+++ b/gns3server/symbols/affinity/circle/blue/ldap.svg
@@ -1,34 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/blue/light_bulb.svg b/gns3server/symbols/affinity/circle/blue/light_bulb.svg
index e8fc3e9f..fe2fc13f 100644
--- a/gns3server/symbols/affinity/circle/blue/light_bulb.svg
+++ b/gns3server/symbols/affinity/circle/blue/light_bulb.svg
@@ -1,67 +1,11 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/blue/link.svg b/gns3server/symbols/affinity/circle/blue/link.svg
index 746d7743..f65a3e6d 100644
--- a/gns3server/symbols/affinity/circle/blue/link.svg
+++ b/gns3server/symbols/affinity/circle/blue/link.svg
@@ -1,34 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/blue/loadbalancer.svg b/gns3server/symbols/affinity/circle/blue/loadbalancer.svg
index 5f91cee1..d0879f47 100644
--- a/gns3server/symbols/affinity/circle/blue/loadbalancer.svg
+++ b/gns3server/symbols/affinity/circle/blue/loadbalancer.svg
@@ -1,44 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/blue/nas.svg b/gns3server/symbols/affinity/circle/blue/nas.svg
index acad7d71..86121445 100644
--- a/gns3server/symbols/affinity/circle/blue/nas.svg
+++ b/gns3server/symbols/affinity/circle/blue/nas.svg
@@ -1,35 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/blue/office.svg b/gns3server/symbols/affinity/circle/blue/office.svg
new file mode 100644
index 00000000..838c8b03
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/blue/office.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/circle/blue/optical.svg b/gns3server/symbols/affinity/circle/blue/optical.svg
new file mode 100644
index 00000000..96ab1668
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/blue/optical.svg
@@ -0,0 +1,8 @@
+
diff --git a/gns3server/symbols/affinity/circle/blue/phone_cloud.svg b/gns3server/symbols/affinity/circle/blue/phone_cloud.svg
new file mode 100644
index 00000000..c26c1596
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/blue/phone_cloud.svg
@@ -0,0 +1,6 @@
+
diff --git a/gns3server/symbols/affinity/circle/blue/phone_old.svg b/gns3server/symbols/affinity/circle/blue/phone_old.svg
new file mode 100644
index 00000000..cbc9daf7
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/blue/phone_old.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/circle/blue/phone_wireless.svg b/gns3server/symbols/affinity/circle/blue/phone_wireless.svg
new file mode 100644
index 00000000..fa40851e
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/blue/phone_wireless.svg
@@ -0,0 +1,8 @@
+
diff --git a/gns3server/symbols/affinity/circle/blue/pinpoint.svg b/gns3server/symbols/affinity/circle/blue/pinpoint.svg
index e04233ad..424cc0e2 100644
--- a/gns3server/symbols/affinity/circle/blue/pinpoint.svg
+++ b/gns3server/symbols/affinity/circle/blue/pinpoint.svg
@@ -1,49 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/blue/printer.svg b/gns3server/symbols/affinity/circle/blue/printer.svg
index 4afa4f7e..77bcf923 100644
--- a/gns3server/symbols/affinity/circle/blue/printer.svg
+++ b/gns3server/symbols/affinity/circle/blue/printer.svg
@@ -1,97 +1,7 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/blue/rj45.svg b/gns3server/symbols/affinity/circle/blue/rj45.svg
index 4cb1782c..9020b5a4 100644
--- a/gns3server/symbols/affinity/circle/blue/rj45.svg
+++ b/gns3server/symbols/affinity/circle/blue/rj45.svg
@@ -1,69 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/blue/router.svg b/gns3server/symbols/affinity/circle/blue/router.svg
index d90f988b..5f21c9ec 100644
--- a/gns3server/symbols/affinity/circle/blue/router.svg
+++ b/gns3server/symbols/affinity/circle/blue/router.svg
@@ -1,35 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/blue/router2.svg b/gns3server/symbols/affinity/circle/blue/router2.svg
new file mode 100644
index 00000000..0bae986b
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/blue/router2.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/circle/blue/router_cloud.svg b/gns3server/symbols/affinity/circle/blue/router_cloud.svg
index 35fa1cbf..ef731885 100644
--- a/gns3server/symbols/affinity/circle/blue/router_cloud.svg
+++ b/gns3server/symbols/affinity/circle/blue/router_cloud.svg
@@ -1,43 +1,6 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/blue/satellite.svg b/gns3server/symbols/affinity/circle/blue/satellite.svg
index 9487f59e..285a13f0 100644
--- a/gns3server/symbols/affinity/circle/blue/satellite.svg
+++ b/gns3server/symbols/affinity/circle/blue/satellite.svg
@@ -1,40 +1,6 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/blue/satellite_dish.svg b/gns3server/symbols/affinity/circle/blue/satellite_dish.svg
index d8a3c2a9..d95ee4d7 100644
--- a/gns3server/symbols/affinity/circle/blue/satellite_dish.svg
+++ b/gns3server/symbols/affinity/circle/blue/satellite_dish.svg
@@ -1,43 +1,7 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/blue/scull.svg b/gns3server/symbols/affinity/circle/blue/scull.svg
index 87e51d78..2cd77104 100644
--- a/gns3server/symbols/affinity/circle/blue/scull.svg
+++ b/gns3server/symbols/affinity/circle/blue/scull.svg
@@ -1,50 +1,8 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/blue/server-cluster.svg b/gns3server/symbols/affinity/circle/blue/server-cluster.svg
deleted file mode 100644
index 735f2f2d..00000000
--- a/gns3server/symbols/affinity/circle/blue/server-cluster.svg
+++ /dev/null
@@ -1,48 +0,0 @@
-
-
diff --git a/gns3server/symbols/affinity/circle/blue/server.svg b/gns3server/symbols/affinity/circle/blue/server.svg
index 19aaa06d..410840ce 100644
--- a/gns3server/symbols/affinity/circle/blue/server.svg
+++ b/gns3server/symbols/affinity/circle/blue/server.svg
@@ -1,34 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/blue/server_cluster.svg b/gns3server/symbols/affinity/circle/blue/server_cluster.svg
new file mode 100644
index 00000000..2cf4406f
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/blue/server_cluster.svg
@@ -0,0 +1,7 @@
+
diff --git a/gns3server/symbols/affinity/circle/blue/shield.svg b/gns3server/symbols/affinity/circle/blue/shield.svg
new file mode 100644
index 00000000..8494aac0
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/blue/shield.svg
@@ -0,0 +1,7 @@
+
diff --git a/gns3server/symbols/affinity/circle/blue/statistics.svg b/gns3server/symbols/affinity/circle/blue/statistics.svg
index 08233b39..8cffd0e7 100644
--- a/gns3server/symbols/affinity/circle/blue/statistics.svg
+++ b/gns3server/symbols/affinity/circle/blue/statistics.svg
@@ -1,47 +1,7 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/blue/storage.svg b/gns3server/symbols/affinity/circle/blue/storage.svg
index 6681bf37..46898914 100644
--- a/gns3server/symbols/affinity/circle/blue/storage.svg
+++ b/gns3server/symbols/affinity/circle/blue/storage.svg
@@ -1,34 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/blue/switch.svg b/gns3server/symbols/affinity/circle/blue/switch.svg
index 8daecfce..ded52ce1 100644
--- a/gns3server/symbols/affinity/circle/blue/switch.svg
+++ b/gns3server/symbols/affinity/circle/blue/switch.svg
@@ -1,50 +1,8 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/blue/switch_multilayer.svg b/gns3server/symbols/affinity/circle/blue/switch_multilayer.svg
index 0796442f..6717fdbf 100644
--- a/gns3server/symbols/affinity/circle/blue/switch_multilayer.svg
+++ b/gns3server/symbols/affinity/circle/blue/switch_multilayer.svg
@@ -1,42 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/blue/tablet.svg b/gns3server/symbols/affinity/circle/blue/tablet.svg
index ea332090..bdf74da5 100644
--- a/gns3server/symbols/affinity/circle/blue/tablet.svg
+++ b/gns3server/symbols/affinity/circle/blue/tablet.svg
@@ -1,47 +1,11 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/blue/template.svg b/gns3server/symbols/affinity/circle/blue/template.svg
new file mode 100644
index 00000000..8f629460
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/blue/template.svg
@@ -0,0 +1,4 @@
+
diff --git a/gns3server/symbols/affinity/circle/blue/tree.svg b/gns3server/symbols/affinity/circle/blue/tree.svg
index 4dc6c688..c4ae05b6 100644
--- a/gns3server/symbols/affinity/circle/blue/tree.svg
+++ b/gns3server/symbols/affinity/circle/blue/tree.svg
@@ -1,34 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/blue/user.svg b/gns3server/symbols/affinity/circle/blue/user.svg
index 82562bb8..a6a40fec 100644
--- a/gns3server/symbols/affinity/circle/blue/user.svg
+++ b/gns3server/symbols/affinity/circle/blue/user.svg
@@ -1,36 +1,7 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/blue/virtualbox.svg b/gns3server/symbols/affinity/circle/blue/virtualbox.svg
index affed969..347a9efe 100644
--- a/gns3server/symbols/affinity/circle/blue/virtualbox.svg
+++ b/gns3server/symbols/affinity/circle/blue/virtualbox.svg
@@ -1,60 +1,7 @@
-
-
\ No newline at end of file
+
diff --git a/gns3server/symbols/affinity/circle/blue/vm.svg b/gns3server/symbols/affinity/circle/blue/vm.svg
index e3291da4..94e000a2 100644
--- a/gns3server/symbols/affinity/circle/blue/vm.svg
+++ b/gns3server/symbols/affinity/circle/blue/vm.svg
@@ -1,41 +1,7 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/blue/vmware.svg b/gns3server/symbols/affinity/circle/blue/vmware.svg
index 9a03cca6..651e2000 100644
--- a/gns3server/symbols/affinity/circle/blue/vmware.svg
+++ b/gns3server/symbols/affinity/circle/blue/vmware.svg
@@ -1,61 +1,7 @@
-
-
\ No newline at end of file
+
diff --git a/gns3server/symbols/affinity/circle/blue/vrf.svg b/gns3server/symbols/affinity/circle/blue/vrf.svg
new file mode 100644
index 00000000..7b13a5b5
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/blue/vrf.svg
@@ -0,0 +1,8 @@
+
diff --git a/gns3server/symbols/affinity/circle/blue/wifi.svg b/gns3server/symbols/affinity/circle/blue/wifi.svg
index 18b83ac1..b4472bd4 100644
--- a/gns3server/symbols/affinity/circle/blue/wifi.svg
+++ b/gns3server/symbols/affinity/circle/blue/wifi.svg
@@ -1,62 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/blue/wlc.svg b/gns3server/symbols/affinity/circle/blue/wlc.svg
index ff811ab9..aa6cf747 100644
--- a/gns3server/symbols/affinity/circle/blue/wlc.svg
+++ b/gns3server/symbols/affinity/circle/blue/wlc.svg
@@ -1,35 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/blue/xml.svg b/gns3server/symbols/affinity/circle/blue/xml.svg
index 97c48f59..df6b9216 100644
--- a/gns3server/symbols/affinity/circle/blue/xml.svg
+++ b/gns3server/symbols/affinity/circle/blue/xml.svg
@@ -1,45 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/gray/atm.svg b/gns3server/symbols/affinity/circle/gray/atm.svg
index 5de13e55..62c46c78 100644
--- a/gns3server/symbols/affinity/circle/gray/atm.svg
+++ b/gns3server/symbols/affinity/circle/gray/atm.svg
@@ -1,60 +1,5 @@
-
-
\ No newline at end of file
+
diff --git a/gns3server/symbols/affinity/circle/gray/bug.svg b/gns3server/symbols/affinity/circle/gray/bug.svg
new file mode 100644
index 00000000..c9f5f216
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/gray/bug.svg
@@ -0,0 +1,8 @@
+
diff --git a/gns3server/symbols/affinity/circle/gray/camera.svg b/gns3server/symbols/affinity/circle/gray/camera.svg
index 4d79eeff..3d9a3c15 100644
--- a/gns3server/symbols/affinity/circle/gray/camera.svg
+++ b/gns3server/symbols/affinity/circle/gray/camera.svg
@@ -1,53 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/gray/camera_dome.svg b/gns3server/symbols/affinity/circle/gray/camera_dome.svg
index e5f3988b..6cb8c5d8 100644
--- a/gns3server/symbols/affinity/circle/gray/camera_dome.svg
+++ b/gns3server/symbols/affinity/circle/gray/camera_dome.svg
@@ -1,38 +1,8 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/gray/circle.svg b/gns3server/symbols/affinity/circle/gray/circle.svg
deleted file mode 100644
index cd8da99d..00000000
--- a/gns3server/symbols/affinity/circle/gray/circle.svg
+++ /dev/null
@@ -1,53 +0,0 @@
-
-
\ No newline at end of file
diff --git a/gns3server/symbols/affinity/circle/gray/client.svg b/gns3server/symbols/affinity/circle/gray/client.svg
index f5559311..a0b191b3 100644
--- a/gns3server/symbols/affinity/circle/gray/client.svg
+++ b/gns3server/symbols/affinity/circle/gray/client.svg
@@ -1,60 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/gray/client_vm.svg b/gns3server/symbols/affinity/circle/gray/client_vm.svg
index f3e73ba5..4e44c2d1 100644
--- a/gns3server/symbols/affinity/circle/gray/client_vm.svg
+++ b/gns3server/symbols/affinity/circle/gray/client_vm.svg
@@ -1,46 +1,6 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/gray/cloud.svg b/gns3server/symbols/affinity/circle/gray/cloud.svg
index ec2dab35..085ac678 100644
--- a/gns3server/symbols/affinity/circle/gray/cloud.svg
+++ b/gns3server/symbols/affinity/circle/gray/cloud.svg
@@ -1,35 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/gray/coffee.svg b/gns3server/symbols/affinity/circle/gray/coffee.svg
new file mode 100644
index 00000000..eb7f462e
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/gray/coffee.svg
@@ -0,0 +1,6 @@
+
diff --git a/gns3server/symbols/affinity/circle/gray/cog.svg b/gns3server/symbols/affinity/circle/gray/cog.svg
index fa5eae04..01d514df 100644
--- a/gns3server/symbols/affinity/circle/gray/cog.svg
+++ b/gns3server/symbols/affinity/circle/gray/cog.svg
@@ -1,42 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/gray/communications.svg b/gns3server/symbols/affinity/circle/gray/communications.svg
index 04e2fb28..1b1c34ad 100644
--- a/gns3server/symbols/affinity/circle/gray/communications.svg
+++ b/gns3server/symbols/affinity/circle/gray/communications.svg
@@ -1,42 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/gray/conversation.svg b/gns3server/symbols/affinity/circle/gray/conversation.svg
index 3ab64ed8..9ccd1194 100644
--- a/gns3server/symbols/affinity/circle/gray/conversation.svg
+++ b/gns3server/symbols/affinity/circle/gray/conversation.svg
@@ -1,48 +1,12 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/gray/dna.svg b/gns3server/symbols/affinity/circle/gray/dna.svg
new file mode 100644
index 00000000..eff14740
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/gray/dna.svg
@@ -0,0 +1,7 @@
+
diff --git a/gns3server/symbols/affinity/circle/gray/dna2.svg b/gns3server/symbols/affinity/circle/gray/dna2.svg
new file mode 100644
index 00000000..30476a19
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/gray/dna2.svg
@@ -0,0 +1,7 @@
+
diff --git a/gns3server/symbols/affinity/circle/gray/docker.svg b/gns3server/symbols/affinity/circle/gray/docker.svg
index d1e21132..3c0f2aa3 100644
--- a/gns3server/symbols/affinity/circle/gray/docker.svg
+++ b/gns3server/symbols/affinity/circle/gray/docker.svg
@@ -1,118 +1,11 @@
-
-
\ No newline at end of file
+
diff --git a/gns3server/symbols/affinity/circle/gray/dslam.svg b/gns3server/symbols/affinity/circle/gray/dslam.svg
index 085efaf6..05e13bb6 100644
--- a/gns3server/symbols/affinity/circle/gray/dslam.svg
+++ b/gns3server/symbols/affinity/circle/gray/dslam.svg
@@ -1,42 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/gray/factory.svg b/gns3server/symbols/affinity/circle/gray/factory.svg
new file mode 100644
index 00000000..11aa0e82
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/gray/factory.svg
@@ -0,0 +1,7 @@
+
diff --git a/gns3server/symbols/affinity/circle/gray/fingerprint.svg b/gns3server/symbols/affinity/circle/gray/fingerprint.svg
index 71ce8ff1..da4d51da 100644
--- a/gns3server/symbols/affinity/circle/gray/fingerprint.svg
+++ b/gns3server/symbols/affinity/circle/gray/fingerprint.svg
@@ -1,40 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/gray/firewall.svg b/gns3server/symbols/affinity/circle/gray/firewall.svg
index abdc8baf..58c3b89a 100644
--- a/gns3server/symbols/affinity/circle/gray/firewall.svg
+++ b/gns3server/symbols/affinity/circle/gray/firewall.svg
@@ -1,40 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/gray/firewall3.svg b/gns3server/symbols/affinity/circle/gray/firewall3.svg
index aadae630..8027198f 100644
--- a/gns3server/symbols/affinity/circle/gray/firewall3.svg
+++ b/gns3server/symbols/affinity/circle/gray/firewall3.svg
@@ -1,42 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/gray/globe.svg b/gns3server/symbols/affinity/circle/gray/globe.svg
new file mode 100644
index 00000000..1dcf42db
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/gray/globe.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/circle/gray/grid.svg b/gns3server/symbols/affinity/circle/gray/grid.svg
index 53a79115..c51e1220 100644
--- a/gns3server/symbols/affinity/circle/gray/grid.svg
+++ b/gns3server/symbols/affinity/circle/gray/grid.svg
@@ -1,35 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/gray/grid2.svg b/gns3server/symbols/affinity/circle/gray/grid2.svg
index 6571d680..b31ce483 100644
--- a/gns3server/symbols/affinity/circle/gray/grid2.svg
+++ b/gns3server/symbols/affinity/circle/gray/grid2.svg
@@ -1,34 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/gray/health.svg b/gns3server/symbols/affinity/circle/gray/health.svg
new file mode 100644
index 00000000..2d07e2f6
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/gray/health.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/circle/gray/house.svg b/gns3server/symbols/affinity/circle/gray/house.svg
new file mode 100644
index 00000000..5b0b2232
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/gray/house.svg
@@ -0,0 +1,9 @@
+
diff --git a/gns3server/symbols/affinity/circle/gray/hub.svg b/gns3server/symbols/affinity/circle/gray/hub.svg
index 5db405ba..f36a84b9 100644
--- a/gns3server/symbols/affinity/circle/gray/hub.svg
+++ b/gns3server/symbols/affinity/circle/gray/hub.svg
@@ -1,35 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/gray/inspect.svg b/gns3server/symbols/affinity/circle/gray/inspect.svg
index e80bbfcb..1ee7d304 100644
--- a/gns3server/symbols/affinity/circle/gray/inspect.svg
+++ b/gns3server/symbols/affinity/circle/gray/inspect.svg
@@ -1,51 +1,7 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/gray/inspect2.svg b/gns3server/symbols/affinity/circle/gray/inspect2.svg
new file mode 100644
index 00000000..e78a97f8
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/gray/inspect2.svg
@@ -0,0 +1,6 @@
+
diff --git a/gns3server/symbols/affinity/circle/gray/inspect3.svg b/gns3server/symbols/affinity/circle/gray/inspect3.svg
deleted file mode 100644
index a493441e..00000000
--- a/gns3server/symbols/affinity/circle/gray/inspect3.svg
+++ /dev/null
@@ -1,45 +0,0 @@
-
-
diff --git a/gns3server/symbols/affinity/circle/gray/interconnect.svg b/gns3server/symbols/affinity/circle/gray/interconnect.svg
index b469c2bf..3685e402 100644
--- a/gns3server/symbols/affinity/circle/gray/interconnect.svg
+++ b/gns3server/symbols/affinity/circle/gray/interconnect.svg
@@ -1,40 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/gray/ip_phone.svg b/gns3server/symbols/affinity/circle/gray/ip_phone.svg
new file mode 100644
index 00000000..c138a500
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/gray/ip_phone.svg
@@ -0,0 +1,21 @@
+
diff --git a/gns3server/symbols/affinity/circle/gray/isdn.svg b/gns3server/symbols/affinity/circle/gray/isdn.svg
index 1e3f8901..52d6daa4 100644
--- a/gns3server/symbols/affinity/circle/gray/isdn.svg
+++ b/gns3server/symbols/affinity/circle/gray/isdn.svg
@@ -1,36 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/gray/laptop.svg b/gns3server/symbols/affinity/circle/gray/laptop.svg
new file mode 100644
index 00000000..65bfae7d
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/gray/laptop.svg
@@ -0,0 +1,6 @@
+
diff --git a/gns3server/symbols/affinity/circle/gray/ldap.svg b/gns3server/symbols/affinity/circle/gray/ldap.svg
index 1835ae3b..194c0ebc 100644
--- a/gns3server/symbols/affinity/circle/gray/ldap.svg
+++ b/gns3server/symbols/affinity/circle/gray/ldap.svg
@@ -1,34 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/gray/light_bulb.svg b/gns3server/symbols/affinity/circle/gray/light_bulb.svg
index c72ea70f..1c1350b1 100644
--- a/gns3server/symbols/affinity/circle/gray/light_bulb.svg
+++ b/gns3server/symbols/affinity/circle/gray/light_bulb.svg
@@ -1,67 +1,11 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/gray/link.svg b/gns3server/symbols/affinity/circle/gray/link.svg
index dcc38718..0859adff 100644
--- a/gns3server/symbols/affinity/circle/gray/link.svg
+++ b/gns3server/symbols/affinity/circle/gray/link.svg
@@ -1,34 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/gray/loadbalancer.svg b/gns3server/symbols/affinity/circle/gray/loadbalancer.svg
index e3ae2dbc..0a4960df 100644
--- a/gns3server/symbols/affinity/circle/gray/loadbalancer.svg
+++ b/gns3server/symbols/affinity/circle/gray/loadbalancer.svg
@@ -1,44 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/gray/nas.svg b/gns3server/symbols/affinity/circle/gray/nas.svg
index a20c3b54..265e942d 100644
--- a/gns3server/symbols/affinity/circle/gray/nas.svg
+++ b/gns3server/symbols/affinity/circle/gray/nas.svg
@@ -1,35 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/gray/office.svg b/gns3server/symbols/affinity/circle/gray/office.svg
new file mode 100644
index 00000000..ac1b5d46
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/gray/office.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/circle/gray/optical.svg b/gns3server/symbols/affinity/circle/gray/optical.svg
new file mode 100644
index 00000000..f81dcbe0
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/gray/optical.svg
@@ -0,0 +1,8 @@
+
diff --git a/gns3server/symbols/affinity/circle/gray/phone_cloud.svg b/gns3server/symbols/affinity/circle/gray/phone_cloud.svg
new file mode 100644
index 00000000..2f0ea2af
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/gray/phone_cloud.svg
@@ -0,0 +1,6 @@
+
diff --git a/gns3server/symbols/affinity/circle/gray/phone_old.svg b/gns3server/symbols/affinity/circle/gray/phone_old.svg
new file mode 100644
index 00000000..ba1b2fdc
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/gray/phone_old.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/circle/gray/phone_wireless.svg b/gns3server/symbols/affinity/circle/gray/phone_wireless.svg
new file mode 100644
index 00000000..556584eb
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/gray/phone_wireless.svg
@@ -0,0 +1,8 @@
+
diff --git a/gns3server/symbols/affinity/circle/gray/pinpoint.svg b/gns3server/symbols/affinity/circle/gray/pinpoint.svg
index 307f6259..3f13e97c 100644
--- a/gns3server/symbols/affinity/circle/gray/pinpoint.svg
+++ b/gns3server/symbols/affinity/circle/gray/pinpoint.svg
@@ -1,49 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/gray/printer.svg b/gns3server/symbols/affinity/circle/gray/printer.svg
index 85e42134..fbd1fc6a 100644
--- a/gns3server/symbols/affinity/circle/gray/printer.svg
+++ b/gns3server/symbols/affinity/circle/gray/printer.svg
@@ -1,97 +1,25 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/gray/rj45.svg b/gns3server/symbols/affinity/circle/gray/rj45.svg
index 81aaf32e..131eae38 100644
--- a/gns3server/symbols/affinity/circle/gray/rj45.svg
+++ b/gns3server/symbols/affinity/circle/gray/rj45.svg
@@ -1,69 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/gray/router.svg b/gns3server/symbols/affinity/circle/gray/router.svg
index 45e96748..de01847f 100644
--- a/gns3server/symbols/affinity/circle/gray/router.svg
+++ b/gns3server/symbols/affinity/circle/gray/router.svg
@@ -1,35 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/gray/router2.svg b/gns3server/symbols/affinity/circle/gray/router2.svg
new file mode 100644
index 00000000..0395003e
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/gray/router2.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/circle/gray/router_cloud.svg b/gns3server/symbols/affinity/circle/gray/router_cloud.svg
index 26265cf4..71874920 100644
--- a/gns3server/symbols/affinity/circle/gray/router_cloud.svg
+++ b/gns3server/symbols/affinity/circle/gray/router_cloud.svg
@@ -1,43 +1,6 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/gray/satellite.svg b/gns3server/symbols/affinity/circle/gray/satellite.svg
index 62421c23..1926d98f 100644
--- a/gns3server/symbols/affinity/circle/gray/satellite.svg
+++ b/gns3server/symbols/affinity/circle/gray/satellite.svg
@@ -1,40 +1,6 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/gray/satellite_dish.svg b/gns3server/symbols/affinity/circle/gray/satellite_dish.svg
index 07fb57df..933ff22d 100644
--- a/gns3server/symbols/affinity/circle/gray/satellite_dish.svg
+++ b/gns3server/symbols/affinity/circle/gray/satellite_dish.svg
@@ -1,43 +1,7 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/gray/scull.svg b/gns3server/symbols/affinity/circle/gray/scull.svg
index cb28cdc9..107e585e 100644
--- a/gns3server/symbols/affinity/circle/gray/scull.svg
+++ b/gns3server/symbols/affinity/circle/gray/scull.svg
@@ -1,50 +1,8 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/gray/server-cluster.svg b/gns3server/symbols/affinity/circle/gray/server-cluster.svg
deleted file mode 100644
index 538084d2..00000000
--- a/gns3server/symbols/affinity/circle/gray/server-cluster.svg
+++ /dev/null
@@ -1,48 +0,0 @@
-
-
diff --git a/gns3server/symbols/affinity/circle/gray/server.svg b/gns3server/symbols/affinity/circle/gray/server.svg
index 7687f436..8bb615d9 100644
--- a/gns3server/symbols/affinity/circle/gray/server.svg
+++ b/gns3server/symbols/affinity/circle/gray/server.svg
@@ -1,34 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/gray/server_cluster.svg b/gns3server/symbols/affinity/circle/gray/server_cluster.svg
new file mode 100644
index 00000000..cd87dae4
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/gray/server_cluster.svg
@@ -0,0 +1,7 @@
+
diff --git a/gns3server/symbols/affinity/circle/gray/shield.svg b/gns3server/symbols/affinity/circle/gray/shield.svg
new file mode 100644
index 00000000..d0eb485c
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/gray/shield.svg
@@ -0,0 +1,7 @@
+
diff --git a/gns3server/symbols/affinity/circle/gray/statistics.svg b/gns3server/symbols/affinity/circle/gray/statistics.svg
index 6d047edc..41328b7f 100644
--- a/gns3server/symbols/affinity/circle/gray/statistics.svg
+++ b/gns3server/symbols/affinity/circle/gray/statistics.svg
@@ -1,47 +1,7 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/gray/storage.svg b/gns3server/symbols/affinity/circle/gray/storage.svg
index 2aabdb68..5370bf67 100644
--- a/gns3server/symbols/affinity/circle/gray/storage.svg
+++ b/gns3server/symbols/affinity/circle/gray/storage.svg
@@ -1,34 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/gray/switch.svg b/gns3server/symbols/affinity/circle/gray/switch.svg
index 2dcf2597..fd94302c 100644
--- a/gns3server/symbols/affinity/circle/gray/switch.svg
+++ b/gns3server/symbols/affinity/circle/gray/switch.svg
@@ -1,50 +1,8 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/gray/switch_multilayer.svg b/gns3server/symbols/affinity/circle/gray/switch_multilayer.svg
index 7755d60a..7cbc90d3 100644
--- a/gns3server/symbols/affinity/circle/gray/switch_multilayer.svg
+++ b/gns3server/symbols/affinity/circle/gray/switch_multilayer.svg
@@ -1,42 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/gray/tablet.svg b/gns3server/symbols/affinity/circle/gray/tablet.svg
index acf7634c..1f5a98f1 100644
--- a/gns3server/symbols/affinity/circle/gray/tablet.svg
+++ b/gns3server/symbols/affinity/circle/gray/tablet.svg
@@ -1,47 +1,11 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/gray/template.svg b/gns3server/symbols/affinity/circle/gray/template.svg
new file mode 100644
index 00000000..34abaf52
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/gray/template.svg
@@ -0,0 +1,4 @@
+
diff --git a/gns3server/symbols/affinity/circle/gray/tree.svg b/gns3server/symbols/affinity/circle/gray/tree.svg
index 7798f758..b5fe9f8c 100644
--- a/gns3server/symbols/affinity/circle/gray/tree.svg
+++ b/gns3server/symbols/affinity/circle/gray/tree.svg
@@ -1,34 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/gray/user.svg b/gns3server/symbols/affinity/circle/gray/user.svg
index b2717d42..849854c3 100644
--- a/gns3server/symbols/affinity/circle/gray/user.svg
+++ b/gns3server/symbols/affinity/circle/gray/user.svg
@@ -1,36 +1,7 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/gray/virtualbox.svg b/gns3server/symbols/affinity/circle/gray/virtualbox.svg
index 393bf67b..51fbd91f 100644
--- a/gns3server/symbols/affinity/circle/gray/virtualbox.svg
+++ b/gns3server/symbols/affinity/circle/gray/virtualbox.svg
@@ -1,60 +1,7 @@
-
-
\ No newline at end of file
+
diff --git a/gns3server/symbols/affinity/circle/gray/vm.svg b/gns3server/symbols/affinity/circle/gray/vm.svg
index 93a7da13..8e129366 100644
--- a/gns3server/symbols/affinity/circle/gray/vm.svg
+++ b/gns3server/symbols/affinity/circle/gray/vm.svg
@@ -1,41 +1,7 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/gray/vmware.svg b/gns3server/symbols/affinity/circle/gray/vmware.svg
index 5e024657..143470ae 100644
--- a/gns3server/symbols/affinity/circle/gray/vmware.svg
+++ b/gns3server/symbols/affinity/circle/gray/vmware.svg
@@ -1,61 +1,7 @@
-
-
\ No newline at end of file
+
diff --git a/gns3server/symbols/affinity/circle/gray/vrf.svg b/gns3server/symbols/affinity/circle/gray/vrf.svg
new file mode 100644
index 00000000..ca53520e
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/gray/vrf.svg
@@ -0,0 +1,8 @@
+
diff --git a/gns3server/symbols/affinity/circle/gray/wifi.svg b/gns3server/symbols/affinity/circle/gray/wifi.svg
index e74b5172..e626428d 100644
--- a/gns3server/symbols/affinity/circle/gray/wifi.svg
+++ b/gns3server/symbols/affinity/circle/gray/wifi.svg
@@ -1,62 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/gray/wlc.svg b/gns3server/symbols/affinity/circle/gray/wlc.svg
index e3784304..218b2663 100644
--- a/gns3server/symbols/affinity/circle/gray/wlc.svg
+++ b/gns3server/symbols/affinity/circle/gray/wlc.svg
@@ -1,35 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/gray/xml.svg b/gns3server/symbols/affinity/circle/gray/xml.svg
index c4a3770d..10b3c5e6 100644
--- a/gns3server/symbols/affinity/circle/gray/xml.svg
+++ b/gns3server/symbols/affinity/circle/gray/xml.svg
@@ -1,45 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/green/atm.svg b/gns3server/symbols/affinity/circle/green/atm.svg
new file mode 100644
index 00000000..f1d78959
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/green/atm.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/circle/green/bug.svg b/gns3server/symbols/affinity/circle/green/bug.svg
new file mode 100644
index 00000000..a3543aa5
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/green/bug.svg
@@ -0,0 +1,8 @@
+
diff --git a/gns3server/symbols/affinity/circle/green/camera.svg b/gns3server/symbols/affinity/circle/green/camera.svg
new file mode 100644
index 00000000..7be53dee
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/green/camera.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/circle/green/camera_dome.svg b/gns3server/symbols/affinity/circle/green/camera_dome.svg
new file mode 100644
index 00000000..92fb6d02
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/green/camera_dome.svg
@@ -0,0 +1,8 @@
+
diff --git a/gns3server/symbols/affinity/circle/green/client.svg b/gns3server/symbols/affinity/circle/green/client.svg
new file mode 100644
index 00000000..6668b3ee
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/green/client.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/circle/green/client_vm.svg b/gns3server/symbols/affinity/circle/green/client_vm.svg
new file mode 100644
index 00000000..2835bb7e
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/green/client_vm.svg
@@ -0,0 +1,6 @@
+
diff --git a/gns3server/symbols/affinity/circle/green/cloud.svg b/gns3server/symbols/affinity/circle/green/cloud.svg
new file mode 100644
index 00000000..dd72c3e9
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/green/cloud.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/circle/green/coffee.svg b/gns3server/symbols/affinity/circle/green/coffee.svg
new file mode 100644
index 00000000..aa651f44
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/green/coffee.svg
@@ -0,0 +1,6 @@
+
diff --git a/gns3server/symbols/affinity/circle/green/cog.svg b/gns3server/symbols/affinity/circle/green/cog.svg
new file mode 100644
index 00000000..03282fc5
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/green/cog.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/circle/green/communications.svg b/gns3server/symbols/affinity/circle/green/communications.svg
new file mode 100644
index 00000000..05acf650
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/green/communications.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/circle/green/conversation.svg b/gns3server/symbols/affinity/circle/green/conversation.svg
new file mode 100644
index 00000000..71ca298a
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/green/conversation.svg
@@ -0,0 +1,12 @@
+
diff --git a/gns3server/symbols/affinity/circle/green/dna.svg b/gns3server/symbols/affinity/circle/green/dna.svg
new file mode 100644
index 00000000..0a0a1635
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/green/dna.svg
@@ -0,0 +1,7 @@
+
diff --git a/gns3server/symbols/affinity/circle/green/dna2.svg b/gns3server/symbols/affinity/circle/green/dna2.svg
new file mode 100644
index 00000000..36d463be
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/green/dna2.svg
@@ -0,0 +1,7 @@
+
diff --git a/gns3server/symbols/affinity/circle/green/docker.svg b/gns3server/symbols/affinity/circle/green/docker.svg
new file mode 100644
index 00000000..d8345771
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/green/docker.svg
@@ -0,0 +1,11 @@
+
diff --git a/gns3server/symbols/affinity/circle/green/dslam.svg b/gns3server/symbols/affinity/circle/green/dslam.svg
new file mode 100644
index 00000000..6b97dd85
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/green/dslam.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/circle/green/factory.svg b/gns3server/symbols/affinity/circle/green/factory.svg
new file mode 100644
index 00000000..26cb0283
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/green/factory.svg
@@ -0,0 +1,6 @@
+
diff --git a/gns3server/symbols/affinity/circle/green/fingerprint.svg b/gns3server/symbols/affinity/circle/green/fingerprint.svg
new file mode 100644
index 00000000..54e2bd6b
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/green/fingerprint.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/circle/green/firewall.svg b/gns3server/symbols/affinity/circle/green/firewall.svg
new file mode 100644
index 00000000..bc28b1bd
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/green/firewall.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/circle/green/firewall3.svg b/gns3server/symbols/affinity/circle/green/firewall3.svg
new file mode 100644
index 00000000..13e88b7f
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/green/firewall3.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/circle/green/globe.svg b/gns3server/symbols/affinity/circle/green/globe.svg
new file mode 100644
index 00000000..8ba9a422
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/green/globe.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/circle/green/grid.svg b/gns3server/symbols/affinity/circle/green/grid.svg
new file mode 100644
index 00000000..4ca6c946
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/green/grid.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/circle/green/grid2.svg b/gns3server/symbols/affinity/circle/green/grid2.svg
new file mode 100644
index 00000000..90bed4c2
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/green/grid2.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/circle/green/health.svg b/gns3server/symbols/affinity/circle/green/health.svg
new file mode 100644
index 00000000..73ffb7ae
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/green/health.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/circle/green/house.svg b/gns3server/symbols/affinity/circle/green/house.svg
new file mode 100644
index 00000000..0a3d1b0c
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/green/house.svg
@@ -0,0 +1,9 @@
+
diff --git a/gns3server/symbols/affinity/circle/green/hub.svg b/gns3server/symbols/affinity/circle/green/hub.svg
new file mode 100644
index 00000000..b673941b
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/green/hub.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/circle/green/inspect.svg b/gns3server/symbols/affinity/circle/green/inspect.svg
new file mode 100644
index 00000000..3ff666f4
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/green/inspect.svg
@@ -0,0 +1,7 @@
+
diff --git a/gns3server/symbols/affinity/circle/green/inspect2.svg b/gns3server/symbols/affinity/circle/green/inspect2.svg
new file mode 100644
index 00000000..104dcc57
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/green/inspect2.svg
@@ -0,0 +1,6 @@
+
diff --git a/gns3server/symbols/affinity/circle/green/interconnect.svg b/gns3server/symbols/affinity/circle/green/interconnect.svg
new file mode 100644
index 00000000..7775e709
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/green/interconnect.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/circle/green/ip_phone.svg b/gns3server/symbols/affinity/circle/green/ip_phone.svg
new file mode 100644
index 00000000..0237d4d7
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/green/ip_phone.svg
@@ -0,0 +1,21 @@
+
diff --git a/gns3server/symbols/affinity/circle/green/isdn.svg b/gns3server/symbols/affinity/circle/green/isdn.svg
new file mode 100644
index 00000000..7ca286b8
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/green/isdn.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/circle/green/laptop.svg b/gns3server/symbols/affinity/circle/green/laptop.svg
new file mode 100644
index 00000000..e6a5eb53
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/green/laptop.svg
@@ -0,0 +1,6 @@
+
diff --git a/gns3server/symbols/affinity/circle/green/ldap.svg b/gns3server/symbols/affinity/circle/green/ldap.svg
new file mode 100644
index 00000000..16aff355
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/green/ldap.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/circle/green/light_bulb.svg b/gns3server/symbols/affinity/circle/green/light_bulb.svg
new file mode 100644
index 00000000..6364164d
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/green/light_bulb.svg
@@ -0,0 +1,11 @@
+
diff --git a/gns3server/symbols/affinity/circle/green/link.svg b/gns3server/symbols/affinity/circle/green/link.svg
new file mode 100644
index 00000000..c106d4f6
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/green/link.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/circle/green/loadbalancer.svg b/gns3server/symbols/affinity/circle/green/loadbalancer.svg
new file mode 100644
index 00000000..32ed745c
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/green/loadbalancer.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/circle/green/nas.svg b/gns3server/symbols/affinity/circle/green/nas.svg
new file mode 100644
index 00000000..f242bd38
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/green/nas.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/circle/green/office.svg b/gns3server/symbols/affinity/circle/green/office.svg
new file mode 100644
index 00000000..f93654d9
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/green/office.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/circle/green/optical.svg b/gns3server/symbols/affinity/circle/green/optical.svg
new file mode 100644
index 00000000..26fd9e23
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/green/optical.svg
@@ -0,0 +1,8 @@
+
diff --git a/gns3server/symbols/affinity/circle/green/phone_cloud.svg b/gns3server/symbols/affinity/circle/green/phone_cloud.svg
new file mode 100644
index 00000000..24135278
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/green/phone_cloud.svg
@@ -0,0 +1,6 @@
+
diff --git a/gns3server/symbols/affinity/circle/green/phone_old.svg b/gns3server/symbols/affinity/circle/green/phone_old.svg
new file mode 100644
index 00000000..6f0fdb8e
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/green/phone_old.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/circle/green/phone_wireless.svg b/gns3server/symbols/affinity/circle/green/phone_wireless.svg
new file mode 100644
index 00000000..5013f11d
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/green/phone_wireless.svg
@@ -0,0 +1,8 @@
+
diff --git a/gns3server/symbols/affinity/circle/green/pinpoint.svg b/gns3server/symbols/affinity/circle/green/pinpoint.svg
new file mode 100644
index 00000000..dcb5fc6c
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/green/pinpoint.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/circle/green/printer.svg b/gns3server/symbols/affinity/circle/green/printer.svg
new file mode 100644
index 00000000..0d46d3c4
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/green/printer.svg
@@ -0,0 +1,7 @@
+
diff --git a/gns3server/symbols/affinity/circle/green/rj45.svg b/gns3server/symbols/affinity/circle/green/rj45.svg
new file mode 100644
index 00000000..a9a51fc8
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/green/rj45.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/circle/green/router.svg b/gns3server/symbols/affinity/circle/green/router.svg
new file mode 100644
index 00000000..b6005705
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/green/router.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/circle/green/router2.svg b/gns3server/symbols/affinity/circle/green/router2.svg
new file mode 100644
index 00000000..27affe90
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/green/router2.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/circle/green/router_cloud.svg b/gns3server/symbols/affinity/circle/green/router_cloud.svg
new file mode 100644
index 00000000..d404e4be
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/green/router_cloud.svg
@@ -0,0 +1,6 @@
+
diff --git a/gns3server/symbols/affinity/circle/green/satellite.svg b/gns3server/symbols/affinity/circle/green/satellite.svg
new file mode 100644
index 00000000..912d8e3a
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/green/satellite.svg
@@ -0,0 +1,6 @@
+
diff --git a/gns3server/symbols/affinity/circle/green/satellite_dish.svg b/gns3server/symbols/affinity/circle/green/satellite_dish.svg
new file mode 100644
index 00000000..fe65b639
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/green/satellite_dish.svg
@@ -0,0 +1,7 @@
+
diff --git a/gns3server/symbols/affinity/circle/green/scull.svg b/gns3server/symbols/affinity/circle/green/scull.svg
new file mode 100644
index 00000000..3bad44db
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/green/scull.svg
@@ -0,0 +1,8 @@
+
diff --git a/gns3server/symbols/affinity/circle/green/server.svg b/gns3server/symbols/affinity/circle/green/server.svg
new file mode 100644
index 00000000..1ea30618
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/green/server.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/circle/green/server_cluster.svg b/gns3server/symbols/affinity/circle/green/server_cluster.svg
new file mode 100644
index 00000000..f02dc37b
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/green/server_cluster.svg
@@ -0,0 +1,7 @@
+
diff --git a/gns3server/symbols/affinity/circle/green/shield.svg b/gns3server/symbols/affinity/circle/green/shield.svg
new file mode 100644
index 00000000..960d1a14
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/green/shield.svg
@@ -0,0 +1,7 @@
+
diff --git a/gns3server/symbols/affinity/circle/green/statistics.svg b/gns3server/symbols/affinity/circle/green/statistics.svg
new file mode 100644
index 00000000..e96ae2ad
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/green/statistics.svg
@@ -0,0 +1,7 @@
+
diff --git a/gns3server/symbols/affinity/circle/green/storage.svg b/gns3server/symbols/affinity/circle/green/storage.svg
new file mode 100644
index 00000000..43c9428d
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/green/storage.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/circle/green/switch.svg b/gns3server/symbols/affinity/circle/green/switch.svg
new file mode 100644
index 00000000..6e177be6
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/green/switch.svg
@@ -0,0 +1,8 @@
+
diff --git a/gns3server/symbols/affinity/circle/green/switch_multilayer.svg b/gns3server/symbols/affinity/circle/green/switch_multilayer.svg
new file mode 100644
index 00000000..a5166fd9
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/green/switch_multilayer.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/circle/green/tablet.svg b/gns3server/symbols/affinity/circle/green/tablet.svg
new file mode 100644
index 00000000..df3cbbf7
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/green/tablet.svg
@@ -0,0 +1,11 @@
+
diff --git a/gns3server/symbols/affinity/circle/green/template.svg b/gns3server/symbols/affinity/circle/green/template.svg
new file mode 100644
index 00000000..9605ce9c
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/green/template.svg
@@ -0,0 +1,4 @@
+
diff --git a/gns3server/symbols/affinity/circle/green/tree.svg b/gns3server/symbols/affinity/circle/green/tree.svg
new file mode 100644
index 00000000..427d0210
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/green/tree.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/circle/green/user.svg b/gns3server/symbols/affinity/circle/green/user.svg
new file mode 100644
index 00000000..c2de5909
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/green/user.svg
@@ -0,0 +1,7 @@
+
diff --git a/gns3server/symbols/affinity/circle/green/virtualbox.svg b/gns3server/symbols/affinity/circle/green/virtualbox.svg
new file mode 100644
index 00000000..df057adf
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/green/virtualbox.svg
@@ -0,0 +1,7 @@
+
diff --git a/gns3server/symbols/affinity/circle/green/vm.svg b/gns3server/symbols/affinity/circle/green/vm.svg
new file mode 100644
index 00000000..74bbf7f2
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/green/vm.svg
@@ -0,0 +1,7 @@
+
diff --git a/gns3server/symbols/affinity/circle/green/vmware.svg b/gns3server/symbols/affinity/circle/green/vmware.svg
new file mode 100644
index 00000000..17a926be
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/green/vmware.svg
@@ -0,0 +1,7 @@
+
diff --git a/gns3server/symbols/affinity/circle/green/vrf.svg b/gns3server/symbols/affinity/circle/green/vrf.svg
new file mode 100644
index 00000000..56a3ea8a
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/green/vrf.svg
@@ -0,0 +1,8 @@
+
diff --git a/gns3server/symbols/affinity/circle/green/wifi.svg b/gns3server/symbols/affinity/circle/green/wifi.svg
new file mode 100644
index 00000000..75562484
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/green/wifi.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/circle/green/wlc.svg b/gns3server/symbols/affinity/circle/green/wlc.svg
new file mode 100644
index 00000000..ec08e489
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/green/wlc.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/circle/green/xml.svg b/gns3server/symbols/affinity/circle/green/xml.svg
new file mode 100644
index 00000000..835b99b2
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/green/xml.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/circle/red/atm.svg b/gns3server/symbols/affinity/circle/red/atm.svg
index 1d6de229..09a30049 100644
--- a/gns3server/symbols/affinity/circle/red/atm.svg
+++ b/gns3server/symbols/affinity/circle/red/atm.svg
@@ -1,60 +1,5 @@
-
-
\ No newline at end of file
+
diff --git a/gns3server/symbols/affinity/circle/red/bug.svg b/gns3server/symbols/affinity/circle/red/bug.svg
new file mode 100644
index 00000000..cf1919b1
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/red/bug.svg
@@ -0,0 +1,8 @@
+
diff --git a/gns3server/symbols/affinity/circle/red/camera.svg b/gns3server/symbols/affinity/circle/red/camera.svg
index a97ab388..310cad9e 100644
--- a/gns3server/symbols/affinity/circle/red/camera.svg
+++ b/gns3server/symbols/affinity/circle/red/camera.svg
@@ -1,53 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/red/camera_dome.svg b/gns3server/symbols/affinity/circle/red/camera_dome.svg
index 0f39b13e..e7ff6ad0 100644
--- a/gns3server/symbols/affinity/circle/red/camera_dome.svg
+++ b/gns3server/symbols/affinity/circle/red/camera_dome.svg
@@ -1,38 +1,8 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/red/circle.svg b/gns3server/symbols/affinity/circle/red/circle.svg
deleted file mode 100644
index b4328dee..00000000
--- a/gns3server/symbols/affinity/circle/red/circle.svg
+++ /dev/null
@@ -1,53 +0,0 @@
-
-
\ No newline at end of file
diff --git a/gns3server/symbols/affinity/circle/red/client.svg b/gns3server/symbols/affinity/circle/red/client.svg
index 4ea92654..593428ef 100644
--- a/gns3server/symbols/affinity/circle/red/client.svg
+++ b/gns3server/symbols/affinity/circle/red/client.svg
@@ -1,60 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/red/client_vm.svg b/gns3server/symbols/affinity/circle/red/client_vm.svg
index c8f0d976..3d3b82c2 100644
--- a/gns3server/symbols/affinity/circle/red/client_vm.svg
+++ b/gns3server/symbols/affinity/circle/red/client_vm.svg
@@ -1,46 +1,6 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/red/cloud.svg b/gns3server/symbols/affinity/circle/red/cloud.svg
index 271f6fdc..95584ca3 100644
--- a/gns3server/symbols/affinity/circle/red/cloud.svg
+++ b/gns3server/symbols/affinity/circle/red/cloud.svg
@@ -1,35 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/red/coffee.svg b/gns3server/symbols/affinity/circle/red/coffee.svg
new file mode 100644
index 00000000..b258c71b
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/red/coffee.svg
@@ -0,0 +1,6 @@
+
diff --git a/gns3server/symbols/affinity/circle/red/cog.svg b/gns3server/symbols/affinity/circle/red/cog.svg
index bc749bd9..892b9087 100644
--- a/gns3server/symbols/affinity/circle/red/cog.svg
+++ b/gns3server/symbols/affinity/circle/red/cog.svg
@@ -1,42 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/red/communications.svg b/gns3server/symbols/affinity/circle/red/communications.svg
index a04e8507..a5eae082 100644
--- a/gns3server/symbols/affinity/circle/red/communications.svg
+++ b/gns3server/symbols/affinity/circle/red/communications.svg
@@ -1,42 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/red/conversation.svg b/gns3server/symbols/affinity/circle/red/conversation.svg
index 60988f7f..eb51aa28 100644
--- a/gns3server/symbols/affinity/circle/red/conversation.svg
+++ b/gns3server/symbols/affinity/circle/red/conversation.svg
@@ -1,48 +1,12 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/red/dna.svg b/gns3server/symbols/affinity/circle/red/dna.svg
new file mode 100644
index 00000000..524ced39
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/red/dna.svg
@@ -0,0 +1,7 @@
+
diff --git a/gns3server/symbols/affinity/circle/red/dna2.svg b/gns3server/symbols/affinity/circle/red/dna2.svg
new file mode 100644
index 00000000..1c71be3a
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/red/dna2.svg
@@ -0,0 +1,7 @@
+
diff --git a/gns3server/symbols/affinity/circle/red/docker.svg b/gns3server/symbols/affinity/circle/red/docker.svg
index 48ae1b3b..e16877d6 100644
--- a/gns3server/symbols/affinity/circle/red/docker.svg
+++ b/gns3server/symbols/affinity/circle/red/docker.svg
@@ -1,118 +1,11 @@
-
-
\ No newline at end of file
+
diff --git a/gns3server/symbols/affinity/circle/red/dslam.svg b/gns3server/symbols/affinity/circle/red/dslam.svg
index 2f446c83..bd0e1c60 100644
--- a/gns3server/symbols/affinity/circle/red/dslam.svg
+++ b/gns3server/symbols/affinity/circle/red/dslam.svg
@@ -1,42 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/red/factory.svg b/gns3server/symbols/affinity/circle/red/factory.svg
new file mode 100644
index 00000000..b18fc527
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/red/factory.svg
@@ -0,0 +1,6 @@
+
diff --git a/gns3server/symbols/affinity/circle/red/fingerprint.svg b/gns3server/symbols/affinity/circle/red/fingerprint.svg
index 3e3554fb..bd773bcf 100644
--- a/gns3server/symbols/affinity/circle/red/fingerprint.svg
+++ b/gns3server/symbols/affinity/circle/red/fingerprint.svg
@@ -1,40 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/red/firewall.svg b/gns3server/symbols/affinity/circle/red/firewall.svg
index fb32356b..addfe3a8 100644
--- a/gns3server/symbols/affinity/circle/red/firewall.svg
+++ b/gns3server/symbols/affinity/circle/red/firewall.svg
@@ -1,40 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/red/firewall3.svg b/gns3server/symbols/affinity/circle/red/firewall3.svg
index c22bf85b..05d8ca14 100644
--- a/gns3server/symbols/affinity/circle/red/firewall3.svg
+++ b/gns3server/symbols/affinity/circle/red/firewall3.svg
@@ -1,42 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/red/globe.svg b/gns3server/symbols/affinity/circle/red/globe.svg
new file mode 100644
index 00000000..f8bd5af7
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/red/globe.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/circle/red/grid.svg b/gns3server/symbols/affinity/circle/red/grid.svg
index d3971265..b097cc87 100644
--- a/gns3server/symbols/affinity/circle/red/grid.svg
+++ b/gns3server/symbols/affinity/circle/red/grid.svg
@@ -1,35 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/red/grid2.svg b/gns3server/symbols/affinity/circle/red/grid2.svg
index f64d3139..89f5a516 100644
--- a/gns3server/symbols/affinity/circle/red/grid2.svg
+++ b/gns3server/symbols/affinity/circle/red/grid2.svg
@@ -1,34 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/red/health.svg b/gns3server/symbols/affinity/circle/red/health.svg
new file mode 100644
index 00000000..5051a7cf
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/red/health.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/circle/red/house.svg b/gns3server/symbols/affinity/circle/red/house.svg
new file mode 100644
index 00000000..510ad7c4
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/red/house.svg
@@ -0,0 +1,9 @@
+
diff --git a/gns3server/symbols/affinity/circle/red/hub.svg b/gns3server/symbols/affinity/circle/red/hub.svg
index 88f1f54b..2fc3c5f9 100644
--- a/gns3server/symbols/affinity/circle/red/hub.svg
+++ b/gns3server/symbols/affinity/circle/red/hub.svg
@@ -1,35 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/red/inspect.svg b/gns3server/symbols/affinity/circle/red/inspect.svg
index fd6e352a..622ee04a 100644
--- a/gns3server/symbols/affinity/circle/red/inspect.svg
+++ b/gns3server/symbols/affinity/circle/red/inspect.svg
@@ -1,51 +1,7 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/red/inspect2.svg b/gns3server/symbols/affinity/circle/red/inspect2.svg
new file mode 100644
index 00000000..8c80ee3d
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/red/inspect2.svg
@@ -0,0 +1,6 @@
+
diff --git a/gns3server/symbols/affinity/circle/red/inspect3.svg b/gns3server/symbols/affinity/circle/red/inspect3.svg
deleted file mode 100644
index c4c704d7..00000000
--- a/gns3server/symbols/affinity/circle/red/inspect3.svg
+++ /dev/null
@@ -1,45 +0,0 @@
-
-
diff --git a/gns3server/symbols/affinity/circle/red/interconnect.svg b/gns3server/symbols/affinity/circle/red/interconnect.svg
index 9d4cfcae..0960be67 100644
--- a/gns3server/symbols/affinity/circle/red/interconnect.svg
+++ b/gns3server/symbols/affinity/circle/red/interconnect.svg
@@ -1,40 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/red/ip_phone.svg b/gns3server/symbols/affinity/circle/red/ip_phone.svg
new file mode 100644
index 00000000..e615b4ac
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/red/ip_phone.svg
@@ -0,0 +1,21 @@
+
diff --git a/gns3server/symbols/affinity/circle/red/isdn.svg b/gns3server/symbols/affinity/circle/red/isdn.svg
index 12278aba..d23c5715 100644
--- a/gns3server/symbols/affinity/circle/red/isdn.svg
+++ b/gns3server/symbols/affinity/circle/red/isdn.svg
@@ -1,36 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/red/laptop.svg b/gns3server/symbols/affinity/circle/red/laptop.svg
new file mode 100644
index 00000000..68452f75
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/red/laptop.svg
@@ -0,0 +1,6 @@
+
diff --git a/gns3server/symbols/affinity/circle/red/ldap.svg b/gns3server/symbols/affinity/circle/red/ldap.svg
index ef0e75d7..35b6e1cd 100644
--- a/gns3server/symbols/affinity/circle/red/ldap.svg
+++ b/gns3server/symbols/affinity/circle/red/ldap.svg
@@ -1,34 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/red/light_bulb.svg b/gns3server/symbols/affinity/circle/red/light_bulb.svg
index ce62f0cb..cae737f8 100644
--- a/gns3server/symbols/affinity/circle/red/light_bulb.svg
+++ b/gns3server/symbols/affinity/circle/red/light_bulb.svg
@@ -1,67 +1,11 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/red/link.svg b/gns3server/symbols/affinity/circle/red/link.svg
index 439f813c..4f7c6a54 100644
--- a/gns3server/symbols/affinity/circle/red/link.svg
+++ b/gns3server/symbols/affinity/circle/red/link.svg
@@ -1,34 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/red/loadbalancer.svg b/gns3server/symbols/affinity/circle/red/loadbalancer.svg
index 2ce0a1f8..ea28b17d 100644
--- a/gns3server/symbols/affinity/circle/red/loadbalancer.svg
+++ b/gns3server/symbols/affinity/circle/red/loadbalancer.svg
@@ -1,44 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/red/nas.svg b/gns3server/symbols/affinity/circle/red/nas.svg
index bb39e7e1..892b86ac 100644
--- a/gns3server/symbols/affinity/circle/red/nas.svg
+++ b/gns3server/symbols/affinity/circle/red/nas.svg
@@ -1,35 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/red/office.svg b/gns3server/symbols/affinity/circle/red/office.svg
new file mode 100644
index 00000000..bde0e573
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/red/office.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/circle/red/optical.svg b/gns3server/symbols/affinity/circle/red/optical.svg
new file mode 100644
index 00000000..5d1d7753
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/red/optical.svg
@@ -0,0 +1,8 @@
+
diff --git a/gns3server/symbols/affinity/circle/red/phone_cloud.svg b/gns3server/symbols/affinity/circle/red/phone_cloud.svg
new file mode 100644
index 00000000..674f68e1
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/red/phone_cloud.svg
@@ -0,0 +1,6 @@
+
diff --git a/gns3server/symbols/affinity/circle/red/phone_old.svg b/gns3server/symbols/affinity/circle/red/phone_old.svg
new file mode 100644
index 00000000..14764295
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/red/phone_old.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/circle/red/phone_wireless.svg b/gns3server/symbols/affinity/circle/red/phone_wireless.svg
new file mode 100644
index 00000000..39dd713b
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/red/phone_wireless.svg
@@ -0,0 +1,8 @@
+
diff --git a/gns3server/symbols/affinity/circle/red/pinpoint.svg b/gns3server/symbols/affinity/circle/red/pinpoint.svg
index c419eb82..ba795332 100644
--- a/gns3server/symbols/affinity/circle/red/pinpoint.svg
+++ b/gns3server/symbols/affinity/circle/red/pinpoint.svg
@@ -1,49 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/red/printer.svg b/gns3server/symbols/affinity/circle/red/printer.svg
index f16291f2..2e7aea1b 100644
--- a/gns3server/symbols/affinity/circle/red/printer.svg
+++ b/gns3server/symbols/affinity/circle/red/printer.svg
@@ -1,97 +1,7 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/red/rj45.svg b/gns3server/symbols/affinity/circle/red/rj45.svg
index bbbc6881..369753aa 100644
--- a/gns3server/symbols/affinity/circle/red/rj45.svg
+++ b/gns3server/symbols/affinity/circle/red/rj45.svg
@@ -1,69 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/red/router.svg b/gns3server/symbols/affinity/circle/red/router.svg
index a14f8ffb..e54d19b7 100644
--- a/gns3server/symbols/affinity/circle/red/router.svg
+++ b/gns3server/symbols/affinity/circle/red/router.svg
@@ -1,35 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/red/router2.svg b/gns3server/symbols/affinity/circle/red/router2.svg
new file mode 100644
index 00000000..7ed109a0
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/red/router2.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/circle/red/router_cloud.svg b/gns3server/symbols/affinity/circle/red/router_cloud.svg
index e0058c1c..31f55bdf 100644
--- a/gns3server/symbols/affinity/circle/red/router_cloud.svg
+++ b/gns3server/symbols/affinity/circle/red/router_cloud.svg
@@ -1,43 +1,6 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/red/satellite.svg b/gns3server/symbols/affinity/circle/red/satellite.svg
index 8aa56989..b53207cd 100644
--- a/gns3server/symbols/affinity/circle/red/satellite.svg
+++ b/gns3server/symbols/affinity/circle/red/satellite.svg
@@ -1,40 +1,6 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/red/satellite_dish.svg b/gns3server/symbols/affinity/circle/red/satellite_dish.svg
index 15b5def9..ac5660af 100644
--- a/gns3server/symbols/affinity/circle/red/satellite_dish.svg
+++ b/gns3server/symbols/affinity/circle/red/satellite_dish.svg
@@ -1,43 +1,7 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/red/scull.svg b/gns3server/symbols/affinity/circle/red/scull.svg
index a500ea83..f1c069e6 100644
--- a/gns3server/symbols/affinity/circle/red/scull.svg
+++ b/gns3server/symbols/affinity/circle/red/scull.svg
@@ -1,50 +1,8 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/red/server-cluster.svg b/gns3server/symbols/affinity/circle/red/server-cluster.svg
deleted file mode 100644
index 5c9626d8..00000000
--- a/gns3server/symbols/affinity/circle/red/server-cluster.svg
+++ /dev/null
@@ -1,48 +0,0 @@
-
-
diff --git a/gns3server/symbols/affinity/circle/red/server.svg b/gns3server/symbols/affinity/circle/red/server.svg
index d7a6e88c..fe5a5fe2 100644
--- a/gns3server/symbols/affinity/circle/red/server.svg
+++ b/gns3server/symbols/affinity/circle/red/server.svg
@@ -1,34 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/red/server_cluster.svg b/gns3server/symbols/affinity/circle/red/server_cluster.svg
new file mode 100644
index 00000000..17e279c6
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/red/server_cluster.svg
@@ -0,0 +1,7 @@
+
diff --git a/gns3server/symbols/affinity/circle/red/shield.svg b/gns3server/symbols/affinity/circle/red/shield.svg
new file mode 100644
index 00000000..41c7b9dd
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/red/shield.svg
@@ -0,0 +1,7 @@
+
diff --git a/gns3server/symbols/affinity/circle/red/statistics.svg b/gns3server/symbols/affinity/circle/red/statistics.svg
index 4a21f1b7..6b279fb7 100644
--- a/gns3server/symbols/affinity/circle/red/statistics.svg
+++ b/gns3server/symbols/affinity/circle/red/statistics.svg
@@ -1,47 +1,7 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/red/storage.svg b/gns3server/symbols/affinity/circle/red/storage.svg
index 71a1fca1..eafd4700 100644
--- a/gns3server/symbols/affinity/circle/red/storage.svg
+++ b/gns3server/symbols/affinity/circle/red/storage.svg
@@ -1,34 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/red/switch.svg b/gns3server/symbols/affinity/circle/red/switch.svg
index 72984af3..842d82dc 100644
--- a/gns3server/symbols/affinity/circle/red/switch.svg
+++ b/gns3server/symbols/affinity/circle/red/switch.svg
@@ -1,50 +1,8 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/red/switch_multilayer.svg b/gns3server/symbols/affinity/circle/red/switch_multilayer.svg
index 1202d9ca..da99dff0 100644
--- a/gns3server/symbols/affinity/circle/red/switch_multilayer.svg
+++ b/gns3server/symbols/affinity/circle/red/switch_multilayer.svg
@@ -1,42 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/red/tablet.svg b/gns3server/symbols/affinity/circle/red/tablet.svg
index a5e628b9..72d155ca 100644
--- a/gns3server/symbols/affinity/circle/red/tablet.svg
+++ b/gns3server/symbols/affinity/circle/red/tablet.svg
@@ -1,47 +1,11 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/red/template.svg b/gns3server/symbols/affinity/circle/red/template.svg
new file mode 100644
index 00000000..e1df555b
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/red/template.svg
@@ -0,0 +1,4 @@
+
diff --git a/gns3server/symbols/affinity/circle/red/tree.svg b/gns3server/symbols/affinity/circle/red/tree.svg
index 97ef87e7..af59a42f 100644
--- a/gns3server/symbols/affinity/circle/red/tree.svg
+++ b/gns3server/symbols/affinity/circle/red/tree.svg
@@ -1,34 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/red/user.svg b/gns3server/symbols/affinity/circle/red/user.svg
index a7ac691b..0669a6b5 100644
--- a/gns3server/symbols/affinity/circle/red/user.svg
+++ b/gns3server/symbols/affinity/circle/red/user.svg
@@ -1,36 +1,7 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/red/virtualbox.svg b/gns3server/symbols/affinity/circle/red/virtualbox.svg
index 008a7794..0e0437e0 100644
--- a/gns3server/symbols/affinity/circle/red/virtualbox.svg
+++ b/gns3server/symbols/affinity/circle/red/virtualbox.svg
@@ -1,60 +1,7 @@
-
-
\ No newline at end of file
+
diff --git a/gns3server/symbols/affinity/circle/red/vm.svg b/gns3server/symbols/affinity/circle/red/vm.svg
index 60bccee1..53cc3d3d 100644
--- a/gns3server/symbols/affinity/circle/red/vm.svg
+++ b/gns3server/symbols/affinity/circle/red/vm.svg
@@ -1,41 +1,7 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/red/vmware.svg b/gns3server/symbols/affinity/circle/red/vmware.svg
index ac929894..893096e1 100644
--- a/gns3server/symbols/affinity/circle/red/vmware.svg
+++ b/gns3server/symbols/affinity/circle/red/vmware.svg
@@ -1,61 +1,7 @@
-
-
\ No newline at end of file
+
diff --git a/gns3server/symbols/affinity/circle/red/vrf.svg b/gns3server/symbols/affinity/circle/red/vrf.svg
new file mode 100644
index 00000000..f086dc61
--- /dev/null
+++ b/gns3server/symbols/affinity/circle/red/vrf.svg
@@ -0,0 +1,8 @@
+
diff --git a/gns3server/symbols/affinity/circle/red/wifi.svg b/gns3server/symbols/affinity/circle/red/wifi.svg
index ce1b0bf8..41ead64b 100644
--- a/gns3server/symbols/affinity/circle/red/wifi.svg
+++ b/gns3server/symbols/affinity/circle/red/wifi.svg
@@ -1,62 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/red/wlc.svg b/gns3server/symbols/affinity/circle/red/wlc.svg
index 3062f88c..96f37fbd 100644
--- a/gns3server/symbols/affinity/circle/red/wlc.svg
+++ b/gns3server/symbols/affinity/circle/red/wlc.svg
@@ -1,35 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/circle/red/xml.svg b/gns3server/symbols/affinity/circle/red/xml.svg
index 9444bd82..a5628b57 100644
--- a/gns3server/symbols/affinity/circle/red/xml.svg
+++ b/gns3server/symbols/affinity/circle/red/xml.svg
@@ -1,45 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/blue/atm.svg b/gns3server/symbols/affinity/square/blue/atm.svg
index c03f2c0d..6376f9f4 100644
--- a/gns3server/symbols/affinity/square/blue/atm.svg
+++ b/gns3server/symbols/affinity/square/blue/atm.svg
@@ -1,55 +1,5 @@
-
-
\ No newline at end of file
+
diff --git a/gns3server/symbols/affinity/square/blue/bug.svg b/gns3server/symbols/affinity/square/blue/bug.svg
new file mode 100644
index 00000000..a4c52bc6
--- /dev/null
+++ b/gns3server/symbols/affinity/square/blue/bug.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/blue/camera.svg b/gns3server/symbols/affinity/square/blue/camera.svg
index 57a3b4d6..339c9cd1 100644
--- a/gns3server/symbols/affinity/square/blue/camera.svg
+++ b/gns3server/symbols/affinity/square/blue/camera.svg
@@ -1,50 +1,12 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/blue/camera_dome.svg b/gns3server/symbols/affinity/square/blue/camera_dome.svg
index 6fe10332..94fbdbdd 100644
--- a/gns3server/symbols/affinity/square/blue/camera_dome.svg
+++ b/gns3server/symbols/affinity/square/blue/camera_dome.svg
@@ -1,36 +1,8 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/blue/client.svg b/gns3server/symbols/affinity/square/blue/client.svg
index 831d0561..8c637bc2 100644
--- a/gns3server/symbols/affinity/square/blue/client.svg
+++ b/gns3server/symbols/affinity/square/blue/client.svg
@@ -1,41 +1,8 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/blue/client_vm.svg b/gns3server/symbols/affinity/square/blue/client_vm.svg
index 83b20fa1..5b7e2edc 100644
--- a/gns3server/symbols/affinity/square/blue/client_vm.svg
+++ b/gns3server/symbols/affinity/square/blue/client_vm.svg
@@ -1,44 +1,8 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/blue/cloud.svg b/gns3server/symbols/affinity/square/blue/cloud.svg
index 1625c1a3..52063fc7 100644
--- a/gns3server/symbols/affinity/square/blue/cloud.svg
+++ b/gns3server/symbols/affinity/square/blue/cloud.svg
@@ -1,57 +1,12 @@
-
-
\ No newline at end of file
+
diff --git a/gns3server/symbols/affinity/square/blue/coffee.svg b/gns3server/symbols/affinity/square/blue/coffee.svg
new file mode 100644
index 00000000..51075960
--- /dev/null
+++ b/gns3server/symbols/affinity/square/blue/coffee.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/blue/cog.svg b/gns3server/symbols/affinity/square/blue/cog.svg
index e187e6fb..047b05ce 100644
--- a/gns3server/symbols/affinity/square/blue/cog.svg
+++ b/gns3server/symbols/affinity/square/blue/cog.svg
@@ -1,40 +1,8 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/blue/communications.svg b/gns3server/symbols/affinity/square/blue/communications.svg
index a2564240..a8e14976 100644
--- a/gns3server/symbols/affinity/square/blue/communications.svg
+++ b/gns3server/symbols/affinity/square/blue/communications.svg
@@ -1,38 +1,8 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/blue/conversation.svg b/gns3server/symbols/affinity/square/blue/conversation.svg
index c9e7e026..2b14bbce 100644
--- a/gns3server/symbols/affinity/square/blue/conversation.svg
+++ b/gns3server/symbols/affinity/square/blue/conversation.svg
@@ -1,45 +1,12 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/blue/dna.svg b/gns3server/symbols/affinity/square/blue/dna.svg
new file mode 100644
index 00000000..97f9c303
--- /dev/null
+++ b/gns3server/symbols/affinity/square/blue/dna.svg
@@ -0,0 +1,7 @@
+
diff --git a/gns3server/symbols/affinity/square/blue/dna2.svg b/gns3server/symbols/affinity/square/blue/dna2.svg
new file mode 100644
index 00000000..9f1c462f
--- /dev/null
+++ b/gns3server/symbols/affinity/square/blue/dna2.svg
@@ -0,0 +1,7 @@
+
diff --git a/gns3server/symbols/affinity/square/blue/docker.svg b/gns3server/symbols/affinity/square/blue/docker.svg
index 3e2fd6bc..21c2f203 100644
--- a/gns3server/symbols/affinity/square/blue/docker.svg
+++ b/gns3server/symbols/affinity/square/blue/docker.svg
@@ -1,106 +1,11 @@
-
-
\ No newline at end of file
+
diff --git a/gns3server/symbols/affinity/square/blue/dslam.svg b/gns3server/symbols/affinity/square/blue/dslam.svg
index 4da49336..077ffd06 100644
--- a/gns3server/symbols/affinity/square/blue/dslam.svg
+++ b/gns3server/symbols/affinity/square/blue/dslam.svg
@@ -1,39 +1,8 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/blue/factory.svg b/gns3server/symbols/affinity/square/blue/factory.svg
new file mode 100644
index 00000000..a0a9c1f2
--- /dev/null
+++ b/gns3server/symbols/affinity/square/blue/factory.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/blue/fingerprint.svg b/gns3server/symbols/affinity/square/blue/fingerprint.svg
index d8127f75..ecc5fcc6 100644
--- a/gns3server/symbols/affinity/square/blue/fingerprint.svg
+++ b/gns3server/symbols/affinity/square/blue/fingerprint.svg
@@ -1,39 +1,9 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/blue/firewall.svg b/gns3server/symbols/affinity/square/blue/firewall.svg
index ca442a52..433eefd0 100644
--- a/gns3server/symbols/affinity/square/blue/firewall.svg
+++ b/gns3server/symbols/affinity/square/blue/firewall.svg
@@ -1,38 +1,7 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/blue/firewall3.svg b/gns3server/symbols/affinity/square/blue/firewall3.svg
index bfbfe58e..b6d88cda 100644
--- a/gns3server/symbols/affinity/square/blue/firewall3.svg
+++ b/gns3server/symbols/affinity/square/blue/firewall3.svg
@@ -1,38 +1,6 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/blue/globe.svg b/gns3server/symbols/affinity/square/blue/globe.svg
new file mode 100644
index 00000000..6dd03cbd
--- /dev/null
+++ b/gns3server/symbols/affinity/square/blue/globe.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/blue/grid.svg b/gns3server/symbols/affinity/square/blue/grid.svg
index 707a1467..de9073d3 100644
--- a/gns3server/symbols/affinity/square/blue/grid.svg
+++ b/gns3server/symbols/affinity/square/blue/grid.svg
@@ -1,34 +1,7 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/blue/grid2.svg b/gns3server/symbols/affinity/square/blue/grid2.svg
index 1e6de935..09e3f603 100644
--- a/gns3server/symbols/affinity/square/blue/grid2.svg
+++ b/gns3server/symbols/affinity/square/blue/grid2.svg
@@ -1,34 +1,7 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/blue/health.svg b/gns3server/symbols/affinity/square/blue/health.svg
new file mode 100644
index 00000000..78dae838
--- /dev/null
+++ b/gns3server/symbols/affinity/square/blue/health.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/blue/house.svg b/gns3server/symbols/affinity/square/blue/house.svg
new file mode 100644
index 00000000..5ac25b79
--- /dev/null
+++ b/gns3server/symbols/affinity/square/blue/house.svg
@@ -0,0 +1,6 @@
+
diff --git a/gns3server/symbols/affinity/square/blue/hub.svg b/gns3server/symbols/affinity/square/blue/hub.svg
index fa00a60c..e65dcfd0 100644
--- a/gns3server/symbols/affinity/square/blue/hub.svg
+++ b/gns3server/symbols/affinity/square/blue/hub.svg
@@ -1,33 +1,7 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/blue/inspect.svg b/gns3server/symbols/affinity/square/blue/inspect.svg
new file mode 100644
index 00000000..abf381b8
--- /dev/null
+++ b/gns3server/symbols/affinity/square/blue/inspect.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/blue/inspect2.svg b/gns3server/symbols/affinity/square/blue/inspect2.svg
index a2390b18..c763e6c6 100644
--- a/gns3server/symbols/affinity/square/blue/inspect2.svg
+++ b/gns3server/symbols/affinity/square/blue/inspect2.svg
@@ -1,44 +1,9 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/blue/inspect3.svg b/gns3server/symbols/affinity/square/blue/inspect3.svg
deleted file mode 100644
index ed4b10de..00000000
--- a/gns3server/symbols/affinity/square/blue/inspect3.svg
+++ /dev/null
@@ -1,43 +0,0 @@
-
-
diff --git a/gns3server/symbols/affinity/square/blue/interconnect.svg b/gns3server/symbols/affinity/square/blue/interconnect.svg
index c6c6a2b5..6ff75962 100644
--- a/gns3server/symbols/affinity/square/blue/interconnect.svg
+++ b/gns3server/symbols/affinity/square/blue/interconnect.svg
@@ -1,37 +1,8 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/blue/ip_phone.svg b/gns3server/symbols/affinity/square/blue/ip_phone.svg
new file mode 100644
index 00000000..702776d0
--- /dev/null
+++ b/gns3server/symbols/affinity/square/blue/ip_phone.svg
@@ -0,0 +1,23 @@
+
diff --git a/gns3server/symbols/affinity/square/blue/isdn.svg b/gns3server/symbols/affinity/square/blue/isdn.svg
index 65c6b707..c57044e4 100644
--- a/gns3server/symbols/affinity/square/blue/isdn.svg
+++ b/gns3server/symbols/affinity/square/blue/isdn.svg
@@ -1,33 +1,7 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/blue/laptop.svg b/gns3server/symbols/affinity/square/blue/laptop.svg
new file mode 100644
index 00000000..87c833b2
--- /dev/null
+++ b/gns3server/symbols/affinity/square/blue/laptop.svg
@@ -0,0 +1,8 @@
+
diff --git a/gns3server/symbols/affinity/square/blue/ldap.svg b/gns3server/symbols/affinity/square/blue/ldap.svg
index 027b58ca..eefefaa1 100644
--- a/gns3server/symbols/affinity/square/blue/ldap.svg
+++ b/gns3server/symbols/affinity/square/blue/ldap.svg
@@ -1,31 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/blue/light_bulb.svg b/gns3server/symbols/affinity/square/blue/light_bulb.svg
index 785648b8..13e0aaf3 100644
--- a/gns3server/symbols/affinity/square/blue/light_bulb.svg
+++ b/gns3server/symbols/affinity/square/blue/light_bulb.svg
@@ -1,63 +1,11 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/blue/link.svg b/gns3server/symbols/affinity/square/blue/link.svg
index 3c7d4a23..8b3c2819 100644
--- a/gns3server/symbols/affinity/square/blue/link.svg
+++ b/gns3server/symbols/affinity/square/blue/link.svg
@@ -1,31 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/blue/loadbalancer.svg b/gns3server/symbols/affinity/square/blue/loadbalancer.svg
new file mode 100644
index 00000000..142a91e6
--- /dev/null
+++ b/gns3server/symbols/affinity/square/blue/loadbalancer.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/blue/nas.svg b/gns3server/symbols/affinity/square/blue/nas.svg
index 8edcb408..8b9233bc 100644
--- a/gns3server/symbols/affinity/square/blue/nas.svg
+++ b/gns3server/symbols/affinity/square/blue/nas.svg
@@ -1,33 +1,7 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/blue/office.svg b/gns3server/symbols/affinity/square/blue/office.svg
new file mode 100644
index 00000000..51343200
--- /dev/null
+++ b/gns3server/symbols/affinity/square/blue/office.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/blue/optical.svg b/gns3server/symbols/affinity/square/blue/optical.svg
new file mode 100644
index 00000000..7ed27411
--- /dev/null
+++ b/gns3server/symbols/affinity/square/blue/optical.svg
@@ -0,0 +1,8 @@
+
diff --git a/gns3server/symbols/affinity/square/blue/phone_cloud.svg b/gns3server/symbols/affinity/square/blue/phone_cloud.svg
new file mode 100644
index 00000000..4996273b
--- /dev/null
+++ b/gns3server/symbols/affinity/square/blue/phone_cloud.svg
@@ -0,0 +1,8 @@
+
diff --git a/gns3server/symbols/affinity/square/blue/phone_old.svg b/gns3server/symbols/affinity/square/blue/phone_old.svg
new file mode 100644
index 00000000..037d3094
--- /dev/null
+++ b/gns3server/symbols/affinity/square/blue/phone_old.svg
@@ -0,0 +1,7 @@
+
diff --git a/gns3server/symbols/affinity/square/blue/phone_wireless.svg b/gns3server/symbols/affinity/square/blue/phone_wireless.svg
new file mode 100644
index 00000000..6124446d
--- /dev/null
+++ b/gns3server/symbols/affinity/square/blue/phone_wireless.svg
@@ -0,0 +1,10 @@
+
diff --git a/gns3server/symbols/affinity/square/blue/pinpoint.svg b/gns3server/symbols/affinity/square/blue/pinpoint.svg
index 2883f25f..f78859d8 100644
--- a/gns3server/symbols/affinity/square/blue/pinpoint.svg
+++ b/gns3server/symbols/affinity/square/blue/pinpoint.svg
@@ -1,49 +1,9 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/blue/printer.svg b/gns3server/symbols/affinity/square/blue/printer.svg
index 9f37660a..ca32544f 100644
--- a/gns3server/symbols/affinity/square/blue/printer.svg
+++ b/gns3server/symbols/affinity/square/blue/printer.svg
@@ -1,95 +1,27 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/blue/rj45.svg b/gns3server/symbols/affinity/square/blue/rj45.svg
index e0467863..ef660791 100644
--- a/gns3server/symbols/affinity/square/blue/rj45.svg
+++ b/gns3server/symbols/affinity/square/blue/rj45.svg
@@ -1,66 +1,14 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/blue/router.svg b/gns3server/symbols/affinity/square/blue/router.svg
index 5e331a0f..01d44c18 100644
--- a/gns3server/symbols/affinity/square/blue/router.svg
+++ b/gns3server/symbols/affinity/square/blue/router.svg
@@ -1,33 +1,7 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/blue/router2.svg b/gns3server/symbols/affinity/square/blue/router2.svg
new file mode 100644
index 00000000..69cb857d
--- /dev/null
+++ b/gns3server/symbols/affinity/square/blue/router2.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/blue/router_cloud.svg b/gns3server/symbols/affinity/square/blue/router_cloud.svg
index 2efb4854..2201fb0f 100644
--- a/gns3server/symbols/affinity/square/blue/router_cloud.svg
+++ b/gns3server/symbols/affinity/square/blue/router_cloud.svg
@@ -1,39 +1,7 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/blue/satellite.svg b/gns3server/symbols/affinity/square/blue/satellite.svg
index c9d9995a..bf3816b6 100644
--- a/gns3server/symbols/affinity/square/blue/satellite.svg
+++ b/gns3server/symbols/affinity/square/blue/satellite.svg
@@ -1,38 +1,8 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/blue/satellite_dish.svg b/gns3server/symbols/affinity/square/blue/satellite_dish.svg
index ce8d95f5..f5a81a37 100644
--- a/gns3server/symbols/affinity/square/blue/satellite_dish.svg
+++ b/gns3server/symbols/affinity/square/blue/satellite_dish.svg
@@ -1,39 +1,7 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/blue/scull.svg b/gns3server/symbols/affinity/square/blue/scull.svg
index 3ec598e3..ea9120b7 100644
--- a/gns3server/symbols/affinity/square/blue/scull.svg
+++ b/gns3server/symbols/affinity/square/blue/scull.svg
@@ -1,47 +1,10 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/blue/server-cluster.svg b/gns3server/symbols/affinity/square/blue/server-cluster.svg
deleted file mode 100644
index 85c04086..00000000
--- a/gns3server/symbols/affinity/square/blue/server-cluster.svg
+++ /dev/null
@@ -1,44 +0,0 @@
-
-
diff --git a/gns3server/symbols/affinity/square/blue/server.svg b/gns3server/symbols/affinity/square/blue/server.svg
index daa38df7..93e23fae 100644
--- a/gns3server/symbols/affinity/square/blue/server.svg
+++ b/gns3server/symbols/affinity/square/blue/server.svg
@@ -1,31 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/blue/server_cluster.svg b/gns3server/symbols/affinity/square/blue/server_cluster.svg
new file mode 100644
index 00000000..b24db4d4
--- /dev/null
+++ b/gns3server/symbols/affinity/square/blue/server_cluster.svg
@@ -0,0 +1,9 @@
+
diff --git a/gns3server/symbols/affinity/square/blue/shield.svg b/gns3server/symbols/affinity/square/blue/shield.svg
new file mode 100644
index 00000000..ffc683f9
--- /dev/null
+++ b/gns3server/symbols/affinity/square/blue/shield.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/blue/square.svg b/gns3server/symbols/affinity/square/blue/square.svg
deleted file mode 100644
index 252869b0..00000000
--- a/gns3server/symbols/affinity/square/blue/square.svg
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
diff --git a/gns3server/symbols/affinity/square/blue/statistics.svg b/gns3server/symbols/affinity/square/blue/statistics.svg
index fb3cd8ea..c6ea68aa 100644
--- a/gns3server/symbols/affinity/square/blue/statistics.svg
+++ b/gns3server/symbols/affinity/square/blue/statistics.svg
@@ -1,41 +1,7 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/blue/storage.svg b/gns3server/symbols/affinity/square/blue/storage.svg
index 4aa57fa7..1abe53bb 100644
--- a/gns3server/symbols/affinity/square/blue/storage.svg
+++ b/gns3server/symbols/affinity/square/blue/storage.svg
@@ -1,31 +1,7 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/blue/switch.svg b/gns3server/symbols/affinity/square/blue/switch.svg
index c6402d68..2892340f 100644
--- a/gns3server/symbols/affinity/square/blue/switch.svg
+++ b/gns3server/symbols/affinity/square/blue/switch.svg
@@ -1,46 +1,10 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/blue/switch_multilayer.svg b/gns3server/symbols/affinity/square/blue/switch_multilayer.svg
index e6adbb40..909f849b 100644
--- a/gns3server/symbols/affinity/square/blue/switch_multilayer.svg
+++ b/gns3server/symbols/affinity/square/blue/switch_multilayer.svg
@@ -1,46 +1,8 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/blue/tablet.svg b/gns3server/symbols/affinity/square/blue/tablet.svg
index 8cb60a87..e0dd6b5d 100644
--- a/gns3server/symbols/affinity/square/blue/tablet.svg
+++ b/gns3server/symbols/affinity/square/blue/tablet.svg
@@ -1,43 +1,9 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/blue/template.svg b/gns3server/symbols/affinity/square/blue/template.svg
new file mode 100644
index 00000000..0df271fc
--- /dev/null
+++ b/gns3server/symbols/affinity/square/blue/template.svg
@@ -0,0 +1,4 @@
+
diff --git a/gns3server/symbols/affinity/square/blue/tree.svg b/gns3server/symbols/affinity/square/blue/tree.svg
index 45dca30f..df07b2ab 100644
--- a/gns3server/symbols/affinity/square/blue/tree.svg
+++ b/gns3server/symbols/affinity/square/blue/tree.svg
@@ -1,31 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/blue/user.svg b/gns3server/symbols/affinity/square/blue/user.svg
index 66a94d1d..c82973ea 100644
--- a/gns3server/symbols/affinity/square/blue/user.svg
+++ b/gns3server/symbols/affinity/square/blue/user.svg
@@ -1,33 +1,7 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/blue/virtualbox.svg b/gns3server/symbols/affinity/square/blue/virtualbox.svg
index 73ca6528..c2837bf5 100644
--- a/gns3server/symbols/affinity/square/blue/virtualbox.svg
+++ b/gns3server/symbols/affinity/square/blue/virtualbox.svg
@@ -1,58 +1,7 @@
-
-
\ No newline at end of file
+
diff --git a/gns3server/symbols/affinity/square/blue/vm.svg b/gns3server/symbols/affinity/square/blue/vm.svg
index 7a9c0646..a8a29521 100644
--- a/gns3server/symbols/affinity/square/blue/vm.svg
+++ b/gns3server/symbols/affinity/square/blue/vm.svg
@@ -1,39 +1,7 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/blue/vmware.svg b/gns3server/symbols/affinity/square/blue/vmware.svg
index 025d0d73..71193339 100644
--- a/gns3server/symbols/affinity/square/blue/vmware.svg
+++ b/gns3server/symbols/affinity/square/blue/vmware.svg
@@ -1,58 +1,7 @@
-
-
\ No newline at end of file
+
diff --git a/gns3server/symbols/affinity/square/blue/vrf.svg b/gns3server/symbols/affinity/square/blue/vrf.svg
new file mode 100644
index 00000000..f9cf9e5f
--- /dev/null
+++ b/gns3server/symbols/affinity/square/blue/vrf.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/blue/wifi.svg b/gns3server/symbols/affinity/square/blue/wifi.svg
index 484e0ea9..e188cf1f 100644
--- a/gns3server/symbols/affinity/square/blue/wifi.svg
+++ b/gns3server/symbols/affinity/square/blue/wifi.svg
@@ -1,60 +1,13 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/blue/wlc.svg b/gns3server/symbols/affinity/square/blue/wlc.svg
index 4420984f..628e3f2e 100644
--- a/gns3server/symbols/affinity/square/blue/wlc.svg
+++ b/gns3server/symbols/affinity/square/blue/wlc.svg
@@ -1,33 +1,7 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/blue/xml.svg b/gns3server/symbols/affinity/square/blue/xml.svg
index 07c43180..e69b3223 100644
--- a/gns3server/symbols/affinity/square/blue/xml.svg
+++ b/gns3server/symbols/affinity/square/blue/xml.svg
@@ -1,42 +1,10 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/gray/atm.svg b/gns3server/symbols/affinity/square/gray/atm.svg
index 9546cb67..2a4888c2 100644
--- a/gns3server/symbols/affinity/square/gray/atm.svg
+++ b/gns3server/symbols/affinity/square/gray/atm.svg
@@ -1,55 +1,5 @@
-
-
\ No newline at end of file
+
diff --git a/gns3server/symbols/affinity/square/gray/bug.svg b/gns3server/symbols/affinity/square/gray/bug.svg
new file mode 100644
index 00000000..64b52043
--- /dev/null
+++ b/gns3server/symbols/affinity/square/gray/bug.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/gray/camera.svg b/gns3server/symbols/affinity/square/gray/camera.svg
index e0392776..8a7f2c86 100644
--- a/gns3server/symbols/affinity/square/gray/camera.svg
+++ b/gns3server/symbols/affinity/square/gray/camera.svg
@@ -1,50 +1,12 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/gray/camera_dome.svg b/gns3server/symbols/affinity/square/gray/camera_dome.svg
index 88df01b3..5b53915b 100644
--- a/gns3server/symbols/affinity/square/gray/camera_dome.svg
+++ b/gns3server/symbols/affinity/square/gray/camera_dome.svg
@@ -1,36 +1,8 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/gray/client.svg b/gns3server/symbols/affinity/square/gray/client.svg
index 691cadc2..d85e5279 100644
--- a/gns3server/symbols/affinity/square/gray/client.svg
+++ b/gns3server/symbols/affinity/square/gray/client.svg
@@ -1,41 +1,8 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/gray/client_vm.svg b/gns3server/symbols/affinity/square/gray/client_vm.svg
index 56325050..2de2d7da 100644
--- a/gns3server/symbols/affinity/square/gray/client_vm.svg
+++ b/gns3server/symbols/affinity/square/gray/client_vm.svg
@@ -1,44 +1,8 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/gray/cloud.svg b/gns3server/symbols/affinity/square/gray/cloud.svg
index f2960e30..293424b0 100644
--- a/gns3server/symbols/affinity/square/gray/cloud.svg
+++ b/gns3server/symbols/affinity/square/gray/cloud.svg
@@ -1,57 +1,24 @@
-
-
\ No newline at end of file
+
diff --git a/gns3server/symbols/affinity/square/gray/coffee.svg b/gns3server/symbols/affinity/square/gray/coffee.svg
new file mode 100644
index 00000000..2a8f5d64
--- /dev/null
+++ b/gns3server/symbols/affinity/square/gray/coffee.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/gray/cog.svg b/gns3server/symbols/affinity/square/gray/cog.svg
index bcc6dfc3..81bbe213 100644
--- a/gns3server/symbols/affinity/square/gray/cog.svg
+++ b/gns3server/symbols/affinity/square/gray/cog.svg
@@ -1,40 +1,8 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/gray/communications.svg b/gns3server/symbols/affinity/square/gray/communications.svg
index 9bcddbe0..bebd6878 100644
--- a/gns3server/symbols/affinity/square/gray/communications.svg
+++ b/gns3server/symbols/affinity/square/gray/communications.svg
@@ -1,38 +1,8 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/gray/conversation.svg b/gns3server/symbols/affinity/square/gray/conversation.svg
index 58a3ca03..1c8b47a6 100644
--- a/gns3server/symbols/affinity/square/gray/conversation.svg
+++ b/gns3server/symbols/affinity/square/gray/conversation.svg
@@ -1,45 +1,12 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/gray/dna.svg b/gns3server/symbols/affinity/square/gray/dna.svg
new file mode 100644
index 00000000..51b52261
--- /dev/null
+++ b/gns3server/symbols/affinity/square/gray/dna.svg
@@ -0,0 +1,7 @@
+
diff --git a/gns3server/symbols/affinity/square/gray/dna2.svg b/gns3server/symbols/affinity/square/gray/dna2.svg
new file mode 100644
index 00000000..536ad925
--- /dev/null
+++ b/gns3server/symbols/affinity/square/gray/dna2.svg
@@ -0,0 +1,7 @@
+
diff --git a/gns3server/symbols/affinity/square/gray/docker.svg b/gns3server/symbols/affinity/square/gray/docker.svg
index c848f641..438efc7b 100644
--- a/gns3server/symbols/affinity/square/gray/docker.svg
+++ b/gns3server/symbols/affinity/square/gray/docker.svg
@@ -1,106 +1,11 @@
-
-
\ No newline at end of file
+
diff --git a/gns3server/symbols/affinity/square/gray/dslam.svg b/gns3server/symbols/affinity/square/gray/dslam.svg
index de0f4c40..26fb6dc4 100644
--- a/gns3server/symbols/affinity/square/gray/dslam.svg
+++ b/gns3server/symbols/affinity/square/gray/dslam.svg
@@ -1,39 +1,8 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/gray/factory.svg b/gns3server/symbols/affinity/square/gray/factory.svg
new file mode 100644
index 00000000..0dc9a9f1
--- /dev/null
+++ b/gns3server/symbols/affinity/square/gray/factory.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/gray/fingerprint.svg b/gns3server/symbols/affinity/square/gray/fingerprint.svg
index 2ca9dc5e..308d0ddf 100644
--- a/gns3server/symbols/affinity/square/gray/fingerprint.svg
+++ b/gns3server/symbols/affinity/square/gray/fingerprint.svg
@@ -1,39 +1,9 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/gray/firewall.svg b/gns3server/symbols/affinity/square/gray/firewall.svg
index 0e12ee4c..5073aeee 100644
--- a/gns3server/symbols/affinity/square/gray/firewall.svg
+++ b/gns3server/symbols/affinity/square/gray/firewall.svg
@@ -1,38 +1,7 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/gray/firewall3.svg b/gns3server/symbols/affinity/square/gray/firewall3.svg
index 590c3f5d..8dd36417 100644
--- a/gns3server/symbols/affinity/square/gray/firewall3.svg
+++ b/gns3server/symbols/affinity/square/gray/firewall3.svg
@@ -1,38 +1,6 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/gray/globe.svg b/gns3server/symbols/affinity/square/gray/globe.svg
new file mode 100644
index 00000000..c2622b2d
--- /dev/null
+++ b/gns3server/symbols/affinity/square/gray/globe.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/gray/grid.svg b/gns3server/symbols/affinity/square/gray/grid.svg
index bfdbc27a..c28080ea 100644
--- a/gns3server/symbols/affinity/square/gray/grid.svg
+++ b/gns3server/symbols/affinity/square/gray/grid.svg
@@ -1,34 +1,7 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/gray/grid2.svg b/gns3server/symbols/affinity/square/gray/grid2.svg
index e3e0b720..583e6a0a 100644
--- a/gns3server/symbols/affinity/square/gray/grid2.svg
+++ b/gns3server/symbols/affinity/square/gray/grid2.svg
@@ -1,34 +1,7 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/gray/health.svg b/gns3server/symbols/affinity/square/gray/health.svg
new file mode 100644
index 00000000..29b85647
--- /dev/null
+++ b/gns3server/symbols/affinity/square/gray/health.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/gray/house.svg b/gns3server/symbols/affinity/square/gray/house.svg
new file mode 100644
index 00000000..bb3a36d6
--- /dev/null
+++ b/gns3server/symbols/affinity/square/gray/house.svg
@@ -0,0 +1,6 @@
+
diff --git a/gns3server/symbols/affinity/square/gray/hub.svg b/gns3server/symbols/affinity/square/gray/hub.svg
index de51198c..430f8ade 100644
--- a/gns3server/symbols/affinity/square/gray/hub.svg
+++ b/gns3server/symbols/affinity/square/gray/hub.svg
@@ -1,33 +1,7 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/gray/inspect.svg b/gns3server/symbols/affinity/square/gray/inspect.svg
new file mode 100644
index 00000000..6e7f651d
--- /dev/null
+++ b/gns3server/symbols/affinity/square/gray/inspect.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/gray/inspect2.svg b/gns3server/symbols/affinity/square/gray/inspect2.svg
index e1989a3a..9567cf49 100644
--- a/gns3server/symbols/affinity/square/gray/inspect2.svg
+++ b/gns3server/symbols/affinity/square/gray/inspect2.svg
@@ -1,44 +1,9 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/gray/inspect3.svg b/gns3server/symbols/affinity/square/gray/inspect3.svg
deleted file mode 100644
index 93559b1b..00000000
--- a/gns3server/symbols/affinity/square/gray/inspect3.svg
+++ /dev/null
@@ -1,43 +0,0 @@
-
-
diff --git a/gns3server/symbols/affinity/square/gray/interconnect.svg b/gns3server/symbols/affinity/square/gray/interconnect.svg
index 2abbc2dd..4a9adb3a 100644
--- a/gns3server/symbols/affinity/square/gray/interconnect.svg
+++ b/gns3server/symbols/affinity/square/gray/interconnect.svg
@@ -1,37 +1,8 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/gray/ip_phone.svg b/gns3server/symbols/affinity/square/gray/ip_phone.svg
new file mode 100644
index 00000000..a1e9e7f2
--- /dev/null
+++ b/gns3server/symbols/affinity/square/gray/ip_phone.svg
@@ -0,0 +1,23 @@
+
diff --git a/gns3server/symbols/affinity/square/gray/isdn.svg b/gns3server/symbols/affinity/square/gray/isdn.svg
index 76266679..afd1f014 100644
--- a/gns3server/symbols/affinity/square/gray/isdn.svg
+++ b/gns3server/symbols/affinity/square/gray/isdn.svg
@@ -1,33 +1,7 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/gray/laptop.svg b/gns3server/symbols/affinity/square/gray/laptop.svg
new file mode 100644
index 00000000..69c46113
--- /dev/null
+++ b/gns3server/symbols/affinity/square/gray/laptop.svg
@@ -0,0 +1,8 @@
+
diff --git a/gns3server/symbols/affinity/square/gray/ldap.svg b/gns3server/symbols/affinity/square/gray/ldap.svg
index e8b12465..3f8144e2 100644
--- a/gns3server/symbols/affinity/square/gray/ldap.svg
+++ b/gns3server/symbols/affinity/square/gray/ldap.svg
@@ -1,31 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/gray/light_bulb.svg b/gns3server/symbols/affinity/square/gray/light_bulb.svg
index a6c59612..111bb87f 100644
--- a/gns3server/symbols/affinity/square/gray/light_bulb.svg
+++ b/gns3server/symbols/affinity/square/gray/light_bulb.svg
@@ -1,63 +1,11 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/gray/link.svg b/gns3server/symbols/affinity/square/gray/link.svg
index eb1e3e74..7d775319 100644
--- a/gns3server/symbols/affinity/square/gray/link.svg
+++ b/gns3server/symbols/affinity/square/gray/link.svg
@@ -1,31 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/gray/loadbalancer.svg b/gns3server/symbols/affinity/square/gray/loadbalancer.svg
new file mode 100644
index 00000000..d2049a33
--- /dev/null
+++ b/gns3server/symbols/affinity/square/gray/loadbalancer.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/gray/nas.svg b/gns3server/symbols/affinity/square/gray/nas.svg
index 68188666..bcf0a6a2 100644
--- a/gns3server/symbols/affinity/square/gray/nas.svg
+++ b/gns3server/symbols/affinity/square/gray/nas.svg
@@ -1,33 +1,7 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/gray/office.svg b/gns3server/symbols/affinity/square/gray/office.svg
new file mode 100644
index 00000000..83e3a8ce
--- /dev/null
+++ b/gns3server/symbols/affinity/square/gray/office.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/gray/optical.svg b/gns3server/symbols/affinity/square/gray/optical.svg
new file mode 100644
index 00000000..e18cfd4e
--- /dev/null
+++ b/gns3server/symbols/affinity/square/gray/optical.svg
@@ -0,0 +1,8 @@
+
diff --git a/gns3server/symbols/affinity/square/gray/phone_cloud.svg b/gns3server/symbols/affinity/square/gray/phone_cloud.svg
new file mode 100644
index 00000000..86183738
--- /dev/null
+++ b/gns3server/symbols/affinity/square/gray/phone_cloud.svg
@@ -0,0 +1,8 @@
+
diff --git a/gns3server/symbols/affinity/square/gray/phone_old.svg b/gns3server/symbols/affinity/square/gray/phone_old.svg
new file mode 100644
index 00000000..25469aa5
--- /dev/null
+++ b/gns3server/symbols/affinity/square/gray/phone_old.svg
@@ -0,0 +1,7 @@
+
diff --git a/gns3server/symbols/affinity/square/gray/phone_wireless.svg b/gns3server/symbols/affinity/square/gray/phone_wireless.svg
new file mode 100644
index 00000000..3cbf08c1
--- /dev/null
+++ b/gns3server/symbols/affinity/square/gray/phone_wireless.svg
@@ -0,0 +1,10 @@
+
diff --git a/gns3server/symbols/affinity/square/gray/pinpoint.svg b/gns3server/symbols/affinity/square/gray/pinpoint.svg
index de8538c8..878e8fe2 100644
--- a/gns3server/symbols/affinity/square/gray/pinpoint.svg
+++ b/gns3server/symbols/affinity/square/gray/pinpoint.svg
@@ -1,49 +1,9 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/gray/printer.svg b/gns3server/symbols/affinity/square/gray/printer.svg
index 6802242b..83dea26d 100644
--- a/gns3server/symbols/affinity/square/gray/printer.svg
+++ b/gns3server/symbols/affinity/square/gray/printer.svg
@@ -1,95 +1,27 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/gray/rj45.svg b/gns3server/symbols/affinity/square/gray/rj45.svg
index b9068ec7..d555ce87 100644
--- a/gns3server/symbols/affinity/square/gray/rj45.svg
+++ b/gns3server/symbols/affinity/square/gray/rj45.svg
@@ -1,66 +1,14 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/gray/router.svg b/gns3server/symbols/affinity/square/gray/router.svg
index cf729cb7..c0d7afdb 100644
--- a/gns3server/symbols/affinity/square/gray/router.svg
+++ b/gns3server/symbols/affinity/square/gray/router.svg
@@ -1,33 +1,7 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/gray/router2.svg b/gns3server/symbols/affinity/square/gray/router2.svg
new file mode 100644
index 00000000..3ffc73ca
--- /dev/null
+++ b/gns3server/symbols/affinity/square/gray/router2.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/gray/router_cloud.svg b/gns3server/symbols/affinity/square/gray/router_cloud.svg
index 7be089a1..513cbd15 100644
--- a/gns3server/symbols/affinity/square/gray/router_cloud.svg
+++ b/gns3server/symbols/affinity/square/gray/router_cloud.svg
@@ -1,39 +1,7 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/gray/satellite.svg b/gns3server/symbols/affinity/square/gray/satellite.svg
index 10b0a61c..5e25d1c3 100644
--- a/gns3server/symbols/affinity/square/gray/satellite.svg
+++ b/gns3server/symbols/affinity/square/gray/satellite.svg
@@ -1,38 +1,8 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/gray/satellite_dish.svg b/gns3server/symbols/affinity/square/gray/satellite_dish.svg
index 97a59ce2..556a1afc 100644
--- a/gns3server/symbols/affinity/square/gray/satellite_dish.svg
+++ b/gns3server/symbols/affinity/square/gray/satellite_dish.svg
@@ -1,39 +1,7 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/gray/scull.svg b/gns3server/symbols/affinity/square/gray/scull.svg
index edb21c80..e966cdcd 100644
--- a/gns3server/symbols/affinity/square/gray/scull.svg
+++ b/gns3server/symbols/affinity/square/gray/scull.svg
@@ -1,47 +1,10 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/gray/server-cluster.svg b/gns3server/symbols/affinity/square/gray/server-cluster.svg
deleted file mode 100644
index 4ee47779..00000000
--- a/gns3server/symbols/affinity/square/gray/server-cluster.svg
+++ /dev/null
@@ -1,44 +0,0 @@
-
-
diff --git a/gns3server/symbols/affinity/square/gray/server.svg b/gns3server/symbols/affinity/square/gray/server.svg
index d3e1047f..23abea2a 100644
--- a/gns3server/symbols/affinity/square/gray/server.svg
+++ b/gns3server/symbols/affinity/square/gray/server.svg
@@ -1,31 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/gray/server_cluster.svg b/gns3server/symbols/affinity/square/gray/server_cluster.svg
new file mode 100644
index 00000000..24d7becf
--- /dev/null
+++ b/gns3server/symbols/affinity/square/gray/server_cluster.svg
@@ -0,0 +1,9 @@
+
diff --git a/gns3server/symbols/affinity/square/gray/shield.svg b/gns3server/symbols/affinity/square/gray/shield.svg
new file mode 100644
index 00000000..fcc4831e
--- /dev/null
+++ b/gns3server/symbols/affinity/square/gray/shield.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/gray/square.svg b/gns3server/symbols/affinity/square/gray/square.svg
deleted file mode 100644
index 85150d43..00000000
--- a/gns3server/symbols/affinity/square/gray/square.svg
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
diff --git a/gns3server/symbols/affinity/square/gray/statistics.svg b/gns3server/symbols/affinity/square/gray/statistics.svg
index a43834af..47774392 100644
--- a/gns3server/symbols/affinity/square/gray/statistics.svg
+++ b/gns3server/symbols/affinity/square/gray/statistics.svg
@@ -1,41 +1,7 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/gray/storage.svg b/gns3server/symbols/affinity/square/gray/storage.svg
index 82e49b5d..5ee34828 100644
--- a/gns3server/symbols/affinity/square/gray/storage.svg
+++ b/gns3server/symbols/affinity/square/gray/storage.svg
@@ -1,31 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/gray/switch.svg b/gns3server/symbols/affinity/square/gray/switch.svg
index 773a1860..071ea8c8 100644
--- a/gns3server/symbols/affinity/square/gray/switch.svg
+++ b/gns3server/symbols/affinity/square/gray/switch.svg
@@ -1,46 +1,10 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/gray/switch_multilayer.svg b/gns3server/symbols/affinity/square/gray/switch_multilayer.svg
index c2a59e2c..e4815429 100644
--- a/gns3server/symbols/affinity/square/gray/switch_multilayer.svg
+++ b/gns3server/symbols/affinity/square/gray/switch_multilayer.svg
@@ -1,46 +1,9 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/gray/tablet.svg b/gns3server/symbols/affinity/square/gray/tablet.svg
index 491add8d..945d8277 100644
--- a/gns3server/symbols/affinity/square/gray/tablet.svg
+++ b/gns3server/symbols/affinity/square/gray/tablet.svg
@@ -1,43 +1,9 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/gray/template.svg b/gns3server/symbols/affinity/square/gray/template.svg
new file mode 100644
index 00000000..ed9acfc7
--- /dev/null
+++ b/gns3server/symbols/affinity/square/gray/template.svg
@@ -0,0 +1,4 @@
+
diff --git a/gns3server/symbols/affinity/square/gray/tree.svg b/gns3server/symbols/affinity/square/gray/tree.svg
index 18c342c2..329b99e8 100644
--- a/gns3server/symbols/affinity/square/gray/tree.svg
+++ b/gns3server/symbols/affinity/square/gray/tree.svg
@@ -1,31 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/gray/user.svg b/gns3server/symbols/affinity/square/gray/user.svg
index 34b0952c..e000487f 100644
--- a/gns3server/symbols/affinity/square/gray/user.svg
+++ b/gns3server/symbols/affinity/square/gray/user.svg
@@ -1,33 +1,7 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/gray/virtualbox.svg b/gns3server/symbols/affinity/square/gray/virtualbox.svg
index f035d6b3..92b5b21b 100644
--- a/gns3server/symbols/affinity/square/gray/virtualbox.svg
+++ b/gns3server/symbols/affinity/square/gray/virtualbox.svg
@@ -1,58 +1,7 @@
-
-
\ No newline at end of file
+
diff --git a/gns3server/symbols/affinity/square/gray/vm.svg b/gns3server/symbols/affinity/square/gray/vm.svg
index 5d2403a9..a31fbd4b 100644
--- a/gns3server/symbols/affinity/square/gray/vm.svg
+++ b/gns3server/symbols/affinity/square/gray/vm.svg
@@ -1,39 +1,7 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/gray/vmware.svg b/gns3server/symbols/affinity/square/gray/vmware.svg
index 16f994df..4ce7c8af 100644
--- a/gns3server/symbols/affinity/square/gray/vmware.svg
+++ b/gns3server/symbols/affinity/square/gray/vmware.svg
@@ -1,58 +1,7 @@
-
-
\ No newline at end of file
+
diff --git a/gns3server/symbols/affinity/square/gray/vrf.svg b/gns3server/symbols/affinity/square/gray/vrf.svg
new file mode 100644
index 00000000..bd7d72db
--- /dev/null
+++ b/gns3server/symbols/affinity/square/gray/vrf.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/gray/wifi.svg b/gns3server/symbols/affinity/square/gray/wifi.svg
index 94fc57d5..980feee3 100644
--- a/gns3server/symbols/affinity/square/gray/wifi.svg
+++ b/gns3server/symbols/affinity/square/gray/wifi.svg
@@ -1,60 +1,13 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/gray/wlc.svg b/gns3server/symbols/affinity/square/gray/wlc.svg
index 04cb280c..51800a06 100644
--- a/gns3server/symbols/affinity/square/gray/wlc.svg
+++ b/gns3server/symbols/affinity/square/gray/wlc.svg
@@ -1,33 +1,7 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/gray/xml.svg b/gns3server/symbols/affinity/square/gray/xml.svg
index 34012cfd..b4570543 100644
--- a/gns3server/symbols/affinity/square/gray/xml.svg
+++ b/gns3server/symbols/affinity/square/gray/xml.svg
@@ -1,42 +1,10 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/green/atm.svg b/gns3server/symbols/affinity/square/green/atm.svg
new file mode 100644
index 00000000..12ab2944
--- /dev/null
+++ b/gns3server/symbols/affinity/square/green/atm.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/green/bug.svg b/gns3server/symbols/affinity/square/green/bug.svg
new file mode 100644
index 00000000..81fae192
--- /dev/null
+++ b/gns3server/symbols/affinity/square/green/bug.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/green/camera.svg b/gns3server/symbols/affinity/square/green/camera.svg
new file mode 100644
index 00000000..adbb21da
--- /dev/null
+++ b/gns3server/symbols/affinity/square/green/camera.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/green/camera_dome.svg b/gns3server/symbols/affinity/square/green/camera_dome.svg
new file mode 100644
index 00000000..96bb5720
--- /dev/null
+++ b/gns3server/symbols/affinity/square/green/camera_dome.svg
@@ -0,0 +1,8 @@
+
diff --git a/gns3server/symbols/affinity/square/green/client.svg b/gns3server/symbols/affinity/square/green/client.svg
new file mode 100644
index 00000000..4a91eaaa
--- /dev/null
+++ b/gns3server/symbols/affinity/square/green/client.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/green/client_vm.svg b/gns3server/symbols/affinity/square/green/client_vm.svg
new file mode 100644
index 00000000..64379f3a
--- /dev/null
+++ b/gns3server/symbols/affinity/square/green/client_vm.svg
@@ -0,0 +1,6 @@
+
diff --git a/gns3server/symbols/affinity/square/green/cloud.svg b/gns3server/symbols/affinity/square/green/cloud.svg
new file mode 100644
index 00000000..aec8adc3
--- /dev/null
+++ b/gns3server/symbols/affinity/square/green/cloud.svg
@@ -0,0 +1,24 @@
+
diff --git a/gns3server/symbols/affinity/square/green/coffee.svg b/gns3server/symbols/affinity/square/green/coffee.svg
new file mode 100644
index 00000000..f47d8605
--- /dev/null
+++ b/gns3server/symbols/affinity/square/green/coffee.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/green/cog.svg b/gns3server/symbols/affinity/square/green/cog.svg
new file mode 100644
index 00000000..4a51ebef
--- /dev/null
+++ b/gns3server/symbols/affinity/square/green/cog.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/green/communications.svg b/gns3server/symbols/affinity/square/green/communications.svg
new file mode 100644
index 00000000..812b486e
--- /dev/null
+++ b/gns3server/symbols/affinity/square/green/communications.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/green/conversation.svg b/gns3server/symbols/affinity/square/green/conversation.svg
new file mode 100644
index 00000000..d47183e0
--- /dev/null
+++ b/gns3server/symbols/affinity/square/green/conversation.svg
@@ -0,0 +1,12 @@
+
diff --git a/gns3server/symbols/affinity/square/green/dna.svg b/gns3server/symbols/affinity/square/green/dna.svg
new file mode 100644
index 00000000..1d6aed84
--- /dev/null
+++ b/gns3server/symbols/affinity/square/green/dna.svg
@@ -0,0 +1,7 @@
+
diff --git a/gns3server/symbols/affinity/square/green/dna2.svg b/gns3server/symbols/affinity/square/green/dna2.svg
new file mode 100644
index 00000000..650471d6
--- /dev/null
+++ b/gns3server/symbols/affinity/square/green/dna2.svg
@@ -0,0 +1,7 @@
+
diff --git a/gns3server/symbols/affinity/square/green/docker.svg b/gns3server/symbols/affinity/square/green/docker.svg
new file mode 100644
index 00000000..27aa0ca8
--- /dev/null
+++ b/gns3server/symbols/affinity/square/green/docker.svg
@@ -0,0 +1,11 @@
+
diff --git a/gns3server/symbols/affinity/square/green/dslam.svg b/gns3server/symbols/affinity/square/green/dslam.svg
new file mode 100644
index 00000000..a508c8b0
--- /dev/null
+++ b/gns3server/symbols/affinity/square/green/dslam.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/green/factory.svg b/gns3server/symbols/affinity/square/green/factory.svg
new file mode 100644
index 00000000..a99554dc
--- /dev/null
+++ b/gns3server/symbols/affinity/square/green/factory.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/green/fingerprint.svg b/gns3server/symbols/affinity/square/green/fingerprint.svg
new file mode 100644
index 00000000..c09e4f10
--- /dev/null
+++ b/gns3server/symbols/affinity/square/green/fingerprint.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/green/firewall.svg b/gns3server/symbols/affinity/square/green/firewall.svg
new file mode 100644
index 00000000..7db0bdca
--- /dev/null
+++ b/gns3server/symbols/affinity/square/green/firewall.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/green/firewall3.svg b/gns3server/symbols/affinity/square/green/firewall3.svg
new file mode 100644
index 00000000..3a611e71
--- /dev/null
+++ b/gns3server/symbols/affinity/square/green/firewall3.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/green/globe.svg b/gns3server/symbols/affinity/square/green/globe.svg
new file mode 100644
index 00000000..31121bcf
--- /dev/null
+++ b/gns3server/symbols/affinity/square/green/globe.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/green/grid.svg b/gns3server/symbols/affinity/square/green/grid.svg
new file mode 100644
index 00000000..77317030
--- /dev/null
+++ b/gns3server/symbols/affinity/square/green/grid.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/green/grid2.svg b/gns3server/symbols/affinity/square/green/grid2.svg
new file mode 100644
index 00000000..702cf711
--- /dev/null
+++ b/gns3server/symbols/affinity/square/green/grid2.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/green/health.svg b/gns3server/symbols/affinity/square/green/health.svg
new file mode 100644
index 00000000..242f8d3c
--- /dev/null
+++ b/gns3server/symbols/affinity/square/green/health.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/green/house.svg b/gns3server/symbols/affinity/square/green/house.svg
new file mode 100644
index 00000000..ab49e640
--- /dev/null
+++ b/gns3server/symbols/affinity/square/green/house.svg
@@ -0,0 +1,6 @@
+
diff --git a/gns3server/symbols/affinity/square/green/hub.svg b/gns3server/symbols/affinity/square/green/hub.svg
new file mode 100644
index 00000000..1d2aafb7
--- /dev/null
+++ b/gns3server/symbols/affinity/square/green/hub.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/green/inspect.svg b/gns3server/symbols/affinity/square/green/inspect.svg
new file mode 100644
index 00000000..e79e0d59
--- /dev/null
+++ b/gns3server/symbols/affinity/square/green/inspect.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/green/inspect2.svg b/gns3server/symbols/affinity/square/green/inspect2.svg
new file mode 100644
index 00000000..ee551223
--- /dev/null
+++ b/gns3server/symbols/affinity/square/green/inspect2.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/green/interconnect.svg b/gns3server/symbols/affinity/square/green/interconnect.svg
new file mode 100644
index 00000000..1479dd48
--- /dev/null
+++ b/gns3server/symbols/affinity/square/green/interconnect.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/green/ip_phone.svg b/gns3server/symbols/affinity/square/green/ip_phone.svg
new file mode 100644
index 00000000..ecb74a40
--- /dev/null
+++ b/gns3server/symbols/affinity/square/green/ip_phone.svg
@@ -0,0 +1,7 @@
+
diff --git a/gns3server/symbols/affinity/square/green/isdn.svg b/gns3server/symbols/affinity/square/green/isdn.svg
new file mode 100644
index 00000000..5632a3fe
--- /dev/null
+++ b/gns3server/symbols/affinity/square/green/isdn.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/green/laptop.svg b/gns3server/symbols/affinity/square/green/laptop.svg
new file mode 100644
index 00000000..c43c8397
--- /dev/null
+++ b/gns3server/symbols/affinity/square/green/laptop.svg
@@ -0,0 +1,8 @@
+
diff --git a/gns3server/symbols/affinity/square/green/ldap.svg b/gns3server/symbols/affinity/square/green/ldap.svg
new file mode 100644
index 00000000..d4d29b9b
--- /dev/null
+++ b/gns3server/symbols/affinity/square/green/ldap.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/green/light_bulb.svg b/gns3server/symbols/affinity/square/green/light_bulb.svg
new file mode 100644
index 00000000..76ed423a
--- /dev/null
+++ b/gns3server/symbols/affinity/square/green/light_bulb.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/green/link.svg b/gns3server/symbols/affinity/square/green/link.svg
new file mode 100644
index 00000000..05e833d5
--- /dev/null
+++ b/gns3server/symbols/affinity/square/green/link.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/green/loadbalancer.svg b/gns3server/symbols/affinity/square/green/loadbalancer.svg
new file mode 100644
index 00000000..cd0de73a
--- /dev/null
+++ b/gns3server/symbols/affinity/square/green/loadbalancer.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/green/nas.svg b/gns3server/symbols/affinity/square/green/nas.svg
new file mode 100644
index 00000000..95612fc7
--- /dev/null
+++ b/gns3server/symbols/affinity/square/green/nas.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/green/office.svg b/gns3server/symbols/affinity/square/green/office.svg
new file mode 100644
index 00000000..967a35c0
--- /dev/null
+++ b/gns3server/symbols/affinity/square/green/office.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/green/optical.svg b/gns3server/symbols/affinity/square/green/optical.svg
new file mode 100644
index 00000000..06a62c9a
--- /dev/null
+++ b/gns3server/symbols/affinity/square/green/optical.svg
@@ -0,0 +1,8 @@
+
diff --git a/gns3server/symbols/affinity/square/green/phone_cloud.svg b/gns3server/symbols/affinity/square/green/phone_cloud.svg
new file mode 100644
index 00000000..e61ae73f
--- /dev/null
+++ b/gns3server/symbols/affinity/square/green/phone_cloud.svg
@@ -0,0 +1,6 @@
+
diff --git a/gns3server/symbols/affinity/square/green/phone_old.svg b/gns3server/symbols/affinity/square/green/phone_old.svg
new file mode 100644
index 00000000..7888af43
--- /dev/null
+++ b/gns3server/symbols/affinity/square/green/phone_old.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/green/phone_wireless.svg b/gns3server/symbols/affinity/square/green/phone_wireless.svg
new file mode 100644
index 00000000..cdc8c3e2
--- /dev/null
+++ b/gns3server/symbols/affinity/square/green/phone_wireless.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/green/pinpoint.svg b/gns3server/symbols/affinity/square/green/pinpoint.svg
new file mode 100644
index 00000000..69824bf5
--- /dev/null
+++ b/gns3server/symbols/affinity/square/green/pinpoint.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/green/printer.svg b/gns3server/symbols/affinity/square/green/printer.svg
new file mode 100644
index 00000000..780b0f64
--- /dev/null
+++ b/gns3server/symbols/affinity/square/green/printer.svg
@@ -0,0 +1,27 @@
+
diff --git a/gns3server/symbols/affinity/square/green/rj45.svg b/gns3server/symbols/affinity/square/green/rj45.svg
new file mode 100644
index 00000000..7f095c27
--- /dev/null
+++ b/gns3server/symbols/affinity/square/green/rj45.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/green/router.svg b/gns3server/symbols/affinity/square/green/router.svg
new file mode 100644
index 00000000..1e0cb649
--- /dev/null
+++ b/gns3server/symbols/affinity/square/green/router.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/green/router2.svg b/gns3server/symbols/affinity/square/green/router2.svg
new file mode 100644
index 00000000..dce58cf1
--- /dev/null
+++ b/gns3server/symbols/affinity/square/green/router2.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/green/router_cloud.svg b/gns3server/symbols/affinity/square/green/router_cloud.svg
new file mode 100644
index 00000000..3afbcc4e
--- /dev/null
+++ b/gns3server/symbols/affinity/square/green/router_cloud.svg
@@ -0,0 +1,6 @@
+
diff --git a/gns3server/symbols/affinity/square/green/satellite.svg b/gns3server/symbols/affinity/square/green/satellite.svg
new file mode 100644
index 00000000..7d443f73
--- /dev/null
+++ b/gns3server/symbols/affinity/square/green/satellite.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/green/satellite_dish.svg b/gns3server/symbols/affinity/square/green/satellite_dish.svg
new file mode 100644
index 00000000..3e0f3e95
--- /dev/null
+++ b/gns3server/symbols/affinity/square/green/satellite_dish.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/green/scull.svg b/gns3server/symbols/affinity/square/green/scull.svg
new file mode 100644
index 00000000..49249e1f
--- /dev/null
+++ b/gns3server/symbols/affinity/square/green/scull.svg
@@ -0,0 +1,8 @@
+
diff --git a/gns3server/symbols/affinity/square/green/server.svg b/gns3server/symbols/affinity/square/green/server.svg
new file mode 100644
index 00000000..143cfaa3
--- /dev/null
+++ b/gns3server/symbols/affinity/square/green/server.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/green/server_cluster.svg b/gns3server/symbols/affinity/square/green/server_cluster.svg
new file mode 100644
index 00000000..7aaad0ab
--- /dev/null
+++ b/gns3server/symbols/affinity/square/green/server_cluster.svg
@@ -0,0 +1,7 @@
+
diff --git a/gns3server/symbols/affinity/square/green/shield.svg b/gns3server/symbols/affinity/square/green/shield.svg
new file mode 100644
index 00000000..689d91b0
--- /dev/null
+++ b/gns3server/symbols/affinity/square/green/shield.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/green/statistics.svg b/gns3server/symbols/affinity/square/green/statistics.svg
new file mode 100644
index 00000000..5754dfa4
--- /dev/null
+++ b/gns3server/symbols/affinity/square/green/statistics.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/green/storage.svg b/gns3server/symbols/affinity/square/green/storage.svg
new file mode 100644
index 00000000..325914a1
--- /dev/null
+++ b/gns3server/symbols/affinity/square/green/storage.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/green/switch.svg b/gns3server/symbols/affinity/square/green/switch.svg
new file mode 100644
index 00000000..70f15805
--- /dev/null
+++ b/gns3server/symbols/affinity/square/green/switch.svg
@@ -0,0 +1,10 @@
+
diff --git a/gns3server/symbols/affinity/square/green/switch_multilayer.svg b/gns3server/symbols/affinity/square/green/switch_multilayer.svg
new file mode 100644
index 00000000..26127b97
--- /dev/null
+++ b/gns3server/symbols/affinity/square/green/switch_multilayer.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/green/tablet.svg b/gns3server/symbols/affinity/square/green/tablet.svg
new file mode 100644
index 00000000..65e1820f
--- /dev/null
+++ b/gns3server/symbols/affinity/square/green/tablet.svg
@@ -0,0 +1,9 @@
+
diff --git a/gns3server/symbols/affinity/square/green/template.svg b/gns3server/symbols/affinity/square/green/template.svg
new file mode 100644
index 00000000..c97f20dc
--- /dev/null
+++ b/gns3server/symbols/affinity/square/green/template.svg
@@ -0,0 +1,4 @@
+
diff --git a/gns3server/symbols/affinity/square/green/tree.svg b/gns3server/symbols/affinity/square/green/tree.svg
new file mode 100644
index 00000000..00c744c2
--- /dev/null
+++ b/gns3server/symbols/affinity/square/green/tree.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/green/user.svg b/gns3server/symbols/affinity/square/green/user.svg
new file mode 100644
index 00000000..4c27e408
--- /dev/null
+++ b/gns3server/symbols/affinity/square/green/user.svg
@@ -0,0 +1,7 @@
+
diff --git a/gns3server/symbols/affinity/square/green/virtualbox.svg b/gns3server/symbols/affinity/square/green/virtualbox.svg
new file mode 100644
index 00000000..78196c32
--- /dev/null
+++ b/gns3server/symbols/affinity/square/green/virtualbox.svg
@@ -0,0 +1,7 @@
+
diff --git a/gns3server/symbols/affinity/square/green/vm.svg b/gns3server/symbols/affinity/square/green/vm.svg
new file mode 100644
index 00000000..67a00eb4
--- /dev/null
+++ b/gns3server/symbols/affinity/square/green/vm.svg
@@ -0,0 +1,7 @@
+
diff --git a/gns3server/symbols/affinity/square/green/vmware.svg b/gns3server/symbols/affinity/square/green/vmware.svg
new file mode 100644
index 00000000..489d1942
--- /dev/null
+++ b/gns3server/symbols/affinity/square/green/vmware.svg
@@ -0,0 +1,7 @@
+
diff --git a/gns3server/symbols/affinity/square/green/vrf.svg b/gns3server/symbols/affinity/square/green/vrf.svg
new file mode 100644
index 00000000..821973ac
--- /dev/null
+++ b/gns3server/symbols/affinity/square/green/vrf.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/green/wifi.svg b/gns3server/symbols/affinity/square/green/wifi.svg
new file mode 100644
index 00000000..8bd77083
--- /dev/null
+++ b/gns3server/symbols/affinity/square/green/wifi.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/green/wlc.svg b/gns3server/symbols/affinity/square/green/wlc.svg
new file mode 100644
index 00000000..97e78c9c
--- /dev/null
+++ b/gns3server/symbols/affinity/square/green/wlc.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/green/xml.svg b/gns3server/symbols/affinity/square/green/xml.svg
new file mode 100644
index 00000000..0dcec5a4
--- /dev/null
+++ b/gns3server/symbols/affinity/square/green/xml.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/red/atm.svg b/gns3server/symbols/affinity/square/red/atm.svg
index 0a8b0654..f99cf6ce 100644
--- a/gns3server/symbols/affinity/square/red/atm.svg
+++ b/gns3server/symbols/affinity/square/red/atm.svg
@@ -1,55 +1,5 @@
-
-
\ No newline at end of file
+
diff --git a/gns3server/symbols/affinity/square/red/bug.svg b/gns3server/symbols/affinity/square/red/bug.svg
new file mode 100644
index 00000000..62905dc4
--- /dev/null
+++ b/gns3server/symbols/affinity/square/red/bug.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/red/camera.svg b/gns3server/symbols/affinity/square/red/camera.svg
index a8503616..fe9b5e7b 100644
--- a/gns3server/symbols/affinity/square/red/camera.svg
+++ b/gns3server/symbols/affinity/square/red/camera.svg
@@ -1,50 +1,12 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/red/camera_dome.svg b/gns3server/symbols/affinity/square/red/camera_dome.svg
index 0a87c876..b6741401 100644
--- a/gns3server/symbols/affinity/square/red/camera_dome.svg
+++ b/gns3server/symbols/affinity/square/red/camera_dome.svg
@@ -1,36 +1,8 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/red/client.svg b/gns3server/symbols/affinity/square/red/client.svg
index f85e5ab6..130a7c7d 100644
--- a/gns3server/symbols/affinity/square/red/client.svg
+++ b/gns3server/symbols/affinity/square/red/client.svg
@@ -1,41 +1,8 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/red/client_vm.svg b/gns3server/symbols/affinity/square/red/client_vm.svg
index 0c7e0ffe..066c28e8 100644
--- a/gns3server/symbols/affinity/square/red/client_vm.svg
+++ b/gns3server/symbols/affinity/square/red/client_vm.svg
@@ -1,44 +1,8 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/red/cloud.svg b/gns3server/symbols/affinity/square/red/cloud.svg
index 4a0b045c..3d4cae62 100644
--- a/gns3server/symbols/affinity/square/red/cloud.svg
+++ b/gns3server/symbols/affinity/square/red/cloud.svg
@@ -1,57 +1,12 @@
-
-
\ No newline at end of file
+
diff --git a/gns3server/symbols/affinity/square/red/coffee.svg b/gns3server/symbols/affinity/square/red/coffee.svg
new file mode 100644
index 00000000..87fd2f89
--- /dev/null
+++ b/gns3server/symbols/affinity/square/red/coffee.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/red/cog.svg b/gns3server/symbols/affinity/square/red/cog.svg
index 70c77245..8cd6eb3a 100644
--- a/gns3server/symbols/affinity/square/red/cog.svg
+++ b/gns3server/symbols/affinity/square/red/cog.svg
@@ -1,40 +1,8 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/red/communications.svg b/gns3server/symbols/affinity/square/red/communications.svg
index c04e42a6..fbb281a9 100644
--- a/gns3server/symbols/affinity/square/red/communications.svg
+++ b/gns3server/symbols/affinity/square/red/communications.svg
@@ -1,38 +1,8 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/red/conversation.svg b/gns3server/symbols/affinity/square/red/conversation.svg
index 694f4488..7909803e 100644
--- a/gns3server/symbols/affinity/square/red/conversation.svg
+++ b/gns3server/symbols/affinity/square/red/conversation.svg
@@ -1,45 +1,12 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/red/dna.svg b/gns3server/symbols/affinity/square/red/dna.svg
new file mode 100644
index 00000000..39f97491
--- /dev/null
+++ b/gns3server/symbols/affinity/square/red/dna.svg
@@ -0,0 +1,7 @@
+
diff --git a/gns3server/symbols/affinity/square/red/dna2.svg b/gns3server/symbols/affinity/square/red/dna2.svg
new file mode 100644
index 00000000..3cdb7bac
--- /dev/null
+++ b/gns3server/symbols/affinity/square/red/dna2.svg
@@ -0,0 +1,7 @@
+
diff --git a/gns3server/symbols/affinity/square/red/docker.svg b/gns3server/symbols/affinity/square/red/docker.svg
index 28ef7689..19d6b838 100644
--- a/gns3server/symbols/affinity/square/red/docker.svg
+++ b/gns3server/symbols/affinity/square/red/docker.svg
@@ -1,106 +1,11 @@
-
-
\ No newline at end of file
+
diff --git a/gns3server/symbols/affinity/square/red/dslam.svg b/gns3server/symbols/affinity/square/red/dslam.svg
index b914299a..d40a37cf 100644
--- a/gns3server/symbols/affinity/square/red/dslam.svg
+++ b/gns3server/symbols/affinity/square/red/dslam.svg
@@ -1,39 +1,8 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/red/factory.svg b/gns3server/symbols/affinity/square/red/factory.svg
new file mode 100644
index 00000000..9d42848d
--- /dev/null
+++ b/gns3server/symbols/affinity/square/red/factory.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/red/fingerprint.svg b/gns3server/symbols/affinity/square/red/fingerprint.svg
index e7685b6f..a795a3f8 100644
--- a/gns3server/symbols/affinity/square/red/fingerprint.svg
+++ b/gns3server/symbols/affinity/square/red/fingerprint.svg
@@ -1,39 +1,9 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/red/firewall.svg b/gns3server/symbols/affinity/square/red/firewall.svg
index 0785fff8..17e7e21e 100644
--- a/gns3server/symbols/affinity/square/red/firewall.svg
+++ b/gns3server/symbols/affinity/square/red/firewall.svg
@@ -1,38 +1,7 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/red/firewall3.svg b/gns3server/symbols/affinity/square/red/firewall3.svg
index 2ce7389b..5d645bbe 100644
--- a/gns3server/symbols/affinity/square/red/firewall3.svg
+++ b/gns3server/symbols/affinity/square/red/firewall3.svg
@@ -1,38 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/red/globe.svg b/gns3server/symbols/affinity/square/red/globe.svg
new file mode 100644
index 00000000..161614c9
--- /dev/null
+++ b/gns3server/symbols/affinity/square/red/globe.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/red/grid.svg b/gns3server/symbols/affinity/square/red/grid.svg
index 367e1727..92f90b04 100644
--- a/gns3server/symbols/affinity/square/red/grid.svg
+++ b/gns3server/symbols/affinity/square/red/grid.svg
@@ -1,34 +1,7 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/red/grid2.svg b/gns3server/symbols/affinity/square/red/grid2.svg
index 30cc6fc2..893a5639 100644
--- a/gns3server/symbols/affinity/square/red/grid2.svg
+++ b/gns3server/symbols/affinity/square/red/grid2.svg
@@ -1,34 +1,7 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/red/health.svg b/gns3server/symbols/affinity/square/red/health.svg
new file mode 100644
index 00000000..6f267756
--- /dev/null
+++ b/gns3server/symbols/affinity/square/red/health.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/red/house.svg b/gns3server/symbols/affinity/square/red/house.svg
new file mode 100644
index 00000000..0a8c121f
--- /dev/null
+++ b/gns3server/symbols/affinity/square/red/house.svg
@@ -0,0 +1,6 @@
+
diff --git a/gns3server/symbols/affinity/square/red/hub.svg b/gns3server/symbols/affinity/square/red/hub.svg
index c85a6efa..6003f7bf 100644
--- a/gns3server/symbols/affinity/square/red/hub.svg
+++ b/gns3server/symbols/affinity/square/red/hub.svg
@@ -1,33 +1,7 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/red/inspect.svg b/gns3server/symbols/affinity/square/red/inspect.svg
new file mode 100644
index 00000000..e6688167
--- /dev/null
+++ b/gns3server/symbols/affinity/square/red/inspect.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/red/inspect2.svg b/gns3server/symbols/affinity/square/red/inspect2.svg
index fa93643b..4828f6b3 100644
--- a/gns3server/symbols/affinity/square/red/inspect2.svg
+++ b/gns3server/symbols/affinity/square/red/inspect2.svg
@@ -1,44 +1,9 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/red/inspect3.svg b/gns3server/symbols/affinity/square/red/inspect3.svg
deleted file mode 100644
index c109c083..00000000
--- a/gns3server/symbols/affinity/square/red/inspect3.svg
+++ /dev/null
@@ -1,43 +0,0 @@
-
-
diff --git a/gns3server/symbols/affinity/square/red/interconnect.svg b/gns3server/symbols/affinity/square/red/interconnect.svg
index a1a6e8a4..f7bd0619 100644
--- a/gns3server/symbols/affinity/square/red/interconnect.svg
+++ b/gns3server/symbols/affinity/square/red/interconnect.svg
@@ -1,37 +1,8 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/red/ip_phone.svg b/gns3server/symbols/affinity/square/red/ip_phone.svg
new file mode 100644
index 00000000..bf0cc140
--- /dev/null
+++ b/gns3server/symbols/affinity/square/red/ip_phone.svg
@@ -0,0 +1,7 @@
+
diff --git a/gns3server/symbols/affinity/square/red/isdn.svg b/gns3server/symbols/affinity/square/red/isdn.svg
index 30c49bea..0b3a71e7 100644
--- a/gns3server/symbols/affinity/square/red/isdn.svg
+++ b/gns3server/symbols/affinity/square/red/isdn.svg
@@ -1,33 +1,7 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/red/laptop.svg b/gns3server/symbols/affinity/square/red/laptop.svg
new file mode 100644
index 00000000..bee6f065
--- /dev/null
+++ b/gns3server/symbols/affinity/square/red/laptop.svg
@@ -0,0 +1,8 @@
+
diff --git a/gns3server/symbols/affinity/square/red/ldap.svg b/gns3server/symbols/affinity/square/red/ldap.svg
index 4b663799..8219bb96 100644
--- a/gns3server/symbols/affinity/square/red/ldap.svg
+++ b/gns3server/symbols/affinity/square/red/ldap.svg
@@ -1,31 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/red/light_bulb.svg b/gns3server/symbols/affinity/square/red/light_bulb.svg
index 33f005b8..71587083 100644
--- a/gns3server/symbols/affinity/square/red/light_bulb.svg
+++ b/gns3server/symbols/affinity/square/red/light_bulb.svg
@@ -1,63 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/red/link.svg b/gns3server/symbols/affinity/square/red/link.svg
index 4b78f67a..f829f5c0 100644
--- a/gns3server/symbols/affinity/square/red/link.svg
+++ b/gns3server/symbols/affinity/square/red/link.svg
@@ -1,31 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/red/loadbalancer.svg b/gns3server/symbols/affinity/square/red/loadbalancer.svg
new file mode 100644
index 00000000..60159156
--- /dev/null
+++ b/gns3server/symbols/affinity/square/red/loadbalancer.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/red/nas.svg b/gns3server/symbols/affinity/square/red/nas.svg
index ece3902b..cd82066a 100644
--- a/gns3server/symbols/affinity/square/red/nas.svg
+++ b/gns3server/symbols/affinity/square/red/nas.svg
@@ -1,33 +1,7 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/red/office.svg b/gns3server/symbols/affinity/square/red/office.svg
new file mode 100644
index 00000000..41e33980
--- /dev/null
+++ b/gns3server/symbols/affinity/square/red/office.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/red/optical.svg b/gns3server/symbols/affinity/square/red/optical.svg
new file mode 100644
index 00000000..a30f2d39
--- /dev/null
+++ b/gns3server/symbols/affinity/square/red/optical.svg
@@ -0,0 +1,8 @@
+
diff --git a/gns3server/symbols/affinity/square/red/phone_cloud.svg b/gns3server/symbols/affinity/square/red/phone_cloud.svg
new file mode 100644
index 00000000..6d56fb08
--- /dev/null
+++ b/gns3server/symbols/affinity/square/red/phone_cloud.svg
@@ -0,0 +1,6 @@
+
diff --git a/gns3server/symbols/affinity/square/red/phone_old.svg b/gns3server/symbols/affinity/square/red/phone_old.svg
new file mode 100644
index 00000000..eca3c75f
--- /dev/null
+++ b/gns3server/symbols/affinity/square/red/phone_old.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/red/phone_wireless.svg b/gns3server/symbols/affinity/square/red/phone_wireless.svg
new file mode 100644
index 00000000..4b2c43f2
--- /dev/null
+++ b/gns3server/symbols/affinity/square/red/phone_wireless.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/red/pinpoint.svg b/gns3server/symbols/affinity/square/red/pinpoint.svg
index a5eca8aa..faa3c1fe 100644
--- a/gns3server/symbols/affinity/square/red/pinpoint.svg
+++ b/gns3server/symbols/affinity/square/red/pinpoint.svg
@@ -1,49 +1,9 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/red/printer.svg b/gns3server/symbols/affinity/square/red/printer.svg
index 75741282..e3309690 100644
--- a/gns3server/symbols/affinity/square/red/printer.svg
+++ b/gns3server/symbols/affinity/square/red/printer.svg
@@ -1,95 +1,27 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/red/rj45.svg b/gns3server/symbols/affinity/square/red/rj45.svg
index 4fecd486..1c017359 100644
--- a/gns3server/symbols/affinity/square/red/rj45.svg
+++ b/gns3server/symbols/affinity/square/red/rj45.svg
@@ -1,66 +1,14 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/red/router.svg b/gns3server/symbols/affinity/square/red/router.svg
index b7dcd819..664b6b18 100644
--- a/gns3server/symbols/affinity/square/red/router.svg
+++ b/gns3server/symbols/affinity/square/red/router.svg
@@ -1,33 +1,7 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/red/router2.svg b/gns3server/symbols/affinity/square/red/router2.svg
new file mode 100644
index 00000000..7e94bd5e
--- /dev/null
+++ b/gns3server/symbols/affinity/square/red/router2.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/red/router_cloud.svg b/gns3server/symbols/affinity/square/red/router_cloud.svg
index 88779267..7a9d51b7 100644
--- a/gns3server/symbols/affinity/square/red/router_cloud.svg
+++ b/gns3server/symbols/affinity/square/red/router_cloud.svg
@@ -1,39 +1,6 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/red/satellite.svg b/gns3server/symbols/affinity/square/red/satellite.svg
index 1add72eb..7360650e 100644
--- a/gns3server/symbols/affinity/square/red/satellite.svg
+++ b/gns3server/symbols/affinity/square/red/satellite.svg
@@ -1,38 +1,8 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/red/satellite_dish.svg b/gns3server/symbols/affinity/square/red/satellite_dish.svg
index ef00eab2..c6047e75 100644
--- a/gns3server/symbols/affinity/square/red/satellite_dish.svg
+++ b/gns3server/symbols/affinity/square/red/satellite_dish.svg
@@ -1,39 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/red/scull.svg b/gns3server/symbols/affinity/square/red/scull.svg
index 79e11fdf..97f6a98a 100644
--- a/gns3server/symbols/affinity/square/red/scull.svg
+++ b/gns3server/symbols/affinity/square/red/scull.svg
@@ -1,47 +1,10 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/red/server-cluster.svg b/gns3server/symbols/affinity/square/red/server-cluster.svg
deleted file mode 100644
index 75e5c1ef..00000000
--- a/gns3server/symbols/affinity/square/red/server-cluster.svg
+++ /dev/null
@@ -1,44 +0,0 @@
-
-
diff --git a/gns3server/symbols/affinity/square/red/server.svg b/gns3server/symbols/affinity/square/red/server.svg
index 0d73bb40..882f1eb7 100644
--- a/gns3server/symbols/affinity/square/red/server.svg
+++ b/gns3server/symbols/affinity/square/red/server.svg
@@ -1,31 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/red/server_cluster.svg b/gns3server/symbols/affinity/square/red/server_cluster.svg
new file mode 100644
index 00000000..96a55c31
--- /dev/null
+++ b/gns3server/symbols/affinity/square/red/server_cluster.svg
@@ -0,0 +1,9 @@
+
diff --git a/gns3server/symbols/affinity/square/red/shield.svg b/gns3server/symbols/affinity/square/red/shield.svg
new file mode 100644
index 00000000..890f269e
--- /dev/null
+++ b/gns3server/symbols/affinity/square/red/shield.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/red/square.svg b/gns3server/symbols/affinity/square/red/square.svg
deleted file mode 100644
index fcf9fcb4..00000000
--- a/gns3server/symbols/affinity/square/red/square.svg
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
diff --git a/gns3server/symbols/affinity/square/red/statistics.svg b/gns3server/symbols/affinity/square/red/statistics.svg
index 3d7ac865..f75881b4 100644
--- a/gns3server/symbols/affinity/square/red/statistics.svg
+++ b/gns3server/symbols/affinity/square/red/statistics.svg
@@ -1,41 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/red/storage.svg b/gns3server/symbols/affinity/square/red/storage.svg
index c89349d2..4cea4c52 100644
--- a/gns3server/symbols/affinity/square/red/storage.svg
+++ b/gns3server/symbols/affinity/square/red/storage.svg
@@ -1,31 +1,7 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/red/switch.svg b/gns3server/symbols/affinity/square/red/switch.svg
index 62b5c95b..02a83119 100644
--- a/gns3server/symbols/affinity/square/red/switch.svg
+++ b/gns3server/symbols/affinity/square/red/switch.svg
@@ -1,46 +1,10 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/red/switch_multilayer.svg b/gns3server/symbols/affinity/square/red/switch_multilayer.svg
index 1fbd5914..78b06006 100644
--- a/gns3server/symbols/affinity/square/red/switch_multilayer.svg
+++ b/gns3server/symbols/affinity/square/red/switch_multilayer.svg
@@ -1,46 +1,9 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/red/tablet.svg b/gns3server/symbols/affinity/square/red/tablet.svg
index 6ca36adb..977a80f9 100644
--- a/gns3server/symbols/affinity/square/red/tablet.svg
+++ b/gns3server/symbols/affinity/square/red/tablet.svg
@@ -1,43 +1,9 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/red/template.svg b/gns3server/symbols/affinity/square/red/template.svg
new file mode 100644
index 00000000..f6217c1f
--- /dev/null
+++ b/gns3server/symbols/affinity/square/red/template.svg
@@ -0,0 +1,4 @@
+
diff --git a/gns3server/symbols/affinity/square/red/tree.svg b/gns3server/symbols/affinity/square/red/tree.svg
index 2678cca7..592b1e24 100644
--- a/gns3server/symbols/affinity/square/red/tree.svg
+++ b/gns3server/symbols/affinity/square/red/tree.svg
@@ -1,31 +1,5 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/red/user.svg b/gns3server/symbols/affinity/square/red/user.svg
index 43efcaee..78f01cd8 100644
--- a/gns3server/symbols/affinity/square/red/user.svg
+++ b/gns3server/symbols/affinity/square/red/user.svg
@@ -1,33 +1,7 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/red/virtualbox.svg b/gns3server/symbols/affinity/square/red/virtualbox.svg
index dd89627e..4042f2a5 100644
--- a/gns3server/symbols/affinity/square/red/virtualbox.svg
+++ b/gns3server/symbols/affinity/square/red/virtualbox.svg
@@ -1,58 +1,7 @@
-
-
\ No newline at end of file
+
diff --git a/gns3server/symbols/affinity/square/red/vm.svg b/gns3server/symbols/affinity/square/red/vm.svg
index e3883434..24e742fb 100644
--- a/gns3server/symbols/affinity/square/red/vm.svg
+++ b/gns3server/symbols/affinity/square/red/vm.svg
@@ -1,39 +1,7 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/red/vmware.svg b/gns3server/symbols/affinity/square/red/vmware.svg
index c9fef843..21cbc3a7 100644
--- a/gns3server/symbols/affinity/square/red/vmware.svg
+++ b/gns3server/symbols/affinity/square/red/vmware.svg
@@ -1,58 +1,7 @@
-
-
\ No newline at end of file
+
diff --git a/gns3server/symbols/affinity/square/red/vrf.svg b/gns3server/symbols/affinity/square/red/vrf.svg
new file mode 100644
index 00000000..e730a41a
--- /dev/null
+++ b/gns3server/symbols/affinity/square/red/vrf.svg
@@ -0,0 +1,5 @@
+
diff --git a/gns3server/symbols/affinity/square/red/wifi.svg b/gns3server/symbols/affinity/square/red/wifi.svg
index f8fc0dd5..7c7ff6bb 100644
--- a/gns3server/symbols/affinity/square/red/wifi.svg
+++ b/gns3server/symbols/affinity/square/red/wifi.svg
@@ -1,60 +1,13 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/red/wlc.svg b/gns3server/symbols/affinity/square/red/wlc.svg
index 118291ca..fd953c03 100644
--- a/gns3server/symbols/affinity/square/red/wlc.svg
+++ b/gns3server/symbols/affinity/square/red/wlc.svg
@@ -1,33 +1,7 @@
-
-
+
diff --git a/gns3server/symbols/affinity/square/red/xml.svg b/gns3server/symbols/affinity/square/red/xml.svg
index ad3eae8c..3056cfa7 100644
--- a/gns3server/symbols/affinity/square/red/xml.svg
+++ b/gns3server/symbols/affinity/square/red/xml.svg
@@ -1,42 +1,10 @@
-
-
+
diff --git a/gns3server/utils/path.py b/gns3server/utils/path.py
index ad0fc530..8b6af46c 100644
--- a/gns3server/utils/path.py
+++ b/gns3server/utils/path.py
@@ -48,7 +48,7 @@ def is_safe_path(file_path: str, basedir: str) -> bool:
return Path(basedir).resolve() in test_path.resolve().parents
-def check_path_allowed(path):
+def check_path_allowed(path: str):
"""
If the server is non local raise an error if
the path is outside project directories
@@ -62,3 +62,16 @@ def check_path_allowed(path):
if Config.instance().settings.Server.local is False:
raise HTTPException(status_code=status.HTTP_403_FORBIDDEN, detail="The path is not allowed")
+
+
+def get_mountpoint(path: str):
+ """
+ Find the mount point of a path.
+ """
+
+ path = os.path.abspath(path)
+ while path != os.path.sep:
+ if os.path.ismount(path):
+ return path
+ path = os.path.abspath(os.path.join(path, os.pardir))
+ return path
diff --git a/requirements.txt b/requirements.txt
index d3786427..9b23503f 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -17,3 +17,4 @@ python-jose==3.3.0
email-validator==1.1.3
async-exit-stack==1.0.1 ; python_version < "3.7"
async-generator==1.10 ; python_version < "3.7"
+setuptools
\ No newline at end of file
diff --git a/scripts/sync_affinity_symbols.sh b/scripts/sync_affinity_symbols.sh
new file mode 100755
index 00000000..a6c02e17
--- /dev/null
+++ b/scripts/sync_affinity_symbols.sh
@@ -0,0 +1,40 @@
+#!/bin/sh
+#
+# Copyright (C) 2021 GNS3 Technologies Inc.
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+
+#
+# This script will sync the affinity symbols
+#
+
+rm -Rf /tmp/gns3-affinity
+
+git clone https://github.com/grossmj/affinity.git /tmp/gns3-affinity
+rm -rf /tmp/gns3-affinity/svg/naked
+
+for file in $(find "/tmp/gns3-affinity/svg" -name "*.svg")
+do
+ mv "$file" "`dirname $file`/`basename $file | sed -r "s/^(.*)_(blue|green|red).svg$/\1.svg/" | sed -r "s/(c|sq)_(.*)$/\2/"`";
+done
+
+for file in $(find "/tmp/gns3-affinity/svg" -name "*.svg")
+do
+ sed -i -r 's/width="100%"/width="60"/' $file
+ sed -i -r 's/height="100%"/height="60"/' $file
+ svgo --pretty $file # install instructions for svgo on https://github.com/svg/svgo
+done
+
+rm -rf gns3server/symbols/affinity
+mv /tmp/gns3-affinity/svg gns3server/symbols/affinity
diff --git a/tests/compute/qemu/test_qcow2.py b/tests/compute/qemu/test_qcow2.py
index e8f2f7bf..c75368e9 100644
--- a/tests/compute/qemu/test_qcow2.py
+++ b/tests/compute/qemu/test_qcow2.py
@@ -74,5 +74,5 @@ async def test_rebase(tmpdir):
qcow2 = Qcow2(str(tmpdir / "linked.qcow2"))
assert qcow2.version == 3
assert qcow2.backing_file == "empty8G.qcow2"
- await qcow2.rebase(qemu_img(), str(tmpdir / "empty16G.qcow2"))
+ await qcow2.rebase(qemu_img(), str(tmpdir / "empty16G.qcow2"), "qcow2")
assert qcow2.backing_file == str(tmpdir / "empty16G.qcow2")
diff --git a/tests/compute/qemu/test_qemu_vm.py b/tests/compute/qemu/test_qemu_vm.py
index 25507f69..52e53d0d 100644
--- a/tests/compute/qemu/test_qemu_vm.py
+++ b/tests/compute/qemu/test_qemu_vm.py
@@ -372,11 +372,12 @@ async def test_disk_options(vm, tmpdir, fake_qemu_img_binary):
vm._hda_disk_image = str(tmpdir / "test.qcow2")
open(vm._hda_disk_image, "w+").close()
- with asyncio_patch("asyncio.create_subprocess_exec", return_value=MagicMock()) as process:
- options = await vm._disk_options()
- assert process.called
- args, kwargs = process.call_args
- assert args == (fake_qemu_img_binary, "create", "-o", "backing_file={}".format(vm._hda_disk_image), "-f", "qcow2", os.path.join(vm.working_dir, "hda_disk.qcow2"))
+ with asyncio_patch("gns3server.compute.qemu.qemu_vm.QemuVM._find_disk_file_format", return_value="qcow2"):
+ with asyncio_patch("asyncio.create_subprocess_exec", return_value=MagicMock()) as process:
+ options = await vm._disk_options()
+ assert process.called
+ args, kwargs = process.call_args
+ assert args == (fake_qemu_img_binary, "create", "-o", "backing_file={}".format(vm._hda_disk_image), "-F", "qcow2", "-f", "qcow2", os.path.join(vm.working_dir, "hda_disk.qcow2"))
assert options == ['-drive', 'file=' + os.path.join(vm.working_dir, "hda_disk.qcow2") + ',if=ide,index=0,media=disk,id=drive0']
@@ -434,8 +435,9 @@ async def test_disk_options_multiple_disk(vm, tmpdir, fake_qemu_img_binary):
open(vm._hdc_disk_image, "w+").close()
open(vm._hdd_disk_image, "w+").close()
- with asyncio_patch("asyncio.create_subprocess_exec", return_value=MagicMock()):
- options = await vm._disk_options()
+ with asyncio_patch("gns3server.compute.qemu.qemu_vm.QemuVM._find_disk_file_format", return_value="qcow2"):
+ with asyncio_patch("asyncio.create_subprocess_exec", return_value=MagicMock()):
+ options = await vm._disk_options()
assert options == [
'-drive', 'file=' + os.path.join(vm.working_dir, "hda_disk.qcow2") + ',if=ide,index=0,media=disk,id=drive0',
@@ -912,8 +914,8 @@ async def test_run_with_kvm_linux(linux_platform, vm):
async def test_run_with_kvm_linux_options_no_kvm(linux_platform, vm):
with patch("os.path.exists", return_value=True) as os_path:
- vm.manager.config.settings.Qemu.enable_hardware_acceleration = True
- assert await vm._run_with_hardware_acceleration("qemu-system-x86_64", "-machine accel=tcg") is False
+ vm.manager.config.set("Qemu", "enable_kvm", True)
+ assert await vm._run_with_hardware_acceleration("qemu-system-x86_64", "-no-kvm") is False
@pytest.mark.asyncio